Title: Laboratorio IA Tema 1
1Laboratorio IA Tema 1
2Como funciona
- cada 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 - variableexpresión
- (o simplemente expresión), entonces el
resultado lo tiene la variable ans - Ejemplo
- y 10sin(pi/6) ó 10sin(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
3Entorno
- El 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 estan
- representadas 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
4Entorno II
- Tecleando HELP nombre_de_comando obtendremos
ayuda en linea, si no especificamos tema o
comando mostrara todos los items disponibles - gtgt help
- HELP 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 AB
- ans
5Entorno 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.
6Entrada/salida
7Entorno 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.
8Funciones 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
9Funciones 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
10Matrices
- 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 matriz
- Size (A)
- Limpiar una matriz
- Clear A
- Ver variables existentes
- Whos
11Matrices 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
12Operadores de Matriz I
- Sumar
- sum(A)
- A 5 (suma 5 a cada elemento)
- Multiplicar
- AA ?Estandard
- A.A ?Elemento a elemento
- A3 ? Cada elemento3
- det(A) es el determinante
- Transponer e Inversa
- A X inv(A)
- Diagonal
- diag(A)
- Acceso a los elementos
- A(1,4) A(2,4) A(3,4) A(4,4)
- Cambiar un valor de la matriz
13Operadores de Matriz II
- Intervalos
- 110
- Intervalos con paso
- 100-750
- Trigonometricos
- 0pi/4pi
- Submatriz
- g a(1,), g a( , 13)
14Utilidad del intervalo
- Es ú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
15Ejercicio 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?
16Graficos 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
17Graficos 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')
18Ejercicio 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?
19Ejercicio 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?
20Grá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
21Ejercicio 4
- Sabiendo que ecuación cinematica del espacio es
s so vot 1/2at2. - (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
22Ó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 i1n
- 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
ii0ipasoifinal e incluso i1,3,4,6,7,8. - gtgt for i1,3,5,812 i, end
- gtgt for i110 i, end
23Ejercicio 4_1
- Sabiendo que la ecuación del número aureo es
- Calcular su valor de forma iterativa
24Órdenes básicas de programación
25Órdenes básicas de programación
26Órdenes básicas de programación
27Órdenes básicas de programación
28Órdenes básicas de programaciónEjemplo Switch
switch (metodo) case 1,2,3 disp(1,3) ca
se 4,5,6,7 disp(4-7) case 8
disp(8) otherwise disp(lt 1 o gt 8) end
29Scripts M-Files
30Scripts M-Files
31Scripts M-Files
32Globales y . escalares
33Otros 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
34Ejercicio 4
- Sabiendo que ecuación cinematica del espacio es
s so vot 1/2at2. - (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
35Ejercicio 5
- Sabiendo que ecuación cinematica del espacio es
s so vot 1/2att - (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.
36Ejercicio 5_1
37Ejercicio 5_1salida
38Ejercicio 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
39Ejercicio 7
- Con 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).
40Ejercicio 8
- Sabiendo que una espiral se define como
- x tcos(t) ytsin(t) (ojo multiplicación
escalar) - Crea t como tlinspace(0,6pi,90)(vector con 90
valores equidistantes)
41Ejercicio 9
- La ventana gráfica de MATLAB puede albergar
varios gráficos ?subplot(m,n,k). matriz mn de
subventanas, y realizando el dibujo en la ventana
k, contando por filas. - Cree una matriz de 22 subventanas y dibuje los 4
últimos dibujos en ellas
42Ejercicio 10
- Crea una espiral en tres dimensiones con el
comando - plot3(x,y,z)
- xtcos(t) ytsin(t) zt (ojo multiplicación
escalar)
43Superficies
- Las órdenes de dibujo 3D más usuales son
- contour(X,Y,Z,num) Dibuja num curvas de nivel
- contourf(X,Y,Z,num) Dibuja y rellena num curvas
de nivel - ezcontour(f,dominio) version fácil de contour
- mesh(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