Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
EDITORIAL Matlab para matemáticas en ingenierías Lucía Agud Albesa Mª Leonor Pla Ferrando En este libro las autoras facilitan al lector las herramientas disponibles en el paquete matemático Matlab para poder desarrollar y aplicar los contenidos de Análisis Mate- mático –de una y varias variables–, Álgebra y Estadística, que se precisan tanto en el estudio de las carreras de ciencias como en los técnicas. El libro explica los conceptos y contenidos matemáticos necesarios, detalla las fór- mulas precisas para su cálculo, y su aplicación y obtención mediante Matlab, resul- tando de interés para aquellos que quieran iniciarse en el uso de Matlab. Las autoras desarrollan multitud de ejemplos y ejercicios resueltos para una mejor comprensión. Finalizando cada capítulo con ejercicios propuestos por si el lector quiere seguir practicando. Matlab para matemáticas en ingenierías Ma tla b p ar a m at em át ic as en in ge ni er ía s Lucía Agud Albesa Mª Leonor Pla Ferrando EDITORIAL UNIVERSITAT POLITÈCNICA DE VALÈNCIA Lucía Agud Albesa Licenciada en Ciencias Matemáticas en la Universidad de Zaragoza en la promoción 1989- 1994 obteniendo el premio extraordinario García de Galdeano. Obtuvo el Grado de Licenciada en Matemáticas en 1996, Máster Universitario en Investigación matemática por la UPV en 2010 y el título propio de la UPV de Especialista en Pedagogía Universitaria en 2008. Trabajó como profesora de Secundaria y BUP de Matemáticas e Informática en el colegio de Santa Ana de Zaragoza de 1994 a 2000. En el año 2000 pasó a trabajar en el departamento de Matemática Aplicada de la Universidad de Zaragoza en el Campus de Teruel, y de ahí, en el 2001 ingresó como profesora de Matemática Aplicada en la Universitat Politécnica de València hasta el día de hoy donde actualmente continúa en la categoría de Contratado Doctor. Defendió su tesis doctoral en la Universidad de Zaragoza en el 2004 dentro del tema de Transformada Wavelet y Análisis Multirresolución. En la actualidad pertenece a un grupo de investigación de Análisis Funcional y medidas vectoriales de la UPV, línea con la que desarrolla su trabajo investigador. Ha pertenecido al comité de empresa del Campus d’Alcoi, y al equipo directivo de dicho Campus como subdirectora de Cultura, Deportes y Directora del colegio mayor Ovidi Montllor. Mª Leonor Pla Ferrando Licenciada en Ciencias Químicas con grado de li- cenciada, modalidad tesina, por la Universidad de Alicante en 1986, Máster Universitario en Investiga- ción Matemática por la UPV en octubre de 2012 y Doctora en Matemáticas por la UPV en el programa de Matemáticas Multidisciplinares en julio de 2013. Obtuvo Beca del IMPIVA de especialización profesio- nal en el Instituto Tecnológico textil desde octubre de 1990 a octubre de 1991 y como licenciada en ciencias químicas en AITEX de octubre a noviembre de 1991. También desarrolló su labor profesional como Técnico Titulado de grado superior en la em- presa TAVEX (Xàtiva Textil S.A.) desde noviembre de 1991 a mayo de 1992. A nivel docente, impartió clases de bachillerato en el Colegio La Salle de Alcoy desde septiembre a diciembre de 1989, en el Instituto de Enseñanzas Medias Andreu Sempere de Alcoy de enero a febre- ro de 1990 y en el Instituto de Enseñanzas Medias Monastil de Elda de marzo a abril de 1990. En 1992 entra en la UPV en el Departamento de Matemática Aplicada como Profesora Asociada de la UPV desde 1992 hasta 1996. Titular Interino desde 1996 hasta 1997. TEU desde julio de 1997 hasta la actualidad. Ha sido coordinadora de la titulación de Diseño In- dustrial en la EPSA desde 2000 a 2005 UPVUPV ISBN 978-84-9048-421-0 0268P03 www.full-ebook.com www.full-ebook.com Matlab para matemáticas en ingenierías Lucía Agud Albesa Mª Leonor Pla Ferrando EDITORIAL UNIVERSITAT POLITÈCNICA DE VALÈNCIA www.full-ebook.com Los contenidos de esta publicación han sido revisados por el Departamento de Matemática Aplicada de la Universitat Politécnica de València Colección Académica Para referenciar esta publicación utilice la siguiente cita: AGUD ALBESA, L; PLA FERRANDO, Mª L (2015). Matlab para matemáticas en ingenierías. Valencia: Universitat Politècnica de València Primera edición, 2015 (versión impresa) Primera edición, 2015 (versión electrónica) © Lucía Agud Albesa Mª Leonor Pla Ferrando © de la presente edición: Editorial Universitat Politècnica de València distribución: Telf.: 963 877 012 / www.lalibreria.upv.es / Ref.: 6270_01_01_01 ISBN: 978-84-9048-421-0 (versión impresa) ISBN: 978-84-9048-422-7 (versión electrónica) Queda prohibida la reproducción, distribución, comercialización, transformación y, en general, cualquier otra forma de explotación, por cualquier procedimiento, de la totalidad o de cualquier parte de esta obra sin autorización expresa y por escrito de los autores. www.full-ebook.com Para todas las personas que nos han ofrecido su apoyo día a día. www.full-ebook.com www.full-ebook.com I Contenido 1 Capítulo 1 Entorno de trabajo Matlab ................................................................ 5 1.1 Introducción ................................................................................................. 5 1.2 Comandos o instrucciones en Matlab.......................................................... 7 1.3 Variables y formatos .................................................................................... 8 1.4 Variables simbólicas y numéricas ................................................................ 9 1.4.1 Salida matemática elegante por pantalla ............................................. 12 1.4.2 Generar vectores o variables ................................................................ 12 1.4.3 Generar Matrices .................................................................................. 13 1.5 Funciones ................................................................................................... 13 1.5.1 Crear funciones..................................................................................... 13 2 Capítulo 2 Gráficos con Matlab ........................................................................ 19 2.1 Introducción ............................................................................................... 19 2.2 Funciones de una variable, y=f(x) .............................................................. 20 2.2.1 Algunos Comandos para representar ................................................... 20 2.2.2 Subventanas.......................................................................................... 26 2.3 Representación de funciones simbólicas ................................................... 27 2.3.1 Representación de funciones creadas como fichero .m....................... 31 2.4 Funciones a trozos: definición y representación ....................................... 32 2.4.1 Función a trozos desde fichero .m........................................................ 32 2.4.2 Función a trozos vectorizada ................................................................ 33 2.5 Otros comandos para dibujar curvas en el plano y curvas paramétricas: >>ezplot ............................................................................................................. 35 2.5.1 Curvas en paramétricas ....................................................................... 37 2.6 Curvas planas en coordenadas polares...................................................... 38 www.full-ebook.com IV 2.6.1 Otros comandos para curvas en coordenadas polares.........................39 2.6.2 Cambios de coordenadas rectangulares a polares ...............................40 2.7 Relleno de regiones del plano.................................................................... 40 2.8 Funciones de varias variables. Superficies................................................. 43 2.8.1 Representación de funciones en 3D: z=f(x,y). Comandos más usados .43 2.8.2 Curvas de nivel de una superficie .........................................................44 2.8.3 Curvas en el espacio.............................................................................. 45 2.8.4 Superficies de revolución ......................................................................46 2.8.5 Superficies Paramétricas.......................................................................51 2.8.6 Cambios de coordenadas a cilíndricas y esféricas y viceversa..............54 2.9 Ejercicios .................................................................................................... 54 3 Capítulo 3 Operaciones básicas con funciones.................................................. 57 3.1 Polinomios.................................................................................................. 57 3.1.1 Polinomio introducido como vector ....................................................57 3.1.2 Polinomio introducido como función ...................................................58 3.2 Dominios de funciones e inecuaciones ...................................................... 61 3.2.1 Comando >>solve.................................................................................. 61 3.2.2 Comando>>fzero (resolución numérica o aproximada de ecuaciones) .62 3.2.3 Inecuaciones con valores absolutos......................................................64 3.3 Simplificar, factorizar, expandir y demás operaciones algebraicas ...........65 3.4 Cálculo de límites ....................................................................................... 67 3.4.1 Límites laterales .................................................................................... 67 3.4.2 Asíntotas ............................................................................................... 68 3.4.3 Límites de funciones a trozos................................................................72 3.5 Números Complejos................................................................................... 74 3.6 Derivadas.................................................................................................... 79 www.full-ebook.com III 3.6.1 Funciones de 1 variable ........................................................................ 80 3.6.2 Funciones de varias variables ............................................................... 81 3.7 Integración ................................................................................................. 81 3.7.1 Integrales impropias ............................................................................. 82 3.7.2 Cálculo de áreas .................................................................................... 84 3.8 Ejercicios .................................................................................................... 85 4 Capítulo 4 Funciones de varias variables. Ecuaciones diferenciales................. 89 4.1 Derivación de funciones de varias variables .............................................. 89 4.2 Vector gradiente ........................................................................................ 91 4.3 Matriz Jacobiana y Jacobiano..................................................................... 91 4.4 Matriz Hessiana y Hessiano ....................................................................... 92 4.5 Puntos críticos de funciones de varias variables ....................................... 95 4.6 Integración de funciones de varias variables............................................. 99 4.7 Ecuaciones diferenciales .......................................................................... 103 4.7.1 Sistemas de EDO’s............................................................................... 105 4.7.2 Métodos numéricos para la resolución de EDO’s............................... 106 4.8 Ejercicios .................................................................................................. 107 5 Capítulo 5 Introducción a la Estadística Descriptiva........................................ 111 5.1 Introducción ............................................................................................. 111 5.2 Estadísticos y representación................................................................... 114 5.2.1 Variables estadísticas.......................................................................... 114 5.3 Distribución de frecuencias..................................................................... 115 5.3.1 Representaciones gráficas .................................................................. 116 5.3.2 Ejemplos con Matlab de distribución de frecuencias y diagramas..... 117 5.4 Parámetros estadísticos de posición y dispersión ................................... 126 5.4.1 Parámetros estadísticos de posición .................................................. 126 www.full-ebook.com IV 5.4.2 Medidas de dispersión ........................................................................130 5.5 Ejercicios .................................................................................................. 135 6 Capítulo 6 Introducción al Álgebra matricial .......................................... 139 6.1 Introducción a las matrices en Matlab..................................................... 139 6.1.1 Generar matrices. Operaciones con matrices.....................................139 6.1.2 Matrices especiales .............................................................................140 6.1.3 Manipulación de matrices, submatrices .............................................142 6.1.4 Operaciones con matrices...................................................................145 6.1.5 Otras funciones implementadas en Matlab.......................................146 6.2 Clasificación y resolución de sistemas de ecuaciones lineales ................151 6.2.1 Clasificación de sistemas de ecuaciones .............................................151 6.2.2 Resolución de sistemas usando la función: >>inv(A) o A 1 ................154 6.2.3 Resolución de sistemas usando división matricial a la izquierda: A\b154 6.2.4 Resolución de sistemas usando la función: >>solve ...........................155 6.2.5 Resolución de sistemas usando la Regla de Cramer ...........................157 6.2.6 Resolución de sistemas de ecuaciones dependientes de parámetros162 6.3 Ajustes de datos (mínimos cuadrados) .................................................... 164 6.4 Ejercicios .................................................................................................. 169 7 Referencias bibliográficas ................................................................................ 173 www.full-ebook.com 5 1 Capítulo 1 Entorno de trabajo Matlab 1.1 Introducción Este libro consta de dos partes, una dedicada al Álgebra: matrices, determinantes, sis- temas de ecuaciones, etc; y otra enfocada al análisis matemático, donde se trabajarán funciones, expresiones algebraicas, ecuaciones, derivadas e integrales. El paquete ma- temático que se emplea es Matlab, cuyo nombre responde a las siglas de Matrix Labo- ratory. Al abrir este paquete matemático se observa que la pantalla se subdivide en varias ventanas que se detallan a continuación: - La ventana Command Window (ventana central) es donde se introducirán los comandos, variables e instrucciones a realizar. Es decir, la ventana donde se trabaja. - La ventana Current Folder (izquierda superior) indica el contenido del directo- rio en el que se está trabajando, y que salvo cambio del mismo, es donde se irá guardando el archivo o las funciones que se hayan creado. - La ventana de Workspace (derecha superior) es la ventana donde se indican las variables definidas en la sesión de trabajo o ya guardadas y cargadas de otrassesiones. Para borrar alguna de ellas, se usará el comando >>clear nombrede- variable o se selecciona la variable en esa ventana y se suprime. www.full-ebook.com Matlab para Matemáticas en ingenierías 6 - La ventana de Command History muestra todos los comandos y órdenes que se han introducido, permitiendo recuperarlos o bien arrastrándolos a la Command Window (no ejecuta), o bien haciendo doble click sobre ellos (ejecuta). Figura 1.1 Pantalla de Matlab y ventanas Al ejecutar el comando para representar una función, Matlab abre una nueva ventana de Figure, la cual se puede minimizar y mantener toda la sesión mientras se va actuali- zando, o bien cerrar. Con el icono del folio o New Script de la barra de herramientas (primero de los iconos de la misma), también se abrirá una nueva ventana donde Matlab permite programar o crear funciones en ficheros con extensión .m. La sesión de trabajo que se está realizando se puede guardar. Para ello, cuando se quie- re comenzar a guardar se escribe (sin espacios en blanco en el nombre del fichero): >>diary nombrefichero.txt Y desde ahí hasta que se teclee >>diary off, guarda con el nombre indicado la sesión realizada. Si en cualquier momento se quiere volver a activar dicha sesión, bastará con poner de nuevo >>diary on. Por defecto, se guardará en la ruta que esté especificada en Current Directory. En caso de querer guardar sólo las variables creadas en la sesión, bastará realizarlo con el comando >>save, o bien en File >>Save Workspace. Para recuperarlas en una nue- va sesión de trabajo se cargan con el comando >>load y el nombre especificado cuan- do han sido guardadas. www.full-ebook.com Entorno de trabajo Matlab 7 1.2 Comandos o instrucciones en Matlab Los comandos en Matlab se escriben en minúscula y sus argumentos entre paréntesis. Su escritura es en inglés y se ejecutan en cuanto se presiona la tecla enter. Cuando hayan dudas de los argumentos de alguna instrucción, bastará con escribir en la ventana de comandos >>help nombredelcomando, como por ejemplo: >>help gcd (y saldrá la ayuda de Matlab, en este caso para el cálculo del máximo co- mún divisor). Para recuperar alguno de los comandos introducidos, hay dos formas. Una, como ya se ha comentado, desde la ventana de Command History; la otra, con las teclas de despla- zamiento. Las flechas de arriba y abajo, , recuperan los comandos. Mientras que las de izquierda y derecha, , , sirven para desplazarse dentro de la línea de edición para poder modificar las expresiones. Para interrumpir el funcionamiento de una instrucción de MATLAB se pulsan las te- clas Control y C a la vez y después enter. A veces, esta operación se deberá repetir. La forma de salir de Matlab es o bien cerrar la ventana, o bien con los comandos >>exit, o >>quit. Y como siempre dándole al enter al final de cualquier instrucción para que así se ejecute. Si no se quiere que la ejecución de un comando salga por pantalla, aunque sí que sea ejecutado, bastará con poner después del comando un ;. Al introducir una orden en la ventana Command Window que no quepa toda entera en una misma línea de instrucción, se puede terminar con … y darle a enter. Matlab en- tiende que no ha terminado la instrucción y sin aparecer el prompt del sistema, >>, permite seguir escribiendo en la línea siguiente, ejecutando luego la instrucción al darle a enter: >> A=[1 2 3 4 5 6 7 8 9;- 1 -2 -3 -4 -5 -6 -7 9 2;zeros(1,9);3*ones(1,9);... 9:-1:1] A = 1 2 3 4 5 6 7 8 9 -1 -2 -3 -4 -5 -6 -7 9 2 0 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 3 9 8 7 6 5 4 3 2 1 www.full-ebook.com Matlab para Matemáticas en ingenierías 8 Si en una línea de instrucción se introduce el símbolo %, cambia el color del texto y automáticamente Matlab entiende que lo que se escribe, hasta pulsar enter, es un co- mentario y no debe ser ejecutado. 1.3 Variables y formatos Cuando se ejecuta un comando sin dar nombre a la variable que se obtiene como resul- tado, Matlab lo asigna a una variable que él tiene en el sistema llamada ans. Nunca se podrá llamar a ninguna variable con este nombre, por tenerlo ya el programa asignado. En cada ejecución sin variable de salida, Matlab irá guardando en ella ese resultado, machacando el resultado anterior. Para guardar en una variable la operación realizada, se asignará con el = >>a=gcd(3,12) a= 3 Automáticamente en la ventana del Workspace aparecerá la variable a e indicará su tipo y dimensión. Para asignar a este nombre de variable otro valor, simplemente o se borra y vuelve a definir o se reasigna con otro valor. Matlab es sensible a mayúsculas y minúsculas; por lo tanto a y A son dos variables distintas. No se puede nombrar a una variable cuyo nombre ya esté siendo utilizado por Matlab o bien en una función o comando, o bien para sus variables internas. Variables ya asig- nadas por Matlab son, entre otras: i ó j ........................................................ para la unidad imaginaria i= 1 pi ......................................................... para el valor de ans ......................................................... para las variables de salida que no tengan asignación previa eps ....................................................... como valor es 2.2204e-016.También puede utilizarse como comando (mirar >>help eps en caso de que- rer más información) Matlab almacena internamente los números en formato de coma flotante normalizado; es decir, notación científica tal que, la parte entera es 0 y la primera cifra decimal es distinta de cero (0.0003 sería 0.3*e03). Generalmente, por pantalla muestra el resultado con el formato short, 4 dígitos decimales. Si interesa cambiar el formato, se consigue con el comando >>format tipodeformato www.full-ebook.com Entorno de trabajo Matlab 9 Los formatos que existen en Matlab, y que usaremos generalmente, son: FORMAT SHORT son 5 dígitos, contando parte entera y decimal. FORMAT LONG son 5 dígitos o 7 FORMAT SHORTE son 5 dígitos en coma flotante normalizada FORMAT LONGE son 15 dígitos o 7 en coma flotante normalizada FORMAT SHORTG elige el mejor formato con 5 dígitos de salida (adecuado si trabajas en un vector con números de diferentes longitudes) FORMAT + saca por pantalla los signos, +, - y espacios en blanco FORMAT RAT pone el valor en forma racional. Si se quiere obtener más información sobre los formatos de Matlab, el programa la proporciona escribiendo >> help format 1.4 Variables simbólicas y numéricas Cuando en Matlab se quiere trabajar con una variable como tal, ha de definirse como simbólica. En caso contrario Matlab pediría valores para esa variable y daría un men- saje de error. Si se quiere introducir una función de forma que la variable x no tome valores concretos hasta cuando se requiera, existe el comando >>sym, o se declara la variable como simbólica de cualquiera de las dos formas siguientes: >>x=sym(‘x’), o bien >>syms x De la segunda forma, es posible declarar todas las variables simbólicas en una misma sentencia, separadas por espacios en blanco. Dar un valor concreto a esta variable para que deje de ser simbólica, y así conocer el valor numérico del resultado, se realiza con el comando >>double. Ejemplo 1.1 Evaluar la función f(x)=x2-3x+2 en x=2, /4. >>syms x >>f=x^2-3*x+2; >>subs(f,2) ans= 0 www.full-ebook.com Matlab para Matemáticas en ingenierías 10 >>subs(f,pi/4) ans = pi^2/16 - (3*pi)/4 + 2>>double(ans) ans = 0.2607 Nota: dependiendo de la versión de Matlab, esta última operación de sustitución puede hacerla de forma directa. Por ejemplo, en la versión R2011a; sin embargo en la versión R2013b hay que hacerlo como se ha indicado en el Ejemplo 1.1. El comando >>subs siempre evalúa funciones de tipo simbólico y el resultado que devuelve es considerado también simbólico. Si se define la función de otra forma, por ejemplo con el comando >>inline, la instrucción >>subs no funciona; debe evaluarse con su nombre directamente o con el comando >>feval. Ejemplo 1.2 Define la función f(x)=x2-3x+2 con inline y evalúala en x=2,0. >> clear x >> g=inline('x^2-3*x+2') g = Inline function: g(x) = x^2-3*x+2 >> g(2) ans = 0 >>feval(g,0) ans= 0 El comando inline será explicado con detalle más adelante. Fracciones de decimales no exactos o valores irracionales Es importante destacar qué ocurre cuando se trabaja con fracciones que no dan lugar a decimales exactos, por ejemplo fracciones del tipo 1/3, o radicales como etc. Matlab siempre guarda en memoria los datos en coma flotante, y por lo tanto redondea dichos números. Al efectuar operaciones con ellos, el resultado final puede verse afec- www.full-ebook.com Entorno de trabajo Matlab 11 tado de error. Una forma sencilla de solucionarlo es definir estos valores como simbó- licos: >>a=sym(1/3) Ejemplo 1.3 Realizar la siguiente operación 1- y comparar los resultados: a) de forma numérica, b) definiendo como simbólico los números. Es evidente, sin más que realizar los cálculos, que esta operación debe dar 0: >> 1-(1/3+1/2)/(1-1/6) ans = 1.1102e-16 Sin embargo, Matlab no devuelve el valor 0 aunque sí un valor muy pequeño. Esto se debe al trabajo con decimales y su redondeo. La forma de solucionarlo sería: >> a=sym(1/3);b=sym(1/6) b = 1/6 >> 1-(a+1/2)/(1-b) ans = 0 Otro problema de este estilo que se observa es, por ejemplo, si se quiere calcular algo tan sencillo como sin(pi), cuyo valor es 0. Matlab devuelve un valor muy pequeño, que se puede considerar como 0, pero no lo es. Por lo tanto, a la hora de resolver ecuacio- nes no detectará estos valores (una solución a esto se verá cuando se expliquen las funciones y el comando para resolver ecuaciones >>solve): >>sin(pi) ans = 1.2246e-16 En este caso, la opción para que evalúe bien vuelve a ser, definir este valor como simbólico: >>syms pi,sin(pi) ans= 0 www.full-ebook.com Matlab para Matemáticas en ingenierías 12 1.4.1 Salida matemática elegante por pantalla Matlab escribe por pantalla las expresiones matemáticas tal cual deben ser introduci- das: >> syms x, >> f = x^3-6*x^2+11*x-6 Sin embargo, mediante el comando >>pretty(expression) las muestra de la forma que uno escribe la expresión matemática: >> pretty(f) 3 2 x - 6 x + 11 x – 6 Otro ejemplo sería: >> syms x, y=1/(x+1) y = 1/(x + 1) >> pretty(y) 1 ----- x + 1 1.4.2 Generar vectores o variables Para generar una variable que tome valores en un rango elegido existen varias formas. Entre ellas cabe destacar las siguientes: >>x=0:.2:12; .................................. calcula un vector con 0 donde los valores van de 0.2 en 0.2. >>x=linspace(0,12,200); ................. calcula un vector con 0 con 200 valores equiespaciados. >>w=logspace(-1,3); ...................... calcula 50 valores espaciados logarítmicamente entre 10-1 y 103. Nota: En los comandos linspace y logspace, el tercer argumento de entrada, co- rrespondiente al número de puntos, es opcional. Los valores por defecto son 100 y 50, respectivamente. Asimismo, si no se especifica la distancia entre valores, el paso por defecto es 1. Es importante destacar que las variables así definidas son vectores y, por ello, las ope- raciones algebraicas que las involucren deben realizarse con un punto delante: ./, .*, .^. De esta forma, Matlab realiza los cálculos elemento a elemento, todo esto se explica con más detalle en el Capítulo 6. www.full-ebook.com Entorno de trabajo Matlab 13 1.4.3 Generar Matrices Las matrices en Matlab se definen entre corchetes. Los elementos de cada fila pueden ir separados mediante comas o espacios en blanco. Las columnas van indicadas por punto y coma, ;. Los elementos se pueden introducir de forma manual, con comandos o bien indicando el paso que lleva de un elemento al siguiente: >> A=[1:2:9; 0 -2 4 6 -1;ones(1,5)] A = 1 3 5 7 9 0 -2 4 6 -1 1 1 1 1 1 Para saber más sobre matrices y matrices implementadas ya por Matlab, consultar la parte de Álgebra. 1.5 Funciones Matlab posee muchas funciones implementadas. Para saber cuáles basta teclear >>hel- pwin y desde ahí acudir a matlab\elfun, donde mostrará las funciones que tiene defini- das. Entre las más habituales destacan: Funciones seno y coseno: sin(x), cos(x),sind(x),cosd(x) Funciones seno y coseno hiperbólico: sinh(x), cosh(x) Función tangente: tan(x) Funciones arcoseno, arcocoseno y arcotangente: asin(x), acos(x), atan(x) Función exponencial, logaritmo neperiano y logaritmo decimal: exp(x), log(x), log10(x) Función valor absoluto: abs(x) Funciones hiperbólicas: sinh(x),cosh(x),asinh(x), etc. Nota: Matlab trabaja, salvo definición distinta de la variable, con valores numé- ricos. Concretamente, para las funciones trigonométricas, si no se declaran pre- viamente como variables simbólicas, entiende que son valores numéricos y, por lo tanto, expresados en radianes. En caso de querer trabajar con valores expresa- dos en grados, deben usarse las funciones: >>sind, >>cosd 1.5.1 Crear funciones Para crear funciones en Matlab existen varias formas. Aquí sólo se va a indicar cómo definirlas y evaluarlas. Para su representación gráfica consultar el tema de gráficos. www.full-ebook.com Matlab para Matemáticas en ingenierías 14 Se van a considerar dos tipos de funciones que engloban a todas, las simbólicas y las funciones a trozos. Existen varias posibilidades de definir funciones simbólicas. A. Definición de función simbólica usando Anonymus Esta definición se realiza mediante el símbolo @. Cuando las funciones son básicas de Matlab no hace falta indicar el argumento si este es x: >>fun=@atan, ................................ Y para dibujarla >> fplot(fun,[-2,2]) >>fun2=@sin, ................................ Y para dibujarla >> fplot(fun2,[-3,3]) Sin embargo, si el argumento resulta ser composición de funciones o la función posee varios argumentos, entonces debe indicarse al principio, justo al lado de @, tal y como se muestra en el siguiente ejemplo >> y=@(x) x^2+1; Para evaluarla se puede hacer directamente asignándole un nombre: >> y(1) ans = 2 >> y(0) ans = 1 O también con el comando >>subs >> subs(y,0) ans = 1 B. Definición de funciones simbólicas mediante el comando >>inline Los argumentos se introducen entre comillas simples. De esta forma se hallan los valores de la función sin más que calcular su imagen direc- tamente o con el comando >>feval. Se detalla en el ejemplo siguiente www.full-ebook.com Entorno de trabajo Matlab 15 Ejemplo 1.4 Definir dos funciones cualesquiera con el comando >>inline y evaluarlas de forma distinta: a) >> f=inline('x^2-3*x+2') f = Inline function: f(x) = x^2-3*x+2 >> f(2) ans = 0 b) >> y=inline('x^2+1') y = Inline function: y(x) = x^2+1 >> y(1) ans = 2 >> feval(y,1) ans = 2 Nota: Se recuerdaque para evaluar funciones definidas mediante >>inline no se puede usar el comando >>subs. C. Definición de funciones simbólicas definiendo la variable como simbólica Para evaluar se utiliza el comando >>subs. >> x=sym('x');p=2*x-5; >> subs(p,1) ans = -3 D.- Definición de función simbólica entre comillas simples En este caso no hace falta declarar la variable. De nuevo es evaluada con el comando >>subs >> y='x^2+1'; www.full-ebook.com Matlab para Matemáticas en ingenierías 16 >> subs(y,0) ans = 1 Para las funciones a trozos se indican aquí la forma vectorizada y mediante archivo .m; es decir, esta segunda desde el Editor de Matlab. Se ilustra mediante un ejemplo. Ejemplo 1.5 Introducir, de varias formas la siguiente función a trozos: 1. Desde fichero .m Esta definición debe hacerse desde la ventana del Editor de Matlab, icono de NewScript o más directamente en New Function. Se crea con ello un archivo .m que, si no se indica nada, se guarda con el nombre que se le haya puesto a la función. Es importante que si posteriormente se modifica, se tenga cuidado de no cambiarle el nombre, ya que la llamada para ser ejecutada se hace por el nombre del fichero. Para evaluarla basta referirse a ella con su nombre. Si se realiza para la función del Ejemplo 1.5, quedaría function y=funcion2(x) if x<1 y=x^2; elseif 1<=x&&x<3 y=1; else y=x+1; end y para evaluarla >>funcion2(2) % para evaluarla ans= 1 www.full-ebook.com Entorno de trabajo Matlab 17 2. Vectorizada Para introducir y evaluar una función así definida es conveniente usar el co- mando >>inline: >>f=inline('(x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x)') f = Inline function: f(x) = (x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x) >> f(3) ans = 1 También puede definirse mediante Anonymus, en este caso hay que evaluarla, de nuevo, llamándola por el nombre que tiene asignado: >> f=@(x)(x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x) f = @(x)(x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x) >> f(-3) ans = 9 >> f(4) ans = 5 >> f(2) ans = 1 Para representarlas gráficamente, dirigirse al Capítulo 2, donde se indica cómo dibujar cada una de las posibles definiciones. www.full-ebook.com www.full-ebook.com 19 2 Capítulo 2 Gráficos con Matlab 2.1 Introducción Este capítulo se dedica a mostrar cómo dibujar funciones con Matlab, tanto combina- ciones de las funciones ya existentes, como funciones creadas por el usuario, o funcio- nes a trozos. Si se quiere conocer con más detalle algo de los comandos para gráficos, tipos de ar- gumentos que admiten o cualquier característica suya, basta introducir el comando: >> help nombredelcomando y automáticamente, Matlab proporciona una ayuda sobre dicha instrucción. Otra op- ción es teclear >>helpwin para acceder a los temas de la ayuda de Matlab, o darle al icono de ayuda en la barra de herramientas. Con el comando >>help graph2d, Matlab da ayuda sobre gráficos en dos dimensiones y con >>help graph3d proporciona ayuda para dibujar superficies. Guardar y cargar figuras: puede hacerse directamente desde la ventana de la gráfica, en el menú de Herramientas: File>Save. Matlab permite guar- darlas con diversas extensiones (por defecto las guarda con extensión .fig). Para recuperar una figura, basta con teclear: >> openfig('nombre') www.full-ebook.com Matlab para Matemáticas en ingenierías 20 Otra posibilidad es en la ventana de Current Directory, haciendo doble click sobre el archivo en el que se tiene la figura. Para borrar una figura, o bien se cierra la ventana que abre Matlab por defecto al plotearla, o bien se teclea al comando >>clf, que borrará la última figura creada. Aunque se van a detallar en este capítulo todos los comandos más importantes relacio- nados con gráficos -necesarios para muchas versiones anteriores de Matlab como Matlab R2011a-, cabe destacar que en la versión de Matlab R2013b aparecen directa- mente como iconos en la pestaña plots, y se activan sin más que seleccionar la variable o función a dibujar, ofreciendo ayuda si se pone el cursor encima de ellos: Figura 2.1 Ayuda de Matlab 2.2 Funciones de una variable, y=f(x) 2.2.1 Algunos Comandos para representar Los comandos más usado son los indicados a continuación: Comando >>plot(x,y) Comando >>fplot Comando >>ezplot D. Comando >> plot(x,y) Es uno de los comandos más sencillos, >>plot(a,b). Si, por ejemplo, se quiere dibujar la gráfica de la función y=sin(x), primero se ha de crear una tabla de valores para x, lo que puede llevarse a cabo de varias formas; o bien >> x=0:pi/100:2*pi; www.full-ebook.com Gráficos con Matlab 21 donde se origina un vector que toma valores de [0,2 ] y la distancia entre los puntos es de /100; es decir, un total de 200 puntos en los que la función tomará valores. O bien, el mismo resultado puede conseguirse con el comando: >>x=linspace(0,2*pi,200); El siguiente paso es darle valores a la variable a representar: >>y=sin(x) Y para dibujar la figura, se introduce la orden: >>plot(x,y) Ejemplo 2.1 Figura 2.2 Representación de y=sinx , y=cosx www.full-ebook.com Matlab para Matemáticas en ingenierías 22 En la figura 2.2 se han representado en la misma ventana dos funciones gracias al co- mando >>hold on. Pueden seguir añadiéndose gráficas en la misma figura, y para re- presentar una gráfica posterior en una ventana aparte indicarse con el comando >>hold off. Otra forma de dibujar varias funciones en una misma ventana gráfica, es ponerlas todas en el propio comando >>plot >> plot(x,sin(x),'r-',x, cos(x),'b.') Las opciones del trazado del comando >>plot pueden consultarse con >>help plot, aunque la siguiente tabla proporciona un resumen de ellas: Tabla 2.1 Tabla de símbolos, trazado y color entorno gráfico SÍMBOLO COLOR SÍMBOLO TIPO DE LÍNEA SÍMBOLO TÍPO DE LÍNEA y amarillo . puntos s cuadrados m magenta o círculos d diamantes c cian x equis ^ Triángulo (bajo) r rojo + mases v triángulo (arriba) g verde * asteriscos < Triángulo (izquierda) b azul - línea conti- nua > Triángulo (derecha) w blanco : línea de puntos p pentagrama k negro -. guion- t h hexagrama - línea de guiones Nota: En caso de utilizar algún símbolo para representar puntos de la gráfica, debe especificarse a continuación el tipo de trazado, para forzar a que una dichos puntos mediante una línea. Ejemplo 2.2 Representación de vectores de datos. Representar los pares de valores [t,v] de la siguiente tabla, donde la velocidad viene dada por (v) frente al tiempo (t) v 1.1 1.2 1.3 1.5 2 t 1.65 1.80 1.95 2.25 3.00 Introducir primero la matriz de datos >> t=[1.65,1.80,1.95,2.25,3]; www.full-ebook.com Gráficos con Matlab 23 >> v=[1.1,1.2,1.3,1.5,2]; >> plot(t,v); % representa una línea continua. Figura 2.3 Representación [t, v] línea continua >> plot(t,v,’bo’); %Si se quiere indicar cómo representar el tipo de puntos >> plot(t,v,'bo-') % Si se quiere indicar trazo de puntos y de línea Figura 2.4 Representación [t, v] puntos y puntos con línea E. Comando >>fplot La gráfica del seno dibujada en el Ejemplo 2.1 también podría representarse mediante el comando >>fplot con la siguiente orden: >>fplot(‘sin(x)’,[0,2*pi]) La función >>fplot puede dibujar varias gráficas a la vez, indicando en el segundo argumento el dominio de la variable x y de la y mediante una caja. Puede indicarse el trazado, siendo conveniente que en el caso de función a trozos o con asíntotas, sele exija un trazado discontinuo. Por defecto une mediante un trazo continuo. 1.6 1.8 2 2.2 2.4 2.6 2.8 3 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 1.6 1.8 2 2.2 2.4 2.6 2.8 3 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 1.6 1.8 2 2.2 2.4 2.6 2.8 3 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 www.full-ebook.com Matlab para Matemáticas en ingenierías 24 Respondería al siguiente comando: >>fplot(‘[funcion1,funcion2]’,[xmin xmax ymin ymax],’trazadofuncion1,trazadofuncion2’) Los trazados se pueden modificar desde la ventana de gráficos en el menú Edit/Figure Properties/…, botón derecho del ratón y seleccionando la función que se quiere modi- ficar. O con el último icono de la barra de herramientas en la ventana de la figura: Show Plot Tools and Dock Figure Nota: hay que tener cuidado a la hora de dibujar funciones que realicen opera- ciones con la variable x definida mediante un >>linspace o mediante un vector, ya que al evaluarlas debe realizarse coordenada a coordenada. Por lo tanto, salvo en las sumas y restas que lo hace por defecto, en las demás operaciones debe es- pecificarse: ./, .*, o bien .^ dependiendo de la operación a realizar. Ejes: En cuanto a los ejes, además de poder cambiarlos desde la misma ventana de la gráfica como se verá en la siguiente sección, también pueden ser establecidos desde el principio. Para ello, como se detallaa en el Ejemplo 2.1 hay varias formas. Una de ellas es el comando >>axis([xmin xmax ymin ymax]) Si se desea un escalado logarítmico en los ejes, basta utilizar estos comandos: >>semilogx, >>semilogy, (eje x en logarítmico y eje y en lineal, o vicever- sa respectivamente) >>loglog, (escalado logarítmico para ambos ejes) >>polar, para coordenadas polares (que serán descritas más adelante) F. Comando >>ezplot A la hora de representar gráficas, en general, es mucho más sencillo utilizar el coman- do >>ezplot. Este comando dibuja también funciones definidas de forma implícita. Las variables deben ser simbólicas o ir escritas entre comillas simples. Además dibuja perfectamente los saltos de las funciones, o las asíntotas, sin unirlas con un trazo como ocurre con el comando >>fplot (si en este último comando no se exige trazo discontinuo). Ejemplo 2.3 Representar la gráfica de la función en el intervalo [-5,3]. www.full-ebook.com Gráficos con Matlab 25 Se puede observar, en las Figuras 2.5 y 2.6, la diferencia de gráficos que se obtienen al representar la función 1/x en el intervalo cerrado [-5,3], usando ezplot, fplot y fplot forzando, en esta última, el trazo discontinuo: >> syms x, ezplot(1/x,[-5 3]) Figura 2.5 Representación usando >>ezplot Mientras que, con el comando >>fplot: >> fplot('1./x',[-5 3]) >> fplot('1./x',[-5 3],'k.') Figura 2.6 Representación usando >>fplot, en la segunda gráfica con trazo discontinuo Este comando será desarrollado con mayor amplitud en secciones posteriores. Captura de coordenadas: Si una vez representada la gráfica se busca obtener las coor- denadas de algún punto de la gráfica, Matlab lo permite con la instrucción >>ginput En ese momento, aparece el cursor sobre la gráfica y basta hacer click con el ratón en cada punto del que se quiere obtener su posición. Pulsando Enter se vuelve a la ventana de comandos, donde aparecen las coordenadas de los puntos seleccionados. -5 -4 -3 -2 -1 0 1 2 3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 1/x -5 -4 -3 -2 -1 0 1 2 3 -150 -100 -50 0 50 100 150 -5 -4 -3 -2 -1 0 1 2 3 -150 -100 -50 0 50 100 150 www.full-ebook.com Matlab para Matemáticas en ingenierías 26 Borrado de formato: para borrar el formato de una gráfica, o bien se cierra la ventana correspondiente a esa gráfica (si no se indica lo contrario, Matlab abre una nueva ven- tana para cada gráfica), o bien se escribe el comando: >> clf reset 2.2.2 Subventanas Cuando en una misma figura se desea visualizar varias ventanas con sus gráficas co- rrespondientes, se tiene el comando >> subplot. Los argumentos de este comando son, el número de filas y columnas de ventanas y el lugar que estas ocuparán. Ejemplo 2.4 Si una vez que Matlab ha creado la figura, interesa modificarla, no hay más que situar- se en esa ventana y darle al icono de más a la derecha de la barra de herramientas: Figura 2.7 Subventanas gráficas del Ejemplo 2.4 www.full-ebook.com Gráficos con Matlab 27 Al accionar este icono se abrirá una nueva ventana donde modificar cada una de las gráficas, clicando sobre ellas. Permite modificar su color, sus ejes, y muchas más pro- piedades descritas en la subventana inferior, seleccionado el recuadro Ticks. Figura 2.8 Opciones para modificar cada una de las gráficas Para nombrar los ejes cartesianos, si no se desea hacer directamente desde la ventana mostrada en la Figura 2.8, existen también los comandos >>xlabel(‘etiqueta’) e >>yla- bel(‘etiqueta’), para los ejes OX y OY, respectivamente. 2.3 Representación de funciones simbólicas Para definir funciones o variables simbólicas hay diferentes modos de hacerlo, algunos ya explicados en el Capítulo 1; es conveniente recordar que, para declarar la variable x como simbólica se hará >>syms x o bien, con >>x=sym(‘x’). A. Representación de función simbólica definida usando Anonymus Cuando las funciones a representar son básicas de Matlab, a la hora de definirlas, no hace falta indicar el argumento si este es x. Los comandos para representar las funciones así definidas son tanto >>ezplot, como >>fplot. Ambos trabajan en simbólico. www.full-ebook.com Matlab para Matemáticas en ingenierías 28 Ejemplo 2.5 Definir y representar las funciones y=arctg(x), y =sen(x), una con cada comando. >>fun=@atan, ezplot(fun,[-2 2]), >>fun2=@sin, fplot(fun2,[-3,3]) Figura 2.9 Representación de f(x)= arctg(x) Figura 2.10 Representación de f(x)= sin(x) Sin embargo, si se trabaja con composiciones de funciones o funciones con varios ar- gumentos, entonces el o los argumentos deben indicarse al principio: >>fun3=@(x)sin(1./x), ezplot(fun3,[.01 0.1]) Figura 2.11 Representación de f(x)= sin(1/x) B. Representación de función simbólica definida mediante el comando >>inline Las funciones así definidas se dibujan, también, con el comando: >>fplot(f,[a,b]) donde [a,b] es el intervalo de las abscisas en el que la función toma valores y f el nom- bre asignado a la variable inline. -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -1.5 -1 -0.5 0 0.5 1 1.5 -3 -2 -1 0 1 2 3 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 -1 -0.5 0 0.5 1 x sin(1/x) www.full-ebook.com Gráficos con Matlab 29 C. Representación de función simbólica definida directamente En el caso de introducirla de forma directa, es decir definiendo la variable como simbó- lica, o definiendo entre comillas simples directamente la función, también puede ser dibujada con el comando >>fplot: >> y='sin(x)' y = sin(x) >> fplot(y,[0,pi]) Figura 2.12 Función y=’sin(x)’ con >>fplot Nota: De todas formas, en general, para dibujar funciones simbólicas -tanto de- finidas vía inline, vía Anonymus, o vía variable simbólica o función entre comi- llas simples-, es recomendable por su sencillez, el comando: >>ezplot(función, intervalo) El argumento intervalo es opcional, tomando por defecto el intervalo [0,2 ] si no se le indica. Además este comando ya le pone título a la gráfica con el nom- bre de la función dibujada. Ejemplo 2.6 Dibujar la función y=sin(x) definiéndola de varias formas >> f=@sin(x),ezplot(f) >> f=inline('sin(x)');ezplot(f) >> syms x, y=sin(x); ezplot(y)>> y='sin(x)';ezplot(y) Todas estas instrucciones devuelven la figura: 0 0.5 1 1.5 2 2.5 3 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 www.full-ebook.com Matlab para Matemáticas en ingenierías 30 Figura 2.13 Representación del Ejemplo 2.5 Las figuras creadas en Matlab, se guardan y salvan sin más que acceder a File/Save as en el menú de la ventana de Figure, con la extensión que más interese. Figura 2.14 Imagen de cómo guardar una figura -6 -4 -2 0 2 4 6 -1 -0.5 0 0.5 1 x sin(x) www.full-ebook.com Gráficos con Matlab 31 2.3.1 Representación de funciones creadas como fichero .m Si se definen las funciones desde la ventana del Editor de Matlab, se crea un fichero .m quedando la función almacenada como fichero y no como variable (casos anteriores). Para llamar a ese archivo desde cualquier sesión se ejecuta el comando Open, o bien se hace doble click en su nombre. Este archivo aparecerá en la ventana de Current Direc- tory una vez haya sido cargado. En este último caso, ya no hay que declarar la variable como simbólica al ser introducida como argumento de entrada: Figura 2.15 Introducción de una función con el Editor Para representarla se le referencia con el nombre puesto al archivo creado (debe coin- cidir el nombre de la función con el nombre del archivo). Matlab pone este por defecto pero hay que prestar atención si se efectúan modificaciones para no cambiarle el nom- bre. Esta llamada se hace como argumento carácter, es decir, ‘nombre del archivo’: Figura 2.16 Cómo dibujar una función .m www.full-ebook.com Matlab para Matemáticas en ingenierías 32 2.4 Funciones a trozos: definición y representación Las funciones definidas a trozos pueden ser definidas de diversas formas. En este apar- tado se destacan dos formas distintas, usando fichero .m o función a trozos vectorizada. 2.4.1 Función a trozos desde fichero .m Si se quiere definir y representar, por ejemplo, la función siguiente: se ha de utilizar un poco de programación, ya que una función a trozos no es más que una sentencia de la forma: if, elseif, else, end. Esta definición debe hacerse desde la ventana del Editor de Matlab, icono de NewScript, o más directamente en New/Function. Se crea con ello un archivo .m, que se guarda con el nombre puesto a la función. Para evaluarla basta referirse a ella con su nombre. Ejemplo 2.7 Definir la función a trozos anterior y evaluarla en x=4, 3, 1, 2,-2. En el Editor se introduce la siguiente función: function y=funcion2(x) if x<1 y=x^2; elseif 1<=x&&x<3 y=1; else y=x+1; end Para evaluarla con una sola sentencia: >> valores=[funcion2(4) funcion2(3) funcion2(1) funcion2(2) funcion2(-2)] valores = 5 4 1 1 4 www.full-ebook.com Gráficos con Matlab 33 A la hora de dibujarla se hará uso del comando >>fplot. Como los nombres de las fun- ciones son una cadena carácter, cuando esta es llamada con >>fplot debe ponerse entre comillas simples. Nota: con fplot es importante indicar, como argumento, el tipo de la línea de la gráfica; por ejemplo puntos, para que dibuje los saltos que puedan producirse en la misma. Por defecto los uniría con una línea continua. >> fplot('funcion2',[-5,10],'.'),axis([-5 10 0 10]) Figura 2.17 Representación de función a trozos con >>fplot 2.4.2 Función a trozos vectorizada Directamente en la ventana Command Window, se introducen los distintos trozos de la función mediante operadores lógicos. De cara a dibujarla, hay varias posibilidades: definir previamente la variable a evaluar como un vector de muchas compo- nentes, por ejemplo con el comando >>linspace. dibujarla directamente con fplot, sin definirla, siempre que indiquemos trazo discontinuo para que no una los posibles saltos mediante una línea. Ejemplo 2.8 Definir y representar la función a trozos: Para definirla vectorizada: >> x=linspace(-10,10,100); >> y=(x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x); Para representarla >> plot(x,y,'.'),grid on, title('Función definida a trozos'),axis([-5 5 0 10]) -5 0 5 10 0 1 2 3 4 5 6 7 8 9 10 www.full-ebook.com Matlab para Matemáticas en ingenierías 34 Figura 2.18 Representación usando >>linspace Otra forma de representarla: >> fplot('x^2.*(x<1)+1.*((1<=x)&(x<3))+(x+1).*(x>3)',[-3 5],'b.') Figura 2.19 Representación directa de función a trozos con trazo discontinuo Para evaluar una función vectorizada, es conveniente definirla primero con el comando >>inline (o con Anonymus), y ya entonces pasar a evaluarla con su nombre: -5 -4 -3 -2 -1 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 10 Función definida a trozos -3 -2 -1 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 www.full-ebook.com Gráficos con Matlab 35 >>f=inline('(x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x)') f = Inline function: f(x) = (x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x) >> f(3) ans = 1 O de otra forma, mediante Anonymus: >> f=@(x)(x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x) f = @(x)(x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x) >> salida=[ f(-3) f(4) f(2)] salida = 9 5 1 Nota: Para dibujar los saltos de una función, o una función que vaya a presentar asín- totas, es recomendable usar: a) O el comando >>plot definiendo la variable x con un vector y no con un >>linspace, b) O el comando >>ezplot (más detallado a continuación). Para dibujar una función a trozos se recomienda, o el comando >>plot, o bien el >>fplot pero con trazo discontinuo (puntos o asteriscos o similares, no tra- zado de líneas). El comando >>ezplot, une con trazado continuo los saltos no siendo esto lo deseado. 2.5 Otros comandos para dibujar curvas en el plano y curvas para- métricas: >>ezplot El comando más fácil de usar para dibujar curvas planas definidas por una fórmula matemática (no por un conjunto de valores), es el comando >>ezplot(f) donde: - f es una cadena de caracteres conteniendo la expresión de una función y=f(x), - dibuja la función y=f(x) para x en el intervalo [-2 ,2 ] www.full-ebook.com Matlab para Matemáticas en ingenierías 36 Directamente Matlab abrirá una ventana gráfica como primera representación de la figura; en ella, editando la figura y dándole al icono de “Show Plot Tools and Dock Figure” pueden modificarse ejes, texto y más propiedades del gráfico. >>ezplot(f,[a,b]), lo mismo que el comando anterior para x variando en el intervalo [a,b] Ejemplo 2.9 Representar las funciones 22 3 xy sin cos x , 2 xy sin . >> ezplot('2*sin(x/2)*cos(3*x)'), >> ezplot('2*sin(x/2)*cos(3*x)',[0,pi/2]) Figura 2.20 Representación con >>ezplot(f) y con >>ezplot (f,[a,b]) Nota: los comandos >>ezplot(f), >>ezplot(f,[a,b]), donde f es una expresión de (x,y), dibujan la curva implícitamente definida por f(x,y)=0, para x e y variando en el intervalo [-2 ,2 ] en el primer caso; y para x e y variando en el intervalo [a,b], en el segundo caso. Ejemplo 2.10 Representar la función definida en forma implícita f(x,y)=x2y-1. >> ezplot('x^2*y-1') Figura 2.21 Representación de f(x,y)=x2y-1 -6 -4 -2 0 2 4 6 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2 sin(x/2) cos(3 x) 0 0.5 1 1.5 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 2 sin(x/2) cos(3 x) x y x2 y-1 = 0 -6 -4 -2 0 2 4 6 -6 -4 -2 0 2 4 6 www.full-ebook.com Gráficos con Matlab 37 2.5.1 Curvas en paramétricas Sea una curva en paramétricas r(t) = (x(t), y(t)), con t [a, b]. Una primera forma de dibujarla sería usando las órdenes: >>ezplot(x,y), >>ezplot(x,y,[a,b]) donde - x e y son doscadenas de caracteres conteniendo las expresiones de dos funciones x(t) e y(t). - dibuja la curva de ecuaciones paramétricas x=x(t) y=y(t) para t en el intervalo [0,2 ], en el primer caso y para t [a,b], en el segundo. Ejemplo 2.11 Usando los comandos arriba indicados, representar las curvas >> ezplot('sin(3*t) ', 'cos(3*t)'), ezplot('sin(3*t)','cos(t)') Figura 2.22 Representaciones del ejemplo Otra posibilidad que ofrece Matlab es la siguiente. Para dibujar la gráfica de la curva con 5 t 5, en primer lugar se generan los valores de t en el intervalo indicado: >>t=linspace(-5,5,1000); Se puede dibujar de dos formas distintas (como ocurre con todas las gráficas): >>plot((t.*(t.^2-1))./(t.^2+1),(2*(t.^2-1))./(t.^2+1)) -1 -0.5 0 0.5 1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 x = sin(3 t), y = cos(3 t) x y -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 x = sin(3 t), y = cos(t) x y www.full-ebook.com Matlab para Matemáticas en ingenierías 38 Figura 2.23 Primera representación con >>plot Y otra forma de hacerlo es utilizar el comando >> comet(x(t),y(t)): >>comet((t.*(t.^2-1))./(t.^2+1),(2*(t.^2-1))./(t.^2+1)) Los dos comandos producen el mismo resultado. Sin embargo, la forma de ejecución es diferente. Minimizando un poco la ventana principal de Matlab, se consigue ver simul- táneamente la Command Window y la ventana de gráficas. Al ejecutar este comando, se observa que en la ventana de la figura aparece un circulito, el cometa, que va dibujando la curva. La velocidad de ejecución depende del número de puntos que se hayan generado con el comando >>linspace. 2.6 Curvas planas en coordenadas polares Una curva en coordenadas polares es la imagen de la función r=h( ), donde [ 1, 2]. Un punto de la curva en polares (r0, 0) tiene distancia al origen r0, y el ángulo que forma el vector de posición del punto con el semieje positivo horizontal, medido en sentido positivo, es 0. Por lo tanto, la relación entre las coordenadas polares y las coordenadas cartesianas o rectangulares viene dada por: Para dibujar una curva en polares con Matlab se utiliza el comando >>polar. Los valores del ángulo son generados mediante el comando >>linspace. -5 -4 -3 -2 -1 0 1 2 3 4 5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 www.full-ebook.com Gráficos con Matlab 39 Ejemplo 2.12 Dibujar la curva cardioide r = 2 4cos( ), con . >> theta=linspace(-pi,pi,100);r=2-4*cos(theta);polar(theta,r) Figura 2.24 Representación en coordenadas polares 2.6.1 Otros comandos para curvas en coordenadas polares >>ezpolar(f), >> ezpolar(f,[a,b]) donde: - f es una cadena de caracteres conteniendo la expresión de una función f( ) - dibuja la curva definida en coordenadas polares por r= f( ) para variando en el intervalo [0,2 ], en el primer caso y en el intervalo [a,b], en el segundo. Ejemplo 2.13 a) Dibujar la curva rosácea de 5 hojas en polares r=cos (5 ). b) Dibujar la curva en polares r=sin(2 , en el intervalo [0, ]. >> ezpolar('cos(5*theta)',[0,2*pi]), ezpolar('sin(2* )*cos(3* )',[0,pi]) Figura 2.25 Representaciones de curvas en polares 2 4 6 30 210 60 240 90 270 120 300 150 330 180 0 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 0.2 0.4 0.6 0.8 1 30 210 60 240 90 270 120 300 150 330 180 0 r = cos(5 ) a) 0.2 0.4 0.6 0.8 1 30 210 60 240 90 270 120 300 150 330 180 0 r = sin(2 t) cos(3 t) www.full-ebook.com Matlab para Matemáticas en ingenierías 40 2.6.2 Cambios de coordenadas rectangulares a polares Cuando se desea cambiar las coordenadas en las que viene expresada una función, existen comandos que lo hallan de forma directa. Estos son: >> [TH,R] = cart2pol(X,Y) ……………… pasa de coordenadas cartesianas a polares. El ángulo lo devuelve en radianes. Nota: Estos comandos sólo sirven para hallar puntos, es decir, los argumentos no pueden ser variables simbólicas. Para calcular ecuaciones en coordenadas cua- lesquiera, ha de hacer uno mismo las cuentas; o bien hacer cambio de variable y simplificar con el comando >>simplify. Ejemplo 2.14 Obtener en polares la ecuación de la circunferencia (x-1)2+y2=4. >> syms x y r theta, f=(x-1)^2+y^2-4, F=simplify(subs(f,{x,y},[r*cos(theta),r*sin(theta)])) f = (x - 1)^2 + y^2 - 4 F = r^2 - 2*cos(theta)*r – 3 Por lo tanto, la ecuación en polares de la circunferencia quedaría: r2 - 2cos(theta) r = 3. Nota: Si la función se define vía inline, en vez del comando >>subs, bastará con evaluar la función en (rcos(theta),rsin(theta)). 2.7 Relleno de regiones del plano En ocasiones, puede interesar sombrear regiones del plano o áreas encerradas entre curvas. Esto puede realizarse en Matlab mediante el comando >>fill. Si las curvas se cortan, previamente han de hallarse los puntos de corte, y posterior- mente, para rellenar, recorrer las curvas desde sus puntos de corte de izquierda a dere- cha. Esto último lo hace el comando >>fliplr. Si las curvas a rellenar son polígonos es más sencillo. Basta indicar los valores de las x y de las y de los puntos de corte y rellenar con >>fill. Todo esto va a ser ilustrado con ejemplos para entender mejor el comando y sus argu- mentos. Primero, es necesario saber el punto de corte de las gráficas, el cual se hallará con el comando >>solve (este comando se desarrolla ampliamente en el siguiente capí- tulo). www.full-ebook.com Gráficos con Matlab 41 Ejemplo 2.15 Dibujar las curvas y=x2, y=2-x2 y rellenar el área encerrada entre ambas curvas. >>% para encontrar los puntos de corte >> solve(x^2==2-x^2,x) ans = 1 -1 Aunque el dominio de representación será x [-2,2], la región a pintar se encuentra entre los puntos de corte, x [-1,1]. La representación de las curvas, la región pintada y los comandos utilizados, se pueden consultar en la Figura 2.26 (el tercer argumento ‘c’ en >>fill indica el color, cyan en este caso) >> subplot(1,3,1); >>x=linspace(-2,2,50); >>plot(x,x.^2,'b-',x,2- x.^2,'b--') >> subplot(1,3,2); >>x=linspace(-2,2,50); >>plot(x,x.^2,'b-',x,2-x.^2,'b--') >>hold on; >> xn=linspace(-1,1,10); >>plot([xn;xn],[xn.^2;2- xn.^2],'k--') >> subplot(1,3,3); >>x=linspace(-2,2,50); >>plot(x,x.^2,'b-',x,2-x.^2,'b--') >> hold on; >> xn=linspace(-1,1,50); >>fill([xn,fliplr(xn)],[xn.^2,flipl r(2-xn.^2)],'c') Figura 2.26 Representaciones de regiones sombreadas con >>fill y >>fliplr www.full-ebook.com Matlab para Matemáticas en ingenierías 42 En el caso de representación de polígonos se puede proceder de dos modos diferentes, como se muestra en los Ejemplos 2.16 y 2.17. Ejemplo 2.16 Dibujar el triángulo cuyos vértices son (0,0), (0,1) y (1,1). Rellenar el área encerrada por este triángulo. >> x=[0,1,0];y=[0,1,1]; % Vértices del triángulo recorridos de izquierda a derecha >> fill(x,y,'b'), axis square Figura 2.27 Representación de relleno de un polígono usando >>fill Ejemplo 2.17 Dada la recta y=x, dibujar el área encerrada por esta recta y los ejes coordenados en el primer cuadrante. Evidentemente debe salir lo mismo que el ejemplo 2.16. Primero, se dibujará la recta y=x, y luego se rellenará la figura, recorriéndola de iz- quierda a derecha, con el comando >>fliplr. Es decir: >>x=linspace(0,1,100);y=x;plot(x,y,'k-'),hold on, >>xn=linspace(0,1,100);yn=linspace(1,1,100);fill([xn,fliplr(xn)],[xn,yn],'b') Figura 2.28 Representación de relleno de un polígono usando >>fliplr 0 0.2 0.4 0.6 0.8 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 www.full-ebook.comGráficos con Matlab 43 Nota: Se obtendría el mismo relleno, pero recorriendo la figura de izquierda a derecha y comenzando por la parte superior, ejecutando: >>x=linspace(0,1,100);y=x;plot(x,y,'k-'), hold on >> xn=linspace(0,1,100);yn=linspace(1,1,100);fill([xn,fliplr(xn)],[yn,fliplr(xn)],'b') 2.8 Funciones de varias variables. Superficies 2.8.1 Representación de funciones en 3D: z=f(x,y). Comandos más usados Una superficie se define por la expresión z=f(x,y), siendo x,y las variables independien- tes. Los comandos más usados son: Comando f expresión de dos variables Dibuja (x,y) varía en >> ezmesh(f) z=f(x,y) En el cuadrado [- , ] [- , ] >> ezmesh(f,[a,b]) z=f(x,y) en el cuadrado [a,b] [a,b] >> ezmesh(f,[a,b,c,d]) z=f(x,y) en el rectángulo [a,b] [c,d] El proceso para dibujar consiste en crear una malla con segmentos coloreados, en fun- ción de los valores de los extremos. Editando posteriormente la gráfica, se pueden cambiar colores, ejes y demás propiedades. En caso de querer que los ejes X e Y se orienten al revés, en la ventana de la figura, con los ejes seleccionados, se elige la opción Reverse. Ejemplo 2.18 Representar la superficie dada por la función >> ezmesh('x*exp(-x^2 - y^2)') -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 -0.5 0 0.5 x x exp(-x2 - y2) y www.full-ebook.com Matlab para Matemáticas en ingenierías 44 Otros comandos interesantes para representar superficies son: >>ezmesh(... , 'circ') ........................... dibuja la función correspondiente sobre un círculo centrado en el origen. >>ezsurf(f) ......................................... dibuja una superficie coloreada z=f(x,y). Sus argumentos son como en >>ezmesh. Ejercicio: Ejecutar las órdenes indicadas y observar las diferencias: >>ezmesh('x*exp(-x^2 - y^2)','circ'), y >>ezmesh('x*exp(-x^2 - y^2)'). Ejemplo 2.19 La sentencia para representar es: >> ezsurf('sin(sqrt(x^2+y^2))/sqrt(x^2+y^2)') 2.8.2 Curvas de nivel de una superficie Para representar curvas de nivel pueden utilizarse los comandos: >> ezcontour(f), >> ezcontour(f,[a,b]), >>ezcontour(f,[a,b,c,d]) Estos comandos dibujan las líneas de nivel (isovalores) de la función z=f(x,y). Pueden ejecutarse los siguientes ejemplos para ir comprobando los resultados. Ejemplo: >> ezcontour('x*exp(-x^2 - y^2)') >>ezcontourf(. . . )…………. hace lo mismo que >>ezcontour, pero rellenando con un color sólido las distintas zonas determinadas por las líneas de nivel. Ejemplo: >> ezcontourf('x*exp(-x^2 - y^2)') x exp(-x2 - y2) x y -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 www.full-ebook.com Gráficos con Matlab 45 >>ezmeshc(f) ………………con los mismos argumentos que >>ezmesh, dibuja simul- táneamente las líneas de nivel y la superficie. Ejemplo: >> ezmeshc('sin(u/2)*sin(v/2)') >>ezsurfc(f)………………..como >>ezsurf pero, además, dibuja las líneas de nivel. Ejemplo: >>ezsurfc('sin(sqrt(x^2+y^2))/sqrt(x^2+y^2)') 2.8.3 Curvas en el espacio Para dibujar curvas en el espacio en paramétricas se tienen los comandos detallados a continuación: >> plot3(x,y,z)…………… dibuja una línea en el espacio a través de los puntos cuyas coordenadas son los elementos de los vectores x, y, z. Ejemplo: >>t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t, ’r’); >>ezplot3(x,y,z), >>ezplot3(x,y,z,[a,b]) ……… donde - x , y , z son tres cadenas de caracteres conteniendo las expresiones de tres fun- ciones x(t) , y(t) , z(t) (por eso en la llamada de la función deben ponerse entre comillas simples) -6 -4 -2 0 2 4 6 -6 -4 -2 0 2 4 6 -1 -0.5 0 0.5 1 u sin(u/2) sin(v/2) v -1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1 0 10 20 30 40 www.full-ebook.com Matlab para Matemáticas en ingenierías 46 - dibujan la curva de ecuaciones paramétricas x=x(t), y=y(t), z=z(t), para t en el intervalo [0,2 ], en el primer caso y para t [a,b], en el segundo. Ejemplo: >>ezplot3('3*cos(t)','2*t.*sin(t)','sqrt(t)'), ezplot3('3*cos(t)','3*t.*sin(t)','sqrt(t)') 2.8.4 Superficies de revolución Matlab tiene implementadas algunas funciones para ello: Cilindro: El comando >>cylinder(R,n) genera automáticamente un cilindro de revolución de radio R, donde n es el número de puntos de la circunferencia de la base del cilindro. Si no se indica el segundo argumento, el número n es, por defecto, 20. Esfera, Elipsoide: Existen de forma similar al comando anterior, >>sphere, >>ellipsoid. Lo realmente interesante de este comando >>cylinder, es que también admite radios variables R(t), donde t [a, b]. De esta forma, puede ser utilizado para obtener las gráficas de diferentes tipos de superficies de revolución, donde la generatriz es una función definida por R(t). No conviene poner demasiados puntos a la hora de generar el vector, de cara a apreciar bien el dibujo. Ejemplo 2.20 Dibujar la superficie de revolución que se obtiene al girar la curva z=e-y alrededor del eje OZ. En este caso, la función radio es r=r(z), y por lo tanto será y=-ln(z). Con lo que la ecuación de la superficie vendrá dada por: Para ello en Matlab se introduce: -4 -2 0 2 4 -10 -5 0 5 0 0.5 1 1.5 2 2.5 3 x x = 3 cos(t), y = 2 t sin(t), z = sqrt(t) y z -4 -2 0 2 4 -20 -10 0 10 0 0.5 1 1.5 2 2.5 3 x x = 3 cos(t), y = 3 t sin(t), z = sqrt(t) y z www.full-ebook.com Gráficos con Matlab 47 >>t=linspace(0.1,5);r=-log(t);cylinder(r) Figura 2.29 Superficie de revolución Superficies de revolución con respecto a cualquier eje En el supuesto de que la superficie de revolución no venga de girar alrededor del eje OZ, debe tenerse especial atención. Ejemplo 2.21 Dibujar la superficie de revolución que se obtiene al girar la curva y= , alrededor del eje OX. En este caso, la función radio es r=r(x) y por lo tanto será y= . Así, la ecuación de la superficie vendrá dada por: En Matlab se introducen las expresiones: >> t=linspace(-5,5);r=exp(-t);cylinder(r) Figura 2.30 Superficie de revolución mostrando como eje el vertical -2.5-2-1.5-1-0.500.511.522.5 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -150 -100 -50 0 50 100 150 -150 -100 -50 0 50 100 150 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 www.full-ebook.com Matlab para Matemáticas en ingenierías 48 Esta no es la gráfica esperada ya que el eje de rotación debe ser el eje OX. Sin embargo, la superficie es la correcta. Simplemente, puede interpretarse la represen- tación gráfica pensando que, en este caso, el eje vertical es el eje OX, y girar el orden de los ejes en sentido contrario a las agujas del reloj. Quedando: Figura 2.31 Superficie de revolución con los ejes indicados Nota: En el caso de que querer dibujar una superficie de revolución que gire con respecto al eje OX, o bien eje OY, y obtener una representación realista en di- chos ejes, debe parametrizarse la superficie. La parametrización en este caso es sencilla, ya que simplemente deben parame- trizarse las circunferencias que se obtienen en el plano deseado, teniendo en cuenta que los radios son variables, y dejar como parámetro la variable que nos da el radio. Se ilustra esto mediante el siguiente ejemplo. Ejemplo 2.22 Dibujar la superficie de revolución que se obtiene de girar la curva y=x2 con respecto al eje OY. Se va a realizar tanto la representación de la curva, como de la superficie de revolución obtenida. Como el giro se efectúa con respecto al eje OY, la función radio es . Y la ecuación de la superficie de revolución será: En este caso, la parametrización de las circunferencias vendría dada por: -150 -100 -50 0 50 100 150 -150 -100 -50 0 50 100 150 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1EJE Y EJE Z E JE X www.full-ebook.com Gráficos con Matlab 49 Puede hacerse de varias formas: Opción 1: asignar a la variable y el parámetro t (como luego es un radicando, sólo to- mará valores positivos) >> t=-5:.1:5;y1=t.^2;subplot(1,2,1),plot(t,y1,'b'),title('Curva a girar'),axis square >> subplot(1,2,2),t=0:.1:5;u=0:.1:2*pi;surf(sqrt(t)'*cos(u),t'*ones(size(u)),sqrt(t)'*sin(u)) Figura 2.32 Curva originaria y superficie generada La orientación de los ejes ha sido cambiada desde la ventana gráfica, dándole a la op- ción de ‘Reverse’ para el eje OY. También hubiera bastado poniendo como argumento de la variable y: >> t=-5:.1:5;y1=t.^2;subplot(1,2,1),plot(t,y1,'b'),title('Curva a girar'),axis square >> subplot(1,2,2),t=0:.1:5;u=0:.1:2*pi;surf(sqrt(t)'*cos(u),t,sqrt(t)'*sin(u)) Para elegir el color de la superficie con el comando >>surf, es suficiente añadir un último argumento >> surf(sqrt(t)'*cos(u),t'*ones(size(u)),sqrt(t)'*sin(u),’FaceColor’,blue’) -5 0 5 0 5 10 15 20 25 Curva a girar -4 -2 0 2 4 0 1 2 3 4 5 -3 -2 -1 0 1 2 3 www.full-ebook.com Matlab para Matemáticas en ingenierías 50 Opción 2: parametrizar de otra manera para que no haya radicales, esta vez asignar a la variable y el valor t2, es decir, el parámetro t es . >> t=-5:.1:5;y1=t.^2;subplot(1,2,1),plot(t,y1,'b'),title('Curva a girar'),axis square >> subplot(1,2,2), u=0:.1:2*pi;surf(t'*cos(u),t.^2,t'*sin(u),'FaceColor','blue') Figura 2.33 Curva origen y superficie de revolución obtenida Opción 3: Con el comando >>cylinder. Este exige darle como argumento la función radio, aunque dibujará siempre en el eje OZ. Es el interesado el que debe saber que, en realidad, esa figura es en torno al eje OY -en este caso-, y en cada ejercicio elegir la rotación de ejes adecuada: >> t=0:.1:5;y=sqrt(t);cylinder(y) Figura 2.34 Ejecución del comando >>cylinder -5 0 5 0 5 10 15 20 25 Curva a girar -5 0 5 0 10 20 30 -5 0 5 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5-3 -2 -1 0 1 2 3 0 0.2 0.4 0.6 0.8 1 EJE ZEJE X E JE Y www.full-ebook.com Gráficos con Matlab 51 2.8.5 Superficies Paramétricas Una superficie S puede ser representada por una función vectorial r(u,v) = (x, y, z), donde (u,v) Ruv 2. Las ecuaciones x=x(u,v), y=y(u,v), z=z(u,v), se denominan ecuaciones paramétricas de S. Una superficie S parametrizada por r(u,v) es suave en un punto (u0,v0) si dichas fun- ciones (u,v) son continuas, tienen primeras derivadas parciales continuas en (u0,v0) y existe plano tangente a S en (u0,v0). Si se quiere dibujar superficies expresadas en paramétricas, los comandos a utilizar son: >> ezmesh(x,y,z), >> ezmesh(x,y,z,[a,b]), >>ezmesh(x,y,z,[a,b,c,d]) donde - x, y, z son expresiones de funciones de dos variables - dibujan la superficie de coordenadas paramétricas x=x(u,v), y=y(u,v), z=z(u,v) para (u,v) variando en el cuadrado [-2 ,2 ] [-2 ,2 ] en el primer caso; en el cuadrado [a,b] [a,b] en el segundo; y en el rectángulo [a,b] [c,d] en el tercer caso. Ejemplo: >> ezmesh('u*cos(v)','u*sin(v)','v',[-pi,pi]) Figura 2.35 Representación del helicoide -4 -3 -2 -1 0 1 2 3 4 -4 -2 0 2 4 -4 -3 -2 -1 0 1 2 3 4 x y z www.full-ebook.com Matlab para Matemáticas en ingenierías 52 También puede ser usado el comando >>mesh, creando previamente una matriz de puntos o definida por el usuario, o con >>meshgrid ya que los argumentos deben ser matrices de puntos (puede verse el ejemplo desarrollado en el tema de funciones de varias variables). Ejemplo 2.23 Sea el semicono de ecuación z2=x2+y2 con z [0,1]. Parametrizar y re- presentar para los valores de z [0,1]. Para realizar la parametrización, considérese que sobre planos paralelos al plano XY se tienen circunferencias con radio variable: x(u,v)= u*cos(v), y(u,v)=u*sin(v), Sustituyendo en la ecuación del cono, se obtiene la variable z que, en este caso, es z(u,v)= u con u [0,1], v [0,2 ]. Las expresiones necesarias para representar el semicono son: >> u=linspace(0,1,20);v=linspace(0,2*pi,20); >> [U,V]=meshgrid(u,v); >> X=U.*cos(V);Y=U.*sin(V);Z=U; Figura 2.36 Representación del semicono parametrizado Ejemplo 2.24 Sea el paraboloide de ecuación z=2-x2-y2 con z . Parametrizar y representar el trozo de paraboloide con z [0,2]. Para realizar la parametrización, considérese que sobre planos paralelos al plano XY se tienen circunferencias con radio variable x(u,v)= u*cos(v), y(u,v)=u*sin(v), -1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1 0 0.2 0.4 0.6 0.8 1 www.full-ebook.com Gráficos con Matlab 53 Sustituyendo en la ecuación del paraboloide, se obtiene la variable z que, en este caso, es z(u,v)= 2-u2 donde u [0,1], v [0,2 ]. Como del ejemplo anterior ya se tienen valores asignados para u y v, en este caso no hace falta volver a definirlas: >> X=U.*cos(V);Y=U.*sin(V);Z=2-U.^2; >> surf(X,Y,Z);axis([-1 1 -1 1 0 2]) Figura 2.37 Representación del paraboloide Ejercicio: Indicar qué órdenes deben darse para representar conjuntamente el semi- cono y el paraboloide de los ejemplos anteriores y que el resultado final sea la siguiente representación: Figura 2.38 Representación conjunta del semicono y paraboloide -1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1 1 1.2 1.4 1.6 1.8 2 -1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1 0 0.5 1 1.5 2 www.full-ebook.com Matlab para Matemáticas en ingenierías 54 2.8.6 Cambios de coordenadas a cilíndricas y esféricas y viceversa >>[TH,R,Z] = cart2pol(X,Y,Z) .............. pasa de coordenadas cartesianas a cilíndricas. >>[X,Y,Z] = pol2cart(TH,R,Z) .............. pasa de coordenadas cilíndricas a cartesianas. >>[TH,PHI,R] = cart2sph(X,Y,Z) ......... pasa de coordenadas cartesianas a esféricas. El orden de los argumentos de salida es: TH es el ángulo en sentido contrario a las agujas del reloj en el plano XY, PHI es el ángulo de elevación desde el plano XY y R es el radio. >>[X,Y,Z] = sph2cart(TH,PHI,R) ......... pasa de coordenadas esféricas a cartesianas 2.9 Ejercicios 1.- Representa las siguientes gráficas: a) , b) , c) , d) m(x)=log2(x-2), e) , f) , g) 2.- a) Dibujar en una sola ventana con dos subventanas las funciones y = x2 3x – 2, z = x3 2x + 1 con x variando entre -5 y 5 a intervalos de 0.02. Marcar con un ’+’ en color rojo el punto (2,1) en ambas gráficas. b) Además de las anteriores, dibujar ahora 4 subventanas dispuestas de dos en dos de forma que en cada una de ellas se representen las funciones anteriores y además, y= -x2 + 3x + 2, z= -x3 + 2x. c) ¿Qué se observa en las gráficas anteriores? ¿Cuáles son los coeficientes directores de los polinomios en cada caso? ¿Qué puede decirse de los límites en el infinito sin necesidad de calcularlos? 3.- Dibujar la superficie z = sin(x) + cos(y), donde x e y toman valores entre -5 y 5 a intervalos de 0.1. 4.- Dibujar la función y = x e x2 con x variando entre -5 y 5 a intervalos de 0.05. 5.- Dibuja la superficie z= , en el rectángulo [-2,2] [-2,2]. www.full-ebook.com Gráficos con Matlab 55 6.- Dibujar en la misma ventana las funciones , , . ¿Qué puede decirse sobre la relación existente entre las tres funciones? 7.- Representar las siguientes funciones a trozos y evaluarlas en distintos valores de cada uno de los trozos. Dibujar y definir alguna de ellas de dos formas distintas: a) f(x)= , b) g(x)= 8.- Indicar, desde la representación gráfica, los valores de los límites más importantes de las funciones anteriores: puntos
Compartir