cómo utilizar el programa máxima

Upload: pablo-borsoi

Post on 07-Jul-2015

1.207 views

Category:

Documents


1 download

TRANSCRIPT

EJEMPLOSDEUSODEMAXIMAMARTINPAVONIndice1. Introduccion 12. Gracos 22.1. Las instruccionesplot2d yplot3d 22.2. El paquetedraw y las instruccionesdraw2d ydraw3d 33. Matrices 53.1. Operaciones 53.2. Determinante e inversa 63.3. Submatrices 64. Diferenciacion 74.1. Derivadas 74.2. Diferencial, matriz jacobiana 94.3. Hessiano, extremos locales de funciones de varias variables 105. Integracion 125.1. Integracion de funciones de una variable. 125.2. Integracion de funciones de varias varibles. 136. Ecuaciones diferenciales ordinarias 136.1. Derivadas 136.2. Solucion general de ecuaciones diferenciales lineales de primer y segundo orden 146.3. Condiciones iniciales y de borde 147. Series de Fourier 167.1. Series de Fourier de una funcion dada 167.2. Series de senos y cosenos 171. Introducci onEstas notas nopretendenser unaintroduccionformal al usodel programaMaxima, solopretendenmostrar algunas instrucciones basicas yunos pocos ejemplos deuso, quepuedenser convenientes paracomplementar el estudio de cursos de analisis matematico, ecuaciones diferenciales, etc. Ademas de la docu-mentacion de ayuda que acompa na al programa, en la red pueden encontrarse varios tutoriales (por ejemploenhttp://www.csulb.edu/~woollett/) y a un videos (http://vimeo.com/maximajaj#3053491). Existenversiones del programa para Linux, Mac que es instalan de la manera usual y para Windows; esta ultimapuede descargarse dehttp://sourceforge.net/projects/maxima/files/Maxima-Windows/5.20.1-Windows/maxima-5.20.1.exe/downloadLaideadelas notas es queel lector copielos ejemplos queaparecenyapartir deah comienceaexperimentar introduciendo los cambios que desee hasta familiarizarse con la instruccion que este empleando.Si bien en la ventana aparece una barra con botones para las operaciones mas frecuentes, las intruccionesestanpensadasparasertipeadas(ousarcopy&paste). Paraejecutarloquesetipeasedebepresionarenter ocrtl + enter seg un la conguracion.2 MARTINPAVON2. Gr aficos2.1. Lasinstruccionesplot2dyplot3d. Los comandos mas sencillos en Maximapara realizar gracosrelacionadosconfuncionessonplot2dparagracarcurvasenelplano(yaseancurvasparametrizadasogracos de funciones )y plot3d para obtener el graco de funciones denidas en subconjuntos de R2a R .Ejemplos(1)Graco de la funcion f(x) = x23x + 2 , con5 x 6 .plot2d([x^2 - 3*x +2], [x,-5,5])$(2)Graco de la funcion f(x) = sen(3x) y g(x) = cos(2x) con x entre y 2 .plot2d([sin(3*x), cos(2*x)], [x, -%pi, 3*%pi])(Observar que las distintas funciones estan dentro de un mismo corchete, separadas por comas yel uso de %pi para el n umero .)(3)Graco de una circunferencia parametrizadaplot2d ([parametric, cos(t), sin(t), [t,-%pi,%pi]],[gnuplot_preamble, "set size ratio -1"])Es conveniente se nalar algunas diferencias en la estructura de las instrucciones, por ejemplo, cuan-do dibujamos el graco de una funcion, el rango de la variable esta afuera del corchete donde esta ladeniciondelafuncion; encambioenel pasoparametrico, ademasdelainstruccionparametricel rango esta dentro del mismo corchete. La instruccion dentro del ultimo corchete se emplea paraenviar instrucciones al programa que ese encarga en ultima instancia de hacer el dibujo (en este casola instruccion es la que esta entre comillas), que pasa si no la colocamos?(4)Graco de f(x, y) = yex+ xsen(y) , 1 x 2 , 2 y 5 .plot3d(y*exp(x)- x*sin(y), [x,-1,2], [y,-2,5])(5)El mismo graco del inciso anterior, pero con el agregado del nombre los ejes.plot3d(exp(x)- x*sin(y), [x,-1,2], [y,-2,5],[xlabel, "eje x"], [ylabel, "eje y"], [zlabel, "z"])(6)Graco de la funcion f(x, y) =

x2x2+ y2siy< 0,0 siy = 0,y2

x2+ y2siy> 0.Primero denimos la funcion de la siguiente manera:f(x, y):= if y < 0 then x^2/(x^2 + y^2)elseif y = 0 then 0else y^2/sqrt(x^2 + y^2)Prestar atencion a la manera de realizar la asignacion := y a la estructuraif ... elseif ... else.Una vez resuelto esto, procedemos con en los ejemplos anteriores pero en lugar de poner la formula,usamos el nombre de la funcion; en este casof.EJEMPLOSDEUSODEMAXIMA 3plot3d( f, [x, -1, 1], [y, -1, 1], [xlabel, "eje x"], [ylabel, "eje y"])(7)Para gracar una supercie parametrizada, no es necesaria la instruccionparametric, el siguienteejemplo muestra el dibujo de la supercie parametrizada dada por f(u, v) = (u+v, u5v, u2v) ,con u y v entre 3 y 3 .plot3d([u + v , u - 5*v, u^2 -v], [u, -3, 3 ], [v , -3, 3])Una vez mas, es conveniente que se detengan unos instantes a observar las diferenciasplot2d yplot3d.2.2. El paquetedrawylas instrucciones draw2dydraw3d. Si bienlasinstruccionesanterioressonsucientesparagracossimples, carecendeexibilidadalahoradeencarargracosmasambiciosos; enparticular, el de supercies denidas por ecuaciones o representar en un unico dibujo gracos de distinto tipo:superciesdenidasporecuaciones,curvasparametrizadasygracosdefunciones. Enestecasocombineutilizar el paquete draw. Valelapenase nalar queestamayor exibilidadsedaacostadeunamayorcomplejidad, aqu presentamosunosejemplosmnimos, lareferenciaobligadatantoparaejemploscomopara mas informacion eshttp://www.telefonica.net/web2/biomates/maxima/gpdraw/index.htmlPara comenzar, es importante se nalar que si bien draw es un paquete estandar del programa, no se cargaautomaticamente,demodoqueesotenemosquehacerlonosotros;paraestobastaejecutarlainstruccionload(draw).Ejemplos(1)Gracar la funcion f(x, y) = x2y2con1 x 2 , 2 y 2 .load(draw);draw3d(explicit(x^2 - y^2, x, -2, 2, y, -2, 2),surface_hide=true)Vale la pena notar que la formula de la funcion aparece dentro delexplicit acompa nada por elrango de las variables.(2)Gracar la funcion del inciso (6) del ejemplo anterior.En este caso utilizamos una caracterstica particular dedraw que permite superponer gracos dedistintas funciones en un mismo dibujo. Cual de los dos gracos representa mas elmente al gracode la funcion?draw3d(xu_grid=20, yv_grid=20,explicit(x^2/(x^2 + y^2), x, -1, 1, y,-1, 0),color="red",line_width=3,parametric(t,0,0, t, -1, 1),line_width=1,color="black",explicit(y^2/sqrt(x^2 + y^2), x, -1, 1, y,0 , 1),surface_hide=true,xlabel="eje x", ylabel="eje y", zlabel="eje z");En este caso, ademas de las declaraciones de color para el graco aparece la instruccion parametricpara introducir una curva representada en forma parametrica que corresponde a la condicionf(x, y) =4 MARTINPAVON0 si y = 0 . Si hubiesemos querido representar una supercie parametrizada, la instruccion que cor-responde esparametricsurface.xugrid e yvgridseutilizanparaindicarlascantidaddepuntosqueseusanparalamallaque genera la supercie. linewidth establece el grosor del trazo; damos el valor 3 para que no pasedesapercibida la curva roja y despues volvemos al valor por defecto.(3)Gracar la esfera de centro (0, 0, 0) y radio 1 y el plano de ecuacion z = x y .draw3d(color="red",implicit(x^2 + y^2 + z^2 = 1, x, -1, 1, y, -1, 1, z, -1, 1),color="blue",explicit(x - y, x, -1,1, y, -1, 1),surface_hide=true,xlabel="eje x", ylabel="eje y", zlabel= "eje z",user_preamble="set size 0.5,1;set origin 0.25,0.1")Este ejemplo muestra el uso de la instruccion implicit para gracar supercies denidas por ecua-ciones (en el caso de la esfera). Respecto al plano, dado que la ecuacion tiene la forma z = f(x, y)continuamos usando la instruccion explicit. Por ultimo, en el caso de tres dimensiones, la instruc-ci onset size ratio squarenotieneningunautilidadydebemosrecurriralainstruccionmascomplicadadadadentrodel userpreamble. (Porotrolado, nodebemosconfundirnos: dentrodeplot2d y plot3d se usa gnuplotpreamble, en cambio con draw2d y draw3d se usa userpreamble).(4)Gracar las curvas de nivel 1 , 1/2 , 0 , 1/2 y 1 de la funcion f(x, y) = x2y .draw3d(explicit(x^2 - y, x, -2, 2, y, -2, 2),surface_hide=true,xlabel="eje x", ylabel="eje y", zlabel= "eje z",contour_levels={ -1, -1/2, 0, 1/2, 1},contour=map,user_preamble="set size square")En verdad, es posible gracar curvas de nivel sin necesidad de utilizar el paqauete draw (buscarcontourplot en la ayuda del programa).(5)Para la misma funcion del inciso anterior, gracar la funcion, las curvas de nivel en el plano xy ylas curvas de nivel sobre el graco de f.draw3d(color=green,explicit(x^2 - y, x, -2, 2, y, -2, 2),surface_hide=true,xlabel="eje x", ylabel="eje y", zlabel= "eje z",contour_levels={ -1, -1/2, 0, 1/2, 1},contour=both,user_preamble="set size square")Si comparamos los dos incisos, la ubicacion de las curvas esta dada por las instruccioncontour.Si la denimos comomap, aparecen las curvas en el plano, como estan denidas matematicamente.Si damos acontour el valorbase, obtenemos el graco de la funcion y en el plano xy las curvas.EJEMPLOSDEUSODEMAXIMA 5Si le damos el valorsurface, aparecen sobre el graco y si le damos el valorboth, aparecen sobreel graco de la funcion y en el plano xy .3. MatricesHaydosmanerasdeintroducirmatricesenMaxima(ademasdeusarel men udesplegable): conlain-struccionmatrix y con entermatrix.En el primer caso, la instruccion tiene la formamatrix([primera fila (sep. por comas)], ..., [ultima fila]En el segundo, la forma esentermatrix(nro. de filas, nro. de columnas)En este caso el programa va solicitando los distintos coecientes de la matriz.3.1. Operaciones. Las instrucciones son +, para la suma -para la resta y .para el producto de matricesusual (* se usa para calcular el producto un escalar por una matriz o el producto de dos matrices de igualtama no componente a componente)Ejemplo(1)SeanA =

1 2 3 41 3 0 13 1 1 2

, B =

1 3 0 03 4 1 30 2 2 1

, C =

2 3 11 0 12 2 1

Calcular C(A3B) .(%i3) A:matrix([1, 2, 3, 4], [-1, 3, 0, 1], [3, -1, -1, 2]);(%o3) matrix([1,2,3,4],[-1,3,0,1],[3,-1,-1,2])(%i5) B: entermatrix(3, 4);Row 1 Column 1: 1;Row 1 Column 2: 3;Row 1 Column 3: 0;Row 1 Column 4: 0;Row 2 Column 1: -3;Row 2 Column 2: 4;Row 2 Column 3: 1;Row 2 Column 4: -3;Row 3 Column 1: 0;Row 3 Column 2: 2;Row 3 Column 3: 2;Row 3 Column 4: 1;Matrix entered.(%o5) matrix([1,3,0,0],[-3,4,1,-3],[0,2,2,1])(%i6) C:matrix([2, 3, 1], [-1, 0, 1], [2, 2, 1]);(%o6) matrix([2,3,1],[-1,0,1],[2,2,1])(%i7) C.(A - 3*B);(%o7) matrix([23,-48,-10,37],[5,0,-10,-5],[15,-39,-7,27])6 MARTINPAVON3.2. Determinanteeinversa. La instruccion para calcular el determinante de una matriz esdeterminant(matrix) y para calcular la inversa, si existe, esinvert(matrix).Ejemplos(1)Sea A =

2 3 11 0 12 2 1

, calcular el determinante de A .(%i13) A:matrix([2, 3, 1], [-1, 0, 1], [2, 2, 1]);(%o13) matrix([2,3,1],[-1,0,1],[2,2,1])(%i14) determinant(A);(%o14) 3Notemos que, dado que el determinante es distinto de cero, la matriz es inversible.(2)Calcular A1con Ala matriz de ejemplo anterior.(%i16) invert(A);(%o16) matrix([-2/3,-1/3,1],[1,0,-1],[-2/3,2/3,1])(3)Calcular la inversa de B =

1 2 34 5 67 8 9

.(%i17) B: matrix([1, 2, 3], [4, 5, 6], [7, 8, 9]);(%o17) matrix([1,2,3],[4,5,6],[7,8,9])(%i18) invert(B);Division by 0-- an error. To debug this try debugmode(true);En este caso el programa informa que la matriz no es inversible.3.3. Submatrices. Enocasiones,porejemplocuandointentamosestudiarelhessianodeunafunciondevarias variables, es importante considerar submatrices de una matriz dada, esto es matrices que obtenemosal descartar alguna la y/o columna de la matriz original. En este caso la instruccion a usar essubmatrixque tiene la formasubmatrix(filas a remover sep. por comas, matriz, colum. a remover sep. por comas)Ejemplo(1)Calcular las submatrices diagonales de Ay sus determinantes conA =

1 2 3 5 62 1 5 6 02 2 2 0 90 9 7 4 23 2 1 1 9

.La submatriz diagonal de 1 1 es 1 , para las demas usamos el programa.(%i21) A : matrix([1, 2, 3, 5, 6], [-2, 1, 5, 6,0 ], [2, 2, 2, 0, -9], [0, 9, 7, -4, 2],[-3, 2, 1, 1, 9]);(%o21) matrix([1,2,3,5,6],[-2,1,5,6,0],[2,2,2,0,-9],[0,9,7,-4,2],[-3,2,1,1,9])(%i24) A2:submatrix(3,4, 5, A, 3, 4, 5);(%o24) matrix([1,2],[-2,1])(%i25) A3:submatrix(4, 5, A, 4, 5);(%o25) matrix([1,2,3],[-2,1,5],[2,2,2])(%i26) A4: submatrix(5, A, 5);EJEMPLOSDEUSODEMAXIMA 7(%o26) matrix([1,2,3,5],[-2,1,5,6],[2,2,2,0],[0,9,7,-4])(%i27) determinant(A2);(%o27) 5(%i28) determinant(A3);(%o28) 2(%i29) determinant(A4);(%o29) -296(%i30) determinant(A);(%o30) 48724. Diferenciaci onEsta seccion requiere de los contenidos de la seccion 2.4.1. Derivadas. La instruccion para calcular las derivadas de una funcion de una o mas variables es diff;su estructura esdiff(funcion, variable, orden de derivacion, variable, orden de derivacion, . . . )En ocasiones no deseamos conocer el valor de la derivada en determinado punto. Como diff no devuelveuna funcion sino una expresion, no podemos proceder de la misma manera que con una funcion; en cambio,usamos la instruccionev.Ejemplos(1)Calcular la derivada de f(x) = x2+ sen(3x + 4) .(%i14) f(x) := x^2 + sin(3*x + 4);(%o14) f(x):=x^2+sin(3*x+4)(%i15) diff(f(x), x);(%o15) 3*cos(3*x+4)+2*x(2)Calcular las derivadas segundas y terceras de la funcion del inciso anterior.(%i16) diff(f(x), x, 2);(%o16) 2-9*sin(3*x+4)(%i17) diff(f(x), x, 3);(%o17) -27*cos(3*x+4)(3)Calcular las derivadas parciales de f(x, y) = x3+ xey2.(%i18) f(x, y) := x^3 + x*exp(y^2);(%o18) f(x,y):=x^3+x*exp(y^2)(%i19) diff(f(x,y), x);(%o19) %e^y^2+3*x^2(%i20) diff(f(x, y) , y);(%o20) 2*x*y*%e^y^2(4)Evaluar las derivadas parciales del inciso anterior en (2, 0) .(%i27) f(x,y) := x^3 + x*exp(y^2);(%o27) f(x,y):=x^3+x*exp(y^2)(%i23) fx:diff(f(x, y), x);(%o23) %e^y^2+3*x^2(%i24) ev(fx, x=2, y=0);(%o24) 138 MARTINPAVON(%i29) fy:diff(f(x, y), y);(%o29) 2*x*y*%e^y^2(%i30) ev(fy, x = 2, y = 0);(%o30) 0(5)Vericar que las derivadas segundas mixtas de la funcion del inciso anterior son iguales(%i13) f(x,y) := x^3 + x*exp(y^2);(%o13) f(x,y):=x^3+x*exp(y^2)(%i14) diff(f(x, y), x, 1, y, 1);(%o14) 2*y*%e^y^2(%i15) diff(f(x, y), y, 1, x, 1);(%o15) 2*y*%e^y^2Otra manera de hacer esto es combinando dos diff. No es la manera mas simple pero apuntadirectamente a la denicion de derivada sucesiva.(%i21) diff(diff(f(x, y), x), y);(%o21) 2*y*%e^y^2(%i22) diff(diff(f(x, y), y), x);(%o22) 2*y*%e^y^2(6)Gracarlatrayectoria g(t) =(t2 t, t4 t3, 3t 2) , el punto g(1) , el vectortangentealatrayectoria en g(1) y la recta tangente a la trayectoria en g(1) .(%i1) g(t) := [t^2 - t, t^4 - t^3, 3*t - 2]; #definimos g(%o1) g(t):=[t^2-t,t^4-t^3,3*t-2](%i2) g(1); #verificamos cuanto vale g(1).(%o2) [0,0,1](%i4) deri:diff(g(t), t, 1); /* calculamos la derivada de g, guardamosla expresion en la variable deri. */(%o4) [2*t-1,4*t^3-3*t^2,3](%i6) vt:ev(deri, t = 1); /* evaluamos la derivada en t =1,guardamos el vector g(1) en la variable vt. */(%o6) [1,1,3](%i16) recta : g(1) + t*vt; /* ec. de la recta tangente en formaparametrica. */(%o16) [t,t,3*t+1](%i7) load(draw); /* cargamos el paquete draw para hacer los graficos */(%o7) /usr/share/maxima/5.17.0/share/draw/draw.lisp(%i38) draw3d(xlabel="eje x", /* nombramos los ejes para orientarnos. */ylabel="eje y",color="blue",parametric(g(t)[1], g(t)[2], g(t)[3],t, -1, 1.5), /* graficamos latrayectoria en azul. */color="red",parametric(recta[1], recta[2], recta[3], t, -1, 2), /* graficamos la rectaen rojo. */color="black",point_type = filled_circle,EJEMPLOSDEUSODEMAXIMA 9point_size = 2,points([g(1)]), /* graficamos el punto en negro. Lo graficamossituando un disco de tama~no 2. */color = "green",vector(g(1), vt), /* graficamos el vector tangente en verde. */user_preamble="set size square");(%o38) [gr3d(parametric,parametric,points,vector)]4.2. Diferencial, matrizjacobiana. El comandoparacalcularlamatrizjacobianadeunafuncionesjacobian. La instruccion tiene la formajacobian(funcion o expresion vectorial, vector de variables)Es importante notar que la funcion debe estar dada por un vector; este no suele ser el caso de los camposescalares, de modo que en este caso encerramos la funcion entre corchetes.Ejemplos(1)Calcular la matriz jacobiana de f (x, y, z) = x3y + 3 z e(z xxy+y z).(%i31) f(x, y, z) := x^3 *y +3*z - exp(z*x-x*y + y*z);(%o31) f(x,y,z):=x^3*y+3*z-exp(z*x-x*y+y*z)(%i19) jacobian([f(x,y, z)], [x, y, z]);(%o19) matrix([3*x^2*y-(z-y)*%e^(y*z+x*z-x*y),x^3-(z-x)*%e^(y*z+x*z-x*y),3-(y+x)*%e^(y*z+x*z-x*y)])Observen en %i19 que encerramos la funcion entre corchetes. La salida es una matriz de una lay tres columnas.(2)Calcular la matriz de la diferencial de f(u, v) = (u + v, u v, u2v2) en (1, 2) .(%i34) f(u, v) := [u + v, u - v, u^2 - v^2];(%o34) f(u,v):=[u+v,u-v,u^2-v^2](%i35) df : jacobian(f(u, v), [u, v]);(%o35) matrix([1,1],[1,-1],[2*u,-2*v])(%i36) ev(df, u = 1, v = 2);(%o36) matrix([1,1],[1,-1],[2,-4])En este caso, la funcion es un campo vectorial (observen como la denimos en%i34) de modo queen este caso no es necesario encerrarla entre corchetes.(3)Sea f(x, y)=x3 3xy + y3. Enunmismograco, mostrarlasupercie z=f(x, y) , el punto(1, 1, f(1, 1)) y el plano tangente a la supercie en dicho punto.(%i37) f(x, y) := x^3 - 3*x*y + y^3; /* definimos la funcion. */(%o37) f(x,y):=x^3-3*x*y+y^3(%i38) P : [1, -1, f(1, -1)]; /* calculamos el punto quenos interesa */(%o38) [1,-1,3](%i39) fx : diff(f(x,y), x); /* calculamos la derivada parcial respectode x y la guardamos en la variablefx. */(%o39) 3*x^2-3*y(%i40) a : ev(fx, x=1, y = -1); /* evaluamos la derivada en (1, -1),asignamos el valor a la variable a. */10 MARTINPAVON(%o40) 6(%i41) fy : diff(f(x, y), y);(%o41) 3*y^2-3*x(%i42) b : ev(fy, x = 1, y = -1);(%o42) 0(%i48) draw3d( /* graficamos. El paquete draw ya estabacargado, si no primero tenemos queejecutar load(draw) */xlabel = "eje x", ylabel = "eje y",xu_grid = 20, yv_grid = 20, /* damos la cantidad de puntos que se usanpara establecer los graficos; pordefault es 30 pero con esto el graficoqueda un poco recargado. */color = "blue",explicit(f(x, y), x, 0, 2, y, -2, 0),color = "red",explicit(f(1, -1) + a*(x - 1) + b*(y + 1), x, 0, 2, y, -2, 0),color = "black",points([P]),point_type = filled_circle,point_size = 5,surface_hide = true,user_preamble = "set size square");(%o48) [gr3d(explicit,explicit,points)](4)Calcular la derivada direccional de g(x, y) =xey1+ yex2en el punto (2, 1) en la direccion delvector v = (3/5, 4/5) . Ademas, calcular el valor de la derivada direccional maxima de f en esepunto y la direccion en que se alcanza.El programa no tiene denida una funcion que calcule el gradiente de una funcion de dos variables,as queusamos lamatrizdeladiferencial. Afortunadamente, cuandoes necesario, el programainterpretaaunamatrizlacomounvectorypermitecalcularelproductointernotalcomoseveen %i34. (Para calcular el producto vectorial entre los vectores u y v se utiliza.)(%i31) g(x, y) := x*exp(y-1) + y*exp(x-2);(%o31) g(x,y):=x*exp(y-1)+y*exp(x-2)(%i32) Dg : jacobian([g(x,y)], [x, y]);(%o32) matrix([%e^(y-1)+%e^(x-2)*y,x*%e^(y-1)+%e^(x-2)])(%i33) Dg21 : ev(Dg, x = 2, y=1);(%o33) matrix([2,3])(%i34) der = Dg21 . [3/5, -4/5];(%o34) der=-6/5(%i37) der_max : sqrt(Dg21.Dg21);(%o37) sqrt(13)(%i38) vec_max : Dg21/der_max;(%o38) matrix([2/sqrt(13),3/sqrt(13)])4.3. Hessiano, extremos locales de funciones de varias variables. El comando para calcular hessianode una funcion eshessian. La instruccion tiene la formahessian(funcion, vector de variables)Ejemplos(1)Calcular el hessiano de f(x, y, z) = x2y zx + z3+ y2y evaluarlo en el punto (2, 1, 3) .EJEMPLOSDEUSODEMAXIMA 11(%i35) f(x, y, z) := x^2*y - z*x + z^3 + y^2;(%o35) f(x,y,z):=x^2*y-z*x+z^3+y^2(%i36) hess : hessian(f(x, y, z), [x, y, z]);(%o36) matrix([2*y,2*x,-1],[2*x,2,0],[-1,0,6*z])(%i37) hess : ev(hess, x=2,y=-1,z=3);(%o37) matrix([-2,4,-1],[4,2,0],[-1,0,18])Paralosejemplosquesiguensonnecesariasalgunasintruccionesrelacionadasconmatricesqueaparacen en la seccion 3(2)Hallar y clasicar los puntos crticos de f(x, y) = (x + y)(xy 1) .(%i38) f(x, y) := (x + y)*(x*y -1);(%o38) f(x,y):=(x+y)*(x*y-1)(%i39) ec1 : diff(f(x, y), x) = 0;(%o39) y*(y+x)+x*y-1=0(%i40) ec2 : diff(f(x, y), y) = 0;(%o40) x*(y+x)+x*y-1=0(%i41) solve([ec1, ec2], [x, y]);(%o41) [[x=-1/sqrt(3),y=-1/sqrt(3)],[x=1/sqrt(3),y=1/sqrt(3)],[x=-%i,y=%i],[x=%i,y=-%i]](%i43) hess: hessian(f(x, y), [x, y]);(%o43) matrix([2*y,2*y+2*x],[2*y+2*x,2*x])(%i44) hess1: ev(hess,x=-1/sqrt(3),y=-1/sqrt(3) );(%o44) matrix([-2/sqrt(3),-4/sqrt(3)],[-4/sqrt(3),-2/sqrt(3)])(%i45) determinant(hess1);(%o45) -4(%i46) hess2 : ev(hess,x=1/sqrt(3),y=1/sqrt(3) );(%o46) matrix([2/sqrt(3),4/sqrt(3)],[4/sqrt(3),2/sqrt(3)])(%i47) determinant(hess2);(%o47) -4En %i38, denimos la funcion que vamos a estudiar; en %i39, %i40 calculamos las derivadas par-ciales, las igualamos a 0 y asigamos estas expresiones a las variables ec1, ec2.En %i41 usamos la instruccion solve1para resolver el sistema de ecuaciones

fx(x, y) = 0fy(x, y) = 0El sistema tiene cuatro soluciones, pero solo dos son reales; as que los puntos crticos son(1/3,1/3)y (1/3,1/3) . Para clasicarlos calculamos en hessiano (en %i43) evaluamos en los puntoscrticos (en %i44 y en %i46) y calculamos el determinante ( %i45 e %i47). En ambos casos el deter-minante es negativo, por lo tanto ambos puntos son puntos de ensilladura.(3)Hallar y clasicar los puntos crticos de f(x, y, z) = x2+ y2+ z2+ xy .(%i48) f(x, y, z) := x^2 + y^2 + z^2 + x*y;(%o48) f(x,y,z):=x^2+y^2+z^2+x*y(%i49) ec1 : diff(f(x, y, z), x) = 0;(%o49) y+2*x=0(%i50) ec2 : diff(f(x, y, z), y) = 0;(%o50) 2*y+x=01Lainstruccionsolvetienelaformasolve([cjto. ecuaciones], [lista de variables])12 MARTINPAVON(%i51) ec3 : diff(f(x, y, z), z) = 0;(%o51) 2*z=0(%i52) solve([ec1, ec2, ec3], [x, y, z]);(%o52) [[x=0,y=0,z=0]](%i54) hess :hessian(f(x, y, z), [x, y, z]);(%o54) matrix([2,1,0],[1,2,0],[0,0,2])(%i55) determinant(hess);(%o55) 6(%i56) hess2: submatrix(3, hess, 3);(%o56) matrix([2,1],[1,2])(%i57) determinant(hess2);(%o57) 3La resolucion es similar al ejemplo anterior; en este caso, de acuerdo con el criterio para funcionesde tres variables, en el punto crtico se alcanza un mnimo local.5. Integraci on5.1. Integraciondefuncionesdeunavariable. La instruccion basica para calcular integrales simboli-coas es integrate. Estasepuedeemplear tantoparabuscar primitivas comoparacalcular integralesdenidas. La estructura de la instruccion esintegrate(funcion, variable)para calcular primitivas eintegrate(funcion, variable, lmite inferior, lmite superior)para calcular integrales denidas.Ejemplos(1)Hallar una primitiva de f(x) = x2+ sen(3x) .(%i1) integrate(x^2 + sin(3*x), x);(%o1) x^3/3-cos(3*x)/3(2)Calcular

0x2+ sin(3x) dx .(%i2) integrate(x^2 + cos(3*x), x, 0, %pi);(%o2) %pi^3/3(3)Hallar una primitiva de f(x) = sen(x)/x .(%i3) integrate(sin(x)/x, x);(%o3) integrate(sin(x)/x,x)En este caso es imposible hallar una primitiva y el programa devuelve la expresion de la integral(4)Calcular

3senxxdx .Dado que no es posible determinar una primitiva del integrando, recurrimos a metodos numericospara estimar la integral.(%i4) quad_qags(sin(x)/x, x, %pi, 3*%pi);(%o4) [-0.1771752530025,7.6034219750884554*10^-15,21,0]Larespuestaesunvectordecuatrocomponentes, laprimeraesel resultado, lasegundaunaestimacion del error cometido, la tercera esta relacionada con la cantidad de evaluaciones y la ultimaes un codigo de errores, 0 signica que se encontraron problemas.5.2. Integraciondefunciones devarias varibles. Paracalcularintegralesdoblesotriples, primerodebemos escoger una iteracion y a partir de esta realizamos el calculo anidando la instruccion para el calculode integrales de una variable.Ejemplos(1)Calcular

Rx2y ex+ydxdy con Rel rectangulo 0 x 1 , 1 y 2 .(%i6) integrate( integrate(x^2*y - exp(x+y), x, 0, 1), y, -1, 2);(%o6) -(%e^(-1)*(6*%e^4-6*%e^3-9*%e+6))/6(2)Calcular

Dx + 3y dxdy con Del recinto denido por 0 y 1 , y2 x 2 y .(%i7) integrate( integrate( x + 3*y, x, y^2, 2 - y), y, 0, 1);(%o7) 139/6(3)Calcular el volumen del solido denido por 0 x 1/2 , 0 y 1 2x , 0 z 5 x2.(%i8) integrate( integrate( integrate ( 1, z, 0, 5 - x^2), y, 0, 1-2*x), x, 0, 1/2);(%o8) 119/96(4)Calcular el volumen de una esfera de radio 2 empleando coordenadas esfericas.(%i13) integrate(integrate(integrate(r^2*sin(u),r, 0, 2),u, 0, %pi),v, 0, 2*%pi)$(%o13) 32%pi/36. Ecuacionesdiferencialesordinarias6.1. Derivadas. Para calcular derivadas de funciones se utiliza la instruccion diff.Ejemplos.(1)Calcular la derivada de f(x) = x2+ sen(3x + 4) .(%i14) f(x) := x^2 + sin(3*x + 4);(%o14) f(x):=x^2+sin(3*x+4)(%i15) diff(f(x), x);(%o15) 3*cos(3*x+4)+2*x(2)Calcular las derivadas segundas y terceras de la funcion del inciso anterior.(%i16) diff(diff(f(x), x), x);(%o16) 2-9*sin(3*x+4)(%i17) diff(diff(diff(f(x), x), x), x);(%o17) -27*cos(3*x+4)14 MARTINPAVONUnamaneraalternativayqueconvienemencionaresdiff(f(x), x, 2)ydiff(f(x), x, 3)respectivamente.(3)Calcular las derivadas parciales de f(x, y) = x3+ xey2.(%i18) f(x, y) := x^3 + x*exp(y^2);(%o18) f(x,y):=x^3+x*exp(y^2)(%i19) diff(f(x,y), x);(%o19) %e^y^2+3*x^2(%i20) diff(f(x, y) , y);(%o20) 2*x*y*%e^y^2(4)Vericar que las derivadas segundas mixtas de la funcion del inciso anterior son iguales(%i21) diff(diff(f(x, y), x), y);(%o21) 2*y*%e^y^2(%i22) diff(diff(f(x, y), y), x);(%o22) 2*y*%e^y^26.2. Solucion general de ecuaciones diferenciales lineales de primer y segundo orden. La instruc-cion para hallar la solucion general de una ecuacion de primer o segundo orden esode2. Para denir unaecuacion diferencial, debemos indicar la derivada de una funcion que no conocemos, para esto anteponemosadiff un apostrofe.Ejemplos.Hallar la solucion general de las siguientes ecuaciones(1) y

+ 3xy = sen(x) .(%i11) eq:diff(y, x) + 3*x*y = x;(%o11) diff(y,x,1)+3*x*y=x(%i12) ode2(eq, y, x);(%o12) y=%e^(-(3*x^2)/2)*(%e^((3*x^2)/2)/3+%c)(%i13) expand(%);(%o13) y=%c*%e^(-(3*x^2)/2)+1/3Notemos que, adiferenciadeloqueocurrecuandoqueremos calcular derivadas, nohayqueponerlavariableindependienteenlafunciondentrodediff(osea, escribimosdiff(y, x), nodiff(y(x), x).Suelesercomododenirlaecuacionfueradeode2comohicimosenlaprimeralinea, pero esto no es necesario. La instruccion expand distribuye la exponencial que aparece en %o12(el smbolo % que pasamos como argumento se reere a la ultima salida del programa). El uso deexpand tampoco es necesario pero la solucion aparece mejor presentada.(2) y

+ 3y

4y = xcos(2x) .(%i17) eq2: diff(y, x, 2) +3 *diff(y, x) - 4*y = x*cos(2*x);(%o17) diff(y,x,2)+3*(diff(y,x,1))-4*y=x*cos(2*x)(%i19) ode2(eq2, y, x);(%o19) y=((6*x+4)*sin(2*x)+(3-8*x)*cos(2*x))/100+%k1*%e^x+%k2*%e^(-4*x)6.3. Condicionesinicialesydeborde. Lasinstruccionesqueseusansonic1parahallarlasolucionparticulardeunaecuaciondeprimerordenquecumpleunacondicioninicial dada, ic2pararesolverelproblema analogo con ecuaciones de segundo orden ybc2 para hallar, si existen, las soluciones particularesEJEMPLOSDEUSODEMAXIMA 15que cumplen satisfacen condiciones de borde dadas. Las tres reciben como parametros la solucion generalobtenida conode2 mas las condiciones.EjemplosResolver los siguientes problemas con condiciones iniciale o de borde.(1) y

3xy = x , y(0) = 3 .(%i48) eq3: diff(y, x) -3*x*y = x;(%o48) diff(y,x,1)-3*x*y=x(%i49) ode2(eq3, y, x);(%o49) y=(%c-%e^(-(3*x^2)/2)/3)*%e^((3*x^2)/2)(%i50) ic1(%, x=0, y=3);(%o50) y=(10*%e^((3*x^2)/2)-1)/3(2) y

+ 3y

2y = x2, y(0) = 1 , y

(0) = 2 .(%i53) ode2(eq4, y, x);(%o53) y=%k1*%e^(((sqrt(17)-3)*x)/2)+%k2*%e^(((-sqrt(17)-3)*x)/2)-(2*x^2+6*x+11)/4(%i54) ic2(%, x = 0, y= 1, diff(y, x) = 2);(%o54) y=((73*sqrt(17)+255)*%e^(((sqrt(17)-3)*x)/2))/136-((73*sqrt(17)-255)*%e^(((-sqrt(17)-3)*x)/2))/136-(2*x^2+6*x+11)/4En este caso es importante notar la manera de introducir las condiciones inciales.(3) y

+ 9y = 0 , y(0) = 0 , y() = 0 .(%i55) eq4: diff(y, x, 2) + 9*y = 0$(%i56) ode2(eq4, y, x);(%o56) y=%k1*sin(3*x)+%k2*cos(3*x)(%i57) bc2(%, x = 0, y = 0, x= %pi, y = 0);Dependent equations eliminated: (2)(%o57) y=%r1*sin(3*x)El programa nos hace saber que en este caso hay innitas soluciones de la forma y(x) = k sen(3x) .(4) y

+ 5y = 0 , y(0) = 0 , y() = 0 .(%i58) eq4: diff(y, x, 2) + 5*y = 0$(%i59) ode2(eq4, y, x);(%o59) y=%k1*sin(sqrt(5)*x)+%k2*cos(sqrt(5)*x)(%i60) bc2(%, x = 0, y = 0, x= %pi, y = 0);(%o60) y=0En este caso la solucion es unica.(5) y

+ 5y = 0 , y(0) = 1 , y() = 0 .(%i58) eq4: diff(y, x, 2) + 5*y = 0$(%i59) ode2(eq4, y, x);(%o59) y=%k1*sin(sqrt(5)*x)+%k2*cos(sqrt(5)*x)(%i60) bc2(%, x = 0, y = 0, x= %pi, y = 0);(%o60) y=0(%i61) bc2(%, x = 0, y = 1, x= %pi, y = 0);Dependent equations eliminated: (2)Inconsistent equations: [1]#0: bc2(soln=y = 0,xa=x = 0,ya=y = 1,xb=x = %pi,yb=y = 0)-- an error. To debug this try debugmode(true);Y este ejemplo muestra como nos informa el programa que no existe solucion.7. SeriesdeFourier7.1. Series de Fourier de una funcion dada. Para el calculo de series de Fourier, necesitamos cargar elpaquete fourie, como siempre, con la instruccion load. A partir de esto, tenemos funciones que nos permitencalcularlasseriesdeFourier,desenosydecosenosdeunafunciondada.Encadaunodeestoscasos,larespuesta del programa es un vector con los coecientes pedidos; tambien estan disponibles funciones paracalcular sumas parciales de las series.Ejemplos(1)Hallar la serie de Fourier de la funcion de perodo 2 denida por f(x) = x2, 2 x .load(fourie);(%o1) /usr/share/maxima/5.17.0/share/calculus/fourie.mac(%i2) fourier(x^2, x, %pi);Is cos(%pi*n) positive, negative, or zero?positive;(%t2) a[0]=%pi^2/3(%t3) a[n]=(2*((%pi^2*sin(%pi*n))/n-(2*sin(%pi*n))/n^3+(2*%pi*cos(%pi*n))/n^2))/%pi(%t4) b[n]=0(%o4) [%t2,%t3,%t4]En el primer renglon cargamos el paquete fourie (es importante notar que, por alguna razon, notiene la r nal de Fourier).En el segundo, calculamos la serie, al instruccion tiene como primer argmento la funcion cuya seriequeremos calcular, el segundo el nombre de la variable independiente y el tercero L si el perodode la funcion es 2L .Lo que sigue es una pregunta que en ocasiones hace el programa para poder continuar, noten quenoesunarespuestaestandardadoquelapreguntanoestaprecididapor %o;larespuestausualespositive (yctrl + enter).En la ultima parte tenemos la respuesta, el coeciente a0 , los any bny para nalizar todo esose guarda en un vector.(2)GracarlasumadelosprimeroscincoterminosdelaseriedeFourierdelafunciondel ejemploanterior entre6 y 6 .(%i5) coefi : fourier(x^2, x, %pi);Is cos(%pi*n) positive, negative, or zero? positive;EJEMPLOSDEUSODEMAXIMA 17(%t5) a[0]=%pi^2/3(%t6) a[n]=(2*((%pi^2*sin(%pi*n))/n-(2*sin(%pi*n))/n^3 +(2*%pi*cos(%pi*n))/n^2))/%pi(%t7) b[n]=0(%o7) [%t5,%t6,%t7](%i9) fourexpand(coefi, x, %pi, 5);(%o9) -(4*cos(5*x))/25+cos(4*x)/4-(4*cos(3*x))/9 +cos(2*x)-4*cos(x)+%pi^2/3(%i11) f(x) := fourexpand(coefi, x, %pi, 5);(%o11) f(x):=fourexpand(coefi,x,%pi,5)(%i12) plot2d(f(x), [x, -6, 6]);En el primer renglon, calculamos como en el ejemplo anterior los coecientes de la serie pero, adiferenciadelohechoantes,guardamoselresultadodelvectorconelnombredecoefi(obvia-mente, podemos poner cualquier nombre).En( %i9)apareceunanuevafuncion, fourexpand, queeslaquecalculalasuma. El 5 queapareceen ultimolugartienequeverconlacantidaddesumandos. Unamaneraalternativadelograr lo mismo serafourexpand(fourier(x^2, x, %pi), x, %pi,5);. . . Un plomazo.Lasalida %o9eslasumaparcial; paragracarlaesconvenienteasignarlaaunafuncion, esolohacemos en %i11 (presten atencion al uso de:= para denir la funcion).Finalmente, en %12 ejecutamos la instruccion para hacer el graco.7.2. Seriesdesenosycosenos. Otros comandos relacionados con series de Fourier son:(1) fourcos,foursin que devuelve los coeentes de los desarrollos en cosenos y senos de una funcion;las instrucciones usan la misma sintaxis quefourier, pero en este caso se considera denida en elintervalo [0, L] .(2) totalfourier que intenta encontrar la formula del termino general de la serie y la serie de Fourieren s (tambien con una sintaxis similar a la defourier).(3) foursimpsimplica sen(n) y cos(n) (dependedelasvariablessinnpiflag, cosnpiflagquepor default estan denidas comotrue) . Por ejemplo,(%i2) coef_sen : foursin(x^2, x, %pi);Is sin(%pi*n) positive, negative, or zero?positive;(%t2) b[n]=(2*((2*%pi*sin(%pi*n))/n^2-(%pi^2*cos(%pi*n))/n +(2*cos(%pi*n))/n^3-2/n^3))/%pi(%o2) [%t2](%i3) foursimp(coef_sen);(%t3) b[n]=-(2*(%pi^2*n^2*(-1)^n-2*(-1)^n+2))/(%pi*n^3)(%o3) [%t3]Hay mas informacion en la ayuda del programa (dentro del item Numerical).