Robots
Guillem Borrell i Nogueras
16 de febrero de 2012
Antes de empezar
• Guillem Borrell i Nogueras. • http://iimyo.forja.rediris.es/ • Introducción Informal a Matlab y Octave • Matemáticas en Ingeniería con Matlab y Octave • Transparencias y ejercicios de este curso • Material de otros cursos
Funcionamiento
• • •
Visitar la página del cursoDescargarse la hoja de ejercicios Parar el vídeo para intentar el ejercicio antes que se de la solución.
Recordad...
Ningún lenguaje se aprende por osmosis
¿Qué es Matlab?
• • •
Un lenguaje de programación Un lenguaje de programación interpretado Un lenguaje de programación interactivo Usar Matlab == Programar en Matlab
¿Qué no es Matlab
• •
Una hoja de cálculo Un programa decálculo simbólico. Matlab 1 puede hacer 0 erf (x) dx = 0.486 pero no erf (x) dx = x erf (x) +
e−x √ π
2
•
La solución a todos nuestros problemas.
¿Qué significa interpretado?
• •
• • 1
Un intérprete es un programa. Es como un actor que hace todo lo que le dice un guión Muy parecido a la una calculadora. Es interactivo.
>>
Os presento a la consola de Matlab
Algunas mentiras•
• • • •
Para ser ingeniero aeronáutico no es necesario saber programar. Programar es difícil. Programar bien es fácil. Los ingenieros programan bien En la vida basta un lenguaje de programación mientras se domine.
Un autoengaño
Si en la escuela sólo me dan seis créditos de informática es porque no es importante.
En Arquitectura nadie enseña Autocad.
Problema:
RepresentarI(y), la integral de la función de Bessel
y
I(y ) =
0
J2.5 (x) dx
con y ∈ [1, 5]
• •
¿Cómo se haría en Fortran? ¿Cómo se haría en Excel?
En Matlab son 6 líneas
1 2 3 4 5 6
x=linspace(1,5,100); intbessel=@(y) quad(@(x) besselj(2.5,x),0,y); for i=1:100 z(i)=intbessel(x(i)); end plot(x,z);
No os preocupéis si no entendéis nada. Esto es Matlab avanzado.
El resultado1.2
1
0.8
0.6
0.4
0.2
0 1 1.5 2 2.5 3 3.5 4 4.5 5
¿Una calculadora programable?
1 2 3 4 5 6
>> 2+2 ans = 4 >> mean([1,2,3,4,5,6,7,8,9]) ans = 5 >> abs(3+4i) ans = 5
Todo esto es muy bonito pero...
• • • • •
¿Es una herramienta realmente útil? ¿Se usa masivamente en la industria? ¿Por qué? ¿Cuánto cuesta Matlab? ¿Es la única solución?
Octave
Implementaciónlibre y gratuita del lenguaje Matlab http://www.octave.org Programa muy utilizado en GNU/Linux Versiones para Windows y Mac QtOctave Libre y gratuito
•
• • • • •
El lenguaje Matlab
• • • • • • •
Caracteres especiales Funciones y scripts Tipos Variables Operadores Sentencias Contenendores
• Function handles
Caracteres especiales
1 2 3 4 5 6 7 8 9 10 11 12 13 >> % Este comandosera ignorado >> ’hola’ % ’Hola,Matlab!’ ans = hola >> ’hola’; >> ’hola’, ’que tal’ ans = hola ans = que tal >> ’hola’, ... ’que tal’ ans = hola ans = que tal
El directorio de trabajo
• • •
•
•
Matlab puede ejecutar archivos con código Matlab puede cargar archivos de datos La biblioteca de funciones está formada por archivos con código. Matlab busca en sus directorios de sistema másel directorio de trabajo Variable path
Funciones. Sintaxis
1 function [sal1,sal2,...] = nombre(ent1,ent2,...) 2 sentencias ejecutables 3 sal1 = ... 4 sal2 = ...
Lo guardaremos todo en el directorio de trabajo en un archivo llamado nombre.m
Scripts
• •
•
•
•
Un script es un programa Un programa es una secuencia de instrucciones ejecutables Un programa no depende devariables externas También se guarda en un archivo .m en el directorio de trabajo Se ejecuta escribiendo el nombre del archivo en la consola o pulsando F5 en el editor.
Nuestra primera función
Abrimos un archivo nuevo en el editor
1 function y = aprsin(x) 2 y=x-(x.^3)/6
Y lo guardamos en el directorio de trabajo como aprsin.m.
Nuestro primer script
En un archivo nuevo del editor
1...
Regístrate para leer el documento completo.