A-1Comenzando en MATLAB en Windows Para comenzar con MATLAB, basta hacer doble clic en el ícono de acceso directo al programa situado en el escritorio de Windows (Figura 2.22). Alternativamente sino existe ícono de acceso directo en el escritorio lo mas común y sencillo para ejecutar el programa es elegir la opción programas del menú inicio de Windows y seleccionar la opción MATLAB 7.0 (A1). De cualquiera de las formas que ejecutemos MATLAB, el programa presenta la pantalla temporal y a continuación la pantalla inicial del programa de la Figura 2.24 Figura A1 A-2 Entorno de trabajo de MATLAB La pantalla de entrada de MATLAB (Figura 2.24) constituye el marco de trabajo general del programa. Los elementos más importantes de esta pantalla de inicio de MATLAB (Figura 2.24) son los siguientes Command Windows (ventana de comandos): ejecuta las funciones de MATLAB. Command History (historial de comandos): Presenta una historial de todas las funciones introduciodas en la ventana de comandos y permite copiarlas y ejecutarlas. Current directory (directorio actual): muestra ficheros MATLAB y ejecuta operaciones de ficheros tales como abrir y buscar contenido. Help (ayuda): muestra y busca documentación para la familia completa de productos MATLAB. Worksapce (espacio de trabajo): muestra y realiza cambios en el contenido del espacio de trabajo Array editor: muestra contenido de arrays en formato de tabla y edita sus valores. Editor/debugeger : crea, edita y comprueba M-ficheros (ficheros que contienen sintaxis de funciones MATLAB y). A-3 La ventana de comandos de MATLAB La ventana de comandos de MATLAB (Figura 2.26) es el camino principal para comunicarse con MATLAB. Aparece en el escritorio cuando se inicia MATLAB y se utiliza para ejecutar funciones y todo tipo de operaciones. Las entradas a ejecutar se escriben a continuación del prompt >> y, una vez completadas se pulsa Enter. En primera línea de la figura 2.27 se define una matriz, y al pulsar Enter se obtiene como salida la propia matriz. Cada vez que MATLAB ejecuta alguna acción, el resultado se escribe en la pantalla y el resultado de la operación realizada se guarda en workspace . Para suprimir la escritura del resultado y que el resultado se guarde en el workspace es necesario escribir punto y coma (;) después de escribir la operación que deseamos realizar, por ejemplo >> 10+6 <ENTER> ans = 16 >> 10+6; <ENTER> >> Para borrar las variables se usa la instrucción clear >> clear A >> Borra solo la variable A, mientras que >> clear >> que se hayan definido desde que se empezó la sesión actual de MATLAB Para borrar la pantalla se usa el comando >> clc El comando solo borra la pantalla de command Windows sin borrar las variables de las operaciones realizadas desde que se abrió la sesión. Variables, Números, Operadores y Funciones Variables MATLAB no requiere ningún tipo de comando para declarar variables, sencillamente crea la variable mediante la asignación directa de su valor. Por ejemplo: >> v=5 v= 5 La variable v valdrá 5 mientras no se cambie su valor mediante una nueva asignación. Una ves declarada la variable podemos utilizarla en cálculos >> v^3 ans = 125 >> v+5 ans = 10 El valor asignado a una variable es permanente hasta que no se cambie de forma forma expresa o hasta que no se salga de la presente sesión de MATLAB La variable v la consideraremos ahora como 10, a partir de este momento tal y como se observa en el calculo siguiente >> v=10 v= 10 >> v^3 ans = 1000 Variables Vectoriales Para representar un vector de n elementos se puede definir en MATLAB una variable de las siguientes formas V=[v1, v2, v3, . . . , vn] V=[v1 v2 v3 . . . vn] Cuando los elementos de una matriz son separados por una coma sin embargo es posible eliminar la coma dándole un espacio de separación, como se indica anteriormente V=[v1, v2, v3, . . . , vn] >> vector1=[2 9 25 144] vector1 = 2 9 25 144 >> sqrt(vector1) ans = 1.4142 3.0000 5.0000 12.0000 >> V=[v1, v2, v3, . . . , vn] Existen diferentes formas de definir una variable vectorial sin necesidad de explicitar entre corchetes todos sus elementos separados por comas o espacios en blanco. Se presenta la tabla siguiente. variable=[a:b] variable=[a:s:b] Define el vector cuyos primero y ultimo elemento son a y b, respectivamente y los elementos intermedios se diferencian en una unidad Define el vector cuyos primero y ultimo elemento son a y b, respectivamente y los elementos intermedios se diferencian en la cantidad s especificada por el incremento Define el vector cuyos primero y ultimo elemento son a y b y que tiene en total n elementos uniformemente espaciados entre si Define el vector cuyos primero y ultimo elemento son los especificados y que tiene en total n elementos en escala logarítmica uniformemente espaciados entre si variable=linspace[a,b,n] variable=logespace[a,b,n] A continuación se presental algunos ejemplos >> vector2=[2:10] vector2 = 2 3 4 5 6 7 8 9 10 Hemos obtenidos los números entre 2 y 10 separados por una unidad >> vector3=[3:3:15] vector3 = 3 6 9 12 15 Hemos obtenido los números entre 3 y 15 separados por tres unidades >> vector4=linspace(10,30,6) vector4 = 10 14 18 22 26 30 >> vector5=logspace(10,30,6) vector5 = 1.0e+030 * 0.0000 0.0000 0.0000 0.0000 0.0001 1.0000 A-4 Operaciones Aritméticas Las operaciones aritméticas en MATLAB se definen de acuerdo con las convenciones matemáticas estándar. MATLAB es un programa interactivo que permite realizar de manera sencilla gran variedad de operaciones matemáticas. MATLAB asume las operaciones aritméticas habituales de suma, diferencia, producto, división y potencia, con las jerarquías habituales entre ellas. Operación aritmética Suma Diferencia Producto División Potencia Símbolo + * / ^ Ejemplo x+y x–y x*y x/y x^y Para sumar dos números teclee simplemente el primer número, un signo más (+), el segundo numero y finalmente oprimir la tecla ENTER >> 5 + 3 ans = 8 Podemos realizar el cálculo de una potencia directamente >> 10^5 ans = 100000 A5 Graficación Las tablas de datos muy grandes son difíciles de interpretar. Los ingenieros usan técnicas de graficación para hacer que la información se entienda fácilmente. Con una grafica es fácil identificar tendencias, elegir altos y bajos y aislar los puntos de datos que pueden ser mencionados o cálculos de errores. Las graficas también se pueden usar como una rápida verificación para determinar si una solución de computadora produce los resultados esperados. A-5.1 Graficas bidimensionales La grafica mas útil para los ingenieros es la grafica x-y. Un conjunto de pares ordenados se usa para identificar puntos sobre una grafica bidimensional. Luego los puntos se conectan con líneas rectas. Los valores x-y se pueden medir o calcular. Por lo general, a la variable independiente se le da el nombre de x y se grafica en el eje x, y la variable dependiente recibe el nombre de y y se grafica en el eje y. Graficación básica A-5.2 Graficas x-y simples Una vez definidos los vectores de valores x y valores y, MATLAB hace fácil la creación de graficas. Suponga, a través de medición, si obtiene un conjunto de datos tiempo contra desplazamiento. Se pueden almacenar los valores de tiempo en un vector llamado x (el usuario puede definir cualquier nombre conveniente) y los valores de distancia en un vector llamado y: Para graficar estos puntos use el comando plot, con x y y como argumentos: Automáticamente se abre una ventana grafica, la que MATLAB llama figura 1 en la figura xx se muestra la grafica resultante (pueden ocurrir pequeñas variaciones en la escala dependiendo del tipo de computadora y tamaño de graficas). A-5.3 Títulos, etiquetas y retículas La buena practica ingieneril requiere se incluyan unidades y un titulo en las graficas. Los siguientes comandos agregan un titulo etiquetas a los ejes x-y, y una retícula de fondo Estos comandos generan la grafica de la figura xxx . También se pueden escribir en una sola línea separados por comas. A-5.4 Graficas con más de una línea La creación de una grafica con más de una línea se puede lograr de muchas formas, por defecto la ejecución de un segundo enunciado plot borrara la primera grafica. Sin embargo puede apilar las graficas unas encima de otras con el comando hold on. Ejecute los siguientes enunciados para crear una grafica con ambas funciones graficadas en la misma grafica, como se muestra en la figura 4x Los puntos y comas con opcionales tanto en el enunciado plot como en el enunciado hold on. MATLAB continuara poniendo en capas las graficas hasta que se ejecute el comando hold off. Otra forma de crear un grafico con múltiples líneas es solicitar ambas líneas en un solo comando plot. MATLAB interpreta la entrada a plot como vectores alternos xy, como en plot (x1, y1 , x2 , y2 ) Donde las variables x1- y1 forman un conjunto ordenado de valores a graficar y x2-y2 forman un segundo conjunto ordenado de valores. Con los datos del ejemplo anterior, plot(x, y1 , x , y2) Produce la misma grafica que la figura 4x, con una excepción: las dos líneas tienen colores diferentes. MATLAB usa un color de graficación por defecto (azul) para la primera línea dibujada en un comando plot en el enfoque hold on cada línea se dibuja en un comando plot separado y por tanto, es el mismo color. Al solicitar dos líneas en un solo comando, como en plot(x, y1 , x , y2) la segunda línea por defecto es verde lo que permite que el usuario distinga las dos graficas. Si la función plot se llama con un solo argumento de matriz, MATLAB dibuja una línea separada para cada columna de la matriz. El eje x se etiqueta con el vector índice fila 1:k, donde k es el número de filas en la matriz esto produce una grafica igualmente espaciada, a veces llamada grafica línea. Si plot se llama con dos argumentos, uno un vector y el otro una matriz, MATLAB grafica sucesivamente una línea para cada fila en la matriz. Por ejemplo se pueden combinar y1-y2 en una sola matriz y graficar contra x y = [y1;y2]; plot (x, y) Esto crea la misma grafica que la figura 4x, con cada línea en un color diferente He aquí otro ejemplo mas complicado: A-6 Scripts Los scripts son el tipo de M-fichero más sencillo posible. Un script no tiene argumento de entrada ni de salida. Sencillamente esta formado por instrucciones MATLAB que se ejecutan secuencialmente y que podrían submitirse igualmente en serie en la ventana de comandos. Los scripts operan con datos existentes en el espacio de trabajo o con nuevos datos creados por el propio script. Cualquier variable que se cree mediante un script permanecerá en el espacio de trabajo y podrá utilizarse en cálculos posteriores después de finalizar en script. A continuación se presenta un ejemplo de script que genera varias curvas en coordenadas polares representando pétalos de flores. Una vez escrita la sintaxis de script en el editor (Figura 8.6) se guarda en la librería de trabajo (work) y simultáneamente se ejecuta, haciendo clic en el botón o utilizando la opción save and run del menú debug (o presionado F5). Para pasar de un grafico al siguiente basta con pulsar ENTER. Como ejemplo construimos un M-Fichero de nombre ecuación2.m que contiene la función ecuacion2, cuyos argumentos son los tres coeficientes de la ecuación de segundo grado ax2 bx c 0 y cuyas salidas son sus dos soluciones (Figura 8-13). La ecuación ax2 bx c 0 se puede resolver de la siguiente manera Ajuste de curvas Aunque se podrian usar técnicas de interpolación para encontrar valores de y entre valores de x medidos, seria más conveniente si se pudieran modelar los datos experimentales como y=f(x). Entonces se podria calcular cualquier valor de y que se quisiera. Si se sabe algo acerca de la relación que existe entre x e y, podria ser capaz de determinar una ecuación sobre la base de dichos principios por ejemplo la ley del gas ideal se basa en dos suposiciones subyacentes: Todas las moléculas en un gas chocan elásticamente Las moléculas no ocupan espacio en su contenedor Ninguna de estas suposiciones es completamente precisa de modo que la ley del gas ideal funciona solo cuando hay una buena aproximación de la realidad, pero esto es cierto para muchas situaciones, y la ley del gas ideal es extramadamente valiosa. Sin embargo, cuando los gases reales se desvían de esta relación simple, se tienen dos opciones para modelar su comportamiento: se puede intentar entender la física de la situación y ajustar la ecuación en concordancia o se pueden tomar los datos y modelarlos empíricamente. Las ecuaciones empiricas no se realcionan con la teoría alguna de porque ocurre un comportamiento; solo hacen un buen trabajo de predicción acerca de cómo cambia un parámetro en relación con otro parámetro. MATLAB tiene funciones internas de ajuste de curvas que le permiten modelar los datos empíricamente. Es importante recordar que estos modelos son buenos solo en la región donde se recopilaron los datos. Si no se entiende porque, un parámetro como y cambia como lo hace con x, no puede predecir si la ecuación de ajuste de datos todavía funcionara afuera del rango donde se recopilaron los datos. A-7 Regresión lineal La forma mas simple de modelar un conjunto de datos en una línea recta. Consideremos los siguientes datos x= 0:5; y=[15, 10, 9, 6, 2, 0]; Si graficamos los datos como se muestra en la Figura (anterior ) , puede intentar dibujar una línea recta a través de los puntos de datos para obtener un modelo burdo del comportamiento de los datos. Este procedimiento a veces se denomina “a ojo de buen cubero”, lo que significa que no se realizaron cálculos, pero que parece un buen ajuste. Al observar la grafica puede ver que muchos de los puntos parecen caer exactamente en la línea recta, pero otros están fuera por cantidades variables. Para comparar la cantidad del ajuste de esta línea con otros posibles estimados se debe encontrar la diferencia entre el valor y real y el valor calculado del estimado. Se puede encontrar la ecuación de la línea recta de la figura (anterior) al notar que x=0 , y=15 y 5=5, y=0. por tanto, la pendiente de la línea es elevación y y2 y1 0 15 3 carrera x x2 x1 50 La línea recta cruz el eje x en 15, de modo que la ecuación de la línea es y 3x 15 La diferencia entre los valores reales y los valores calculados se representan en la tabla número Tabla ____ diferencia entre valores reales y calculados x y(real) 0 1 2 3 4 5 15 10 9 6 2 0 y_cal(calculado) 15 12 9 6 3 0 Diferencia =y-y_calc 0 -2 0 0 -1 0 La técnica de regresión lineal usa un enfoque llamado mínimos cuadrados para comparar que tan diferentes son las ecuaciones que modelan el comportamiento de los datos. En esta técnica, las diferencias entre los valores reales y calculados se elevan al cuadrado y se suman. Esto tiene la ventaja de que las desviaciones positivas y negativas no se carcelan mutuamente. Se podría usar MATLAB para calcular este parámetro para los datos, se tiene Sum_de_cuadrados = sum((y-y_calc).^2) Que produce Sum_de_cuadrados = 5 Esta mas allá del propósito de este apéndice explicar como funciona la técnica de regresión lineal excepto decir que compara diferentes modelos y elige el modelo en el que la suma de los cuadrados es la mas pequeña. La regresión se logra en MATLAB con la función polyfit. Se requieren tres campos para polyfit: un vector de valor x, un vector de valores y e un entero que indique que orden de polinomio se usaría para ajustar los datos. Dado que una línea recta es un polinomio de primer orden se ingresara el número uno en la función polyfit: polyfit(x,y,1) asn=-2.9143 14.2857 los resultados son los coeficientes correspondientes a la ecuación polinomial de primer orden de mejor ajuste: y 2.9143x 14.2857 ¿Realmente esto es un mejor ajuste que el modelo “de buen cubero”? Se puede calular la suma de los cuadrados para encontrar: best_y = -2.9143*x+14.2857; new_sum = sum((y-best_y).^2) new_sum = 3.3714 Dado que el resultado del calculo dela suma de cuadrados de hecho es menor que el valor encontrado por la linea “buen cubero”, se puede concluir que MATLAB encontró un mejor ajuste a los datos. Se puede graficar los datos y la linea de mejor ajuste determinada por regresión lineal (véase la figura) para obtener un sentido visual si la linea ajusta bien los dos datos plot(x, y, ’0’, x, best_y) Regresión polinomial Desde luego, la líneas rectas no son las únicas ecuaciones que se podrían analizar con la técnica de regresión. Por ejemplo un enfoque común es ajustar los datos con un polinomio de orden superior de la forma n n1 n2 y a0 x a1 x a2 x ... an1 x an La regresión polinomial se usa para obtener el mejor ajuste al minimizar la suma de los cuadrados en las desviaciones de los valores caliculados de los datos. La función polyfit le permite hacer esto fácilmente en MATLAB se puede ajustar los datos de muestra a ecuaciones de segundo y tercero orden con los comandos Que corresponden a las siguientes ecuaciones y2 0.0536x 2 3.1821x 14.4643 y3 0.0648x 3 0.5397x 2 4.0701x 14.6587 y4 0.1875x 4 1.9398x 3 6.2986x 2 9.4272x 14.9802 Para polinomios de orden superior se sigue la misma sintaxis Consideremos el siguiente ejercicio con el propósito de mostrar otro procedimiento Consideremos un conjunto de temperaturas medidas sobre las cabezas de los cilindros de un motor que se encuentra en periodo de pruebas para utilizar en coches de carreras, los tiempos de funcionamiento del motor en segundos y las temperaturas en grados Fahrenheit son las siguientes Tiempos 0 Temperaturas 0 1 20 2 60 3 68 4 77 5 110 Realice una regresión lineal que ajuste las temperaturas en función de los tiempos, realice también el ajuste mediante regresiones polinomicas de grado 2 , 3 y 4 representando los resultados. Para realizar el mejor ajuste de los datos a un modelo líneal se utiliza la siguiente sintaxis: Se observa que el modelo lineal ajustado tiene de ecuación: y 20.8286x 3.7619 La representación grafica de la nube de puntos y la recta ajustada sobre los mismos ejes (Figura 6.8 ) puede realizarse como sigue Para realizar el mejor ajuste de los datos a un modelo polinomial cuadrático se usara la siguiente sintaxis. Se observa que el polinomio de segundo grado ajustado tiene de ecuación: y 1.0536x 2 26.0964x 0.25 La representación grafica de la nube de puntos y el polinomio de segundo grado ajustado sobre los mismos ejes (Figura 6.9) puede realizarse como sigue Para realizar el mejor ajuste de los datos a un modelo polinomial cubico se usara la siguiente sintaxis Se observa que el polinomio de tercer grado ajustado tiene la ecuación y 1.1019x3 9.3175x 2 41.1918x 3.0556 La presentación grafica de la nube de puntos y el polinomio de tercer grado ajustado sobre los mismos ejes (Figura 6.10). Para realizar el mejor ajuste de los datos a un modelo polinomial de cuarto grado se utiliza la siguiente sintaxis. Se observa que el polinomio de cuarto grado ajustado tiene de ecuación y 1.5625x 4 14.5231x3 38.6736x 2 3.4511x 0.3770 La representación grafica de la nube de puntos y del polinomio de cuarto grado ajustado sobre los mismos ejes (Figura 6.11) puede realizarse como sigue Podemos observar que la mejor regresión es el polinomio de cuarto grado, ya que la curva para por mayor cantidad de puntos que en los casos anteriores.