laboratorio ia tema 1 introducción a matlab. como funciona cada variable se supone que es una...

43
Laboratorio IA Tema 1 Introducción a MATLAB

Upload: mario-castellanos-herrero

Post on 02-Feb-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Laboratorio IA Tema 1

Introducción a MATLAB

Page 2: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Como funcionacada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento y declaración de variables. Las dimensiones de la matriz se definen mediante una lista explícita de elementos o por reglas que se aplican a las operacionesmatemáticas.

Las sentencias de MATLAB están típicamente en el formato general de

variable=expresión

(o simplemente expresión), entonces el resultado lo tiene la variable “ans”

Ejemplo

y = 10*sin(pi/6) ó 10*sin(pi/6)

El resultado devuelto es un escalar (matriz de 1 por 1) con un valor de 5,0.

• Apartir de ese momento y estará diponible en el sistema para cualquier cálculo

Page 3: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

EntornoEl entorno principal es la ventana de comandos, en ella cualquier

expresión que tecleemos porducirá una respuesta que quedará almacenada en ans o en una variable.

Todas las variables creadas estanrepresentadas en el Workspace

Haciendo click se accede a un editor

El histórico de comandos permite acceder a los comandos ,bien con un click o con las flechas

Page 4: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Entorno IITecleando HELP nombre_de_comando obtendremos ayuda en linea, si no

especificamos tema o comando mostrara todos los items disponibles:

>> helpHELP topics

matlab\general - General purpose commands.matlab\ops - Operators and special characters.matlab\lang - Programming language constructs.matlab\elmat - Elementary matrices and matrix manipulation.matlab\elfun - Elementary math functions.matlab\specfun - Specialized math functions.matlab\matfun - Matrix functions - numerical linear algebra.matlab\datafun - Data analysis and Fourier transforms.matlab\polyfun - Interpolation and polynomials.....

Si no queremos que muestre la salida (util si hacemos varias operaciones encadenadas ;

• A = 5 ; B= 3 ; A*B ans =

15

Page 5: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Entorno III• Para continuar una línea hay que usar “. . . ” al final de

cada línea que se quiera continuar.• Los comentarios en MATLAB deben ir precedidos por %.• La orden clear all borra el contenido de todas las variables,

funciones,resulta interesante cuando se depuran programas.

Page 6: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Entrada/salida

Page 7: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Entorno IV• Guardar variables y matrices

diary graba tanto los comandos introducidos como la salida de MATLAB, pero no graba los valores de las variables y matrices.

whos elabora un lista de dichas variables, así como de las dimensiones de la matrices.

save ‘xxx’ guarda las matrices y variables de esta lista en un archivo denominado xxx. MATLAB etiqueta estos archivos con una extensión .mat.

Page 8: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Funciones Matlab• Complex.• abs - Absolute value.• angle - Phase angle.• complex - Construct complex data from real and imaginary parts.• conj - Complex conjugate.• imag - Complex imaginary part.• Rounding and remainder.• fix - Round towards zero.• floor - Round towards minus infinity.• ceil - Round towards plus infinity.• round - Round towards nearest integer.• mod - Modulus (signed remainder after division).• rem - Remainder after

Page 9: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Funciones Matlab

• Trigonometric.• sin - Sine.• cos - Cosine.• acos - Inverse cosine.• tan - Tangent.• atan - Inverse tangent.• Exponential.• exp - Exponential.• log - Natural logarithm.• log10 - Common (base 10) logarithm.• log2 - Base 2 logarithm and dissect floating

Page 10: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Matrices

• Crear una matriz:A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

ones(dimensiones) eye(dimensiones)

A = [12 3

4 5 6]

• Dimensiones de una matrizSize (A)

• Limpiar una matrizClear A

• Ver variables existentesWhos

Page 11: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Matrices especiales• diag(v) matriz diagonal con el vector v como diagonal.• toeplitz(v) matriz simétrica de diagonal constante con v como primera fila

y primera columna• toeplitz(w, v) matriz simétrica de diagonal constante con w como primera

columna y v como primera fila. (probar para ver!)• ones(n) genera una matriz de n × n con todos los valores iguales a uno. • zeros(n) genera una matriz de n × n con todos los valores iguales a cero.• eye(n) genera una matriz identidad de n × n. • rand(n) genera una matriz de n × n con elementos de valor aleatorio entre

0 y 1 (distribución uniforme). • randn(n) genera una matriz de n × n cuyos elementos siguen una

distribución normal (media 0 y varianza 1).• ones(m, n), zeros(m, n), rand(m, n) generan matrices de m × n. • ones(size(A)), zeros(size(A)), eye(size(A)) generan matrices de la misma

forma que A

Page 12: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Operadores de Matriz I• Sumar:

sum(A) A+ 5 (suma 5 a cada elemento)

• Multiplicar A*A’ EstandardA.*A’ Elemento a elementoA*3 Cada elemento*3det(A) es el determinante

• Transponer e InversaA’ X = inv(A)

• Diagonaldiag(A)

• Acceso a los elementosA(1,4) + A(2,4) + A(3,4) + A(4,4)

• Cambiar un valor de la matriz • a(1,2)= 30

Page 13: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Operadores de Matriz II

• Intervalos1:10

• Intervalos con paso100:-7:50

• Trigonometricos0:pi/4:pi

• Submatriz:

g = a(1,:), g = a( : , 1:3)

Page 14: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Utilidad del intervaloEs útil considerar una expresión que se puede utilizar para generar un vector que

describa el tiempo . Se considera un vector fila con valores numéricos del tiempo que aumentan desde 0 a 4 con un tamaño de paso fijo de 0,02.

El procedimientomás simple que generará este vector es una sentencia que expresa:

t =0 : 0.02 : 4

El resultado es una variable matricial t con una fila y 201 columnas.

Columns 1 through 7

0 0.0200 0.0400 0.0600 0.0800 0.1000 0.1200

Columns 8 through 14

0.1400 0.1600 0.1800……

Page 15: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Ejercicio 1 Matrices

Considere la siguiente matriz:Se pide:

a) Introducir la matriz A.

b) Obtener los valores de la primera columna

c) Obtener los valores de la segunda fila.

d) Obtener los valores de la segunda y la tercera columna.

e) Obtener la diagonal de A.

f) Obtener una matriz de 2x2 donde todos los elementos sean 1.

g) Obtener una matriz unidad de orden 2x2.

h) Multiplica A por su inversa. ¿qué se obtiene?

Page 16: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Graficos y Matrices

En matlab un gran numero de funciones intentan traducir la entrada de datos a traves de una matriz.

Las funciones gráficas son un ejemplo de ello:

plot (A)

Otras:

bar

Page 17: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Graficos y Matrices

La ventana Gráfica contiene muchas opciones que permiten mejorar el aspecto del gráfico

Plot (A)

Grid on

Otras: – xlabel('Sample #')

– ylabel('Pounds')

Page 18: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Ejercicio 2

- Crea una matriz b con una fila y valores de 2 a 10 .- Suma a cada elemento el numero 2- Dibuja utilizando la funcion bar y pon de título a los

ejes x e y respectivamente : “Eje x” “Eje y”

Prueba las funciones: plot(b,'*')

axis([0 10 0 10])

¿qué efecto tienen?

Page 19: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Ejercicio 3

- Crea una matriz b con una fila y valores de 2 a 10 .- Suma a cada elemento el numero 2- Dibuja utilizando la funcion bar y pon de título a los

ejes x e y respectivamente : “Eje x” “Eje y”

Prueba las funciones: plot(b,'*')

axis([0 10 0 10])

¿qué efecto tienen?

Page 20: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Gráficos II

- plot(x, y): utiliza dos vectores, x e y, de la misma longitud. Éste dibujará los puntos (xi, yi) y los unirá mediante rectas continuas.

- Si no se le da vector x plot (i, y(i)).

- Tipo y color de la línea tercer argumento. por defecto línea continua de color negro

Ejemplo: plot(x, y,'r+ :')dibuja r en rojo, los puntos en forma de + y unidos por línea de

puntos.

plot(x, y,' --')hold :conserva el gráfico anterior mientras se dibuja uno nuevo.

Importante si se quieren comparar gráficos

Page 21: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Ejercicio 4

• Sabiendo que ecuación cinematica del espacio es :s= so + vo*t + 1/2at^2.

(ojo multiplicación escalar y ^ escalar .* .^)

1) Crea las matrices de tiempo para calcular el espacio recorrido con una velocidad inicial de 12, espacio inicial de 5 y aceleracion de 5.5

Representa la curva resultante con t en el eje x y

s en el eje y

2) Hazlo ahora para un movimiento sin aceleración y representalo en la misma gráfica

Page 22: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Órdenes básicas de programación

for La función sin(x) calcula el seno de cada una de las componentes

del vector x. Esto se podía haber hecho también con un bucle del

tipo for ... end

for i=1:n

y(i) = sin(x(i));

end;

• el uso de este tipo de bucles consume mucho tiempo en MATLAB.

se recomienda utilizarlos lo menos posible

• El índice del bucle puede tener la forma i=i0:ipaso:ifinal e incluso i=[1,3,4,6,7,8].

>> for i=[1,3,5,8:12]; i, end

>> for i=1:10; i, end

Page 23: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Ejercicio 4_1

Sabiendo que la ecuación del número aureo es

Calcular su valor de forma iterativa

Page 24: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Órdenes básicas de programación

Page 25: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Órdenes básicas de programación

Page 26: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Órdenes básicas de programación

Page 27: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Órdenes básicas de programación

Page 28: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Órdenes básicas de programaciónEjemplo Switch

switch (metodo)case {1,2,3}

disp(’[1,3]’)case {4,5,6,7}

disp(’[4-7]’)case {8}

disp(’[8]’)otherwise

disp(’< 1 o > 8’)end

Page 29: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Scripts M-Files

Page 30: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Scripts M-Files

Page 31: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Scripts M-Files

Page 32: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Globales y . escalares

Page 33: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Otros comandos importantes

•FEVAL : Evalua un funcion pasada por parametro

•nargin, nargout : número de parametros de entrada y salida

•nargcheck, nargoutchk :chequea número de parámetros

•persistent vs global

Page 34: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Ejercicio 4

• Sabiendo que ecuación cinematica del espacio es :s= so + vo*t + 1/2at^2.

(ojo multiplicación escalar y ^ escalar .* .^)

1) Crea las matrices de tiempo para calcular el espacio recorrido con una velocidad inicial de 12, espacio inicial de 5 y aceleracion de 5.5

Representa la curva resultante con t en el eje x y

s en el eje y

2) Hazlo ahora para un movimiento sin aceleración y representalo en la misma gráfica

Page 35: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Ejercicio 5

• Sabiendo que ecuación cinematica del espacio es :s= so + vo*t + 1/2*a*t*t

(ojo multiplicación escalar .*)

• Realiza la versión programada con bucles• Crea ahora un fichero espacio.m que recibiendo velocidad inicial ,

espacio inicial y aceleración devuelva un vector espacio de 50 valores.

Page 36: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Ejercicio 5_1

Page 37: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Ejercicio 5_1:salida

Page 38: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Ejercicio 6• Crea un vector x de 1 a 5 en intervalos de 0.5• y = 1./(1 + 10*(x-3).^2).*sin(x);• z = 1./(1 + 10*(x-3).^2).*cos(x);Utiliza plot(x,y,x,z) para representar la salida.• Usando title Nota letras especiales: \beta = \alpha {\gamma 1}ˆ\omega'), xlabel ylabel

legend grid on haz un gráfico similar a este

Page 39: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Ejercicio 7Con la orden fill(x,y,color) puede rellenarse con color el polígono

definido por los vectores x e y. Crea una funcion de seno basado en un vector x uniformemente

espaciado y representalo para que aparezca como el de la figura (color = ‘b’).

Page 40: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Ejercicio 8Sabiendo que una espiral se define como :

x= t*cos(t); y=t*sin(t) (ojo multiplicación escalar)

Crea t como t=linspace(0,6*pi,90);(vector con 90 valores equidistantes)

-20 -15 -10 -5 0 5 10 15 20-20

-15

-10

-5

0

5

10

15

Page 41: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Ejercicio 9• La ventana gráfica de MATLAB puede albergar varios

gráficos subplot(m,n,k). matriz m×n de subventanas, y realizando el dibujo en la ventana k, contando por filas.

Cree una matriz de 2*2 subventanas y dibuje los 4 últimos dibujos en ellas

Page 42: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Ejercicio 10• Crea una espiral en tres dimensiones con el comando

plot3(x,y,z)• x=t*cos(t); y=t*sin(t); z=t; (ojo multiplicación escalar)

-50

0

50

-50

0

500

10

20

30

40

50

x(t)

Curva con plot3

y(t)

z(t)

Page 43: Laboratorio IA Tema 1 Introducción a MATLAB. Como funciona cada variable se supone que es una matriz y no existe ningún requisito para el dimensionamiento

Superficies• Las órdenes de dibujo 3D más usuales son:

contour(X,Y,Z,num) Dibuja “num” curvas de nivelcontourf(X,Y,Z,num) Dibuja y rellena “num” curvas de nivelezcontour(’f’,dominio) version fácil de contourmesh(Z) Dibuja la función Z (ejes matriciales)mesh(X,Y,Z) Dibuja la función Z (ejes cartesianos)meshc(Z) mesh + contour (ejes matriciales)meshc(X,Y,Z) mesh + contour (ejes cartesianos)surf(Z) Dibujo sólido (ejes matriciales)surf(X,Y,Z) Dibujo sólido (ejes cartesianos)surfc contour + surf

Ver Demo superficies