Lección 2 Tutorial básico de MATLAB: Guiones y funciones MIGUEL ANGEL UH ZAPATA 1 Análisis Numérico I Facultad de Matemáticas, UADY Agosto 2014 1 Centro de Investigación en Matemáticas, Unidad Mérida
En lección es acerca de escribir programas en MATLAB Una herramienta y algunas técnicas de depuración son descritos Al final debemos de: Poder escribir un guión básico Poder escribir una función con varias entradas y salidas Poder depurar nuestro código para no tener errores
Guiones y funciones Los programas en MATLAB tienen dos formas: un guion (script) y una función (function) Ambos archivos dbden ser guardados con una extensión m, de manera que estos archivos son llamados M-files 1 El editor de MATLAB Un programa es llamado con su mismo nombre Los archivos son creados en un editor Matlab tiene incluido su propio editor, de manera que no es necesario usar un programa alterno Este editor resalta los comandos e indica los posibles errores cometidos automáticamente Por ahora tu solo necesitas saber que hay una pequeña cuadro en el marco superior derecho de la ventana del editor El color de este cuadro te indica los siguientes mensajes: El ROJO significa que hay errores de sintaxis El NARANJA significa que hay posibilidades de mejorar el código, pero no errores fueron detectados El VERDE significa que no se detectaron errores, advertencias o posibles mejoras Naturalmente, nosotros debemos de corregir un programa con un cuadro de color rojo Sin embargo, una advertencia es dada si un punto y coma no es usado para poder desplegar un resultado De manera que es posible dejar un programa con cuadro naranja 2 Conjunto de órdenes: Guión Un guión es básicamente una colección de lineas que pudimos haber escrito de uno en uno en la ventana principal Es muy conveniente tener todos estos comandos en un archivo de manera que pueden ser escritos correctamente gracias al editor y puedan repetirse cálculos invocando más que pocos comandos Consideremos el siguiente ejemplo llamado guionraizm que contiene % Ejemplo de un guion a = 3; % Coeficiente de xˆ2 en la ecuación b = 2; % Coeficiente de x en la ecuación c = 1; El programa es llamado bajo su mismo nombre: >> guionraiz r1 = -03333 + 04714i r2 = -03333-04714i Tutorial de MATLAB 3
Porque los comandos r1 y r2 en el programa no terminan con punto y coma, las cantidades son desplegadas al mismo tiempo que son calculadas Notar que el símbolo % aquí es usado para añadir cualquier comentario en el programa Estos comentarios pueden estar en cualquier lugar del programa 3 Funciones La otra posibilidad de escribir el programa anterior es mediante una función Generalmente las funciones tienen argumentos de entrada y salida, pero no necesariamente tienen que tener una A continuación el formato estándar de una función en MATLAB: function [x, y, z] = ejemplo (a, b, c, d) }{{}}{{}}{{} salidas nombre entradas Actualmente es posible mostrar donde la función termina mediante el comando Es importante mencionar que el programa de una función debe de tener el mismo nombre del archivo M-file asignado Es el caso anterior seria ejemplom Consideremos el mismo ejemplo de la sección anterior escrita en dos formas diferentes: la primera sin ningún entrada y salida como lo haríamos en un guión % Función sin entradas y salidas function funcionraiz a = 3; b = 2; c = 1; y la segunda de manera más típica con los coeficientes de la ecuación como entradas y las raíces como salidas % Función sin entradas y salidas function [r1,r2] = funcionraiz(a,b,c) OBSERVACIÓN: Si existe más de dos salidas, entonces las escribimos entre corchetes, pero si tenemos solamente una la escribimos directamente Por ejemplo r1 = funcionraiz(a,b,c) Tutorial de MATLAB 4
4 Comandos de programación Los comandos de programación usuales están disponibles en MATLAB como por ejemplo: IF, FOR, WHILE, SWITCH Apre más acerca de ellos usando el comando help A continuación una breve descripción a cerca de estos Como la mayoría de los lenguajes de computadora, MATLAB ofrece una variedad de operadores como for, while, if, etc Los operadores de relación en MATLAB son: == igual <= menor o igual que >= mayor o igual que = distinto < menor que > mayor que Notar que = se usa en asignaciones mientras que == se usa en una relación Los operadores lógicos son: & para y, para o, para no Ciclo if: if si expresión if si expresión Consideremos el ejemplo de dado dos números x y y desplegar si son iguales o no: if x==y disp('son iguales') disp('no son iguales') Ciclo for: for variable = expresión Consideremos la suma de los primeros 100 números enteros: sum = 0; for i=1:100 sum = sum + i; Ciclo while: while mientras Dado un número positivo n, las siguientes afirmaciones calculan las potencias pares de 3 menores que n k=0; while 3ˆk<n if rem(k,2)==0 disp(3ˆk) k=k+1; k=k+1; Tutorial de MATLAB 5