You are on page 1of 9
Apéndice: MATLAB Este apéndice es tuna introduccién a las téenicas de programacién con el paquete de programas MATLAB. Suponemos que quien lee este libro tiene ya alguna experiencia de programacién con lenguajes de alto nivel y, en particular, conoce algunas téenicas esenciales como los bucles, la ramificacién mediante relaciones légicas, el empleo de subprogramas y la edicion de archivos con tn procesador de textos. Estas térnicas son directanente aplicables cuando se usa el paquete MATLAB. El paquete MATLAB es tn conjumto de programas matemiticos que se basa en el empleo de matrices. El paquete cousta de una amplia coleccién de programas numéricos y programas grificos para dibujos bi- y tridimensionales e incluye la posibilidad de realizar programas adicionales usando un lenguaje de alto nivel. También es posible desarrollar y modificar los programas de manera uy sencilla, Todo esto hace que el paquete MATLAB sea un baneo de trabiajo ideal para explorar y trabajar con los algoritmos que se explican en este libro. Lo que sigue es tuna introduecidn guiada a la programacién eon el paquete MATLAB y nuestra sugerencia es que se trabaje a lo largo-de-las lineas que aqui se explican (las instrucciones del paquete MATLAB se escriben con el tipo de letra méquina de escribir). Los ejemplos ilustran lo que nos muestra la ventana de trabajo (en inglés, command window) del paquete MATLAB en tna sesi6n tipica. Lo que aparece a continuacién de >> es lo que se introduce como dato o instrucciéu, Una vez que se escribe lo que se desea, hay que pulsar la tecla de retomo; entonces el computador realiza la operacién y muestra la. respuesta ans =. En las gufas de uso y de referencia que acompafian el programa, asi 661 662 Apénpice: MATLAB ‘como en el programa de ayuda que puede consultarse directamente en la ventana de trabajo, se puede hallar informacién adicional sobre las instruecciones ¥ sus opciones y, también, varios ejemplos. Operaciones aritméticas + Sumar - Restar * Multiplicar / Dividir Blevar a una potencia pi, e, 4 Constantes Ejemplo. >> (2+3epi)/2 5.7124 Funciones incorporadas al programa Damos a continuacién wna breve lista de algunas de las funciones disponibles en ‘el paquete MATLAB; el programa de ayuda proporciona informacién sobre qné ‘otras fumciones hay disponibles. Bl ejemplo ilustra eémo se usan y se combinan Jas operaciones aritméticas y las fumeiones. abs(#) —cos(#) —exp(#)—log(#)—1ogi0(#) cosh (#) sin(#) tan(#) —sqrt(#) fleor(#) acos(#) —tanh(#) Ejemplo. >>3+coa(aqrt (4.7)) “=1.6869 En la respuesta se muestran, habitualmente, cinco cifras decimales significati- vas; la instruccién format. Long nos permite obtener hasta 15 cifras decimales, significativas Ejemplo. >>fornat long 3¥coa(sqrt (4.7)) =1.68686892236893 Instrucciones de asignacién Mediante el signo de igualdad podemos asignar un nombre al resultado de la evaluacién de una expresién Apéxice: MATLAB 663, Ejemplo. >>a=3-floor(exp(2.9)) sa “15 Cuando se escribe un punto y coma al final de una expresién, el computador realiza las operaciones correspondientes y almacena su resultado bajo el nombre que le hayamos asignado (para su uso en célculos posteriores) pero no muestra el resultado en la pantalla. Ejemplo. >>v=sin(a); Nota: b no se muestra. >>2eb"2 ans 0.8457 Definicién de nuevas funciones Es posible definir nuevas funciones que se pueden usar con el paquete MATLAB. escribiendo con un editor un archivo de texto cuya extensién seam. Una vez definido, puede utilizarse como eualquier otra funcién. Ejemplo. Vamos a definir la funeién f(x) = 1+2—22/4 en um archivo fun.m. Para ello, con el editor de textos, escribimos: function y=fun(x) yotex-x.°2/45 Explicaremos el uso de “.” um poco més adelante. Podemos usar letras dis- tintas para las variables y podemos darle un nombre distinto a la funcién, pero el formato debe ser el mismo. Una vez que almacenamos esta funcién en un archivo llamado fun.m, podemos usarla como cualquier otra funcién del paquete MATLAB, >>cos(fun(3)) -0.1782 La instruccién feval nos permite evaluar funciones de una manera itil y efi- ciente. Cuando se usa, la funcién se invoca como una cadena de caracteres. Ejemplo. >>feval(*fun’ 4) ans= if Matrices Bn el paquete MATLAB todas las variables son matrices. Las matrices se introducen de una manera di 664 Apéxoice: MATLAB Ejemplo. >>a=[1 2 3;4 5 6:7 8 9] Ae 1 4 7 Los puntos y comas separan las filas de la matriz, mientras que los elementos de la misma fila deben separarse mediante un espacio en blanco (0 tma coma) Alternativamente, podemos introducir las matrices fila a fila Ejemplo. >>4=[1 2 3 456 7389) 123 56 789 Podemos generar algunas matrices especiales usando funciones ya incorporadas Ejemplo. _ >>Z=zeres(3,5) crea una matriz de ceros de orden 3 x 5 >>Xeones (3,5); crea una matriz. de unos de orden 3 x 5, >>¥=0:0.5:2 crea la matriz de orden 1 x 5 siguiente ¥ © 0.5000 1.0000 1.6000 2.0000 >>sin(¥) crea una matriz de orden 1 x5 tomando el seno de cada elemento de ¥ 1.0000 0.8776 0.5403 0.0707 -0.4161 Podemos trabajar con los elementos de una matriz de diversas maneras, Bjemplo. >>A(2,3) selecciona una entrada concreta de & 6 >>A(L:2,2:8) seleceiona una submatriz de A 23 56 >>ACLL 31, [1 31) otra forma de seleccionar una submatriz de & ans= £5 79 >>A(2,2)=tan(7.8); asigna un nuevo valor a una entrada eonereta de A Arénpice: MATLAB 665 Bl programa de ayuda y la documentaeién que acompaiian el paquete propor- cionan informacién sobre otras funciones matriciales disponible Operaciones con matrices + Sumar - Restar * Multiplicar Elevar a una potencia , Traspuesta conjugada 4 233 4]; . Ces la traspuesta de B 8 24 >>3e(BrO)*3 3(BC)* 13080 29568 29568 66840 Operaciones que se realizan elemento a elemento Una de las caracteristicas mas iitiles del paquete MATLAB es que dispone de un gran mimero de fuiciones que operan sobre una matriz elemento a elemento; vimos antes un ejemplo de esto cuando tomamos el seno de cada elemento, de una matriz de orden 1x 5. Las operaciones matriciales de suma, resta y producto por un escalar se realizan elemento a elemento, lo que no oeurre con las operaciones matriciales de multiplicacién, division y potenciacién. Estas tres operaciones pueden realizarse elemento a elemento si anteponemos tin punto al sinibolo correspondiente: .*, ./ y .°. Bs importante ¢] entender emo y cuando deben usarse estas operaciones ya que las operaciones elemento a elemento son cruciales a la hora de disefiar e implementar eficientemente programas numéricos ¥ gréficos con el paquete MATLAB. Ejemplo. >>A=[1 2;3 4];4°2 calcula el producto Aa 710 leya al cuadrado cada elemento de A pice: MATLAB >>cos(A./2) divide cada elemento de A entre 2 y, después, calenla el coseno 0.8776 0.5403 0.0707 -0.4161 Graficos El paquete MATLAB puede producir dibujos bi- y tridimensionales de eurvas, y superficies. Las diversas opciones y aspectos adicionales de las instrucciones ‘gréficas basicas pueden consultarse en e! paquete de ayuda o en la documenta ion. La instruceién plot permite generar gréficas de curvas planas. En el sic guiente ejemplo se muestra eémo podemos obtener las gréficas de las funciones cos(x) € y = c0s?(cr) en el intervalo (0, 7) Ejemplo. >ozecos(x).“2; >eplot (x,y,x,2, 70") En Ia primera linea se especifican el dominio y el tamaiio de paso 0.1. Ex las dos Iineas siguientes se definen las funciones. Hagamos notar que las tres primeras lineas terminan con un punto y coma; este punto y coma se eseribe para evitar que aparezcan en la pantalla los treinta y tants elementos de cada uma de las matrices x, y y 2. La cuarta linea contiene la instruecién de dibujo que produce las gréficas. Los dos primeros términos, x ¢ y, dibujan la funcién os(7x). Los términos tercero y cuarto, x y z, dibujan la. funcidn y = cos?(c). J timo término, 40", hace que se dibuje une ‘0 en cada punto (24,4) eon 24 = c05°(24) El uso em la tervera fila del indicador de operacién elemento a elemento ” es esencial: primero se calcula. el coseno de cada elemento de la matriz. x y; después, cada elemento de la matriz cos (x) se eleva al cuadrado usando la instruceién .~ La instruceién de dibujo #plot es una alternativa itil a la instruceién plot. La sintaxis de esta instruccién es fplot (nombre? , [a,b] ,n), que produce la sréfica de la funcién nombre. determinando su valor en n puntos del intervalo [a,b]. Si no se especifica otra cosa, el valor de n es 25. Ejemplo. >>£plot(*tanh’ ,[-2,2]) dibuja y = tanh(z) en [2,2] Las instrueciones plot y plot3 se utilizan para dibujar curvas parametriza- das en el espacio bi- y tridimensional, respectivamente, Estas instruceiones son especialmente iitiles para visualizar las soluciones de una ecuacién diferencial en dimension dos y tres. MATLAB. oeT El dibujo de la elipse o(t) = (2cos(t), 3sin(#)), con 0< t < 2x, se ‘obtiene con las siguientes instrueciones: >>t=0:0.2:24pi; >>plot (2#c08(t) ,3esin(t)) Ejemplo. El dibujo de la curva e(t) = (2 cos(t),t?,1/t), con 0.1 < t < 4m, se obtiene con las siguientes instrucciones: >>t=0.1:0.1:44pi; >>plot3 (2*cos(t) ,t.~ a) Para obtener dibujos tridimensionales de superficies hay que especificar um rectdngulo del dominio de la funcién, mediante la instruccién meshgrid, y luego las instrucciones mesh 0 surt para obtener la gréfica, Estas instrueciones son iitiles para visualizar la sotucién de una. ecuacién en derivadas parciales Bjemplo. ~pi:0.1:pis >> [x,yl=meshgrid(x,y); >>zesin(cos(x+y)); >>mesh(z) Bucles y ramificaciones Operadores de relacion Igual que No igual que Menor que > Mayor que « Menor o igual que >= Mayor o igual que Operadores ligicos = No (Verdadero si, y sélo si la proposicién es falsa) & as (Verdadero si las dos proposiciones son verdaderas) 1 ° (Verdadero si alguna de las dos proposiciones es verdadera) Valores booleanos 1 Verdadero ° Falso Las instrucciones for, if y while del paquete MATLAB operan de manera similar a sus homslogas en otros lenguajes de programacién. Estas instraccions adoptan la sintaxis basiea siguiente: 668 ApéNoice: MATLAB for (variable det bucle = rango del bucle) instrueciones ejecutables end if (premisa) instrueciones ejeeutables else instrueciones ejecutables end while (premisa) istrucciones ejecutables ond En el siguiente ejemplo mostramos eémo se pueden encajar varios bucles para generar ima matriz. Gnardando las lineas de texto en un archivo amado nido.m, entonces cada vez que escribanos nido en la ventana de trabajo del paquete MATLAB obtendremos la matriz A. Hagamos notar que los elementos de la matriz.A forman, empezando en la esquina superior izquierda, el triéngulo de Pascal Bjemplo. for i=1:5 AG DLAC Det; end for for AG, 3)=AG, J-1 441,995 end end A Para salir de un bnele antes de que se complete, se usa la instruceién break. Ejemplo. tor k=1:100 xesgrt (i); if (Go10)A(x-floor (x break end end k Para mostrar ma linea de texto o una matriz se utiliza la instruccién disp. Ejemplo. n=10; x20; while ken 3; disp(Lx x-2 x73]), k-ktt; 2 end ApéNDICE: MATLAB. 669 Programas Una forma eficiente de construir programas es crear nuevas funciones que se almacenan como archivos cuya extensidn es m. Estos programas nos permiten especificar los datos que deben introducirse y los resultados que deben mostrarse y pueden ser llamados como subprogramas desde otros programas. BI siguiente ejemplo nos permite visualizar el efecto de caleular los elementos del tridngulo de Pascal previa modulacién con un niimero primo. Para ello, hay que escribir las siguientes lineas con el editor de textos del paquete y almacenarlas en un archivo llamado pase.m. Ejemplo. function P=pase(n,m) % Datos = nes 1a cantidad de filas % = mes el niitero primo 4% Resultado - P es el tridngule de Pascal for k=2: for je2:n Pk, j)=rem (P(x, j-1) m)-+ren(P(ie~ end end 13am) 5 Ahora, escribiendo en la ventania de trabajo la instruccién P=pase (5,3), vere- ‘mos las cinco primeras filas del tridugulo de Pascal médulo 3. Podemos intentar también Pepasc(175,3); (use el punto y coma) y luego spy(P) (que genera z dispersa para valores grandes de n) Conclusion Alcanzado este punto, usted deberia ser capaz de crear y modificar programas basados en los algoritmos dados en este libro. Para obtener informacién adi- ional sobre las funciones del paquete MATLAB o sobre como se utiliza en st computador particular, debe usted utilizar el programa de ayuda o la docu- imentacién que acompana el paquete.

You might also like