Universidad Politécnica de Madrid Ingeniería de Minas INTRODUCCIÓN INTRODUCCIÓN A A MAPLE MAPLE Prof. Carlos Conde Lázaro Prof. Arturo Hidalgo López Prof. Alfredo López Benito Departamento de Matemática Aplicada y Métodos Informáticos Febrero, 2007 1 Universidad Politécnica de Madrid Ingeniería de Minas OPCIONES OPCIONES INICIALES INICIALES DE DE ENTORNO ENTORNO Classic Worksheet Maple 9.lnk Maple 9.lnk Entorno Clásico (similar al de versiones de MAPLE anteriores) Nuevo entorno (no existente en las versiones anteriores) Departamento de Matemática Aplicada y Métodos Informáticos 2 Universidad Politécnica de Madrid Ingeniería de Minas TIPOS TIPOS DE DE LÍNEAS LÍNEAS EN EN MAPLE MAPLE [> Líneas para escribir instrucciones ejecutables [ Líneas de texto (no ejecutables) Por defecto se ceran como ejecutables ( [ > ). Se convierten en líneas de texto pinchando sobre el icono T Para abrir nuevas líneas: Icono [> : Abre línea debajo de la actual Ubicarse sobre el corchete [ y pulsar “return”: Abre línea encima de la actual Departamento de Matemática Aplicada y Métodos Informáticos 3 Universidad Politécnica de Madrid Ingeniería de Minas Grupos Grupos de de ejecución ejecución Instrucciones y textos pueden escribirse en más de una línea. Y más de una línea pueden escribirse dentro de un mismo “corchete” formando un “grupo de ejecución”. Para agrupar en un mismo “corchete” más de una línea, puede presionarse la tecla de mayúscula ( ) y, sin dejar de presionarla, presionar la tecla de Return ( ) > Tras esta línea se presionó “Mayúscula + Return” Y tras esta también Y se volvió a presionar “Mayúscula + Return” Para finalizar el ejemplo presionando sólo “Return” Departamento de Matemática Aplicada y Métodos Informáticos 4 Universidad Politécnica de Madrid Ingeniería de Minas Secciones Secciones en en una una “Hoja “Hoja MAPLE” MAPLE” Los programas, o procedimientos, pueden escribirse en secciones de MAPLE. Se identifican con un botón o en los que se pueden incluir nuevas secciones. + - Para crear una sección se usa el botón Con el mismo botón pueden crearse subsecciones y sub-sub-secciones. Para deshacer una sección se utiliza el botón Departamento de Matemática Aplicada y Métodos Informáticos 5 Universidad Politécnica de Madrid Ingeniería de Minas Finalización Finalización de de líneas líneas ejecutables ejecutables Finalización de las líneas ejecutables: : ; Ejecuta la instrucción sin mostrar el resultado Ejecuta la instrucción mostrando el resultado Departamento de Matemática Aplicada y Métodos Informáticos 6 Ingeniería de Minas Universidad Politécnica de Madrid Operadores Operadores Aritméticos Aritméticos + Suma - Resta * Producto / ** ó ^ sqrt( ) División Potenciación Raíz Cuadrada Las operaciones se pueden agrupar usando paréntesis ( ) En los números decimales se separa la parte entera de la decimal con un punto decimal ( . ) Departamento de Matemática Aplicada y Métodos Informáticos 7 Ingeniería de Minas Universidad Politécnica de Madrid Ejercicio Ejercicio Programar en una línea y obtener el resultado decimal de : ( 5.23 + 2·4.23 ) 3 13 − 2 + 3·9 SOLUCIÓN: [ > (5.23+2.*4.23)**3 - sqrt(13/(2+3*9)); 1 Resultado: 2565.726409 − · 377 29 Departamento de Matemática Aplicada y Métodos Informáticos 8 Ingeniería de Minas Universidad Politécnica de Madrid Evaluación Evaluación de de expresiones expresiones MAPLE opera en aritmética exacta Para obtener el número decimal que aproxima el resultado de una operación se puede seguir alguno de los dos caminos siguientes: Escribir los números enteros acabando en un punto decimal Utilizar el comando [> evalf( expresión, n) Expresión a evaluar Departamento de Matemática Aplicada y Métodos Informáticos Número de dígitos del resultado 9 Ingeniería de Minas Universidad Politécnica de Madrid Ejercicio Ejercicio 11 Programar en una línea y obtener el resultado decimal de : ( 5.23 + 2·4.23 ) a) con 10 dígitos; 3 13 − 2 + 3·9 b) con 14 dígitos Solución: [ > (5.23+2.*4.23)**3 - sqrt(13./(2+3*9)); 2565.056875 [ > evalf((5.23+2.*4.23)**3-sqrt(13./(2+3*9)),14); 2565.0568749366 Departamento de Matemática Aplicada y Métodos Informáticos 10 Universidad Politécnica de Madrid Ingeniería de Minas Asignación Asignación de de resultados resultados aa variables variables Los resultados de una operación se pueden conservar asignándoselos a un nombre. El operador de asignación es: := [> nombre := lo que se quiere guardar con el nombre Para visualizar lo que se almacena en una variable basta con escribir su nombre (y acabar en ; o en :) Ejemplo: [> resultado1:=7*24.: [> resultado1; 168. IMPORTANTE: MAPLE diferencia mayúsculas de minúsculas Departamento de Matemática Aplicada y Métodos Informáticos 11 Ingeniería de Minas Universidad Politécnica de Madrid Algunas Algunas Funciones Funciones Predefinidas Predefinidas de de MAPLE MAPLE Las siguientes funciones se evalúan en lo que valga la la expresión expr. Sintaxis MAPLE Equivalencia matemática [> exp(expr); eexpr [> log(expr); ln(expr) [> ln(expr); ln(expr) [> log10(expr); log(expr) [> log[n](expr); logn(expr) [> abs(expr); |expr| Departamento de Matemática Aplicada y Métodos Informáticos 12 Ingeniería de Minas Universidad Politécnica de Madrid Algunas Algunas Funciones Funciones Predefinidas Predefinidas de de MAPLE MAPLE (cont.) (cont.) Las siguientes funciones se evalúan en lo que valga la la expresión expr. Sintaxis MAPLE Equivalencia matemática [> sin(expr); sin(expr) [> cos(expr); cos(expr) [> tan(expr); tg(expr) [> sec(expr); sec(expr) [> csc(expr); cosec(expr) [> cot(expr); cotg(expr) Departamento de Matemática Aplicada y Métodos Informáticos expr se considera en radianes 13 Universidad Politécnica de Madrid Ingeniería de Minas Algunas Algunas Funciones Funciones Predefinidas Predefinidas de de MAPLE MAPLE (cont.) (cont.) Las siguientes funciones se evalúan en lo que valga la la expresión expr. Sintaxis MAPLE Equivalencia matemática [> arcsin(expr); arcsen(expr) [> arccos(expr); arccos(expr) [> arctan(expr); [> arcsec(expr); arctg(expr) arcsec(expr) [> arccsc(expr); [> arccot(expr); arccosec(expr) arccotg(expr) Departamento de Matemática Aplicada y Métodos Informáticos resultado en radianes 14 Ingeniería de Minas Universidad Politécnica de Madrid Algunas Algunas constantes constantes en en MAPLE MAPLE Número e: exp(1); Número S: Pi Unidad imaginaria: I Modificación de los dígitos de trabajo en MAPLE por defecto Por defecto MAPLE trabaja con números de 10 dígitos. Si se desea variar para que trabaje con n dígitos se debe escribir la instrucción: [> Digits:=n; Departamento de Matemática Aplicada y Métodos Informáticos 15 Universidad Politécnica de Madrid Ingeniería de Minas Ejercicio Ejercicio 22 Trabajando con 20 dígitos: 1º) Almacena en la variable A el valor de la expresión: ⎛4 ⎞ 5 * sen ⎜ ·π ⎟ ⎝3 ⎠ 2º) Almacena en la variable B el valor de: ⎛ ⎛ e ⎞⎞ ln ⎜ cos ⎜ ⎟⎟ ⎝ 9·π ⎠ ⎠ ⎝ 3º) Obtén el resultado de AB. Deben evaluarse con 20 dígitos los valores de A, B y AB Departamento de Matemática Aplicada y Métodos Informáticos 16 Universidad Politécnica de Madrid Ingeniería de Minas Solución Solución al al ejercicio ejercicio 22 [> A:=evalf(5*sin(4*Pi/3),20); A:= -4.3301270189221932338 [> B:=evalf(ln(cos(exp(1)/sqrt(9*Pi))),20); B:= -.13678951856254066353 [> evalf(A**B,20); .74393206723465541471 – .34094605986448542823 I Departamento de Matemática Aplicada y Métodos Informáticos 17 Universidad Politécnica de Madrid Ingeniería de Minas Reinicio Reinicio de de procesos procesos de de cálculo cálculo Para “limpiar” los valores de todas las variables y comenzar un proceso nuevo se utiliza la instrucción: [> restart; Cuando se ejecuta “restart” es como si se iniciase MAPLE Departamento de Matemática Aplicada y Métodos Informáticos 18 Universidad Politécnica de Madrid Ingeniería de Minas Definición Definición de de funciones funciones Definición de funciones en MAPLE [> nombre_función:= (argumentos) -> expresión Ejemplos: f(x) = 5·x·cos(e (4 / x 2 ) ) [> f:=x->5*x*cos(exp(4/x^2)); sen(x + y) g(x, y) = 2 + cos(x − y) [> g:=(x,y)->sin(x+y)/(2+cos(x-y)); Departamento de Matemática Aplicada y Métodos Informáticos 19 Universidad Politécnica de Madrid Ingeniería de Minas Evaluación Evaluación de de funciones funciones en en MAPLE MAPLE [> nombre_función(valor argumentos); Ejemplos: [> f:=x->5*x*cos(exp(4/x^2)): [> f(7.); 16.34017590 [> g:=(x,y)->sin(x+y)/(2+cos(x-y)); [> g(0.36,4.*Pi); [> evalf(%); sin(.36 + 4·π) 2 + cos(−.36 + 4·π ) .1199886302 % usa el último valor calculado por MAPLE Departamento de Matemática Aplicada y Métodos Informáticos 20 Universidad Politécnica de Madrid Ingeniería de Minas Dibujo Dibujo de de de de funciones funciones yy expresiones expresiones en en MAPLE MAPLE “Conviene” cargar la librería plots: [> with(plots): Para dibujar una función: Comando básico: Intervalo de dibujo [> plot(nombre_función, a..b); Ejemplo: [> f:=x->5*x*cos(exp(4*x**2)): [> plot(f,0..Pi/3); Departamento de Matemática Aplicada y Métodos Informáticos 21 Universidad Politécnica de Madrid Ingeniería de Minas Dibujo Dibujo de de de de funciones funciones yy expresiones expresiones en en MAPLE MAPLE (algunas (algunas opciones) opciones) [> plot(nombre_función, a..b, opciones); Se pueden indicar las opciones que se deseen (separadas por comas) entre las siguientes: color = black, red, blue, green, gray, yellow, pink, brown, gold, ...... Æ Color del gráfico thickness = 0, 1, 2 ó 3 Æ Grosor del grafo title = “Título” Æ Título del dibujo font = [Tipo, Aspecto, Tamaño] Æ Tipo de letra TIMES, COURIER, HELVETICA, .. BOLD, OBLIQUE, ... 8, 10, 12, 24, .. Departamento de Matemática Aplicada y Métodos Informáticos 22 Universidad Politécnica de Madrid Ingeniería de Minas Dibujo Dibujo de de de de funciones funciones yy expresiones expresiones en en MAPLE MAPLE (algunas (algunas opciones) opciones) axesfont = [Tipo, Aspecto, Tamaño] Æ Tipo de letra linestyle = 1, 2, 3 ó 4 Æ Tipo de línea de los ejes labels = [“Eje X”, “Eje Y”] Æ Etiquetas de los ejes Continua Punteada Discontinua a tramos Discontinua a tramos separados por puntos numpoints = n Æ Número de puntos para hacer el dibujo tickmarks = [n, m] Æ Número de coordenadas señaladas en los ejes del dibujo ..... y otras (que pueden consultarse con Help) Departamento de Matemática Aplicada y Métodos Informáticos 23 Universidad Politécnica de Madrid Ingeniería de Minas Ejercicio Ejercicio 33 1 − e− x 1º) Dibujar la función f(x) = en [0, 5] 1.5 + cos(x) 2º) Repetir el dibujo en trazo grueso, discontinuo y color azul 3º) Añadir al gráfico anterior el título ‘Mi primer dibujo’ escribiendo el título en letra Helvética negrita y con tamaño de 20 puntos Departamento de Matemática Aplicada y Métodos Informáticos 24 Universidad Politécnica de Madrid Ingeniería de Minas Solución Solución al al ejercicio ejercicio 33 [> f:=x->(1-exp(-x))/(1.5+cos(x)): [> plot(f,0..5); [>plot(f,0..5,thickness=4,linestyle=3,color=blue); Departamento de Matemática Aplicada y Métodos Informáticos 25 Universidad Politécnica de Madrid Ingeniería de Minas Solución Solución al al ejercicio ejercicio 33 (cont.) (cont.) [> plot(f,0..5,thickness=4,linestyle=3,color=blue, title="Mi primer dibujo", titlefont=[HELVETICA,BOLD,20]); Departamento de Matemática Aplicada y Métodos Informáticos 26 Universidad Politécnica de Madrid Ingeniería de Minas Otra Otra forma forma de de dibujar dibujar funciones funciones [> plot(nombre_función(argumento), argumento= a..b, opciones); Diferencia: En el eje X pone el nombre de la variable “argumento” Departamento de Matemática Aplicada y Métodos Informáticos 27 Universidad Politécnica de Madrid Ingeniería de Minas Dibujo Dibujo de de expresiones expresiones Para dibujar una expresión: [> plot(expr , arg= a..b, opciones); Donde arg es el nombre de la variable que figure en la expresión y expr es la expresión o el nombre de la variable a la que se asignó la expresión Departamento de Matemática Aplicada y Métodos Informáticos 28 Universidad Politécnica de Madrid Ingeniería de Minas Ejemplo Ejemplo [> a:=x*(x+cos(x)): [> plot(a,x=0..5,thickness=2,linestyle=2, color=brown,title="x*(x+cos(x))", titlefont=[TIMES,ITALIC,18],tickmarks=[5,10]); Departamento de Matemática Aplicada y Métodos Informáticos 29 Universidad Politécnica de Madrid Ingeniería de Minas Visualización Visualización de de varios varios dibujos dibujos en en un un mismo mismo gráfico gráfico Se usa el comando display de la librería plots. Por ello, antes de usarlo debe cargarse la librería: [> with(plots): Paso 1º: Construir cada una de las gráficas asignándoselas a una variable [> dibu1:=plot(expr1 , arg= a..b, opciones): [> dibu2:=plot(expr2 , arg= a..b, opciones): [> dibu3:=plot(nombre_func , a..b, opciones): Departamento de Matemática Aplicada y Métodos Informáticos 30 Universidad Politécnica de Madrid Ingeniería de Minas Visualización Visualización de de varios varios dibujos dibujos en en un un mismo mismo gráfico gráfico (cont.) (cont.) Paso 2º: Visualizar los dibujos con el comando display [> display(dibu1, dibu2, dibu3); Departamento de Matemática Aplicada y Métodos Informáticos 31 Universidad Politécnica de Madrid Ingeniería de Minas Ejercicio Ejercicio 44 Representar en una misma gráfica y en el intervalo [0, 5] el grafo (en verde) de la función: 1 − e− x f(x) = 1.5 + cos(x) y el grafo (en marrón) de la expresión: x · (x + cos(x)) SOLUCIÓN: [>dibf:=plot(f,0..5,thickness=4,linestyle=3, color=green): [> diba:=plot(a,x=0..5,thickness=2,linestyle=2, color=brown): [> display(dibf,diba); Departamento de Matemática Aplicada y Métodos Informáticos 32 Universidad Politécnica de Madrid Ingeniería de Minas Ejercicio Ejercicio (cont.) (cont.) Departamento de Matemática Aplicada y Métodos Informáticos 33 Universidad Politécnica de Madrid Ingeniería de Minas Comandos Comandos plot plot yy display display En el comando display pueden introducirse muchas de las opciones de dibujo (ver anteriormente las señaladas para plot) aunque no todas Ejemplo: En el ejercicio anterior puede sustituirse la última instrucción por: [> display(dibf,diba,title="Dibujo de dos curvas"); Departamento de Matemática Aplicada y Métodos Informáticos 34 Universidad Politécnica de Madrid Ingeniería de Minas Comandos Comandos plot plot yy display display (2) (2) Otra forma (sin usar display) consiste en escribir todas las funciones a dibujar en el mismo comando plot. Ejemplo: [> plot([f(x),x*(x+cos(x))],x=0..5, y=-4..26, thickness=2,linestyle=2,color=[green,brown], legend=["(1-exp(-x))/(1.5+cos(x))", "x*(x+cos(x))"], title= "Dibujo de dos funciones", titlefont=[TIMES,ITALIC,18], tickmarks=[5,10]); Departamento de Matemática Aplicada y Métodos Informáticos 35 Universidad Politécnica de Madrid Ingeniería de Minas Insertando Insertando textos textos en en los los dibujos dibujos Se usa el comando textplot de la librería plots. Por ello, antes de usarlo debe cargarse la librería: [> with(plots): Primer paso [> dtexto:= textplot([abscisa, ordenada, “texto”],opciones): Nombre de la variable en la que se almacena el texto Posición Segundo paso Visualizarlo (junto con el dibujo correspondiente) usando el comando display. Departamento de Matemática Aplicada y Métodos Informáticos 36 Universidad Politécnica de Madrid Ingeniería de Minas Ejercicio Ejercicio 55 Dibujar en una misma gráfica la función f(x) del ejercicio Nº 4 y la expresión x·(x+cos(x)) en el intervalo [0, 5], y en una ventana de ordenadas [-4, 26] usando colores distintos para cada grafo e incluyendo un título al gráfico y para cada función SOLUCIÓN: [> grafos:=plot([f(x),x*(x+cos(x))],x=0..5, y=-4..26,thickness=2,linestyle=2, color=[green,brown], title="Dibujo de dos funciones", tickmarks=[5,10]): Departamento de Matemática Aplicada y Métodos Informáticos 37 Universidad Politécnica de Madrid Ingeniería de Minas Solución Solución al al ejercicio ejercicio nº nº 55 [> leyenda1:=textplot([0.2,24, "(1-exp(-x))/(1.5+cos(x))"], align={ABOVE,RIGHT},color=green): [> leyenda2:=textplot([0.2,20,"x*(x+cos(x))"], align={ABOVE,RIGHT},color=brown): [> display(grafos,leyenda1,leyenda2); Departamento de Matemática Aplicada y Métodos Informáticos 38 Universidad Politécnica de Madrid Ingeniería de Minas Solución Solución al al ejercicio ejercicio nº nº 55 Departamento de Matemática Aplicada y Métodos Informáticos 39 Universidad Politécnica de Madrid Ingeniería de Minas FIN DE LA 1ª SESIÓN Departamento de Matemática Aplicada y Métodos Informáticos 40