> <\body> <\expand|make-title> <\address> <\with|paragraph mode|center> e-mail : \ > Este artículo es la traducción al español de un documento de introducción a Maxima, escrito por Richard Hand, de la Universidad de Cornell. Como texto de apoyo se ha utilizado una traducción al francés de este mismo documento realizada por Michel Gosse (michel.gosse@ac-poitiers.fr). Este documento se ha escrito utilizando el programa (ver ), que dispone de un interfaz con Maxima y permite una presentación en notación matemática estándar de los resultados producidos por este programa de cálculo simbólico. <\expand|table-of-contents|toc> |math font series||1Introducción> |math font series||2Las teclas y símbolos especiales> |math font series||3Aritmética> |math font series||4Álgebra><\ vspace|0.5fn> |math font series||5Cálculo diferencial> |math font series||6Cálculo matricial> |math font series||7Programar en Maxima> |math font series||8Una lista parcial de funciones de Maxima> Para arrancar Maxima en Windows, haga doble clic sobre el fichero , que está situado dentro del directorio de instalación del programa. En GNU/Linux, uno puede escribir en una consola bien , que arrancará el programa en modo texto, o bien , que lo arrancará en modo gráfico. Si se desea arrancar Maxima dentro de una sesión de vaya a (Insertar) en el menú, seleccione (sesión) y finalmente . En todos los casos, se obtiene un mensaje semejante a: <\session|maxima|default> <\output> GCL (GNU Common Lisp) \ Version(2.4.0) Wed May \ 9 12:02:00 CDT 2001 Licensed under GNU Library General Public License Contains Enhancements by W. Schelter Maxima 5.6 Thu Mar 8 08:08:39 CDT 2002 (with enhancements by W. Schelter). Licensed under the GNU Public License (see file COPYING) \; <\input|<\with|color|red> (C1) > \; (C1) es una . Cada entrada o salida está numerada y es posible referirse a ella por su etiqueta durante el transcurso de la sesión de maxima. La C indica una entrada () y la D una salida (). No se podrán emplear nunca variables como C1 o D5, ya que se prestaría a confusión. Maxima no distingue entre los caracteres en mayúsculas y minúsculas; Si se introduce o , ambas designarán la función para el programa. Por contra, en las respuestas que el programa envía (etiquetas D), Maxima empleará sistemáticamente una notación en mayúsculas. Esta regla se aplica a las variables definidas por el usuario; por ejemplo, las variables y se consideran distintas en Maxima. Le invitamos a probar... <\expand|enumerate-numeric> <\with|line stretch|0.3cm> <\with|line stretch|0cm> Para finalizar una sesión de Maxima, escriba >. Si, por el contrario, escribe CTRL C, esto es lo que ocurrirá:\ <\code> Correctable error : Console interrupt Signalled by Macysgma-top-level If continued : Type :r to resume execution, or :q to quit to top level Broken at SYSTEM:TERMINAL-INTERRUPT Type :H for Help Maxima\ \:q (C1) <\with|paragraph mode|left> <\with|paragraph mode|left> A la pregunta de Maxima, es necesario responder (o ) para parar el cálculo en curso y volver al de Maxima. Si escribe , el cálculo continuará. La presión de las teclas CTRL Y no tendrá ningún efecto aparte de aparecer indicado en la pantalla. Finalmente, CTRL Z tendrá el mismo efecto que el comando Nótese que CTRL C significa el apoyo simultáneo de las teclas CONTROL y C del teclado. Para abortar un cálculo sin salir de Maxima, escriba CTRL C. Es importante que sepa esto para, por ejemplo, poder parar un cálculo que, a todas luces, esté llevando excesivo tiempo. Recuerde escribir en el prompt de que aparecerá para volver a Maxima. Con el fin de indicarle a Maxima que ha finalizado un comando, utilice el punto y coma (;), y después presione ENTER. Nótese que presionar ENTER sin haber introducido el punto y coma no produce el resultado esperado. Una forma alternativa a (;) de finalizar un comando es el símbolo del dólar ($), que a diferencia del punto y coma no muestra el resultado del comando introducido. Esto puede resultar útil si se está calculando algún resultado intermedio bastante largo y no se desea tener la ventana de Maxima saturada de datos, por ejemplo. Si se desea repetir un comando que ya ha sido escrito antes en la sesión de Maxima, pongamos (C5), puede hacerlo sin necesidad de volver a escribir el comando. Simplemente escriba la etiqueta del comando precedida de dos comillas simples (''). Por ejemplo; ''C5. Nótese que no funcionará sin las comillas simples. Si se desea referir al resultado generado por la orden inmediatamente anterior, se puede usar o bien la etiqueta D asociada o el símbolo de porcentaje (%). Las constantes (exponencial de 1), (raíz cuadrada de -1) y > están representadas por \ %E (o %e), %I (o %i) y %PI (o %pi). Importante: El símbolo % aquí no tiene ninguna relación con el uso descrito en el punto 6. Para asociar un valor a una variable, Maxima utiliza los dos puntos (:), el signo de igualdad. El símbolo de igualdad, en cambio, se utiliza para representar ecuaciones. \; \ Operaciones fundamentales: <\expand|itemize-dot> La suma se denota con + La resta se denota con - La multiplicación se denota con * La división se denota con / La potencia se denota con ^ ó ** La multiplicación matricial se denota con . La función raíz se denota con La salida de Maxima se caracteriza por devolver valores racionales exactos. Por ejemplo: <\session|maxima|default> <\input|maxima] > 1/100+1/101; <\output> <\with|mode|math> >> \; Si se emplean números irracionales, éstos se conservan en forma simbólica: <\session|maxima|default> <\input|maxima] > (1+sqrt(2))^5; <\output> <\with|mode|math> >+1> \; <\input|<\with|color|red> (C4) > expand(%); <\output> <\with|mode|math> >29*+41> \; Sin embargo, es habitual querer expresar el resultado en forma decimal. Esto se consigue colocando tras la expresión deseada el texto "": <\session|maxima|default> <\input|maxima] > %,numer; <\output> <\with|mode|math> >82.01219330881976> \; Nótese que el símbolo % aquí se refiere al resultado calculado justo antes. Por defecto, el comando devuelve un número con 16 cifras significativas (por lo que la última puede estar equivocada). Sin embargo, Maxima puede ofrecer precisión arbitraria utilizando la función : <\session|maxima|default> <\input|maxima] > bfloat(D3); <\output> 8.201219330881976B1 \; El número de decimales está controlado por la variable de Maxima , que por defecto vale 16: <\session|maxima|default> <\input|maxima] > fpprec; <\output> <\with|mode|math> >16> \; Si asignamos a esta variable el valor 100: <\session|maxima|default> <\input|maxima] > fpprec:100; <\output> <\with|mode|math> >100> \; <\input|<\with|color|red> (C9) > bfloat(D3); <\output> 8.2012193308819756415248973002081244278520484385931494122123712401731 \ 2418754011041266612384955016056B1 \; Maxima puede calcular valores exactos de números muy grandes: <\session|maxima|default> <\input|maxima] > 100!; <\output> <\with|mode|math> >93326215443944152681699\ 238856266700490715968264381621468592963895217599993229915608941463976\ 156518286253697920827223758251185210916864000000000000000000000000> \; La importancia de Maxima como programa que nos ayuda en el cálculo analítico se muestra más evidente cuando observamos la facilidad con que manipula el álgebra por nosotros. He aquí un ejemplo en donde se expande un polinomio: <\session|maxima|default> <\output> \; <\input|<\with|color|red> (C1) > (x+3*y+x^2*y)^3; <\output> <\with|mode|math> >x*y+3*y+\ x> \; <\input|<\with|color|red> (C2) > expand(%); <\output> <\with|mode|math> >x*y+9*x<\ rsup|4>*y+27*x*y+27*y+3*x*y+18*x*y+27*x*y+3*x*y+9*x*y+x> \; \; Supongamos ahora que queremos sustituir \ por el valor > en la expresión precedente: <\session|maxima|default> <\input|maxima] > d2,x=5/z; <\output> <\with|mode|math> >|z>+<\ frac|675*y|z>+>+|z>+>+|z>+\ >+|z>+|z>+27*y> \; La función de Maxima reduce la expresión a común denominador: <\session|maxima|default> <\input|maxima] > ratsimp(%); <\output> <\with|mode|math> >*z+135*y*z+675*y+225*y*z+2250*y+125*z+5625*y+1875*y*z+9375*y*z+15625*y|z>> \; Las expresiones pueden ser factorizadas: <\session|maxima|default> <\input|maxima] > factor(%); <\output> <\with|mode|math> >3*y*z+5*z+25*y|z>> \; Maxima puede obtener soluciones exactas de sistemas de ecuaciones algebraicas no lineales. En este ejemplo utilizamos la función para resolver tres ecuaciones con tres incógnitas y : <\session|maxima|default> <\input|maxima] > a+b*c=1; <\output> <\with|mode|math> >b*c+a=1> \; <\input|<\with|color|red> (C8) > b-a*c=0; <\output> <\with|mode|math> >b-a*c=0> \; <\input|<\with|color|red> (C9) > a+b=5; <\output> <\with|mode|math> >b+a=5> \; <\input|<\with|color|red> (C10) > solve([d7,d8,d9],[a,b,c]); <\output> <\with|mode|math> >a=*i+25|6**i-34>,b=*i+5|*i+11>,c=*i+1|10>,a=*i-25|6**i+34>,b=*i-5|*i-11>,c=-\ *i-1|10>> \; Nótese que la salida consiste en una . Es decir, una expresión contenida dentro de dos corchetes [ ... ], que contiene a su vez dos listas. Cada una de estas últimas contiene una solución distinta para el sistema de ecuaciones. Manipular identidades triginométricas en Maxima es fácil. La función utiliza las fórmulas de suma de ángulos para intentar que los argumentos dentro de las funciones trigonométricas sean lo más sencillo posible: <\session|maxima|default> \; <\input|<\with|color|red> (C1) > sin(u+v)*cos(u)^3; <\output> <\with|mode|math> >cos u*sin v+u> \; <\input|<\with|color|red> (C2) > trigexpand(%); <\output> <\with|mode|math> >cos u*cos u*sin v+sin u*cos v> \; Por contra, la función transforma una expresión trigonométrica en una suma de términos donde cada uno contiene un solo ó : <\session|maxima|default> <\input|maxima] > trigreduce(d1); <\output> <\with|mode|math> >v+4*u+sin v-2*u|8>+v+2*u+3*sin v|8>> \; Las funciones y devuelven, respectivamente, parte real e imaginara de una expresión compleja: <\session|maxima|default> <\input|maxima] > w:3+k*%i; <\output> <\with|mode|math> >i*k+3> \; <\input|<\with|color|red> (C5) > w^2*%e^w; <\output> <\with|mode|math> >i*k+3*e> \; <\input|<\with|color|red> (C6) > realpart(%); <\output> <\with|mode|math> >e*9-k*cos k-6*e*k*sin k> \; <\input|<\with|color|red> (C7) > imagpart(D5); <\output> <\with|mode|math> >e*9-k*sin k+6*e*k*cos k> Maxima puede evaluar derivadas e integrales, expandir en series de Taylor, tomar límites y obtener soluciones exactas para ecuaciones diferenciales ordinarias. Comencemos por definir el símbolo que será una función de : <\session|maxima|default> <\input|maxima] > f:x^3*%e^(k*x)*sin(a*x); <\output> <\with|mode|math> >x*e*si\ n a*x> \; Calculamos la derivada de respecto de : <\session|maxima|default> <\input|maxima] > diff(f,x); <\output> <\with|mode|math> >k*x*e\ *sin a*x+3*x*e*sin a*x+a*x*e*cos a*x> \; Ahora calculamos una primitiva de respecto de : <\session|maxima|default> <\input|maxima] > integrate(f,x); <\output> <\with|mode|math> >k\ +3*a*k+3*a*k+a*k*x+-3*k-3*a*k+3*a\ *k+3*a*x+6*k-12*a*k-18*a*k*x-6*k+36*a*k<\ rsup|2>-6*a*e*sin a*x+-a*k-3*a*k-3*a*k-a*x+6*a*k+12*a*k+6*a*k*x+-18*a*k-12*a*k+6*a*x+24*a*\ k-24*a*k*e*cos a*x|k+4*a*k+6*a*k+4*a*k+a>>> \; Un leve cambio en la sintaxis y tenemos integrales indefinidas: <\session|maxima|default> <\input|maxima] > integrate(1/x^2,x,1,inf); <\output> <\with|mode|math> >1> \; <\input|<\with|color|red> (C13) > integrate(1/x,x,0,inf); <\output> Integral is divergent \ -- an error. \ Quitting. \ To debug this try DEBUGMODE(TRUE);) \; A continuación definimos la función en términos de y de su seno hiperbólico para más tarde calcular su serie de Taylor de orden 3 alrededor del punto . <\session|maxima|default> <\input|maxima] > g:f/sinh(k*x)^4; <\output> <\with|mode|math> >*e*sin a*x|sinh k*x>> \; <\input|<\with|color|red> (C15) > taylor(g,x,0,3); <\output> <\with|mode|math> >>+>-a*k+a*x|6*k>-3*a*k+a*x|6*k>+\> \; El límite de cuando tiende hacia se calcula mediante la siguiente expresión: <\session|maxima|default> <\input|maxima] > limit(g,x,0); <\output> <\with|mode|math> >>> \; Además, Maxima puede representar derivadas sin necesidad de evaluarlas. Para ello es necesario preceder a nuestra expresión de una comilla simple ('): <\session|maxima|default> <\input|maxima] > 'diff(y,x); <\output> <\with|mode|math> >*y> \; El operador (') en la expresión anterior viene a decir . Sin él, Maxima habría devuelto 0: <\session|maxima|default> <\input|maxima] > diff(y,x); <\output> <\with|mode|math> >0> \; Utilizando el operador ('), podemos escribir ecuaciones diferenciales:: <\session|maxima|default> <\input|maxima] > 'diff(y,x,2)+'diff(y,x)+y; <\output> <\with|mode|math> >|d*x>*y+*y+y> \; La función de Maxima es capaz de resolver ecuaciones diferenciales ordinarias de primer y segundo orden: <\session|maxima|default> <\input|maxima] > ode2(D19,y,x); <\output> <\with|mode|math> >y=e>*<\ left|(>*sin *x|2>+*cos *x|2>> \; siendo %K1 y %K2 constantes reales Maxima puede calcular el determinante, la inversa, los autovalores y autovectores de una matriz que contenga elementos simbólicos (por ejemplo, expresiones que contengan variables algebraicas). Comencemos introduciendo una matriz elemento a elemento: <\session|maxima|default> <\input|maxima] > m:entermatrix(3,3); <\output> Is the matrix \ 1. Diagonal \ 2. Symmetric \ 3. Antisymmetric \ 4. General \; <\input|<\with|color|red> Answer 1, 2, 3 or 4 : > 4; <\input|<\with|color|red> Row 1 Column 1: > 0; <\input|<\with|color|red> Row 1 Column 2: > 1; <\input|<\with|color|red> Row 1 Column 3: > a; <\input|<\with|color|red> Row 2 Column 1: > 1; <\input|<\with|color|red> Row 2 Column 2: > 0; <\input|<\with|color|red> Row 2 Column 3: > 1; <\input|<\with|color|red> Row 3 Column 1: > 1; <\input|<\with|color|red> Row 3 Column 2: > 1; <\input|<\with|color|red> Row 3 Column 3: > 0; <\output> Matrix entered. <\with|mode|math> >||>|||>|||>>>>> \; Ahora calculamos la matriz traspuesta, su determinante y su matriz inversa: <\session|maxima|default> <\input|maxima] > transpose(m); <\output> <\with|mode|math> >||>|||>|||>>>>> \; <\input|<\with|color|red> (C23) > determinant(m); <\output> <\with|mode|math> >a+1> \; <\input|<\with|color|red> (C24) > invert(m),detout; <\output> <\with|mode|math> >||>|||>|||>>>>|\ a+1>> \; En la entrada C24, la opción fuerza al determinante a aparecer fuera de la matriz inversa. Como prueba, multiplicamos por su inversa (nótese el uso del punto simple (.) para la multiplicación matricial): <\session|maxima|default> <\input|maxima] > m.d24; <\output> <\with|mode|math> >||>|||>|||>>>>\||\ >|||>|||>>>>|a+1>> \; <\input|<\with|color|red> (C26) > expand(%); <\output> <\with|mode|math> >+>||>||+>|>|||+>>>>>> \; <\input|<\with|color|red> (C27) > factor(%); <\output> <\with|mode|math> >||>|||>|||>>>>> \; Para encontrar autovalores y autovectores, se emplea la función : <\session|maxima|default> <\input|maxima] > eigenvectors(m); <\output> Warning - you are redefining the MACSYMA function EIGENVALUES Warning - you are redefining the MACSYMA function EIGENVECTORS <\with|mode|math> >--1|2>,+1|2>,-1,1,1,1,1,--1|2*a+2>,--1|2*a+2>,1,+1|2*a+2\ >,+1|2*a+2>,1,-1,0> \; En la expresión D28, el primer corchete interior al triple corchete muestra los tres autovalores, a los que siguen sus multiplicidades (vemos que aquí ninguna se repite). Los siguientes tres corchetes contienen los correspondientes autovectores de los tres autovalores de . Si deseamos extraer alguno de estos autovectores de la expresión, podemos usar la función : <\session|maxima|default> <\input|maxima] > part(D28,2); <\output> <\with|mode|math> >1,--1|2*a+2>,--1|2*a+2>> Hasta ahora hemos usado Maxima en el modo interactivo, casi como una calculadora. Sin embargo, para cálculos que conllevan secuencias repetitivas de comandos, es mejor ejecutar un programa. Presentamos aquí un programa corto y simple que calculará los puntos críticos de una función de dos variables, e . El programa se encarga de preguntar al usuario por la función , calcula sus derivadas parciales > y > y utiliza la función de Maxima para obtener las soluciones de =f=0>. Este programa se puede escribir fuera de Maxima con un editor de textos, y dentro de Maxima se cargará mediante la función . Presentamos aquí el listado del programa: <\code> /*-----------------------------------------------------------------------\ --- Éste es el programa critpts.max. Como puede verse, los comentarios en Maxima son como aquéllos en lenguaje C Autor : Nelson Luis Dias Traducción: Pablo Ruiz Múzquiz. 16/06/2002 Creado el 07/07/2000 -------------------------------------------------------------------------\ --* critpts():=( print("Programa que determina los puntos críticos "), /* ----------------------------------------------------------------------\ --- Preguntamos por una función -------------------------------------------------------------------------\ --* f:read("Escriba f(x,y)"), /*-----------------------------------------------------------------------\ --- Imprimimos la respuesta para poder verificarla -------------------------------------------------------------------------\ --* print("f = ",f), /*-----------------------------------------------------------------------\ --- Construimos una lista con las derivadas parciales: -------------------------------------------------------------------------\ --* eqs:[diff(f,x),diff(f,y)], /*-----------------------------------------------------------------------\ --- Construimos una lista de incógnitas -------------------------------------------------------------------------\ --* unk:[x,y], /*-----------------------------------------------------------------------\ --- Resolvemos el sistema -------------------------------------------------------------------------\ --* solve(eqs,unk) ) $ El programa (que es en realidad una función sin argumentos) se llama . Cada línea es un comando válido de Maxima que podría ejecutarse desde el teclado y que se encuentra separado del siguiente comando por medio de una coma. Las derivadas parciales se guardan en una variable llamada , y las incógnitas en otra variable llamada . Veamos una ejecución de ejemplo de este programa: <\session|maxima|default> \; <\input|<\with|color|red> (C1) > batch("/home/michel/temp/critpts.max"); batching #p/home/michel/temp/critpts.max\ (C2) critpts() := (PRINT("Programa que determina los puntos criticos "), f : READ("Escriba f(x,y)"), PRINT(" f = ", f), eqs : [DIFF(f, x), DIFF(f, y)], unk : [x, y], SOLVE(eqs, unk)) (C3) critpts(); Programa que determina los puntos críticos Escriba f(x,y)\ %E^(x^3+y^2)*(x+y);\ +x>> (D3) [[x = 0.4588955685487 %I + 0.35897908710869, y = 0.49420173682751 %I - 0.12257873677837], [x = 0.35897908710869 - 0.4588955685487 %I, y = - 0.49420173682751 %I - 0.12257873677837], [x = 0.41875423272348 %I - 0.69231242044203, y = 0.86972626928141 %I + 0.4559120701117]] y = 0.4559120701117 - 0.86972626928141 %I], [x = - 0.41875423272348 %I - 0.69231242044203, y = 0.86972626928141 %I + 0.4559120701117]] Consulte el manual de Maxima que se encuentra en el directorio en formatos texinfo y html. Desde el interfaz de Maxima puede usar . <\expand|itemize-dot> ALLROOTS(A)\ Encuentra todas las raíces (generalmente complejas) de la ecuación y las lista en formato numérico (por ejemplo, con 16 cifras significativas). APPEND(A,B) Concatena la lista B a la lista A, resultando en una sola lista. BATCH(A) Carga y ejecuta un programa BATCH de nombre A. COEFF(A,B,C) Devuelve el coeficiente B elevado a C en la expresión A. CONCAT(A,B) Crea el símbolo AB. CONS(A,B) Añade A a la lista B como primer elemento. DEMOIVRE(A) Transforma todas las exponenciales complejas en sus equivalentes formas trigonométricas. DENOM(A) Devuelve el denominador de A. DEPENDS(A,B) Esta función indica que A es una función de B. Esto es útil para escribir derivadas sin evaluar, como, por ejemplo, en las ecuaciones diferenciales. DESOLVE(A,B) Intenta resolver A (un sistema lineal de EDO's) con B incógnitas utilizando transformaciones de >>\ >. DETERMINANT(A) Devuelve el determinante de la matriz cuadrada A. DIFF(A,B1,C1,B2,C2,...,Bn,Cn) Devuelve la derivada parcial de A respecto de cada B, C veces. Para abreviar, puede ser representado por . 'DIFF(...) representa la derivada sin evaluar, útil cuando estamos trabajando con ecuaciones diferenciales. EIGENVALUES(A) Devuelve dos listas. La primera contiene los valores propios de una matriz cuadrada A y la segunda sus respectivas multiplicidades. EIGENVECTORS(A) Realiza todo lo que hace y además añade una lista de autovectores asociados. ENTERMATRIX(A,B) Pregunta al usuario por una matriz A x B, elemento a elemento. EV(A,B1,B2,...,Bn) Evalua A bajo las condiciones B. En particular, las B pueden ser ecuaciones, listas de ecuaciones (tales como las que devuelve la función ) o asignamientos, es decir, casos en los que reemplaza los B en A por sus valores correspondientes. Los B pueden también ser palabras como (en cuyo caso el resultado se devueleve en formato numérico), (en cuyo caso cualquier inversión de matrices en A se calcula con el determinante presentado fuera de forma explícita) o (en cuyo caso todas las diferenciales en A se evalúan, por ej: en A se ve reemplazado por ). Para abreviar en la forma interactiva de introducir el comando ( dentro de una función definida por el usuario, por ejemplo), podemos obviar la propia función , quedando la sintaxis reducida a A,B1,B2,...Bn. EXPAND(A) Efectúa la expansión de A. En concreto, las multiplicaciones tienen prioridad sobre las sumas. EXPONENTIALIZE(A) Transforma todas las funciones trigonométricas contenidas en A en exponenciales complejas. FACTOR(A) Factoriza la expresión A. FREEOF(A,B) Devuelve TRUE si la expresión B está libre de la variable A. GRIND(A) Presenta una variable o función A en forma compacta. Cuando se usa conjuntamente con en un editor externo a Maxima, permite producir ficheros BATCH que incluyan expresiones generadas por Maxima. IDENT(A) Devuelve la matriz identidad de orden A. IMAGPART(A) Devuelve la parte imaginaria de A. INTEGRATE(A,B) Intenta determinar una primitiva de A respecto de B. INTEGRATE(A,B,C,D) Intenta calcular la integral de A respecto de B entre los límites B=C y B=D. Los límites de integración C y D pueden tomar el valor de INF (infinito positivo) ó MINF (infinito negativo). INVERT(A) Calcula la matriz inversa de la matriz cuadrada A. KILL(A) Elimina la variable A de todas las definiciones y propiedades de la sesión actual de Maxima. LIMIT(A,B,C) Devuelve el límite de la expresión A cuando B tiende a C. El valor de C puede ser INF ó MINF al igual que en la función . LHS(A) Devuelve el miembro izquierdo de la ecuación A. LOADFILE(A) Carga un fichero del disco duro de nombre A del directorio de trabajo por defecto. El fichero del disco duro ha de encontrarse en el formato adecuado (por ejemplo, creado por la función ). MAKELIST(A,B,C,D) Crea una lista de elementos A (los cuales dependen, en principio, de B), para B variando entre B=C y B=D. MAP(A,B) Aplica la función A a las subexpresiones de B. MATRIX(A1,A2,...An) Crea una matriz con filas A, en donde cada fila A es una lista de elementos NUM(A) Devuelve el numerador de A. ODE2(A,B,C) Intenta resolver la ecuación diferencial ordinaria de primer o segundo orden A siendo B una función de C. PART(A,B1,B2,...Bn) Primero toma la parte B1- de A, luego la B2- y así sucesivamente. PLAYBACK(A) Presenta las A últimas salidas producidas por Maxima. Si se omite A, entonces se presentan todas las salidas. Consúltese el manual para más opciones. RATSIMP(A) Simplifica A y devuelve un cociente de dos polinomios. REALPART(A) Devuelve la parte real de A. RHS(A) Devuelve el miembro derecho de la ecuación A. SAVE(A,B1,B2,...Bn) Crea un fichero llamado A en el directorio de trabajo por defecto actual, de variables, funciones o tablas B. El formato del fichero permite ser cargado por Maxima utilizando la función . Es posible guardar absolutamente todo (incluyendo etiquetas) si B1 vale .\ SOLVE(A,B) Intenta resolver la ecuación algebraica A de incógnitas B. Devuelve una lista de soluciones. Para simplificar, si A es una ecuación de la forma C=0, puede escribirse simplemente C. STRING(A) Convierte A en notación lineal de Maxima (parecida a Fortran) igual que si hubiese sido escrita directamente y mete A en el buffer para una posible edición. La expresión que devuelve STRING no deberá usarse en cálculos posteriores. STRINGOUT(A,B1,B2,..,Bn) Crea un fichero de nombre A en el directorio de trabajo actual, conteniendo las variables B1, B2,...,Bn. Este fichero tendrá un formato de texto plano y no podrá ser cargado por Maxima. Sin embargo, las expresiones resultantes usando esta función pueden ser incorporadas en código FORTAN, BASIC o C sin apenas trabajo de post-edición. SUBST(A,B,C) Reemplaza el valor de A por B en C. TAYLOR(A,B,C,D) Expande A en una serie de Taylor en B alrededor de B=C, hasta el término (B-C)>, inclusive. Maxima es también capaz de expandir series de Taylor en más de una variable independiente. Consulte el manual para más detalles. TRANSPOSE(A) Devuelve la traspuesta de la matriz A. TRIGEXPAND(A) Es una función de simplificación trignométrica que utiliza las fórmulas de sumas de ángulos para simplificar los argumentos de las funciones SIN y COS contenidas en A. Por ejemplo, devuelve .> TRIGREDUCE(A) Es una función de simplificación trigonométrica que utiliza las igualdades trigonométricas para convertir productos y potencias de SIN y COS encontrados en A en una suma de términos, cada uno de los cuales contiene únicamente un SIN o un COS. Por ejemplo, devuelve . TRIGSIMP(A) Es una función de simplificación trigonométrica que reemplaza TAN, SEC, etc, por sus equivalentes en función de SIN y COS. También utiliza la función SIN()+COS(x)=1>\ .\ \; <\initial> <\collection> <\references> <\collection> > > > > > > > > > <\auxiliary> <\collection> <\associate|toc> |math font series||1Introducción> |math font series||2Las teclas y símbolos especiales> |math font series||3Aritmética> |math font series||4Álgebra> |math font series||5Cálculo diferencial> |math font series||6Cálculo matricial> |math font series||7Programar en Maxima> |math font series||8Una lista parcial de funciones de Maxima>