UNIVERSIDAD DE LOS ANDES FACULTAD DE MATEMATICAS CURSO DE ANALISIS NUMERICO TALLER GUIA SOBRE MANEJO BASICO DE MATLAB1 La finalidad de este taller es que usted refuerce los elementos básicos de MATLAB en lo concerniente al manejo de vectores, Matrices y Graficas (este ultimo tema no se vio en clase, sin embargo es de su responsabilidad desarrollar los ejercicios, los cuales se explicaran con detalle). Este taller no será calificado, sin embargo se entenderá que para el desarrollo normal del curso usted manejara apropiadamente los temas. MANEJO DE MATRICES. Defina en MATLAB las siguientes matrices: A 2 4 5 6 1 3 6 7 8 9 12 3 6 32 4 6 7 54 1 9 2 5 8 4 1 B 17 23 4 10 11 24 5 6 12 18 1 7 13 19 25 8 14 20 21 2 15 16 22 3 9 Haga las siguientes tareas, utilizando la menor cantidad de procedimientos posibles (busque la manera más sencilla para hacerlo): 1. Tome la primera columna de la matriz A, multiplique todos sus elementos por 2 y súmeselo a la tercera columna de B. El resultado guárdelo en la segunda columna de A. 2. Sume los elementos que componen cada uno de los vectores fila de A (5 valores) estos guarde los en un vector que llamara a. Haga lo mismo para B, guardando los resultados en b (ponga a y b como vectores columna). 3. Genere las siguientes matrices (o vectores)2: a b 1 David Méndez Suárez. Estudiante Ing. Industrial Uniandes da-mende@uniandes.edu.co 2 Por ejemplo, si: 1 4 a' 1 2 3 a 2 b 6 entonces: b' 4 6 9 3 9 a' b' a b a b 4. Que sucede con algunas operaciones matriciales cuando se le antepone e un punto a alguna de ellas ( A. * B vs A * B )? Tome A y B juegue con ellos y mire que sucede. 5. Sáquele las submatrices principales tanto a A como a B. Las matrices del mismo tamaño guárdelas en una matriz de tres dimensiones3. 6. Demuestre que la suma de todas las filas y las columnas (una por una) de B dan 65. 7. Recupere los vectores a y b que utilizo anteriormente, busque en ellos (hágalo a ojo, por ahora) la columna de cada una de las matrices que mayor numero posea en cuanto a la suma de las columnas. Guarde este vector, elimine dicha columna de la matriz y posteriormente halle el producto punto de dichos vectores. MANEJO DE GRAFICAS. Para graficar en MATLAB es necesario disponer de los vectores donde se posee la información de cada una de las posiciones de la pareja ordenada (para el caso de R2), es decir, X y Y para el caso de (x, y). Donde x (1) y y (1), las primeras posiciones del vector, hacen referencia a un punto concreto en el espacio R2. Una vez se disponen de los vectores X y, se utiliza la función plot, cuyos argumentos son los dos vectores. Así pues en MATLAB se escribirá plot (x,y). Ejemplos: 1. Grafiquemos la parábola x 2 3 en el intervalo [-20,20]. Primero definamos el vector x: x=-10:10 Ahora definamos el vector y donde cada una de sus posiciones será xi2 3 : y=x.^ 2+3 note que utilizamos el punto después del x para operacional sus elementos y no a x como vector. Ahora simplemente utilizamos la función plot: y=x. ^2. La grafica que se encontró fue: 3 Por ejemplo: Note que 2 3 17 24 y B2 A2 entonces guarde dichas matrices en la matriz C, tal que: 4 6 23 5 C (: ,:,1) =A2 y C (: ,:,2) =B2. 120 100 80 60 40 20 0 -10 -8 -6 -4 -2 0 2 4 6 8 10 2. Ahora grafiquemos la función coseno dentro de los intervalos 10 ,10 , teniendo distancia de / 8 entre los valores calculados. >> x=-10*pi:pi/8:10*pi; >> y=cos(x); >> plot(x,y); Con estos tres pasos encontramos la función deseada: 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -40 -30 -20 -10 0 10 20 30 40 MODIFICACIONES BASICAS A LAS GRAFICAS: MATLAB posee una gran cantidad de opciones para mejorar las graficas; dichas opciones se enumeran después de los vectores: LineWidth: Modifica el grosor de la función. Este es un valor numérico. Por default es 0.5. Marcador: Tipo de línea. Esta opción no tiene un nombre específico, pero dentro del orden establecido por MATLAB viene inmediatamente después de los vectores. Para especificar el tipo de línea que se quiere se introduce un valor especifico dentro de los ‘ ‘. Por ejemplo, ‘+’ grafica con cruces, ‘o’ con círculos y ‘diamond’ con diamantes4. MarkerEdgeColor: Color de los puntos que originan la grafica. Al igual que la opción anterior existen valores pretederminados que en la mayoría de oportunidades son la inicial del color en ingles. Tales como: ‘r’ para rojo, ‘b’ para azul o ‘g’ para Verde. Para ver todos los posibles colores puede acceder directamente al help de MATLAB. Por ejemplo: >> q=-50:2:50; >> w=q.^3; >> plot (q, w,'+','MarkerEdgeColor','r','LineWidth',1); Grafica la función x3 con signos + pintados de rojo, al doble de grosor que normalmente MATLAB pinta las graficas: 5 1.5 x 10 1 0.5 0 -0.5 -1 -1.5 -50 -40 -30 -20 -10 0 10 20 30 40 50 De igual manera podremos añadirle títulos a nuestros gráficos. Esto se logra utilizando la opción title cuyo argumento es precisamente el valor char que queremos añadir a nuestro grafico. Por ejemplo: >> title('análisis numérico'); imprime: 4 En el HELP de MATLAB se puede acceder a todas las posibilidades que se tiene. analisis numerico 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Note usted mismo (haciendo varios gráficos de manera simultanea) que cada vez que ejecutan funciones como plot o title MATLAB ejecuta dicha tarea borrando lo que anteriormente se había graficado, sin embargo en la mayoría de oportunidades necesitaremos representar mas de una tarea en el mismo grafico; esto se logra con la función “hold on” que mantiene todas las tareas en un mismo grafico. Para resumir lo anteriormente dicho, grafiquemos las funciones seno y coseno. Seno será rojo, mientras que Coseno se marcara con diamantes verdes. De igual manera el grafico tendrá el titulo “Funciones Seno y Coseno”. Las graficas se realizara sobre el intervalo cerrado [-2µ,2 µ]. >> x=[-2*pi:pi/6:2-pi]; >> y=sin(x); >> z=cos(x); >> hold on; >> plot(x,z,'diamond','MarkerEdgeColor','g'); >> plot(x,y,'r'); >> title('Fuciones Seno y Coseno'); Fuciones Seno y Coseno 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -6.5 -6 -5.5 -5 -4.5 -4 -3.5 -3 -2.5 -2 -1.5