Curso Intensivo de Matlab

download Curso Intensivo de Matlab

of 7

Transcript of Curso Intensivo de Matlab

M. en I. Ricardo Martnez MartnezCURSO INTENSIVO DE MATLAB 1.Comandos o definiciones bsicas. Al escribir el comando, el programa realiza la funcin: Exit, quitCierra la sesin de Matlab. Ctrl-cInterrumpe la ejecucin de un comando. Casesen onDistingue entre letras maysculas y minsculas (default). Casesen offNo distingue entre letras maysculas y minsculas. Who (o whos)Produce una lista de las variables definidas. ClearBorra todas las variables definidas. Clear name 1, name 2,..Borra las variables name 1, name 2 2.Operaciones bsicas. +Suma -Resta *Producto /Cociente \Cociente por la derecha ^Potencia |Transpuesta coayugada de una matriz Su precedencia es como sigue: ^ > / , * > + , - 3.Caracteres especiales. [ ]Usado para formar vectores, matrices, arreglos ( )Usado para expresiones aritmticas ,Separar ndices y argumentos de funciones ;Terminar renglones, suprimir eco (presentacin en pantalla) ndices, generacin de rectores !Ejecutar un comando del sistema operativo %Comentarios 4.Constantes, variables y funciones. piti,j 1 eps Nmero ms pequeo tal que, cuando se le suma 1, crea un nmero en coma flotante en el computador mayor que 1 infInfinito M. en I. Ricardo Martnez MartnezrealminEl nmero real positivo ms pequeo que es utilizable realmaxEl nmero real positivo ms grande que es utilizable NaNMagnitud no nmerica abs(x)xsqrt(x)xsign(x) negativoceropositivoesesesxxxsisisi101 exp(x} xelog(x}) ln(xlog10(x} ) ( log10xlog2(x}) ( log2xsin(x}) (x sencos(x}) cos(xtan(x} ) tan(xcot(x}) cot(xasin(x}) (x arcsenacos(x} ) arccos(xatan(x}) arctan(xatan2(x,n}) arctan(nx acot(x} ) cot(x arcreal(z)Parte real de z imag(z)Parte imaginaria de z conj(z)Conjugado (complejo) de z,zangle(z)ngulo de fase de z el valor de uen u ire iy x z = + =[theta,r]=cart2pol(x,y) Transforma coordenadas cartesianas (x,y) a coordenadas polares (r, u ) [x,y]=pol2cart(theta,r) Transforma coordenadas polares (r, u ) a coordenadas cartesianas (x,y) size(a) [m,n]=size(a) Da un vector columna conteniendo el tamao de la matriz A, m, nmero de renglones, n, nmero de columnas. Si m es 1, es vector columna, si n es 1, es vector rengln. size(a,p)Da el nmero de: renglones de A si p< 1; columnas A si p > 2 length(a)Da el nmero mayor de renglones o columnas de A ceil(x)Redondea hacia ms infinito fix(x)Redondea hacia cero floor(x)Redondea hacia menos infinito rem(x,y)Resto despus de la divisin round(x)Redondea hacia el entero ms prximo Mathlab slo opera en radianes. M. en I. Ricardo Martnez MartnezEn ocasiones mientras se realizan operaciones, Matlab no interpreta correctamente algunas expresiones, porque son muy largas, en ese caso sera ms conveniente escribirla en dos lneas, para que Matlab lo interprete correctamente, se debe dar la siguiente notacin: B=1+2+3+ 4+5+6; UN ARCHIVO *.M Primero en el men FILE, seleccionar New, y M-File, en el editor, escribir las siguientes instrucciones %Para calcular la magnitud y % la fase de una variable compleja w = 1; G=1/(w*j+2); mag=abs(G) fase=atan(imag(G)/real(G)) Antes de continuar, salvar el archivo con el nombre magfase, la extensin por default, ser m, y el archivo ser almacenado en el directorio de trabajo de Matlab, por default, \work Ahora en la lnea de comandos de Matlab, escribir magfase, esto ejecutar el archivo magfase.m, y nos presentara el siguiente resultado: mag = 0.4472 fase = -0.4636 Modificaremos el archivo, con las instrucciones siguientes en lugar de w=1; w = input(De el valor del w >) Con esta instruccin, podemos asignarle un valor arbitrario a la constante w, los archivos extensin m, nos permiten ejecutar una serie de instrucciones sin necesidad de estar repitiendo cada una en la lnea de comandos de Matlab. Adems, en estos archivos podemos indicar funciones ms complejas, operaciones secuenciales, ciclos, para obtener un resultado final, que puede ser particular para un conjunto de datos, o general, para cualquier conjunto de datos que deseemos. M. en I. Ricardo Martnez MartnezVectores y matrices Un vector podemos asignarlo como un arreglo en filas o columnas, segn nuestras necesidades. Y una matriz en un arreglo de filas y columnas. Por ejemplo en las siguientes instrucciones: A = [123]Representa un vector en un arreglo en la primera lnea B = [1; 2; 3]Representa un vector en un arreglo en la primera columna C = [1 2 3; 4 5 6]Matriz 2 x 3 D = [C; 7 8 9] Considera los datos del arreglo C, y los encaja en el arreglo D (matriz 3x3) eye(3,3)Matriz identidad 3x3 diag([123])Matriz diagonal 3x3 zeros(2,4)Matriz de ceros 2x4 ones(3,3)Matriz de unos 3x3 det(D)Determinante de la matriz D inv(D) Inversa de la matriz D AT=A' Transpuesta de la matriz A Si se desea resolver un sistema de ecuaciones de la forma: ((((

=((((

((((

32132133 32 3123 22 2113 12 11bbbxxxa a aa a aa a a Expresado en forma matricial como Ax=B, la respuesta del sistema de ecuaciones seria aplicando la inversa a la matriz: A=[3 4 -4; 5 2 3; 2 7 -6] B=[1;3;4] x=inv(A)*B Si se tratara de una matriz no cuadrada. A=[3 4; 5 2; 2 7] x=A\B En ambos casos se puede utilizar x=pinv(A)*B Esto presentara una solucin del sistema, pero considerando normal mnima para la matriz. M. en I. Ricardo Martnez Martnez Si se desea que todos los trminos de la matriz se eleven al cuadrado, esto se indica: C = A. ^2 El punto despus de A, le indica a Matlab que cada trmino del arreglo debe elevarse al cuadrado En el caso de la matriz, se pueden calcular tambin los eigenvalores, como sigue: eig(A) [x, D] = eig(A) La ltima expresin nos presenta los eigenvectors y eigenvalores. Polinomios. Para designar el polinomio con Matlab,1 2 3 ) (2 3+ + + = x x x x p , se utiliza un arreglo de una fila (vector), se deben proporcionar los valores de los babosos coeficientes numricos del polinomio, y si alguno de ellos es cero, se debe escribir cero en la posicin correspondiente del polinomio P=[1 3 2 1] polyval(p,2)Evala elpolinomio, p, en x = 2 r = roots(p)Obtiene las races del polinomio, p. t=poly([3 2])Muesta los coeficientes numricos de un polinomio, con races 3, y 2 g=conv(p, t)Multiplica, los polinomio p y t. h=deconv(p, t)Divide el polinomio, p, entre t. [q, r] = deconv(p,t)Divide, el polinomio p entre t, y presenta el residuo. Grafica en 2D t = 0:pi/8:2*pi; x=sin(t); plot(t,x) title(' Funcin seno ') xlabel('rad')%Etiqueta del eje x; ylabel('sent');%Etiqueta del eje y; grid on text(3.5,0, 'sent');%Texto en las coordenadas (3.5,0) gtext('sen(t)'); %Permite colocar el texto con ayuda del mouse en un punto elegido. [a,b]=ginput%Con el mouse se elije un punto de la grafica y regresa sus coordenadas. M. en I. Ricardo Martnez Martnezx=0:0.1:3; y = x.^2; plot(x,y, 'b ')%Grafica en color azul grid on theta=0:pi/64:4*pi+0.1; r=sin(4*theta); polar(r, theta)%Grafica en coordenadas polares title('Rosa de ocho petalos') grid on x=-2.9:0.2:2.9; y=exp(-x.*x); bar(x,y)%Grafica de barras, histograma title('Grfico de barras de una curva de campana') x=0:0.05:5; y1=sin(x); y2=cos(x); plot(x,y1,'r',x,y2,'b')%Traza dos graficas simultneamente clf%Borra los grficos actuales plot(x,y1,'r') hold on%Mantiene la primera grafica plot(x,y2,'b') t=0:pi/16:2*pi; x=sin(t); y=cos(t); subplot(121),plot(t,x), grid on%Define un espacio de 1 rengln, 2 columnas subplot(122),plot(t,y), grid on%Construye grafica 2. Grafica en 3D t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) title('Hlice'),xlabel('sin(t)'),ylabel('cos(t)'),zlabel('t') axis('ij')%Cambia el orden de presentacin del eje grid on x=-7.5:.5:7.5; y=x; [X,Y]=meshgrid(x,y); % Genera una red de puntos igualmente espaciados en el plano XY. R=sqrt(X.^2+Y.^2)+eps; % Distancia desde el origen (0,0). Z=sin(R)./R; M. en I. Ricardo Martnez Martnezmesh(X,Y,Z)% Genera la grfica de malla. surf(X,Y,Z) % Genera la grfica de superficie. figure(2)%Crea una nueva ventana de grafico ezsurf(' x*exp(-x^2-y^2)',[-2,2, -2,2],40) title('Grafica de z(x,y)= x*exp(-x^2-y^2)') zlabel('z(x,y)') figure(3) for x=1:100 for y=1:100 z(x,y)= (x-50)^2+(y-50)^2; end end title('Grafica de z(x,y)=(x-50)^2+(y-50)^2') zlabel('z(x,y)') sphere(40) [x1,y1,z1]=sphere(40); x=4*x1-9;%Traslada las coordenadas X, y cambia la magnitud del eje. y=9*y1+5; %Traslada las coordenadas Y, y cambia la magnitud del eje. z=3*z1-13; %Traslada las coordenadas Z, y cambia la magnitud del eje. mesh(x,y,z) axis equal t=0:pi/10:pi; [x,y,z]=cylinder(2+cos(t)); mesh(x,y,z) Operadores relacionales: OPERADOR DESCRIPCION < Menor que Mayor que >= Mayor que o igual a == Igual a ~= Diferente de La salida de las operaciones lgicas se pueden utilizar en operaciones matemticas.