Practicas Con Maxima (1)

Embed Size (px)

Citation preview

Prcticasdecon Maximacon MaximaJernimo Alaminos PratsCamilo Aparicio del PradoJos Extremera LizanaPilar Muoz RivasArmando R. Villena MuozReconocimiento-Nocomercial 3.0 EspaaUsted es libre de:copiar, distribuir y comunicar pblicamente la obrahacer obras derivadasBajo las condiciones siguientes:Reconocimiento. Debe reconocer los crditos de la obra de la manera especicada por el autor oel licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace desu obra).No comercial. No puede utilizar esta obra para nes comerciales.a) Alreutilizarodistribuirlaobra,tienequedejarbienclarolostrminosdelalicenciadeestaobra.b) Algunadeestascondicionespuedenoaplicarsesi seobtieneel permisodel titulardelosderechos de autorc) Nada en esta licencia menoscaba o restringe los derechos morales del autor.AdvertenciaEste resumen no es una licencia. Es simplemente una referencia prctica para entender la licenciacompleta que puede consultarse enhttp://creativecommons.org/licenses/by-nc/3.0/es/legalcode.esndice i ndicendice iIntroduccin iii1 Primeros pasos 51.1Introduccin 5 1.2Resultadosexactosyaproximacindecimal 9 1.3Funcionesusua-les 11 1.4Operadores lgicos y relacionales 15 1.5Variables 17 1.6Expresiones simbli-cas 19 1.7La ayuda de Maxima 26 1.8Ejercicios 282 Grcos 292.1Funciones 29 2.2Grcos en el plano con plot2d 33 2.3Grcos en 3D 44 2.4Grcoscon draw 47 2.5Animaciones grcas 61 2.6Ejercicios 653 Listas y matrices 693.1Listas 69 3.2Matrices 74 3.3Ejercicios 824 Nmeros complejos. Resolucin de ecuaciones 854.1Nmeros complejos 85 4.2Ecuaciones y operaciones con ecuaciones 88 4.3Resolucinde ecuaciones 88 4.4Hgalo usted mismo 96 4.5Ejercicios 1035 Lmites y continuidad 1055.1Lmites 105 5.2Sucesiones 107 5.3Continuidad 109 5.4Ejercicios 1106 Derivacin 1136.1Clculo de derivadas 113 6.2Rectas secante y tangente a una funcin 116 6.3Mximosy mnimos relativos 119 6.4Polinomio de Taylor 124 6.5Ejercicios 1307 Series numricas y series de Taylor 1317.1Series numricas 131 7.2Desarrollo de Taylor 133 7.3Ejercicios 1348 Integracin 1358.1Clculo de integrales 135 8.2Sumas de Riemann 141 8.3Aplicaciones 144 8.4Ejerci-cios 1519 Ecuaciones diferenciales ordinarias 1539.1Resolucin de edos de primer y segundo orden 153 9.2Resolucin de sistemas de ecuacio-nes lineales 156 9.3Campos de direcciones y curvas integrales 157 9.4Ejercicios 16010 Diferenciacin 16310.1Derivadas parciales de una funcin 163 10.2Curvas y vectores tangentes 166 10.3Fun-ciones denidas implcitamente 168 10.4Extremos relativos 173 10.5Extremos condiciona-dos 175 10.6Extremos absolutos 177 10.7Ejercicios 178ndice ii 11 Integrales mltiples 18111.1Integrales iteradas 181 11.2Integrales dobles 181 11.3Ejercicios 185A Avisos y mensajes de error 187B Bibliografa 191Glosario 193Introduccin iii IntroduccinMaxima es un programa que realiza clculos matemticos de forma tanto numrica como sim-blica, estoes, sabetantomanipularnmeroscomocalcularladerivadadeunafuncin. Suscapacidades cubren sobradamente las necesidades de un alumno de un curso de Clculo en unosestudios de Ingeniera. Se encuentra disponible bajo licencia GNU GPL tanto el programa como losmanuales del programa.Lo que presentamos aqu son unas notas sobre el uso de Maxima para impartir la parte corres-pondienteaunasprcticasdeordenadorenunaasignaturadeClculoqueincluyaderivadaseintegrales en una y varias variables y una breve introduccin a ecuaciones diferenciales ordinarias.Ademsdeeso, hemosaadidounoscaptulosinicialesdondeseexplicanconalgodedetallealgunos conceptos ms o menos generales que se utilizan en la resolucin de problemas con Ma-xima. Hemos pensado que es mejor introducir, por ejemplo, la gestin de grcos en un captuloseparado que ir comentando cada orden en el momento que se use por primera vez. Esto no quieredecir que todo lo que se cuenta en los cuatro primeros captulos sea necesario para el desarrollodel resto de estas notas. De hecho, posiblemente es demasiado. En cualquier caso pensamos quepuede ser til en algn momento.Por quHay muchos programas que cumplen en mayor o menor medida los requisitos que se necesitanpara ensear y aprender Clculo. Slo por mencionar algunos, y sin ningn orden particular, casitodos conocemos Mathematica (Wolfram Research) o Maple (Maplesoft). Tambin hay una largalista de programas englobados en el mundo del software libre que se pueden adaptar a este trabajo.Siemprehayqueintentar escoger laherramientaquemejor seadapteal problemaquesepresentay,ennuestrocaso,MaximacumpleconcreceslasnecesidadesdeuncursodeClculo.Es evidente que Mathematica o Maple tambin pero creemos que el uso de programas de softwarelibrepermitealalumnoyalprofesorestudiarcmoesthecho,ayudarensumejoray,sifueranecesario y posible, adaptarlo a sus propias necesidades.Ademspensamosqueelprogramatienelasucientecapacidadcomoparaqueelalumnolepueda seguir sacando provecho durante largo tiempo. Estamos todos de acuerdo en que esto sloesunprimerpasoyqueMaximasepuedeutilizarparaproblemasmscomplejosquelosqueaparecen en estas notas. Esto no es un callejn sin salida sino el comienzo de un camino.Dnde y cmoNoesnuestraintencinhacerunahistoriadeMaxima,niexplicarcmosepuedeconseguiroinstalar, tampoco aqu encontrars ayuda ni preguntas frecuentes ni nada parecido. Cualquiera deestas informaciones se encuentra respondida de manera detallada en la pgina web del programa:http://maxima.sourceforge.net/es/Enestapginapuedesdescargarteelprogramayencontrarabundantedocumentacinsobrecmo instalarlo. Al momento de escribir estas notas, en dicha pgina puedes encontrar versionesIntroduccin iv listas para funcionar disponibles para entornos Windows y Linux e instrucciones detalladas paraponerlo en marcha en Mac OS X.wxMaximaEnestasnotasnoestamosusandoMaximadirectamentesinounentornogrcoqueutilizaMaximacomomotorpararealizarlosclculos. Esteentorno(programa)eswxMaxima. Nosvaapermitirquelacurvadeaprendizajeseamuchomssuave. Desdeelprimerdaelalumnosercapazderealizarlamayoradelasoperacionesbsicas. Apesardeello, entodoslosejemplosseguimosutilizandolanotacindeMaximaqueeslaqueleapareceallectorenpantallayquenunca est de ms conocer. wxMaxima se puede descargar de su pgina webhttp://wxmaxima.sourceforge.net/SuelevenirincluidoconMaximaensuversinparaentornoWindowsyenMacOSX. Sobrela instalacin en alguna distribucin Linux es mejor consultar la ayuda sobre su correspondienteprograma para gestionar software.Granada a 10 de septiembre de 2008Primeros pasos Introduccin 5 Primeros pasos11.1Introduccin 5 1.2Resultados exactos y aproximacin decimal 9 1.3Funcionesusuales 11 1.4Operadores lgicos y relacionales 15 1.5Variables 17 1.6Expre-siones simblicas 19 1.7La ayuda de Maxima 26 1.8Ejercicios 281.1 IntroduccinVamos a comenzar familiarizndonos con Maxima y con el entorno de trabajo wxMaxima. Cuan-do iniciamos el programa se nos presenta una ventana como la de la Figura 1.1. En la parte superiortienes el men con las opciones usuales (abrir, cerrar, guardar) y otras relacionadas con las posi-bilidades ms matemticas de Maxima. En segundo lugar aparecen algunos iconos que sirven deatajo a algunas operaciones y la ventana de trabajo. En sta ltima, podemos leer un recordatoriode las versiones que estamos utilizando de los programas Maxima y wxMaxima as como el entornoLisp sobre el que est funcionando y la licencia (GNU Public License):1wxMaxima 0.8.3a http://wxmaxima.sourceforge.netMaxima 5.19.2 http://maxima.sourceforge.netUsing Lisp SBCL 1.0.30Distributed under the GNU Public License. See the file COPYING.Dedicated to the memory of William Schelter.The function bug_report() provides bug reporting information.Figura 1.1 Ventana inicial de wxMaximaYairemoscomentandoconmayorprofun-didadlosdistintosmensyopcionesquese nos presentan pero antes de ir ms lejos,podemosescribiralgo?S, situael cursordentrodelaventana, pulsayescribe2+3.Luego pulsa las teclas Shift +Return. Ob-tendrs algo similar a esto:(%i1) 2+3;(%o1) 5Como puedes ver Maxima da la respuestacorrecta: 5. Bueno, no parece mucho. Seguroque tienes una calculadora que hace eso. De acuerdo. Es slo el principio.Observacin 1.1. Conviene hacer algunos comentarios sobre lo que acabamos de hacer:Pordefecto, laventanadewxMaximaapareceenblanco. Enlaspreferenciasdelprograma, sepuedeelegirqueaparezcala1versin instalada al inicio del mismo como se ve en la gura.Introduccin Primeros pasos 6 a) Nointentesescribirlossmbolos(%i1)y(%o1), yaquestoslosescribeel programapara llevar un control sobre las operaciones que va efectuando. (%i1) se reere a la primeraentrada (input) y (%o1) a la primera respuesta (output).b) La entradas terminan en punto y coma. wxMaxima lo aade si t te has olvidado de escribirlo.Justamente lo que nos haba pasado.Operaciones bsicas+ suma producto/ divisin o potenciasqrt( ) raz cuadradaEl producto se indica con :(%i2) 35;(%o2) 15Para multiplicar nmeros es necesario escribir el smbolo de la multiplicacin. Si slo dejamosun espacio entre los factores el resultado es un error:(%i3) 5 4;(%o3)Incorrect syntax: 4 is not an infix operator5Space4;

Tambin podemos dividir(%i4) 5+(24+6)/7;(%o4) 7(%i5) 5+24+6/7;(%o5)977eso s, teniendo cuidado con la precedencia de las operaciones. En estos casos el uso de parntesises obligado.Podemos escribir potencias(%i6) 357;(%o6) 1570042899082081611640534563Primeros pasos Introduccin 7 Fjate en el nmero de dgitos que tiene el resultado. Es un primer ejemplo de que la potencia declculo de Maxima es mayor que la de una calculadora que no suele tener ms all de 10 o 12. Yas lo que estars pensando en este momento: en lugar de elevar a 57, elevemos a un nmero msgrande. De acuerdo.(%i7) 31000;(%o7)132207081948080663689045525975[418 digits]614366132173102768902855220001Como puedes ver, Maxima realiza la operacin pero no muestrael resultado completo. Nos dice que, en este caso, hay 418 dgitosque no est mostrando. Se puede saber cules son? S. Nos vamosal menMaximaCambiarpantalla2Dyescogemosascii. Porltimo, repetimos la operacin.(%i8) set_display(ascii)$(%i9) 31000;(%o9)1322070819480806636890455259752144365965422032752148167664920368226828597346704899540778313850608061963909777696872582355950954582100618911865342725257953674027620225198320803878014774228964841274390400117588618041128947815623094438061566173054086674490506178125480344405547054397038895817465368254916136220830268563778582290228416398307887896918556404084898937609373242171846359938695516765018940588109060426089671438864102814350385648747165832010614366132173102768902855220001La salida en formato ascii es la que tiene por defecto Maxima. La salida con formato xml es unamejora de wxMaxima. Siempre puedes cambiar entre una y otra va el men o volviendo a escribir(%i10) set_display(xml)$(%i11) 31000;(%o11)132207081948080663689045525975[418 digits]614366132173102768902855220001Observacin 1.2. Antes de seguir, por qu sale $ y no punto y coma al nal de la salida anterior?Elpuntoycomasirveparaterminaruncomandoosepararvariosdeellos. Eldlar, $, tambintermina un comando o separa varios de ellos pero, a diferencia del punto y coma, nomuestra elresultado en pantalla.Si trabajamos con fracciones, Maxima dar por defecto el resultado en forma de fraccin(%i12) 2+5/11;(%o12)2711Introduccin Primeros pasos 8 simplicando cuando sea posible(%i13) 128/234;(%o13)64117Clculo simblicoCuando hablamos de que Maxima es un programa de clculo simblico, nos referimos a que nonecesitamos trabajar con valores concretos. Fjate en el siguiente ejemplo:(%i14) a/2+3a/5(%o14)11a10Bueno,hastaahorasabemossumar,restar,multiplicar,dividirypocoms.Maximatienepre-denidas la mayora de las funciones usuales. Por ejemplo, para obtener la raz de un nmero seusa el comando sqrt Races(%i15) sqrt(5);(%o15)5lo cul no parece muy buena respuesta. En realidad es la mejor posible: Maxima es un programade clculo simblico y siempre intentar dar el resultado en la forma ms exacta.Obviamente, tambin puedes hacer la raz cuadrada de un nmero, elevando dicho nmero alexponente12(%i16) 5(1/2);(%o16)5Si queremos obtener la expresin decimal, utilizamos la orden float. oat(%i17) float(5);(%o17) 2.23606797749979ConstantesAdemsdelasfuncionesusuales(yairemosviendoms),Maximatambinconoceelvalordealgunas de las constantes tpicas.%pi el nmero %e el nmero e%i la unidad imaginaria%phila razn area,1+52Primeros pasos Resultados exactos y aproximacin decimal 9 Podemos operar con ellas como con cualquier otro nmero.(%i18) (2+3*%i)*(5+3*%i);(%o18) (3*%i+2)*(3*%i+5)EvidentementenecesitamosalgunamaneradeindicaraMaximaquedebedesarrollarlospro-ductos, pero eso lo dejaremos para ms tarde.Cul era el resultado anterior?% ltimo resultado%inmero entrada nmero%onmero resultado nmeroCon Maxima podemos usar el resultado de una operacin anterior sin necesidad de teclearlo. Estoseconsigueconlaorden%. Noslopodemosreferirnosalaltimarespuestasinoacualquierentrada o salida anterior. Para ello(%i19) %o15(%o19)5adems podemos usar esa informacin como cualquier otro dato.(%i20) %o4+%o5;(%o20)14671.2 Resultados exactos y aproximacin decimalHayunadiferenciabsicaentreelconceptoabstractodenmerorealycmotrabajamosconellos mediante un ordenador: la memoria y la capacidad de proceso de un ordenador son nitos. Laprecisin de un ordenador es el nmero de dgitos con los que hace los clculos. En un hipotticoordenadorquenicamentetuvieracapacidadparaalmacenarel primerdecimal, el nmeroserarepresentadocomo3.1. Estopuededarlugaraerroressi, porejemplo, restamosnmerossimilares. Maximarealizalosclculosdeformasimblicaonumrica. Enprincipio, laprimeraforma es mejor, pero hay ocasiones en las que no es posible.Maxima tiene dos tipos de nmeros: exactos y aproximados. La diferencia entre ambos es laesperable.13esunnmeroexactoy0.333esunaaproximacindelanterior.Enunacalculadoranormal todos los nmeros son aproximados y la precisin (el nmero de dgitos con el que trabajalacalculadora)eslimitada, usualmente10o12dgitos. Maximapuedemanejarlosnmerosdeforma exacta, por ejemplo(%i21) 1/2+1/3;Resultados exactos y aproximacin decimal Primeros pasos 10 (%o21)56Mientras estemos utilizando nicamente nmeros exactos, Maxima intenta dar la respuesta de lamisma forma. Ahora bien, en cuanto algn trmino sea aproximado el resultado nal ser siempreaproximado. Por ejemplo(%i22) 1.0/2+1/3;(%o22) 0.83333333333333EstecomportamientodeMaximavienedeterminadoporlavariablenumerquetieneel valor numerfalsepordefecto. Encasodequecambiemossuvaloratrue, larespuestadeMaximaseraproximada.(%i23) numer;(%o23) false(%i24) numer:true$(%i25) 1/2+1/3(%o25) 0.83333333333333(%i26) numer:false$Recuerda cambiar el valor de la variable numer a false para volver al comportamiento originalde Maxima. En wxMaxima, podemos utilizar el men Numricoconmutar salida numrica paracambiar el valor de la variable numer.float(nmero) expresin decimal de nmeronmero,numer expresin decimal de nmerobfloat(nmero) expresin decimal larga de nmeroSisloqueremosconocerunaaproximacindecimaldeunresultadoexacto,tenemosanuestradisposicin las rdenes float y bfloat.(%i27) float(sqrt(2));(%o27) 1.414213562373095En la ayuda de Maxima podemos leerValor por defecto: 16.La variable fpprec guarda el nmero de dgitos significativos enla aritmtica con nmeros decimales de punto flotante grandes("bigfloats"). La variable fpprec no afecta a los clculos connmeros decimales de punto flotante ordinarios.Primeros pasos Funciones usuales 11 Maxima puede trabajar con cualquier precisin. Dicha precisin la podemos jar asignando elvalorquequeramosalavariablefpprec. Porejemplo, podemoscalcularcuntovalenlos100primeros decimales de :(%i28) fpprec:100;(%o28) 100(%i29) float(%pi);(%o29) 3.141592653589793Noparecequetengamos100dgitos...deacuerdo, justoesonosdecalaayudademxima:La variable fpprec no afecta a los clculos con nmeros decimales de punto otante ordinarios.Necesitamos la orden bfloat para que Maxima nos muestre todos los decimales pedidos (y cambiarla pantalla a ascii):(%i30) bfloat(%pi);(%o30)3.1415926535897932384626433832[43 digits]6286208998628034825342117068b0(%i31) set_display(ascii)$(%i32) bfloat(%pi);(%o32)3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068b0Figura 1.2 En el men, la pestaa Num-rico permite obtener la expresin decimalcon la precisin que se deseeSi te has jado, en la salida anterior la expresin decimal delnmeroterminaconb0. Losnmerosencomaotantegrandessiempreterminanconbseguidodeunnmero npara indicar que debemos multiplicar por 10n. En el caso an-terior, la expresin decimal de deberamos multiplicarla por100= 1.Por ltimo, observa que, como se puede ver en la Figura 1.2,tambin se puede utilizar el men NumricoA real o Num-ricoArealgrande(bigoat)paraobtenerlaexpresindeci-mal buscada.1.3 Funciones usualesAdems de las operaciones elementales que hemos visto, Maxima tiene denidas la mayor partede las funciones elementales. Los nombres de estas funciones suelen ser su abreviatura en ingls,que algunas veces diere bastante de su nombre en castellano. Por ejemplo, ya hemos visto racescuadradas(%i33) sqrt(4);(%o33) 2Funciones usuales Primeros pasos 12 sqrt(x) raz cuadrada de xexp(x) exponencial de xlog(x) logaritmo neperiano de xsin(x), cos(x), tan(x) seno, coseno y tangente en radianescsc(x), sec(x), cot(x) cosecante, secante y cotangente en radianesasin(x), acos(x), atan(x) arcoseno, arcocoseno y arcotangentesinh(x), cosh(x), tanh(x) seno, coseno y tangente hiperblicosasinh(x), acosh(x), atanh(x) arcoseno, arcocoseno y arcotangentehiperblicosPotencias, races y exponencialesHemos visto que podemos escribir potencias utlizandoo . No importa que el exponentesea racional. En otras palabras: podemos calcular races de la misma forma(%i34) 625(1/4);(%o34) 5(%i35) 625(1/3)2(1/3):(%o35) 21/354/3En el caso particular de que la base sea el nmero e, podemos escribir(%i36) %e2;(%o36) %e2o, loqueesmscmodoespecialmentesi el exponenteesunaexpresinmslarga, utilizarlafuncin exponencial exp(%i37) exp(2);(%o37) %e2(%i38) exp(2),numer;(%o38) 7.38905609893065LogaritmosMaxima slo tiene la denicin del logaritmo neperiano o natural que se consigue con la ordenlog:(%i39) log(20);(%o39) log(20)Primeros pasos Funciones usuales 13 y si lo que nos interesa es su expresin decimal(%i40) log(20),numer;(%o40) 2.995732273553991Observacin 1.3. Mucho cuidado con utilizar ln para calcular logaritmos neperianos:(%i41) ln(20);(%o41) ln(20)puede parecer que funciona igual que antes pero en realidad Maxima no tiene la ms remota ideade lo que vale, slo est repitiendo lo que le habis escrito. Si no te lo crees, pdele que te diga elvalor:(%i42) ln(20),numer;(%o42) ln(20)Cmo podemos calcular log2(64)? Para calcular logaritmos en cualquier base podemos utilizarquelogb(x) =log(x)log(b) .Se puede denir una funcin que calcule los logaritmos en base 2 de la siguiente manera(%i43) log2(x):=log(x)/log(2)$(%i44) log2(64);(%o44)log(64)log(2)Te habrs dado cuenta de que Maxima no desarrolla ni simplica la mayora de las expresiones.En segundo lugar, la posibilidad de denir funciones a partir de funciones conocidas nos abre unaamplia gama de posibilidades. En el segundo captulo veremos con ms detalle cmo trabajar confunciones.Funciones trigonomtricas e hiperblicasMaximatienepredenidaslasfuncionestrigonomtricasusualesseno, sin, coseno, cos, ytangente, tan, que devuelven, si es posible, el resultado exacto.(%i45) sin(%pi/4)(%o45)12Por defecto, las funciones trigonomtricas estn expresadas en radianes.Funciones usuales Primeros pasos 14 Tambin estn predenidas sus inversas, esto es, arcoseno, arcocoseno y arcotangente, que seescriben respectivamente asin(x), acos(x) y atan(x), as como las funciones recprocas secante,sec(x), cosecante, csc(x), y cotangente, cot(x)2.(%i46) atan(1);(%o46)4(%i47) sec(0);(%o47) 1De forma anloga, puedes utilizar las correspondientes funciones hiperblicas.Otras funcionesAdems de las anteriores, hay muchas ms funciones de las que Maxima conoce la denicin.Podemos, por ejemplo, calcular factoriales(%i48) 32!(%o48) 263130836933693530167218012160000000o nmeros binmicos(%i49) binomial(10,4);(%o49) 210Recuerdas cul es la denicin de_mn_?_mn_= m(m1)(m2) (m(n1))n!En el desarrollo de Taylor de una funcin veremos que estos nmeros nos simplican bastante lanotacin.n! factorial de nentier(x) parte entera de xabs(x) valor absoluto o mdulo de xrandom(x) devuelve un nmero aleatoriosignum(x) signo de xmax(x1,x2,...) mximo de x1,x2,...min(x1,x2,...) mnimo de x1,x2,...El nmero no aparece como tal por defecto en wxMaxima. Para que aparezca as, puedes marcar Usar fuente griega dentro2de PreferenciasEstilo.Primeros pasos Operadores lgicos y relacionales 15 Una de las funciones que usaremos ms adelante es random. Conviene comentar que su comporta- randommiento es distinto dependiendo de si se aplica a un nmero entero o a un nmero decimal, siemprepositivo, eso s. Si el nmero x es natural, random(x) devuelve un natural menor o igual que x1.(%i50) random(100);(%o50) 7Obviamente no creo que t tambin obtengas un 7, aunque hay un caso en que s puedes sabercul es el nmero aleatorio que vas a obtener:(%i51) random(1);(%o51) 0efectivamente,elnicoenterononegativomenoroigualque1 1eselcero.Enelcasodequeutilicemosnmerosdecimalesrandom(x)nosdevuelveunnmerodecimal menorquex. Porejemplo,(%i52) random(1.0);(%o52) 0.9138095996129nos da un nmero (decimal) entre 0 y 1.La lista de funciones es mucho mayor de lo que aqu hemos comentado y es fcil que cualquierfuncin que necesites est predenida en Maxima. En la ayuda del programa puedes encontrar lalista completa.1.4 Operadores lgicos y relacionalesMaxima puede comprobar si se da una igualdad (o desigualdad). Slo tenemos que escribirla ynos dir qu le parece:(%i53) is(3