Clase1 2
Clase1 2
INTRODUCCIN AL MATLAB
INTRODUCCIN
El Matlab es un software de computacin que permite realizar clculos tcnicos y desarrollar programas en forma sencilla, cuenta con una biblioteca matemtica amplia con abundantes herramientas grficas. El entorno del Matlab es interactivo similar al de una calculadora; preguntas y respuestas. Para ver algunas aplicaciones del Matlab basta introducir el comando demo que inicia el Matlab Expo, el cual es un entorno grfico que ilustra como realizar algunas operaciones. Debido a su entorno los siguientes comandos son tiles para un aprendizaje progresivo. El comando clc permite limpiar la ventana de comandos. El comando help proporciona el menu de ayuda. Para interrumpir un programa en el que por ejemplo se haya creado un ciclo infinito mantener presionada las teclas ctrl+c lo cual logra una interrupcin dentro del Matlab Para tener acceso a este sofware buscaremos el icono que tiene la siguiente presentacin
INTRODUCCIN AL MATLAB
1 ENTORNO DEL MATLAB 1.1 OPERADORES Y FUNCIONES MATEMTICAS: OPERADORES ARITMTICOS + suma - resta * producto / divisin \ divisin izquierda ^ potenciacin
OPERADORES DE RELACIN Y OPERADORES LOGICOS < <= > >= menor menor o igual mayor mayor o igual == ~= & | igual diferente and or
ALGUNAS FUNCIONES MATEMTICAS abs(x) sqrt(x) exp(x) log(x) log10(x) imag(x) real(x) sin(x) , cos(x) , tan(x) , fix(x) floor(x) ceil(x) round(x) rem(x,y) valor absoluto raz cuadrada exponencial logaritmo natural logaritmo de base 10 parte imaginaria del numero complejo x parte real del numero complejo x asin(x) , sinh(x) acos(x) , cosh(x) atan(x) , tanh(x) redondea eliminando la parte fraccionaria redondea hacia el entero ms prximo a la izquierda redondea hacia el entero ms prximo a la derecha redondea hacia el entero ms prximo resto de la divisin
1.2 VARIABLES: Las variables deben comenzar con una letra pudiendo contener dgitos o guiones de subrayado ,la asignacin a una variable se realiza con el smbolo igual. El Matlab distingue las variables minsculas de las maysculas no es necesario declarar el tipo de variable. CONSTANTES: Algunas variables que tienen un valor especifico o significado son pi inf NaN iyj ans 3.1415.... infinito , division 1/0 magnitud no numrica , divisin 0/0 unidades imaginarias nombre por defecto de la variable usada para los resultados
VARIABLES NUMRICAS: El formato para la visualizacin de los resultados numricos puede ser cambiado seleccionando en el menu file la opcin preferencias pudiendo seleccionar por ejemplo format short , format long, format rat,...
INTRODUCCIN AL MATLAB
EJEMPLOS: a) format short x=2 x = 2 y=2.34 y = 2.3400 b) format long x=2 x = 2 y=2.34 y = 2.34000000000000 c) format rat x=2 x = 2 y=2.34 y = 117/50 VARIABLES DE CADENA: Cualquier texto que se asigne a una variable deber encerrarse entre apstrofes EJEMPLO: m='iteracion' m = iteracin VARIABLES DE ARREGLO: Si deseamos asignar una matriz a una variable se debe colocar al inicio y final corchetes teniendo en cuenta que a) Los elementos se separan por espacios en blanco o por comas b) Las filas se separan por ; 2 5 EJEMPLO: Asignar a la variable x la matriz 6 8 x=[2,5;6,8] x = 2 6 5 8
INTRODUCCIN AL MATLAB
ALGUNAS CARACTERSTICAS El smbolo % indica que todo texto despus de este smbolo ser considerado como comentario. El punto y coma suprime la visualizacin de los resultados y la coma permite que la visualizacin se realice en forma simultanea La orden help seguida del nombre de un tema visualiza la ayuda del tema si existe.
Ventana de comandos
>> indicador de peticin de ordenes El cursor y este indicador indican que el Matlab esta esperando responder una pregunta matemtica
archivo
INTRODUCCIN AL MATLAB
EJEMPLOS: 1)
7+5 ans = 12
11) b=[6,3,8,2] b = 6 3 8 2
2)
a=8 a = 8
3)
c=4; c c = 4
4)
2^6 ans = 64
5)
6)
1\5 ans = 5
7)
x=8-7i;imag(x) ans = -7
INTRODUCCIN AL MATLAB
FUNCIONES MATEMTICAS
1) fix(8.8) ans = 8 2) fix(8.1) 11) ans = ans = 8 5 3) fix(-3.5) 12) ans = ans = -3 6 4) floor(8.8) 13) ans = ans = 8 -4 5) floor(8.1) 14) ans = ans = 8 2 6) floor(-3.8) 15) ans = ans = -4 1 7) ceil(2.8) 16) ans = ans = 3 0.5000 8) ceil(2.1) 17) ans = ans = 3 6.1230e-017 9) ceil(-2.1) 18) ans = -2 ans = 0 round(cos(pi/2)) cos(pi/2) sin(pi/6) sin(pi/2) rem(17,3) round(-4.3) round(5.7) round(5.2)
10)
ceil(-2.6) ans = -2
INTRODUCCIN AL MATLAB
OPERACIONES MATRICIALES
Los operadores matriciales ms usuales se realizan mediante los operadores + * ^ inv(A) det(A) A size(A) zeros(n,m) ones(n,m) length(A) rref(A) max(x) min(x) eig(A) lu(A) Suma Resta Producto Potencia Inversa de A Determinante de A Transpuesta de A Orden de la matriz A Matriz de ceros de orden nxm Matriz de unos de orden nxm Mxima longitud del arreglo A Reduce una matriz mediante el mtodo de eliminacin de Gauss Mximo valor de un arreglo x Mnimo valor de un arreglo x Calcula los autovalores de la matriz A Calcula la descomposicin LU de la matriz A
INTRODUCCIN AL MATLAB
EJEMPLOS: Dadas las matrices calcule lo indicado siempre que sea posible
1.
3 2 0 4
5 1
0 6 3 4 7 4
11 8 1 4 0 3
9 0
1 8 5 2 3 12
2 0 Halle la operacin indicada usando operaciones matriciales (en caso de ser posible)
a) (BC)D 2. b) DC A2 +3A c) CA AD d) CD+B2
2 8 1 6
Halle el determinante de cada matriz y la matriz inversa de la matriz dada en cada caso
1 1 7 8
a) A =
3 3 b) A = 1 1 1 2
16 6 14
c) A =
1 2 4
2 1 2
3 0 5
3.
a)
, donde
A=
B=
5 3
0 4
6 2
C=
C=
4 5 5 3
1 3
b) XC +2A = X + XBC
, donde
A=
1 0 1 6
B=
7 1
2 1
4.
Si se expresa un sistema de ecuaciones lineales en la forma AX = b , Si la matriz A tiene inversa resolver el sistema mediante X = A-1 b a) 4x + 7y = 25 5x + 9y = 32 b) 2x y + 3z = - 3 x+y+ z=2 3x + 2y - z = 8 c) p + 2q - 3r =1 q - 2p + r =3 2r + p - 2 = 0 d) 2u + 3v 4w =-10 w - 2u - 1 = 0 u + 2v = 1
5.
INTRODUCCIN AL MATLAB
RESOLUCIN DE SISTEMAS DE ECUACIONES Para la resolucin de sistemas de ecuaciones usaremos la instruccin rref la cual halla la forma escalonada de una matriz
1 3 1
1 1 3
2 7 1
5 22 10
A=[-1 -1 2 -5;-3 -1 7 -22;1 -3 -1 10] A = -1 -3 1 rref(A) ans = 1 0 0 0 1 0 0 0 1 x=1 y=-2 z=-3 1 -2 -3 -1 -1 -3 2 7 -1 -5 -22 10
2 6 2 5 4 11
2 6 8
10 8 18
INTRODUCCIN AL MATLAB
de aqu por las propiedades del rango el sistema tiene infinitas soluciones, construyendo el sistema equivalente tenemos x - 13z = -1 y + 4z = 2 por tanto para hallar soluciones damos valores a z x = -1-13z y = 2-4z EJEMPLO: Utilice la instruccin rref para resolver el sistema
2 3 2 4
4 6 4 8
2 6 2 13 0 14 7 0
0 6 12 10
10
INTRODUCCIN AL MATLAB
1 0 0 0
2 0 0 0
0 1 0 0
7 4 0 0
0 0 1 0
EJEMPLO: Contra los deseos de su corredor de bolsa, Alicia compra x ttulos de acciones A, y ttulos de acciones B y z ttulos de acciones C. A principios de enero, febrero y marzo, las acciones A valan $5.18, $3.14 y $3.01 (dlares) por ttulo, las acciones B valan $2.10, $6.03 y $2.18 por ttulo, y las acciones C, $2.90, $2.80 y $5.53 por ttulo respectivamente. Calcule x, y, z si las acciones valan en total $2945.30, $4113.85, y 3417.00 en enero febrero y marzo, respectivamente. Ordenando nuestros datos en una tabla tenemos
Luego construimos el sistema 5.18x + 2.1y + 2.9z=2945.3 3.14x + 6.03y + 2.8z=4113.85 3.01x + 2.18y + 5.53z=3417 Utilizamos el Matlab para resolver el sistema >> A=[5.18 2.1 2.9;3.14 6.03 2.8;3.01 2.18 5.53]; >> b=[2945.3;4113.85;3417]; >> E=[A b]; >> rref(E) ans = 1 0 0 210 0 1 0 415 0 0 1 340 de aqu tenemos que la solucin del sistema es x = 210 ttulos de acciones A y = 415 ttulos de acciones B z = 340 ttulos de acciones C
EJEMPLO: Una compaa siderrgica produce x toneladas de acero de grado A, y toneladas de acero de grado B y z toneladas de acero de grado C a la semana. La primera semana vender 38% de su acero de grado A, 21% del acero de grado B y 11% del acero de grado C, para un total de 12229 toneladas, a un fabricante de automviles. La segunda semana vender 10% de acero de grado A, 53% de grado B y 24% de grado C, para un total de 9121 toneladas; y la tercera semana vender 21% de acero de grado A, 46% de grado B y 70% de grado C, para un total de13369 toneladas, al mismo fabricante. Encuentre x, y, z.
11
INTRODUCCIN AL MATLAB
Organizando nuestros datos en una tabla tenemos x grado acero 1 semana 2 semana 3 semana A 38% 10% 21% y B 21% 53% 46% z C 11% 24% 7% Total toneladas 12229 9121 13369
Luego construimos el sistema 0.38x + 0.21y + 0.11z = 12229 0.10x + 0.53y + 0.24z = 9121 0.21x + 0.46y + 0.7z = 13369 Utilizamos el Matlab para resolver el sistema A=[0.38 0.21 0.11;0.1 0.53 0.24;0.21 0.46 0.7]; >> b=[12229;9121;13369]; >> E=[A b]; >> rref(E) ans = 1 0 0 0 1 0 0 0 1 25100 10300 4800
de aqu tenemos que la solucin del sistema es x = 25100 toneladas de acero de grado A y = 10300 toneladas de acero de grado B z = 4800 toneladas de acero de grado C
OPERACIONES PUNTUALES
Las operaciones puntuales en arreglos se realizan elemento a elemento en sus respectivas coordenadas
12
INTRODUCCIN AL MATLAB
EJEMPLOS: a=[3 5 9];b=[4 2 1]; 1) c=a.*b c = 12 notemos que 2) c=a./b c = 0.7500 2.5000 9.0000 c=[3/4 5/2 9/1] 10 c=[34 9 52 91]
c=[3^3
5^3
9^3]
4) Si
a= 5
2
3 9
y b= 4 6
7 1
hallar a .* b
(3)( 6) (9)(1)
a*b ans = 41 71 33 21
13
INTRODUCCIN AL MATLAB
y=x.^2+x+1 y = 13 3 1 7 21 43 73 111
14
INTRODUCCIN AL MATLAB
2 ARCHIVOS
El uso de la ventana de comandos solo es apropiado si se desea explorar ideas, en caso contrario es ms prudente escribir nuestros programas en un archivo el cual puede guardarse y corregirse las veces que sea necesario. Si desea elaborar uno haga clic en new del menu file. Los archivos se agrupan en dos categoras archivos script y archivos de funcin 2.1 ARCHIVOS SCRIPT: Una vez que se desarrollo un programa en este archivo deber guardarse con un nombre , este archivo se ejecutara desde la ventana de comandos digitando solamente su nombre. a) Guardar como: b) Ejecucion: nombre nombre
EJEMPLO: Crear un archivo script que calcule el resto de la divisin de 17 entre 3 x =rem(17,3) a) Guardar como: prueba b) Ejecucin: prueba x = 2 2.2 ARCHIVO M DE FUNCIN: Los archivos de funcin nos permiten crear nuestras propias Funciones. As podrn ser ejecutadas como comandos de funcin a diferencia de los archivos script se iniciaran con el formato function var.salida = nombre(var.ingreso) a) Guardar como: b) Ejecucin: nombre nombre(valor)
EJEMPLO: Crear un archivo de funcin que permita evaluar la funcin y=x2+6x - 2 function y = fun(x) y=x.^2 + 6*x 2; a) Guardar como: b) Ejecucin: fun fun(2) ans = 14
15
INTRODUCCIN AL MATLAB
EJEMPLO: Crear un archivo de funcin que calcule el rea de una circunferencia function a = area( r ) a= pi*r^2;
EJEMPLO: Crear un archivo m de funcin que permita evaluar una la funcin f(x,y) = ( xy , y+senx , x2+y2 ) function [y1,y2,y3]=fun(x,y)
a) Guardar como: fun b) Ejecucin: [y1,y2,y3]=fun(2,3) y1 = 6 y2 = 3.9093 y3 = 13 EJERCICIOS: 1. Cree un archivo de funcin que calcule el rea superficial y el volumen de un cilindro 2. Cree un archivo de funcin que calcule la evaluacin de la derivada de una funcin
16
INTRODUCCIN AL MATLAB
3 GRFICAS
x1
...
xi
...
xn
La graficacin se realizar a travs de un conjunto finito de puntos (xi,yi) considerando como dominio el arreglo x=[x1, x2,...,xn] y como el rango al arreglo y=[y1,y2...,yn] as la orden plot(x,y) graficar el conjunto de puntos (xi,yi) EJEMPLO: Graficar la funcin f(x)= x x=0:0.01:5;y=sqrt(x);plot(x,y);
TTULOS Y LEYENDAS: Es posible colocar al grfico ttulo y leyendas sobre los ejes usando las instrucciones title('texto') xlabel('texto') ylabel('texto')
17
INTRODUCCIN AL MATLAB
EJEMPLO: Para adicionar al grfico anterior l ttulo funcin raiz y colocar las leyendas sobre los ejes eje x y eje y escribiremos. x=0:0.01:5;y=sqrt(x);plot(x,y); title('funcion raiz'),xlabel('eje x'),ylabel('eje y')
EJEMPLO: Graficar la funcin f(t) =t sen(15t) Utilizando un archivo script tenemos : t=0:0.01:4; y=t.*sin(15*t); plot(t,y) title('resonancia'),xlabel('tiempo'),ylabel('oscilacion')
18
INTRODUCCIN AL MATLAB
GRAFICACIN CON MARCAS, TIPOS DE LNEA Y COLORES Tipo de marca Punto Mas Estrella Circulo Marca x smbolo + * x Tipo de lnea Continua Guiones Punteada Guiones y Puntos smbolo -: -. Color de lnea Rojo Amarillo Verde Azul Turquesa smbolo r y g b c
plot(x,y)
lnea continua
plot(x,y,'-.')
plot(x,y,'--r')
EJEMPLO: Graficar la funcin f(x)=ex de color rojo con tipo de lnea guin Utilizando un archivo script tenemos x=-1:0.01:4;y=exp(x); plot(x,y,'--r') title('exponencial'),xlabel('eje x'),ylabel('eje y') Para graficar ms de una curva simultneamente, para un mismo dominio se utiliza diferentes reglas de correspondencia, a su vez colores y/o tipos de lnea diferentes para distinguirlas. EJEMPLO: Graficar las funciones f(x)=ex y g(x)=5sen(8x) la primera de color rojo y la segunda de color azul con tipo de lnea punteada x=-1:0.01:4; y=exp(x);z=5*sin(8*x); plot(x,y,'r',x,z,':b') title('multiples curvas'),xlabel('eje x'),ylabel('eje y')
19
INTRODUCCIN AL MATLAB
Se puede graficar una retcula mediante la instruccin grid que permite ubicar aproximadamente con el grfico valores caractersticos de una funcin. EJEMPLO: Grafique las funciones f(x)=3- 2x 1 , g(x)=2sen(x) y usando la instruccin grid determine aproximadamente sus puntos de interseccin. x=1:0.01:8; y=3-sqrt(2*x-1);z=2*sin(x); plot(x,y,'r',x,z,':b'),grid title('puntos de interseccion'),xlabel('eje x'),ylabel('eje y')
Los puntos de interseccin son aproximadamente (1.3,1.8) ; (2.7,0.9) ;(6.1,-0.4). OBSERVACIN: A travs de la grfica anterior tambin se puede determinar las races de las funciones por ejemplo la raz aproximada de f(x) es x=5. Otra forma de graficar mltiples curvas es utilizar la instruccin hold on que permite retener un grfico. EJEMPLO: Graficar las funciones f(x)= x y g(x)=3x-1 Utilizando un archivo script tenemos x=0:0.1:4;y=sqrt(x); plot(x,y),hold on y=3*x-1; plot(x,y,'r'),hold off
20
INTRODUCCIN AL MATLAB
TEXTO EN LA GRFICA: Es posible colocar un texto en la grfica utilizando la instruccin gtext la cual marca con el mouse la posicin donde se publicara el texto. EJEMPLO: Graficar la funcin f(x)=xsen(x) y colocar en un lugar adecuado el texto maximo x=-1:0.1:4;y=x.*sin(x); plot(x,y) gtext('maximo')
GRFICAS EN COORDENADAS POLARES La instruccin polar es similar a la instruccin plot dado que permite graficar puntos teniendo en cuenta que para polar(t,r) el parmetro t indica el ngulo y r el radio EJEMPLO: Graficar r = 1 - sent t=0:0.05:2*pi;r=1-sin(t);polar(t,r) gtext('cardioide')
21
INTRODUCCIN AL MATLAB
EJERCICIOS: Dadas las siguientes ecuaciones graficar y colocar el nombre adecuado a) r = 2+4cost b) r = 3t c) r = 8+3cost d) r = 2-5cost e) r = 2
3.2 GRFICO DE SUPERFICIES Para graficar una funcin f:R2 R tenemos en cuenta que Df R2
Eje y
Eje x donde el eje x estar dado por un arreglo xa=[x1,x2,...,xn] el eje y estar dado por un arreglo ya=[y1,y2,...,yn] Asi Df = xa x ya 1) meshgrid: Crea un arreglo bidimensional 2) a) mesh: Grfica una malla que simula una superficie b) meshc: Realiza lo mismo que mesh adicionando sus curvas de nivel 3) a) surf: Colorea cada clula de la malla b) surfc: Realiza lo mismo que surf adicionando las curvas de nivel c) surfl: Crea un objeto de superficie con iluminacin Nota: Es recomendable usar surfl con la instruccin shading shading faceted: Sombreado de cada una de las clulas. shading flat: Elimina las lneas de separacin de las clulas. shading interp:Alisa la superficie.
Tambin podemos colorear la superficie de un solo color con la instruccin colormap colormap(color) Donde el color puede ser cool , hot , gray , pink
OBSERVACIN: Los ttulos y leyendas se colocan en forma anloga a funciones reales de variable real Veamos a continuacin algunos ejemplos en los cuales veremos progresivamente el grfico de una superficie de acuerdo a las instrucciones dadas
22
INTRODUCCIN AL MATLAB
23
INTRODUCCIN AL MATLAB
xa=-1.8:0.2:1.8;ya=-1.8:0.2:1.8; [x,y]=meshgrid(xa,ya); z=exp(-x.^2-y.^2);surf(x,y,z) title('funcion z=exp(-x.^2-y.^2)') xlabel('eje x'),ylabel('eje y') zlabel('eje z')
24
INTRODUCCIN AL MATLAB
CURVAS DE NIVEL Para graficar las curvas de nivel usaremos la instruccin contour EJEMPLO: Graficar las curvas de nivel para z = x2- y2 xa=-2:0.2:2;ya=-2:0.2:2; [x,y]=meshgrid(xa,ya); z=x.^2-y.^2; contour(x,y,z)
EJERCICIOS: Grafique las curvas de nivel para las funciones a) z = x2+y2 b) z = x -y c) z = xexp(-x2-y2) d) z=(x2+y2)3-8x2+y2 Grfico de funciones implcitas EJEMPLO: Graficar la curva descrita por la ecuacin (x2+y2)2 = x2-y2 Podemos definir z = (x2+y2)2 - x2-y2 as la curva de nivel en z = 0 coincide con la curva de nivel a graficar
25
INTRODUCCIN AL MATLAB
CAMPOS DE DIRECCIONES: El campo de direcciones esta dado por el campo de vectores gradiente gradient: Determina el campo gradiente quiver: Grfica el campo gradiente EJEMPLO: Graficar el campo de direcciones de los vectores gradiente de z =x2+y2
xa=-2:0.3:2;ya=-2:0.3:2; [x,y]=meshgrid(xa,ya); z=x.^2+y.^2; [px,py]=gradient(z); quiver(x,y,px,py)
EJERCICIOS: Graficar el campo gradiente para las siguientes funciones a) z =x2 - y2 b) z = xexp(-x2-y2) d) e) z = x -y z=x+y
26
INTRODUCCIN AL MATLAB
t=0:0.05:2*pi; x=cos(t);y=sin(t);plot(x,y)
Notar que el grafico aparentemente no es una circunferencia debido a que por defecto el matlab grfica en ejes rectangulares, podemos corregir el archivo anterior de la siguiente forma
t=0:0.05:2*pi; x=cos(t);y=sin(t);plot(x,y) axis square
CURVAS EN EL ESPACIO EJEMPLO: Graficar el camino f : [0,7 ] R2 definido por f(t) = (cost,sent) Gf ={ (t,cost,sent) / t [0,7 ] } x = t ; y=cost ;z=sent
27
INTRODUCCIN AL MATLAB
EJERCICIOS: a) Graficar la traza de la camino f : [0,3 ] R3 definido como f(t)=(e-tcos5t,e-tsen5t,17t) b) Graficar el segmento de recta que pasa por los puntos (2,5) y (3,8) c) En la ventana de comandos ejecutar
>> plot([2,3],[5,8])
28
INTRODUCCIN AL MATLAB
CILINDRO:
cylinder cylinder(r,n)
cylinder([-3 2],25)
29
INTRODUCCIN AL MATLAB
30
INTRODUCCIN AL MATLAB
CONTROL DE VENTANAS GRAFICAS: La instruccin figure crea una ventana grafica >> figure La instruccin set cambia las propiedades de un objeto por ejemplo de una venta grafica
Los colores pueden ser cambiados por un vector [0 0 0] negro [1 1 0] amarillo [1 1 1] blanco
GRAFICAS ESPECIALES: Es posible graficar directamente una usando las instrucciones fplot y ezplot
Grafica una funcin f en el intervalo [a,b] Grafica una funcin f en el intervalo [a,b] , adicionndole como ttulo el nombre de la funcin o la regla de correspondencia descrita
EJEMPLO:
>> fplot('exp(x)',[-1,5])
EJEMPLO: Puede crear un archivo de funcin denominado con un nombre e invocarlo, por ejemplo si crea el archivo de funcin llamado fun tenemos >> fplot('fun(x)',[-1,5]) EJEMPLO: >> ezplot('exp(x)',[-1,5])
EJEMPLO: EJEMPLO:
31
INTRODUCCIN AL MATLAB
FUNCIONES DE VARIABLES COMPLEJAS La instruccin cplxmap traza la grfica de funcin de variable compleja cplxmap(z,f(z),cota opcional)
>> cplxmap(z,5*z,3)
>>cplxmap(z,z.^3)
>> cplxmap(z,z.^7)
>> cplxmap(z,1./z)
32