Guía básica de comandos para uso de Maple Ejemplos y ejercicios resueltos Mg. Patricia Có 1 - GENERALIDADES 1. Introducción: MAPLE es un lenguaje de programación, dotado de un intérprete acompañado de una enorme biblioteca de funciones algebraicas y gráficas. A continuación sólo se describen algunos de los comandos más usados, en caso de tener la necesidad de utilizar otros, es recomendable recurrir a la ayuda del programa a través del signo "?" o mediante la función "help". Este software puede usarse como una calculadora numérica y simbólica. Esto significa, por un lado, que produce resultados exactos, y hay que hacer operaciones con números extraordinariamente grandes para que rebase su capacidad numérica. Por otro lado, puede operar con símbolos, por ejemplo calcular derivadas, integrales, polinomios de Taylor, etc. También es posible manipular figuras geométricas y animar gráficas. Los documentos se abren o archivan con los recursos operativos del entorno. Aspectos a tener en cuenta para comenzar a trabajar 1.1 Ingreso de comandos Hay que tener especial cuidado en copiar correctamente los comandos. Para terminar la entrada de una orden hay que escribir el signo : (dos puntos) o ; (punto y coma) antes de pulsar ENTER. En el primer caso se ejecuta la orden, pero no aparece respuesta en pantalla, en el segundo caso la respuesta se visualiza en la pantalla. Si se pulsa ENTER antes de estos signos, MAPLE interpretará que no se ha acabado de introducir la orden y esperará el fin de la misma. 1.2 Asignación de nombres Para agilizar y hacer más operativa la tarea es conveniente, nombrar significativamente a las variables definidas. Por ejemplo si queremos ingresar una función y luego utilizarla en otro momento de la sesión de trabajo, podemos proceder de la siguiente forma: > fun1:=1/x; 1 fun1 := x > fun2:=fun1+2; fun2 := 1 +2 x ¿Qué sucede si en esta última sentencia se reemplaza ";" por ":" ? ¿Y si se omite ";"? 1.3 Utilización de paquetes MAPLE tiene diversos paquetes de comandos y funciones específicas, que deben ser cargados en el momento en que se los necesite. Por ejemplo: el paquete especializado en Geometría Analítica es geometry; el especializado en gráficos es plots, etc. Todos estos paquetes reposan sobre estructuras de datos que no desarrollaremos específicamente en el presente trabajo. La forma de cargar estos paquetes es mediante la orden with(nombre): 2 Descripción de algunos comandos 2.1 Cálculo numérico - Operaciones aritméticas Las operaciones aritméticas en Maple se definen de acuerdo con las convenciones matemáticas estándar. En principio vamos a usarlo como una calculadora de gran potencia, en el sentido de ____________________________________________________________________________________________ Mg. Patricia Có 1 realizar operaciones tales como: suma, resta, producto, cociente, potencia, etc., con la jerarquía habitual entre ellas y tanto para expresiones numéricas como algebraicas. Vamos a describir algunas de las operaciones habituales. Recordemos que no se debe dejar espacio entre caracteres, que hay que escribir las expresiones correspondientes después del prompt ">",y para obtener los resultados de las operaciones propuestas es necesario terminar cada sentencia con ";" y luego teclear enter. Tabla 2.1 x+y x-y x*y x/y x ^ y ó x ** y x! Suma Resta Producto División Potencia Factorial 2.1.1 Veamos algunos ejemplos sencillos, calculando: > 4+3; > 10*25+30; > 3^100; Como está indicado en la Tabla 2.1 el símbolo ^ puede ser remplazado por **. 2.1.2 Podemos usar el comando evalf para expresar el resultado de la operación anterior en notación científica con 10 dígitos. > evalf(%,10); .5153775207 10 48 El símbolo % copia la última expresión que aparece en la pantalla. 2.1.3 También podemos trabajar con números complejos. La unidad imaginaria se ingresa con la letra i mayúscula. Por ejemplo. > (2+3*I)^3; 2.1.4 Si queremos ingresar el número π, lo hacemos escribiendo Pi seguido de ; y luego enter. Si además deseamos obtener el valor de ese número con 25 cifras decimales significativas, ingresaremos el comando evalf, de la siguiente forma: > Pi; π > evalf(%,25); 3.141592653589793238462643 2.1.5 Veamos cómo calcular el factorial de un número, por ejemplo 30, y luego la forma en que Maple permite su factorización en factores primos mediante el comando ifactor. > 30!; 265252859812191058636308480000000 > ifactor(%); ( 2 ) 26 ( 3 ) 14 ( 5 ) 7 ( 7 ) 4 ( 11 ) 2 ( 13 ) 2 ( 17 ) ( 19 ) ( 23 ) ( 29 ) ____________________________________________________________________________________________ Mg. Patricia Có 2 Podemos verificar este resultado aplicando el comando expand a la última expresión > expand(%); 265252859812191058636308480000000 Si queremos obtener la expresión anterior en notación científica recurriremos nuevamente la comando evalf. > evalf(%); .2652528598 10 33 Existen funciones predefinidas que pueden resultarnos útiles en el momento de realizar cálculos numéricos. A continuación se enuncian algunas de ellas mediante sus nombres o comando que permiten ejecutarlas, con una breve descripción de la operación que realizan. Es aconsejable probar cómo funciona cada una de ellas con un ejemplo. Tabla 2.2 > max(a,b,c,d,...); Máximo de un conjunto de números reales > min(a,b,c,d,...); Mínimo de un conjunto de números reales > floor(x); Mayor entero menor o igual que x > ceil(x); Menor entero mayor o igual que x > ilog10(x); > ilog(x); Logaritmo entero en base 10, x real Logaritmo neperiano entero, x real > signun(x); x/valor absoluto de x (x distinto de 0) > abs(x); Valor absotulo de x > igcd(a,b,c,d,...); Máximo común divisor de n números > ilcm(a,b,c,d,...); Mímimo común múltiplo de n números > irem(n,m) Resto de la división de n y m > ifactor(x) Descompone a x en facores primos > Heaviside(x); Vale 0 para x<0, vale 1 para x>0 y en cero no está definida Vale 0 para todo x no nulo y tiene singularidad en 0 > Dirac(x); 2.2 Operaciones con polinomios Para definir un polinomio podemos proceder de maneras distintas, las que iremos viendo en algunos de los ejemplos que siguen. ____________________________________________________________________________________________ Mg. Patricia Có 3 2.2.1 Supongamos que queremos encontrar las raíces de un polinomio y obtener su descomposición factorial. Para ello ingresamos el polinomio, dándole un nombre particular que nos servirá para llamarlo en el resto de la sesión de trabajo y luego utilizamos los comandos: solve y factor, de la siguiente forma: > p1:=x^2-3*x+2; p1 := x 2 − 3 x + 2 > solve(p1); 2, 1 > factor(p1); (x − 1) (x − 2) Para verificar el resultado obtenido podemos aplicar el comando expand a la expresión anterior: > expand(%); x2 − 3 x + 2 2.2.2 Es posible hallar las raíces de un polinomio de grado 2 con coeficiente indeterminados: > p2:=a*x^2+b*x+c; p2 := a x 2 + b x + c > solve(p2,x); 1 −b + b 2 − 4 a c 1 −b − b 2 − 4 a c , 2 a 2 a Podemos dar valores específicos a los coeficientes del polinomio anterior utilizando el comando subs de la siguiente forma: > subs(a=2,b=1,c=3,p2); 2 x2 + x + 3 Si ahora buscamos las raíces: > solve(%); − 1 1 1 1 + I 23 , − − I 23 4 4 4 4 2.2.3 Veamos un par de comandos más relacionados con la factorización: factors(expresión) que actúa devolviendo los factores y sus multiplicidades y factor(ecuación) que factoriza ambos lados de una ecuación > factors(3*x^2+6*x+3); [ 3 , [ [ x + 1, 2 ] ] ] > factor(x^3+y^3=x+y); ( x + y ) ( x2 − x y + y2 ) = x + y 2.2.4 Si queremos completar cuadrados en un polinomio, podemos hacerlo con el comando completesquare. Antes de usarlo debemos cargar el paquete student, en el que se encuentra. Para realizar esta operación sólo es necesario ingresar la sentencia with(student); > with(student); ____________________________________________________________________________________________ Mg. Patricia Có 4 [ D, Diff , Doubleint , Int, Limit , Lineint , Product , Sum, Tripleint , changevar , completesquare , distance , equate , integrand , intercept , intparts , leftbox , leftsum , makeproc , middlebox , middlesum , midpoint , powsubs, rightbox , rightsum , showtangent, simpson, slope, summand, trapezoid ] Para ahorrar espacio en la pantalla, en vez de terminar la sentencia anterior con “;”, podemos terminarla con “:”, que como ya dijimos ejecuta el comando pero no muestra el resultado > completesquare(4*x^2-2*x+5,x); 2 1 19 4 x − + 4 4 2.2.5 Ahora tenemos un polinomio de quinto grado al que queremos encontrarle sus raíces. > p3:=x->x^5-2*x+3; p3 := x → x 5 − 2 x + 3 > solve(p3(x)); RootOf( _Z5 − 2 _Z + 3, index = 1 ), RootOf ( _Z 5 − 2 _Z + 3, index = 2 ), RootOf ( _Z5 − 2 _Z + 3, index = 3 ), RootOf ( _Z 5 − 2 _Z + 3, index = 4 ), RootOf ( _Z5 − 2 _Z + 3, index = 5 ) RootOf es la respuesta que da Maple cuando no puede dar una solución exacta. En estos casos podemos usar el comando fsolve, el cual da las soluciones reales exactas, si puede, o una aproximación decimal de las mismas. > fsolve(p3); -1.423605849 2.2.8 Veamos otro ejemplo: > p4:=x->6*x^4-35*x^3+22*x^2+17*x-11; p4 := x → 6 x 4 − 35 x 3 + 22 x 2 + 17 x − 11 > fsolve(p4); -.6814339806 , .5708552757, .9422797802, 5.001632258 2.3 Operaciones con expresiones algebraicas Muchos de los comandos vistos en la sección anterior pueden ser usados para operar sobre expresiones algebraicas, por lo tanto nos limitaremos a algunos ejemplos más, y como siempre recomendamos ir a la ayuda del programa en caso de necesitar realizar alguna operación no detallada en esta guía. 2.3.1 Expansión o desarrollo de expresiones algebraicas El comando expand(expression) permite desarrollar totalmente una expresión algebraica, aplicando reglas de productos y potencias, propiedades de ángulos múltiples para funciones trigonométricas y simplificando resultados. Veamos algunos ejemplos: ____________________________________________________________________________________________ Mg. Patricia Có 5 > expand(1/((x+1)*x); 1 (x + 1) x > expand(sin(x+y)); sin( x ) cos( y ) + cos( x ) sin( y ) > expand(cos(2*x)); 2 cos( x ) 2 − 1 > expand(exp(a+ln(b))); ea b 2.3.2 Simplificación de expresiones algebraicas El comando simplify(expresión, opción), permite simplificar una expresión algebraica con alguna o varias opciones. Si usamos simplify(expresión), sólo simplificará la expresión algebraica dada de la forma habitual. Veamos un ejemplo: > s:= (x^2+5*x+6)/(x^3+2*x^2-x-2); x2 + 5 x + 6 s := 3 x + 2 x2 − x − 2 > simplify(s); x+3 x2 − 1 Si queremos factorizar sólo el numerador o el denominador: > factor(numer(s));factor(denom(s)); (x + 3) (x + 2) (x − 1) (x + 2) (x + 1) Entre las posibilidades que brinda el programa existe un comando que nos permite convertir la expresión racional s en fracciones simples: > convert(s,parfrac,x); 2 1 1 − x−1 x+1 ____________________________________________________________________________________________ Mg. Patricia Có 6 2 - GRÁFICOS MAPLE posibilita la representación de cualquier función matemática, incluso si está definida a trozos o tiene saltos al infinito. También permite las representaciones de curvas definidas en forma implícita, explícita, en coordenadas paramétricas o polar, tanto en el plano como en el espacio. Posibilita la realización de gráficos estadísticos, como ser: de barras, de líneas, histogramas, así como polígonos, poliedros y otras figuras geométricas. Cabe comentar que las gráficas que se obtienen mediante MAPLE, como a través de otros programas gráficos, no reproducen en forma exacta la imagen de una curva, nos dan una idea bastante aproximada del comportamiento de la misma. Es posible mejorar la calidad de dichas representaciones utilizando las opciones que brindan los comandos gráficos como color, escala, etc. GRÁFICOS EN 2 - D 1. Coordenadas Cartesianas 1.1 Curvas definidas explícitamente En primer lugar vamos a representar gráficamente curvas definidas explícitamente por expresiones del tipo y = f(x), mediante el comando plot. Se lo llama mediante la sentencia: plot(f(x), x=a..b, opciones); Donde: f es una función real de variable x. x=a..b especifica que la variable independiente x toma los valores entre a y b, Las opciones de graficación son alternativas, por ejemplo: color, escalas, puntos de vista, etc. Veamos con algunos ejemplos las distintas opciones que pueden usarse: 1.1.1 > plot(x^2+3*x-1,x=-3..5,color=green): Dentro de las elecciones posibles, podemos especificar el intervalo de variación de la variable dependiente: 1.1.2 > plot(x^2+3*x-1,x=-3..5,y=-2..10): Nota: Pulsando el cursor sobre la gráfica, aparecen inmediatamente en la última línea de la barra de menú, algunos comandos representados por los íconos que se muestran a continuación, que provocan que MAPLE ejecute alguna acción directa sobre la gráfica seleccionada: Cambia la curva al estilo Line (Línea). Cambia la curva al estilo Point (Punto.) Cambia la curva al estilo Patche (Parche). Cambia la curva al estilo Patche o grid (rejilla). ____________________________________________________________________________________________ Mg. Patricia Có 7 Cambia los ejes al estilo Boxed (Caja). Cambia los ejes al estilo Framed (Marco). Cambia los ejes al estilo Normal. Cambia los ejes al estilo None (Ninguno). Cambia de Constrained (forzado, contraído) a Unconstrained. 1.1.3> plot(sin(x),x=-2*Pi..2*Pi): 1.1.4 Si queremos visualizar las gráficas de dos o más curvas en forma simultánea, lo podemos hacer ingresando ambas funciones encerradas entre corchetes o llaves, dentro del comando plot: > plot({sin(x),cos(x)},x=-2*Pi..2*Pi): > plot({x^2,x^2-4,(x-4)^2},x=-4..8,y=-4..4): 1.1.5 Supongamos que ahora queremos definir y obtener la representación gráfica de una función partida o definida a trozos, por ejemplo: si x ≤ 0 − 1 2 si 0 < x < 1 x f ( x) = si x = 1 4 2 x si x > 1 La forma de definirla es mediante la siguiente sentencia: > f1:=x->piecewise(x<=0,-1,x<1,x^2,x=1,4,2*x); f1 := x → piecewise( x ≤ 0, -1, x < 1, x 2, x = 1, 4, 2 x ) Veamos como quedó escrita: > f1(x); -1 2 x 4 2x x≤0 x<1 x=1 otherwise Pedimos su representación gráfica tal como lo veníamos haciendo hasta ahora: > plot(f1(x),x=-2..5); Podemos observar que MAPLE no interpreta que la función es discontinua. Para que realice la gráfica en forma correcta, es decir que se visualicen la o las discontinuidades de la función ingresada, es necesario agregar la opción: discont=true, como se ve a continuación: > plot(f1(x),-2..4,discont=true): ____________________________________________________________________________________________ Mg. Patricia Có 8 Si queremos obtener valores particulares de la función, podemos hacerlo directamente pidiendo el cálculo de f1 en el valor indicado, por ejemplo: > f1(1); 4 ¿Son correctos los valores que Maple le asigna a la función en los puntos de discontinuidad? 1.1.6 Consideremos otra función: > f2:= piecewise( x<=-1, -x, x<1, x*x, x>1, sin(x-1)/(x-1)-0.5 ); −x x2 f2 := sin( x − 1 ) x − 1 − .5 x ≤ -1 x<1 1<x > plot(f2,x=-3..13,discont=true): Gráficamente se ve que f2 posee un punto de discontinuidad en x = 1. Podemos verificarlo analíticamente calculando los límites laterales a la derecha y a la izquierda de x = 1. La forma de hacerlo es mediante la orden: limit(f,x=a,right/left), ingresando sólo una de las opciones: derecha o izquierda. > limit(f2, x=1, right); .5000000000 > limit(f2, x=1, left); 1. 1.1.7 Veamos algunas opciones interesantes que brinda el programa • Si queremos agregarle texto al gráfico: >plot(tan(x),x=-(3/2)*Pi..(3/2)*Pi,y=-3..3,title="funcióntangente"): • Si queremos que aparezcan los nombres de los ejes coordenados: > plot(cosh(x),x=-2..2,labels=[`Eje X`,`Eje Y`],color=pink): • Si queremos que aparezca un título en el gráfico: >plot([1/x,3/x,5/x,7/x],x=-5..5,y=-5..5,title="Hipérbolas equilateras"): • Si queremos colocar referencias sobre cada gráfica que aparece en pantalla: >plot([sin(x),cos(x)],x=-Pi..Pi,title="FuncionesTrigonométricas", legend=["Sine", "Cosine"]): ____________________________________________________________________________________________ Mg. Patricia Có 9 1.2 Curvas definidas implícitamente Vamos a ver cómo obtener las representaciones gráficas de curvas definidas en forma implícita, esto es, mediante expresiones del tipo f(x,y)=0, El comando implicitplot es el que nos permite generar este tipo de gráficas. Se lo llama mediante la sentencia: implicitplot(f(x,y),x=a..b,y=c..d,opciones);, debiendo tener cargado previamente el paquete with(plots):. Donde: f es una función definida implícitamente en las variables x e y. x:=a..b, y=c..d determinan los extremos de los intervalos de variación de las variables x e y respectivamente. Las opciones son análogas a las del comando plot. Veamos algunos ejemplos: 1.2.1 > with(plots): > implicitplot(x^2+y^2=4,x=-2..2,y=-2..2): Evidentemente lo que vemos no tiene forma de circunferencia. Para mejorar esta situación podemos pulsar el icono de la barra de menú que aparece al posicionarnos sobre el gráfico obtenido. 1.2.2 Dada la ecuación de 2º grado: x 2 − 4 x + y 2 + 6 y + 8 = 0 determinar si se trata de una cónica propiamente dicha o de un caso degenerado. Si pedimos su representación gráfica en un dominio cualquiera, puede ocurrir que la gráfica aparezca "vacía", como se ve si aplicamos la siguiente sentencia: > implicitplot(x^2-4*x+y^2+6*y+8=0,x=0..10,y=0..10): No podemos afirmar aún que se trate del conjunto vacío, veamos qué pasa en otros intervalos: > implicitplot(x^2-4*x+y^2+6*y+8=0,x=-10..10,y=-10..10): Como la gráfica no es muy buena, para mejorarla podemos ajustar los intervalos de definición de las variables, como por ejemplo: > implicitplot(x^2-4*x+y^2+6*y+8=0,x=-1..5,y=-6..1): Si nos interesa, podemos completar cuadrados utilizando el comando completesquare, habiendo cargado previamente el paquete student. > with(student): > completesquare(x^2-4*x+y^2+6*y+8=0,x); ( x − 2 )2 + 4 + y 2 + 6 y = 0 > completesquare(%,y); ( y + 3 )2 − 5 + ( x − 2 )2 = 0 Finalmente comprobamos que se trata de una circunferencia de centro (-3,2) y radio 5. ____________________________________________________________________________________________ Mg. Patricia Có 10 2. Gráficos en Coordenadas Paramétricas y Polares 2.1 Coordenadas Paramétricas x = x(t ) Para visualizar gráficos de curvas dadas en coordenadas paramétricas de la forma: , y = y (t ) podemos utilizar el comando plot([x(t),y(t),t=a..b]); que realiza la gráfica de la curva propuesta para t variando en el rango a..b. Por ejemplo: 2.1.1 Para obtener la gráfica de una recta dada en forma paramétrica, sabiendo que la misma pasa por el punto (2,1) y es paralela al vector (-3,2), utilizamos la siguiente sentencia: > plot([2-3*t,1+2*t,t=-10..10]): 2.1.2 Podemos pedir el gráfico de una circunferencia con centro en (3,2) y radio 1, dada por sus ecuaciones paramétricas: > plot([3+cos(t),2+sin(t),t=0..2*Pi]): 2.2 Coordenadas Polares Existen dos opciones que permiten realizar gráficas en coordenadas polares: • Si la curva está dada en coordenadas polares usaremos la orden: polarplot(r(t),t=a..b,opciones);, debiendo cargar previamente el paquete plots. 2.2.1 Queremos representar gráficamente a la cardiode de ecuación r = 4(1+cos(t)), cuando t varía entre 0 y 2 π . Procedemos de la siguiente forma: > with(plots): > polarplot(4*(1+cos(t)),t=0..2*Pi): 3.2.2 Vamos a graficar por partes la curva cuya ecuación polar es r = cos 2 t > polarplot(cos(2*t),t=0..Pi/4): > polarplot(cos(2*t),t=0..Pi/2): > polarplot(cos(2*t),t=0..Pi): > polarplot(cos(2*t),t=0..2*Pi): • Si la curva está dada por medio de sus ecuaciones paramétricas y queremos representarla en coordenadas polares, usaremos la orden: plot([r(t),v(t),t=a..b],coords=polar); sin necesidad de cargar previamente ningún paquete de comandos. 3. Animación en 2D Una animación en MAPLE es una secuencia de gráficos mostrados rápidamente que producen la sensación visual de movimiento. El comando que permite dar animación a un gráfico es animate(f(x,t),x=a..b,t=c..d, options) que se encuentra en el paquete plots. El mismo realiza una animación bidimensional de la curva y = f(x) con x variando en el rango dado, presentándola (por ____________________________________________________________________________________________ Mg. Patricia Có 11 defecto) 16 veces según valores de la variable t, que varía en el rango especificado a intervalos igualmente espaciados. Dentro de las opciones podemos elegir: frames=n (si se omite por defecto es 16), establece el número de veces que se presentará la gráfica durante la animación. numpoints=n que especifica el mínimo números de puntos que generarán la gráfica (por defecto es 50) Cuando utilizamos el comando animate y pulsamos con el mouse sobre la gráfica, se despliega una ventana de animación, en la que aparecen una serie de teclas de acción directa que permiten diferentes opciones en el movimiento. Recomendamos probar que función cumple cada una de ellas en los siguientes ejemplos: > with(plots): > animate(t*x^2,x=-5..5,t=-1..1,frames=100): > animate(t*x^3,x=-10..10,t=-2..2,frames=150): > animate(sin(x*t),x=-5..5,t=1..2,frames=100): GRÁFICOS EN 3 - D Los comandos que se utilizan para realizar gráficos en tres dimensiones son similares a los que acabamos de ver para gráficos bidimensionales, pueden cambiar algunas opciones que las veremos en los ejemplos planteados. 4. Coordenadas Cartesianas Vamos a construir y analizar gráficas de funciones de 3 variables definidas o no implícitamente, esto es funciones de la forma z = f (x,y) o f (x,y,z) = 0. Para obtener las gráficas de funciones dadas en coordenadas cartesianas y definidas explícitamente, podemos usar uno de los dos comandos que siguen: >plot3d (f(x,y),x=a..b,y=c..d); permite obtener la gráfica de la superficie z= f(x,y) para los rangos de x e y dados. >plot3d (f(x,y),x=a..b,y=c..d); cumple la misma función que el comando anterior, pero además permite definir la variación de la variable z. Si queremos obtener gráficas de funciones dadas en coordenadas cartesianas y definidas implícitamente, usaremos el comando implcitplot3d, habiendo cargado previamente el paquete plots. >implicitplot3d(f(x,y,z)=0, x=a..b,y=c..d,z=e..f, opciones); permite obtener la gráfica de una superficie definida implícitamente, para los rangos de las variables x, y ,z dados. En los ejemplos que se muestran a continuación veremos las distintas opciones que brinda el programa: 4.1. Cilindro circular de eje paralelo al eje z > with(plots): ____________________________________________________________________________________________ Mg. Patricia Có 12 > c:=x^2+y^2=16: > implicitplot3d(c,x=-4..4,y=-4..4,z=-3..3): Como los gráficos bidimensionales, si pulsamos sobre la gráfica, aparecen inmediatamente en la última línea de la barra de menú, dos ángulos: θ y ϕ , y algunos comandos representados por íconos, que como sabemos, provocan que MAPLE cambie el “estilo” de la gráfica seleccionada. Por defecto, cada uno de los ángulos tiene un valor de 45º. Los valores que toman estos ángulos indicarían la posición del “ojo del observador”, esto es: “si damos un punto P en el espacio y su proyección ortogonal P', ésta forma con el origen 0 una semirrecta 0P'. El ángulo θ representa la medida del ángulo orientado (en contra de las agujas del reloj) desde el semieje x positivo a la semirrecta 0P', (midiéndose entre -180º y 180º), y el ángulo ϕ es la medida del ángulo orientado que forma el semieje z positivo con la semirrecta 0P´, calculado de arriba hacia abajo (midiéndose entre 0 y 180º). Podemos modificar los valores de estos ángulos si queremos observar la gráfica desde otro lugar. El mismo efecto de rotación se produce cuando situamos el puntero del mouse sobre la gráfica y, manteniéndolo presionado, lo arrastramos en la dirección deseada. Resulta interesante determinar los valores que asumen los ángulos θ y ϕ , cuando se pretende visualizar la proyección de la superficie sobre cada uno de los planos coordenados. Siguiendo con el ejemplo, vamos a buscar las intersecciones del cilindro con los planos coordenados, para ello necesitaremos cargar el paquete student. Intersección con el plano XY: > with(student): > p1:=z=0: El comando que nos da la intersección del cilindro c con el plano p1 es: > intercept(c,p1,{x,y,z}); { x = RootOf ( _Z 2 − 16 + y 2 ), y = y, z = 0 } Para explicitar los valores que muestra la pantalla, utilizamos el comando: > allvalues(%); { y = y, x = 16 − y 2 , z = 0 }, { y = y, x = − 16 − y 2 , z = 0 } Podemos observar que se trata de una circunferencia en el plano XY Si queremos visualizar las dos superficies juntas, esto es el plano p1 y el cilindro c, podemos hacerlo mediante la orden: > implicitplot3d({c,p1},x=-5..5,y=-4..4,z=-3..3): Si rotamos la figura de modo conveniente y usamos algunas opciones gráficas podemos observar la circunferencia resultante de la intersección planteada. Intersección con el plano XZ: > p2:=y=0: ____________________________________________________________________________________________ Mg. Patricia Có 13 > intercept(c,p2,{x,y,z}); { x = -4, z = z, y = 0 }, { x = 4, z = z, y = 0 } El resultado, tal como esperábamos, resultan ser las ecuaciones de dos rectas paralelas al eje Z. Es posible obtener las gráficas de estas rectas mediante los siguientes comandos: > with(geom3d): > plot3d({[4,0,z],[-4,0,z]},x=-5..5,z=-5..5): 4.2. Superficie Cónica Si queremos realizar la gráfica de una superficie cónica podemos emplear distintos comandos. Una forma de hacerlo es como en el ejemplo anterior: > co:=x^2+y^2-z^2=0: > implicitplot3d(co,x=-5..5,y=-5..5,z=-5..5): Inmediatamente observamos que lo que muestra la pantalla no es lo correcto, pues parece que los puntos no se unen cerca del origen de coordenadas. MAPLE tiene órdenes específicas para graficar superficies conocidas como: conos, cilindros, esferas, toros, tetraedros, polígonos estrellados, etc. Todos los comandos que generan estas superficies se encuentran dentro del paquete plottools y será necesario en cada caso utilizar la sentencia display para que aparezcan en pantalla las representaciones gráficas requeridas. La orden para graficar una superficie cónica es: cone([x,y,z],r,h). La misma genera el cono de altura “orientada” h, radio de la base r y centro de la circunferencia de la base en el punto (x,y,z). > with(plottools): Si queremos la superficie cónica completa, lo pedimos del siguiente modo: > display(cone([0,0,0],3,6),cone([0,0,0],3,-6)): Actividad Efectuar las gráficas de las siguientes superficies y la de sus respectivas intersecciones con los planos coordenados, con planos paralelos a los coordenados y con planos oblicuos: x2 y2 z2 a) Elipsoide de ecuación: + + =1 25 16 9 x2 y2 z2 b) Hiperboloide de una hoja de ecuación: + − =1 9 4 16 c) Hiperboloide de dos hojas de ecuación: x 2 − y 2 − z 2 = 1 d) Paraboloide elíptico de ecuación: y 2 + z 2 = 4 x ____________________________________________________________________________________________ Mg. Patricia Có 14 e) Paraboloide hiperbólico de ecuación: y2 x2 − =z 4 9 5. Gráficas en Coordenadas Paramétricas, Cilíndricas y Esféricas 5.1 Coordenadas Paramétricas - Gráficas de funciones vectoriales El comando que permite obtener la representación gráfica de una curva definida por una función vectorial se encuentra dentro del paquete plots y se carga mediante la sentencia: >spacecurve([x(t),y)(t),z(t)],t=a..b,options); donde: [x(t),y(t),z(t)] son las ecuaciones paramétricas de la función vectorial. a .. b indica el intervalo de variación el parámetro t. Puede suceder, como veremos en algunos de los ejemplos que siguen, que cuando se realiza la gráfica de una curva utilizando el comando anterior, la misma no resulta muy visible. Para modificar este inconveniente MAPLE tiene una orden, cuya sintaxis es: tubeplot([x(t),y)(t),z(t)],t=a..b,radius=r). La misma hace que aparezca una superficie de grosor r rodeando a la curva, es decir, la curva se convierte en una superficie tubular que facilita su visualización. Veamos algunos ejemplos: 5.1.1 Hélice circular El comando: spacecurve([x(t),y(t),z(t)],t=a..b,options); realiza la gráfica una hélice circular de ecuaciones paramétricas dadas. >spacecurve([cos(t),sin(t),t],t=0..6*Pi,numpoints=100): En este caso, para obtener una mejor visualización de la curva dentro del cilindro, conviene usar la opción "caja cerrada", a través del icono correspondiente en la barra del menú gráfico. Si queremos una mejor imagen: >tubeplot([cos(t),sin(t),t],t=0..6*Pi,radius=1/20,numpoints=100): 5.1.2 Es posible obtener la representación gráfica de varias curvas a la vez, como por ejemplo: >spacecurve({[sin(t),0,cos(t),t=Pi..Pi],[cos(t)+1,sin(t),0,numpoints=100,t=Pi..Pi]});tubeplot({[si n(t),0,cos(t),t=0..2*Pi],[cos(t)+1,sin(t),0,numpoints=100]},t=Pi..Pi,radius=1/30): Actividad 1- Realizar las gráficas de las siguientes curvas: a) Hélice Elíptica de ecuación: r(t)=[2*cos(t),sin(t),t],con t entre 0 y 2 π . ____________________________________________________________________________________________ Mg. Patricia Có 15 b) Espiral Toroidal de ecuación: r(t)=[(4+sin(20*t))*cos(t),(4+sin(20*t))*sin(t),cos(20*t)], con t entre 0 y 4 π , utilizando la opción: numpoints=500. c) Nudo de Trifolio de ecuación: r(t)=[(2+cos(1.5*t))*cos(t),(2+cos(1.5*t))*sin(t),sin(1.5*t)],con t entre 0 y 4 π Realizar además la gráfica de la superficie que la contiene. d) Cúbica Torcida de ecuación: r(t)=[t,t^2,t^3],t=-2..2 2- Realizar las representaciones gráficas de las curvas propuestas: 1) r(t) = [cos4t, t,sen4t] 2) r(t) = [t^2-2, t^3 , t^4+1] 3) r(t) = [t ,1/(1+t^2)t, t^2] 4) r(t) = [sen3t cost, sen3t sent, t] 5) r(t) = [cost, sent, sen5t] 6) r(t) = [cost, sent sent, lnt] ____________________________________________________________________________________________ Mg. Patricia Có 16 3- CÁLCULO DIFERENCIAL E INTEGRAL 1. Diferenciación Maple permite realizar el cálculo de derivadas de funciones de una variable o de derivadas parciales de funciones de varias variables a través del uso del operador diferencial D o por medio del comando diff. La elección de uno en particular dependerá de lo que el problema a resolver requiera. Veamos su sintaxis: D(función) D(función)(num) D[n](función) D[n1,n2](función) Representa el operador diferencial de la función o expresión funcional dada. Halla la derivada de la función en el punto num. Halla la derivada parcial de la función respecto a su enésima variable Da la derivada parcial de la función, primero respecto de su n1-variable y después la da respecto de su n2-variable. (D@@n)(función) Da la derivada enésima de la función (D@@n)(función)(num) Ídem anterior pero calculada en el punto num diff(exp,var) Da la derivada de la expresión dada respecto de la variable especificada. diff(exp,var$n) Da la derivada de orden n de la expresión dada respecto de la variable especificada. diff(exp,var1,var2,...varn) Da la derivada parcial de la expresión dada respecto de las variables especificadas. implicitdiff(ecuación,vardep,varind) Halla la derivada en forma implícita de una función dada. Vamos a calcular algunas derivadas: Si usamos diff, directamente aplicamos este comando a la expresión de la función de la queremos obtener su derivada, indicando después de la “,” la variable con respecto a la cual se deriva: 1.1.> diff(log(sin(2*x)),x): Si preferimos usar el operador D, entonces debemos definir primero la función a derivar y después aplicarle el operador: > L:=x->log(sin(2*x)): > D(L)(x): 1.2. > diff(x^tan(x)+x*sin(x*y),x): diff(x^tan(x)+x*sin(x*y),y): 1 1.3. Queremos calcular las primeras 5 derivadas de la función f ( x) = . Podemos hacerlo de la x siguiente forma: > f:=x->1/x: >[(D@@1)(f)(x),(D@@2)(f)(x),(D@@3)(f)(x),(D@@4)(f)(x),(D@@5)(f)(x)]: ____________________________________________________________________________________________ Mg. Patricia Có 17 2. Derivadas parciales Como ya dijimos, el operador diferencial D puede usarse para el cálculo de derivadas parciales de funciones de más de una variable. Hasta ahora sabemos que, si primero definimos una función f:=x->f(x), podemos calcular la derivada respecto de su variable con el operador D(f)(x). Si en particular queremos el valor de la derivada en el punto de abscisa x=xo, escribimos D(f)(xo). Si queremos la derivada de orden n, utilizamos: (D@@n)(f)(x). Ahora trabajaremos con funciones de varias variables (para simplificar la escritura reducimos las variables a x e y), y las ingresamos como: g:=(x,y)->g(x,y). Para calcular sus derivadas parciales podemos utilizar el operador D o la función diff de las siguientes formas: ∂g ∂x ∂g Calcula ∂y D[1](g); o diff(g(x,y),x); D[2](g); o diff(g(x,y),y); D[1,1](g); o diff(diff(f(x,y),x),x); D[1,2](g); o diff(diff(f(x,y),x),y); D[1,1,2,2](g); o Calcula ∂2g ∂x 2 ∂2g Calcula ∂y ∂x Calcula diff(diff(diff(diff((x,y),x),x),y),y); Calcula ∂4g ∂y 2 ∂x 2 Y así podemos seguir, de ser posible, indefinidamente. Maple permite calcular derivadas direccionales, gradientes y diferenciales totales. Resulta interesante ver cómo trabaja estos temas en los ejemplos que se muestran en las ayudas correspondientes. Actividad 1-Verificar que la función u = 1 x + y2 + z2 2 es una solución de la ecuación de Laplace en tres variables. 2- Probar que la función z = x e y + y e x es una solución de la ecuación ∂3z ∂3z ∂3z ∂3 z + = x + y : ∂x 3 ∂y 3 ∂x∂y 2 ∂x 2 ∂y x 3 y − xy 3 si ( x, y ) ≠ (0,0) 3- Sea f ( x, y ) = x 2 + y 2 0 si ( x, y ) = (0,0) a) Graficar f(x,y) b) Calcular fx (x,y) y f y(x,y), cuando ( x, y ) ≠ (0,0) . ____________________________________________________________________________________________ Mg. Patricia Có 18 c) Probar que f x y (0,0) = -1 y f y x (0,0)= 1. d) ¿El resultado del inciso c) contradice el resultado de Clairut?. Usar las gráficas de f x y y f y x para ilustrar las respuestas. 4- Dada las funciones: a) z = x y b) z = x − y c ) f ( x, y ) = e − ( x 2 + y 2 ) / 15 ( sen 2 x + cos 2 y ) se pide graficar cada superficie y el plano tangente correspondiente en el punto (-1,2,-2), (5,1,2) y (2,3, f (2,3)), respectivamente. 5- Estudiar la diferenciabilidad de la función f ( x, y ) = 2x y x2 + y2 si (x,y) ≠ 0 y f(0,0) = 0. 3. Máximos y mínimos para funciones de varias variables Como Maple resuelve el sistema de ecuaciones que resulta de igualar a cero todas las derivadas parciales de una función de varias variables, es factible obtener los posibles puntos extremos de esa función. Para saber de qué clase de extremos se trata, Maple construye la matriz Hessiana en cada punto. Existe también un comando específico para calcular el Gradiente de una función de varias variable, su sintaxis es: grad(función,[x1,x2,..xn]);. Este comando, al igual que la de la matriz Hessiana se encuentran en el paquete linalg, y para usar este último es necesario ingresar: hessian(función,[x1,x2,...,xn]);. A continuación, presentamos una lista de algunos comandos que resultan de gran utilidad cuando se trata de optimizar funciones: maximize(expresión); Halla el máximo valor de la expresión dada respecto de todas sus variables maximize(expresión,{var1,var2,...varn}); Halla el máximo valor de la expresión dada respecto de las variables especificadas. minimize(expresión): Halla el mínimo valor de la expresión dada respecto de todas sus variables. maximize(expresión,{var1,var2,...varn}); Halla el mínimo valor de la expresión dada respecto de las variables especificadas. maximize(expresión,{var1,var2,...varn},{a1,a2,...an}); Halla el mínimo valor de la expresión dada respecto de las variables especificadas limitando los rangos de las mismas, por defecto no están limitados. Veamos un ejemplo: 3.1. Hallar y clasificar los puntos extremos de la función: f ( x, y ) = −120 x 3 − 30 x 4 + 18 x 5 + 5 x 6 + 30 x y 2 Después de ingresar la función, buscamos los posibles puntos extremos igualando a cero las derivadas parciales y resolviendo el sistema resultante. ____________________________________________________________________________________________ Mg. Patricia Có 19 > f:=(x,y)->-120*x^3-30*x^4+18*x^5+5*x^6+30*x*y^2: > solve({diff(f(x,y),x)=0,diff(f(x,y),y)=0},{x,y}): Luego, los críticos son: (0,0), (-2,0), (2,0), y (-3,0) Podemos obtener el mismo resultado al calcular primero el vector gradiente para después resolver la ecuación ∇f = 0 : > with(linalg): > grad(f(x,y),[x,y]): > solve({-360*x^2-120*x^3+90*x^4+30*x^5+30*y^2, 60*x*y},{x,y}): Para clasificar los extremos, construimos la matriz Hessiana > hessian(f(x,y),[x,y]): > H:=(x,y)->hessian(f(x,y),[x,y]): Evaluamos la matriz H en los puntos críticos y calculamos el determinante: > H1:=subs(x=-2,y=0,H(x,y)): > det(H1): Resulta que el determinante de la matriz H evaluada en el punto (-2,0) es positivo, y además el elemento que ocupa la posición (1,1) es negativo, por lo que concluimos que el punto (-2,0) es un máximo relativo. Repetimos el proceso con los otros puntos críticos: > H2:=subs(x=2,y=0,H(x,y)): > det(H2): Resulta que el punto (2,0) es un mínimo relativo. > H3:=subs(x=-3,y=0,H(x,y)): > det(H3): Resulta que (-3,0) es un punto de ensilladura. Por último en (0,0): > H4:=subs(x=0,y=0,H(x,y)): Como el determinante es nulo no podemos extraer ninguna conclusión con respecto este punto, será necesario utilizar otros recursos, por ejemplo la representación gráfica de la función para saber si se trata de un punto de máximo, mínimo o ensilladura. ____________________________________________________________________________________________ Mg. Patricia Có 20 4. Máximos y mínimos condicionados. El método de los multiplicadores de Lagrange Supongamos que queremos optimizar la función f(x1,x2,...xn), denominada función objetivo, sujeta a unas determinadas restricciones dadas por las ecuaciones: g1(x1,x2,...xn)=0 g2(x1,x2,...xn)=0 ....................... gk(x1,x2,...xn)=0 Maple tiene una librería llamada extrema en la que se encuentran un grupo de comandos que permiten la optimización de funciones de varias variables sujeta a restricciones, usando el método de los Multiplicadores de Lagrange. Algunos comandos útiles y sus sintaxis son los siguientes: readlib(extrema): Carga en la memoria la librería de comandos extrema(expresión,ecuación,var); Halla los posibles extremos relativos para la función definida por la expresión dada, en la variable var especificada bajo la restricción definida por ecuación, usando el método de los Multiplicadores de Lagrange. extrema(expresión,ecuación); Halla los posibles extremos relativos para todas las variables especificadas en la expresión y con la restricción dada la ecuación. extrema(expresión,{ecuación1,...ecuaciónn},{variable1,..variablen}); Halla los posibles extremos relativos para la expresión dada en las variables especificadas sujetas a las restricciones dadas por ecuación1,..ecuaciónn. extrema(expresión,{ecu1,...,ecun},{var1,...varn},nombre); La variable nombre devuelve un conjunto de puntos con los valores que toma la expresión (función objetivo) en cada posible punto extremo. Estos valores servirán para diferenciar ente puntos extremos máximos y mínimos. Veamos algunos ejemplos: 4.1. Hallar y clasificar los puntos extremos de la función: f (x, y, z) = x + z, sujeta a la restricción: x 2 + y 2 + z 2 =1 > readlib(extrema): > allvalues(extrema(x+z,{x^2+y^2+z^2=1},{x,y,z},s)): El comando extema devuelve los valores que toma la función objetivo en cada punto extremo, mientras que en la variable s quedan guardados los puntos extremos, como vemos a continuación: > allvalues(s): ____________________________________________________________________________________________ Mg. Patricia Có 21 Analizando los resultados, podemos decir que la función dada presenta un máximo en el punto 2 2 2 2 y un mínimo en el punto − . , 0 , , 0 , − 2 2 2 2 4.2. Hallar las dimensiones del paralelepípedo de volumen máximo que tiene 10 metros cuadrados de superficie. Si x, y, z son las dimensiones del paralelepípedo, su volumen es: V = x y z. Como sabemos que tiene 10 metros cuadrados de superficie, la restricción será: 2 x y + 2 y z + 2 x z - 10 = 0. Para resolver este problema vamos a utilizar el método de los multiplicadores de Lagrange como sigue: > allvalues(extrema(x*y*z,{2*x*y+2*x*z+2*y*z-10=0},{x,y,z},a)); 5 5 { 15 } , { − 15 } 9 9 > allvalues(a); 1 1 1 1 1 1 {{z = 15 , y = 15 , x = 15 } } , { { z = − 15 , y = − 15 , x = − 15 } } 3 3 3 3 3 3 15 15 15 , pues no puede haber El único punto que puede ser solución del problema es: , , 3 3 3 lados del paralelepípedo con medida negativa. Como las coordenadas de este punto representan a la longitud de los lados del paralelepípedo, se trata precisamente de un cubo. Además, como se ve en la primera respuesta el volumen máximo es igual a 5 15 , que es el mayor 9 valor que asume la función objetivo. 5. Integración Maple permite calcular integrales definidas de la mayor parte de las funciones integrables cuya expresión no sea muy complicada, por ejemplo funciones logarítmicas, exponenciales, racionales, trigonométricas, trigonométricas inversas, etc. También resuelve integrales dobles y triples. Los comandos más utilizados en el cálculo integral son: int(f(x),x); Calcula la integral indefinida int(f(x),x=a..b) Calcula la integral definida int(int(f(x,y),x),y; Calcula la integral indefinida int(int(f(x,y),x=a..b),y=c..d); Calcula la integral definida residue(f(x),x=a); ∫ ∫ f ( x) dx b a f ( x) dx ∫ ∫ f ( x, y) dx dy ∫ ∫ f ( x, y) dx dy b d a c Halla el residuo algebraico de la expresión f(x). El residuo algebraico es el coeficiente del término ( x − a ) −1 en el desarrollo de Laurent de la función. ____________________________________________________________________________________________ Mg. Patricia Có 22 singular(f(x),x); Halla las singularidades de la función algebraica f(x), considerando como constantes todas las variable distintas de x. Maple tiene una rutina muy poderosa para calcular integrales (usando el llamado Teorema Fundamental del Cálculo); es el comando int, que es lo que corresponde a usar si uno necesita calcular la integral. Lo que hicimos nosotros fue una exposición de carácter didáctico sobre las sumas de Riemann. Veamos int: > int((x+1)^2*sin(x)/4,x=Pi/2..Pi): Si uno desea conocer una primitiva (o antiderivada), el comando es: > int(((x+1)^2*sin(x)/4,x)): Verifiquemos: > diff(%,x): > combine(%): > simplify(%): > factor(%): 5.1 Integrales inmediatas A continuación y para finalizar, veremos algunos ejemplos sencillos: 5.1.1 > int(1/(x^2+1),x): Hay que tener en cuenta que en las integrales indefinidas Maple no escribe la constante de integración. 5.1.2 > int(x^n,x): 5.1.3 > int(x*cos(x),x): 5.1.4 > int(arccos(x),x): 5.1.5 > int(1/sqrt(x^2-1),x): 5.1.6 > int(x^2*e^x,x=0..3): 5. 2 Integración por sustitución y por partes Maple contiene el comando changevar, dentro del paquete student, que permite realizar integrales por el método de sustitución, cuando no le es posible resolverlas directamente. Su sintaxis es: changevar(expr_vnueva=expr_vantigua,integral,v_nueva); Realiza el cambio de variable de acuerdo a la relación indicada entre las variables nueva y antigua, en la integral dada. Por ejemplo si intentamos resolver la integral ∫ arcsin( x) (1 − x ) 2 3 2 dx directamente a través del comando int, vemos que no es posible: ____________________________________________________________________________________________ Mg. Patricia Có 23 > int((arcsin(x)/(1-x^2)^(3/2)),x): Si ahora usamos el comando changevar haciendo la sustitución t = arcsin(x), podremos obtener la siguiente respuesta. >with(student): >changevar(t=arcsin(x),int((arcsin(x)/(1-x^2)^(3/2)),x),t): Para volver a la variable original sustituimos t = arcsin(x): > simplify(subs(t=arcsin(x),%)): Maple también contiene dentro del paquete student el comando llamado intparts, que permite realizar integrales aplicando el método de integración por partes, cuando no le es posible resolverla en forma inmediata. Su sintaxis es: intparts(int(f(x),x);u(x)); Realiza la integral por partes de la función f(x), siendo u(x) la parte de f(x) que diferencia. 5. 3 Aplicaciones Longitud de arco de curva Como sabemos, si una curva plana viene dada por su ecuación y = f(x), la longitud del arco de curva comprendido entre dos puntos de abscisas x = a y x = b viene dada por ∫ b a 1 + ( f ´( x) ) dx . 2 Si la curva está dada en forma paramétrica x = x(t) e y = y(t), la longitud del arco de curva comprendido entre los puntos relativos a los valores t =to y t = t1 del parámetro es: ∫ (x´(t )) + ( y´(t ) ) b a 2 2 dt . Veamos algunos problemas de aplicación. 5.3.1 Un cable eléctrico cuelga entre dos torres que están separadas 80 metros. El cable adopta la x posición de una catenaria cuya ecuación es: 100 cosh . Calcular la longitud del arco de cable 100 entre las dos torres. > int(sqrt(1+diff(100*cosh(x/100),x)^2),x=-40..40): > evalf(%): Nota: Si la curva está dada en coordenadas polares, cilíndricas o esféricas, podríamos calcular la longitud de un arco de la misma utilizando las fórmulas respectivas. Área comprendida entre curvas Resolvemos el siguiente problema: 5.3.2 Calcular el área encerrada entre las curvas y = sen x e y = cos x, para x variando entre 0 y 2π . En primer lugar vamos a pedir las gráficas de ambas curvas en un mismo sistema de coordenadas: > plot([sin(x),cos(x)],x=0..2*Pi,color=[red,blue]): ____________________________________________________________________________________________ Mg. Patricia Có 24 Necesitamos conocer las abscisas de los puntos de intersección de las dos curvas. Para ello, resolveremos el sistema que forman sus ecuaciones. El comando solve no resuelve el problema, por lo tanto utilizaremos el comando fsolve para encontrar las posibles soluciones en los intervalos (0,1) y (1, 2π ) (estimados a partir de la observación de la gráfica anterior). > r1:=fsolve(sin(x)=cos(x),x=0..1): > r2:=solve(sin(x)=cos(x),x=1..2*Pi): Ahora calculamos el área entere las dos curvas como sigue: > S1:=evalf(int(cos(x)-sin(x),x=0...r1)): > S2:=evalf(int(sin(x)-cos(x),x=r1..r2)): > S3:=evalf(int(cos(x)-sin(x),x=r2..2*Pi)): > L:=S1+S2+S3: El área buscada es 5.267829283 unidades cuadradas. Comentario: Maple permite el cálculo de áreas engendradas por curvas que giran alrededor de un eje coordenado, como así también volúmenes de revolución, integrales curvilíneas, integrales impropias e integrales múltiples. En las ayudas que brinda el programa se encuentran ejemplos en los que se muestran cuáles son los comandos a utilizar en cada caso. Cálculo de volúmenes por integrales dobles y triples Resolvemos el siguiente problema: 5.3.3 Calcular el volumen en el primer octante comprendido entre el plano OXY, el plano z = x + y + 2 y el cilindro x 2 + y 2 = 16 . Comenzaremos haciendo una representación gráfica del plano y del cilindro para tratar de visualizar el recinto que queda comprendido entre estas superficies y el plano OXY. > with(plots): >implicitplot3d({z=x+y+2,x^2+y^2=16},x=-4..4,y=-4..4,z=5..10,orientation=[15,45]): Podemos calcular el volumen pedido mediante la integral: > int((int(x+y+2,y=0..sqrt(16-x^2)),x=0..4)): Otra forma de resolver el problema podría ser: > with(student): > Doubleint(x+y+2,y=0..sqrt(16-x^2),x=0..4): > value(%): 5.3.4 Calcular el volumen limitado por el paraboloide x 2 + 4 y 2 = z , y lateralmente por los cilindros de ecuaciones y = x 2 y x = y 2 . En primer lugar realizamos el gráfico en el que aparecen las superficies dadas: ____________________________________________________________________________________________ Mg. Patricia Có 25 > implicitplot3d({z=x^2+4*y^2,x^2=y,y^2=x},x=-2..2,y=-2..2,z=2..10,style=patchnogrid): Podemos calcular el volumen mediante la siguiente integral: > int(int(x^2+4*y^2,y=x^2..sqrt(x)),x=0..1): También podemos resolverlo de la siguiente forma: > Doubleint(x^2+4*y^2,y=x^2..sqrt(x),x=0..1): > value(%): ____________________________________________________________________________________________ Mg. Patricia Có 26