/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 12.01.0 ] */ /* [wxMaxima: title start ] Práctica 4: Derivación e integración. [wxMaxima: title end ] */ /* [wxMaxima: section start ] Derivación. [wxMaxima: section end ] */ /* [wxMaxima: comment start ] El primer objetivo de esta práctica es estudiar las herramientas que posee Maxima para calcular derivadas de cualquier orden. Como aplicación veremos cómo calcular máximos y mínimos de funciones. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] La sintaxis para calcular la derivada de la función f(x) respecto de la variable x es diff(f(x),x). Si lo que queremos es calcular la derivada de orden n entonces debemos escribir diff(f(x),x,n). A este comando se puede acceder directamente a través del menú en la pestaña Análisis->Derivar. En este caso aparece una ventana de diálogo que hay que rellenar. Los datos que necesitamos introducir son: Expresión: La función que queremos derivar. Por defecto aparece %, es decir la salida anterior. respecto de la variable: La variable respecto a la que queremos derivar. veces: Se refiere al orden de derivación. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ diff(cos(sqrt(x^2+4)),x,1); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] También podemos derivar funciones previamente definidas. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(x):= tan(x^2)-log(x^4+1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ diff(f(x),x,1); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Calculemos ahora la derivada segunda y la tercera. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ diff(f(x),x,2); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ diff(f(x),x,3); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Como en muchas ocasiones tenemos que volver a utilizar la derivada primera, segunda, etc es conveniente darle un nombre. Una forma sencilla de hacer esto es utilizar dos apóstrofos (se encuentra debajo del símbolo ?) de la siguiente manera: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f1(x):=''(%o3); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Otra forma es utilizar el comando define como sigue: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ define(f2(x),diff(f(x),x,2)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Vamos a ver ahora cómo podemos calcular máximos y mínimos relativos usando Maxima. Sabemos que los máximos y mínimos relativos de una función derivable deben ser puntos críticos, es decir puntos donde la derivada primera se anule. Por ejemplo vamos a calcular los máximos y mínimos relativos de la función g(x) dada por [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ g(x):=x*exp(-x^2); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] La gráfica de la función nos puede ayudar a tener una idea de los máximos y mínimos relativos. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ wxplot2d([g(x)], [x,-5,5])$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] En primer lugar calculamos la derivada primera de la función. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ define(g1(x),diff(g(x),x,1)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Para calcular los puntos críticos calculamos los ceros de la derivada con el comando solve [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ solve(g1(x)=0,x); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Vemos que hay dos candidatos a máximos y mínimos relativos x=-1/sqrt(2) y x=1/sqrt(2). De la gráfica ya sabemos que el primero es un mínimo y el segundo un máximo pero si queremos comprobarlo analíticamente podemos calcular la derivada segunda y sustituir en ella estos puntos. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ define(g2(x),diff(g(x),x,2)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ g2(-1/sqrt(2)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ g2(1/sqrt(2)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Observemos que el primer valor es positivo y el segundo negativo, por tanto como habíamos dicho el primero es un mínimo y el segundo un máximo. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Si queremos estudiar los intervalos de crecimiento y decrecimiento sólo tenemos que ver cómo es el signo de la derivada primera en los intervalos determinados por los valores anteriores. Podemos hacer esto por ejemplo dibujando la gráfica de la derivada primera. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ wxplot2d([g1(x)], [x,-5,5])$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Así vemos que es negativa->decreciente de -Infinito hasta -1/sqrt(2) y de 1/sqrt(2) a +Infinito y positiva y por tanto creciente en el intervalo (-1/sqrt(2),1/sqrt(2)). [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Para estudiar la convexidad/concavidad y los puntos de inflexión calcularíamos los ceros de la derivada segunda. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ solve(g2(x)=0,x); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Dibujamos la derivada segunda para ver que signo tiene en los intervalos determinados por esos puntos. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ wxplot2d([g2(x)], [x,-5,5])$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Por tanto x=-sqrt(3)/sqrt(2),x=sqrt(3)/sqrt(2) y x=0 son puntos de inflexión. La función sería cóncava de -Infinito a -sqrt(3)/sqrt(2) y de 0 a sqrt(3)/sqrt(2) y convexa de -sqrt(3)/sqrt(2) a 0 y de sqrt(3)/sqrt(2) a +Infinito. [wxMaxima: comment end ] */ /* [wxMaxima: section start ] Integración. [wxMaxima: section end ] */ /* [wxMaxima: comment start ] Veamos ahora cómo calcular integrales usando Maxima. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] El comando para calcular la integral indefinida de la función f(x) es integrate(f(x),x). Si lo que queremos es calcular la integral definida entre a y b de f(x) escribiremos integrate(f(x),x,a,b) [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] También se puede usar la etiqueta del menú Análisis->Integrar. Aparece entonces un cuadro de diálogo en el que debemos rellenar los datos correspondientes. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ integrate(sin(x)^2, x); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ integrate(1/(x^4-1), x); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ integrate(sqrt(x^2+1), x); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ integrate(exp(x)*cos(x/2),x); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ integrate(cos(x)^3,x); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ integrate(x*log(x),x); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ integrate((x-4)/sqrt(16-x^2),x); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ integrate(sin(x)^2, x,%pi/2,%pi); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Hay integrales para las que Maxima no nos sabe dar una primitiva como por ejemplo [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ integrate(exp(x^3+x), x); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] En otras ocasiones nos da el resultado en función de lo que se denominan funciones elípticas que son funciones definidas mediante integrales que Maxima tiene en la memoria. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ integrate(exp(x^2+x), x); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] En el caso de integrales definidas si Maxima no sabe calcular una primitiva nos queda la opción de hacer un cálculo aproximado de la integral. Vemos que en el menú Análisis->Integrar en la opción Integración numérica podemos elegir entre dos métodos quadpack y romberg. Veamos un ejemplo para comparar estos dos métodos: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ romberg(exp(x^2+x), x, 0, 1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ romberg(sin(x)^2, x, %pi/2, %pi); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ quad_qags(sin(x)^2, x, %pi/2, %pi); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] En este segundo caso la salida es más compleja. En primer lugar aparece la aproximación de la integral. En segundo lugar el error absoluto estimado de la aproximación, en tercer lugar el número de evaluaciones del integrando y por último un código de error que nos dice cómo ha sido el proceso. 0 significa que no ha habido problemas. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Recordemos que podemos utilizar la integral definida para el cálculo del área de una región comprendida entre la gráfica de una función y el eje de abcisas. Para ello es necesario determinar los intervalos donde la función es positiva o negativa. Veamos un ejemplo de su utilización: vamos a calcular el área de la región que queda comprendida entre la gráfica de la función sen(x) en el intervalo [0, 2 Pi] y el eje de abcisas. Vamos a determinar primero el intervalo donde la función es negativa o positiva. Para ello observemos la gráfica de la función en dicho intervalo: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ wxplot2d([sin(x)], [x,0,2*%pi])$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Observamos que la función es positiva en el intervalo [0,Pi] y negativa en el intervalo [Pi,2 Pi]. Por tanto el área que queremos determinar sería [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ integrate(sin(x), x, 0, %pi)-integrate(sin(x), x, %pi, 2*%pi); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Otra aplicación de la integral definida es el cálculo del área de la región plana delimitada por las gráficas de dos funciones en un inervalo tal que una función está por encima de la otra. Por ejemplo definamos las funciones [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ h1(x):=x; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ h2(x):= x^3; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Dibujemos las gráficas de las funciones h1 y h2 en el intervalo [-2,2]. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ wxplot2d([h1(x),h2(x)], [x,-2,2])$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Observemos que la función h1 está por encima de la función h2 en el intervalo [0,1] y por debajo en el intervalo [-1,0]. Comprobemos cuáles son los puntos de corte de las dos gráficas: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ solve(h1(x)=h2(x),x); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Luego el área de la región comprendida entre dichas dos gráficas sería: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ integrate(h1(x)-h2(x), x, 0, 1)+integrate(h2(x)-h1(x), x, -1, 0) ; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Estas notas están basadas en los apuntes "Prácticas de ordenador con wxMaxima" de Jerónimo Alaminos, Camilo Aparicio, José Extremera, Pilar Muñoz y Armando Villena. [wxMaxima: comment end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$