Transcription of Programacio´n en MATLAB - esi2.us.es
1 Tema 9. Programaci . on en MATLAB . MATLAB es una herramienta inform atica que surgi o para realizar c alculos matem aticos, espe- cialmente operaciones con matrices. El usuario de MATLAB suele ser una persona que necesita algo m as que una calculadora pero que no quiere mancharse las manos con un lenguaje de programaci on. Por eso el entorno de trabajo es sencillo de manejar, casi tan f acil como una calculadora. Adem as de realizar c . alculos, esta herramienta permite crear gr aficos de muchos tipos y presenta grandes ventajas a la hora de trabajar con n umeros complejos, con matrices, con polinomios, con funciones trigonom etricas, logaritmos, etc. Con los a nos la herramienta ha sido modificada pasando por varias versiones. En cada versi on se han incorporado otras funciones distintas y hoy en d a proporciona funciones para gran cantidad de aplicaciones ingenieriles: simulaci on de sistemas din amicos, visi on artificial, an alisis estad stico, an.
2 Alisis y dise . no de controladores autom aticos, etc. Desde las primeras versiones MATLAB incorpora una caracter stica muy interesante: la capacidad para programar. En efecto, es posible crear archivos que contengan las operaciones que se desean realizar. Adem . as es posible incorporar nuevas funciones de MATLAB realizaedas por el propio usuario. La programaci . on se lleva a cabo mediante un lenguaje que es muy parecido a lenguajes de alto nivel como BASIC o C. Esto permite que el usuario pueda agrupar sentencias que utiliza frecuentemente dentro de un programa que puede ser invocado posteriormente. De este modo se ahorra tiempo y esfuerzo en sucesivas sesiones pues no es necesario escribir todas las sentencias de nuevo como se mostrar a. Pero no todo son ventajas. Como principal inconveniente hay que se.
3 Nalar el hecho de que 157. 158 EN MATLAB . TEMA 9. PROGRAMACION. MATLAB no ha sido concebido como lenguaje de programaci on por lo que carece de algunos elementos o caracter sticas necesarias para una buena pr actica de la programaci on. Para aliviar estos defectos se van a usar m etodos que eviten los peligros derivados de dichas carencias. El entorno El programa MATLAB se maneja (en su mayor parte) escribiendo sentencias dentro de una ventana llamada de . ordenes. Al arrancar el programa aparecen varias ventanas, pero en una primera toma de contacto es mejor cerrar todas excepto la principal, que es la ventana de ordenes. Las ordenes se escriben una a una (ya se ver a la forma de escribir conjuntos de ordenes o programas m as adelante) pulsando la tecla de retorno al final.
4 Por ejemplo, si se escribe sqrt(16) el programa realiza la operaci on indicada y responde en la pantalla con el resultado. Lo que se aprecia en la ventana de . ordenes ser a algo como: >> sqrt(16). ans =. >>. Las operaciones se indican de forma muy intuitiva, por ejemplo para obtener el resultado de 13 5. 3+4 11 basta con escribir 13*5/(3 +4*11). En la ventana de ordenes se obtendr a lo siguiente: >> 13*5/(3 + 4*11). ans =. Observe que es necesario utilizar par entesis para que la operaci on se lleve a cabo correcta- mente. Esta y otras particularidades del entorno de MATLAB ser an comentadas a lo largo del tema. Objetos La herramienta MATLAB permite utilizar nombres simb olicos para referirse a objetos los cuales representan n . umeros, vectores o matrices. Como es sabido, en cualquier lenguaje de progra- c MRA & JAAR.
5 2010 DISA. ESI. US. 159. maci on, los objetos se caracterizan por un tipo, un identificador y otras caracter sticas. A. continuaci on se describen estas caracter sticas para el entorno de MATLAB . Tipos En MATLAB todos los objetos son matrices de n umeros complejos en punto flotante. Un escalar no es m as que una matriz 1 1. Cada . elemento de la matriz se almacena en la memoria como un n . umero complejo a + bi siendo i = 1. Cuando se trabaja con n umeros reales MATLAB . considera simplemente que b = 0. Finalmente, todos los n umeros son tratados en formato de punto flotante. Esto quiere decir que son n . umeros con parte entera, parte decimal y un exponente (v ease tema 2). Estas caracter sticas hacen que MATLAB desperdicie memoria con respecto a otros lenguajes en los cuales las variables pueden ser de otros tipos m as peque nos.
6 A pesar de que MATLAB . trata a todas las variables del mismo modo se va a continuar con la sana costumbre de indicar en los diagramas de flujo y en los comentarios el tipo de las variables. De este modo se facilita la detecci . on de errores. Identificadores Los objetos que se pueden utilizar en MATLAB han de tener un identificador que es un conjunto de caracteres. La palabra resultante ha de cumplir ciertos requisitos: No puede comenzar por un n . umero No puede coincidir con palabras reservadas como for, if, etc. No puede contener espacios en blanco Creaci . on y destrucci . on Los objetos pueden crearse en cualquier momento. Para ello basta con asignarles un valor en la forma que se indicar . a m . as adelante. Hay que tener en cuenta que los objetos ocupan un espacio en la memoria.
7 Cada vez que se crea una nueva variable el programa MATLAB pide al SE un trozo m as de la memoria disponible. A partir de ese momento el trozo en cuesti on no puede ser usado para otros fines. 160 EN MATLAB . TEMA 9. PROGRAMACION. Si se quiere liberar el espacio ocupado por una variable se ha de utilizar la orden clear, por ejemplo clear k o clear matriz a. Esto causa la destrucci on completa de la variable y la liberaci . on del trozo de memoria ocupado por la misma. Una vez que una variable ha sido eliminada no es posible recuperar su valor. Asignaci . on La asignaci on se consigue por medio del signo igual =. No hay que olvidar que asignar es una operaci on consistente en copiar un cierto valor en la memoria ocupada por una variable. Por tanto no es lo mismo asignar que igualar en el sentido matem atico.
8 Lamentablemente el uso del signo = en ambos casos no ayuda nada a clarificar la cuesti on. Debido a que la asignaci . on es una operaci on distinta de la igualdad matem atica se ha insistido en temas anteriores en que se utilice un signo diferente . En los diagramas de flujo se mantendr a el uso del s mbolo para la asignaci on. Operaciones y funciones incorporadas La mejor manera de aprender a realizar operaciones con MATLAB es probar el programa con ejemplos simples y explorar su comportamiento. En este punto se van a mostrar ejemplos en varias categor as de dificultad creciente. Es muy aconsejable no estudiar de memoria los ejemplos sino probarlos en el entorno MATLAB . Operaciones elementales La forma m as simple de usar MATLAB es como una calculadora. En lugar de pulsar teclas se ha de escribir la operaci.
9 On a realizar y pulsar Intro para que esta se lleve a cabo. Por ejemplo si se escribe 6+8. y se pulsa Intro se obtiene en la pantalla: >> 6+8. c MRA & JAAR. 2010 DISA. ESI. US. 161. ans =. 14. >>. Puede verse que el resultado viene precedido de ans=. Estas letras son la abreviatura de answer (respuesta, resultado). Adem as, como ya se ha dicho, el s mbolo >> sirve para indicar al usuario que puede escribir ah su orden. A menudo recibe el nombre de s mbolo inductor pues induce al usuario a escribir. El programa MATLAB admite operaciones con par entesis, como por ejemplo 2 (5 + 3). >> 2*(5+3). ans =. 16. >>. N otese que la multiplicaci . on se indica por medio del asterisco *. Tambi en es posible realizar operaciones menos elementales, como por ejemplo logaritmos en base 10.
10 >> log10(100). ans =. 2. Si uno desea dar nombres simb olicos a los n . umeros que ha de manejar debe crear variables. Para ello basta con asignar un valor mediante una expresi on del tipo: nombre_de_la_variable = valor_que_se_asigna por ejemplo: x= el programa responde con un mensaje que indica que se ha creado la variable y que ha tomado el valor adecuado >> x= x =. 162 EN MATLAB . TEMA 9. PROGRAMACION. Es importante saber que estas expresiones hacen dos cosas: crear la variable (tomando cierta cantidad de memoria para almacenar su valor) y dar un valor inicial a la variable. Esta facilidad para crear variables conlleva algunos peligros que trataremos de minimizar mediante una programaci on cuidadosa. Adem as de las operaciones aritm eticas de sobra conocidas existen operaciones l ogicas, como por ejemplo la comprobaci on de igualdad.