Algunas cuestiones generales

 

 

indice Entradas (input) y salidas (output)

Sentencias o comandos. Cada sentencia o comando de Maxima puede finalizar con punto y coma ; o bien con dólar $. Para ejecutar la sentencia se pulsa el "Retorno de carro". Se pueden escribir varias sentencias una a continuación de otra, cada una de las cuales finaliza con su correspondiente punto y coma o dólar, y pulsar "Retorno de carro" al final de las mismas para ejecutarlas. En el caso del punto y coma, aunque aparezcan escritas en la misma línea cada una de tales sentencias aparecerá con una etiqueta diferente. En cambio si se usa el dólar como finalización de sentencia, las operaciones que correspondan serán realizadas por Maxima, pero el resultado de las mismas no se será mostrado, salvo última. Los ejemplos que vienen a continuación lo ilustran.

  1. x:9$ y:3$ x*y$
  2. x:9; y:3; x*y;

La etiqueta (%i1) es la que corresponde a la primera sentencia de entrada (input) después de iniciar xMaxima (Maxima); la siguiente es (%i2) y así sucesivamente. Las salidas (output) se identifican con (%o1), (%o2), etc. Maxima utiliza un contador identificar las entradas y salidas secuencialmente.

Repetir una sentencia introducida anteriormente. Es posible repetir la acción de una sentencia anterior sin más que escribir la etiqueta numerada del comando precedido de las dobles comillas. Así ''%i15 repetiría en la entrada que corresponda a ese momento la sentencia que se escribió en la entrada número 15

Reutilizar un resultado. Es posible utilizar la salida de la ejecución de una sentencia anterior a través de su etiqueta identificativa de la salida. Así %o5 se referiría al resultado producido por el comando %i5. En el caso de que se trata del resultado inmediantamente anterior puede utilizarse el símbolo % en lugar del identificativo del resultado.

Una vez ejecutada una sentencia para volverla a ejecutar más tarde en xMaxima hay diferentes posibilidades:

  1. marcarla copiarla y pegarla en la posición de la entrada actual (eventualmente modificándola si se necesita);
  2. incluir en la entrada actual su etiqueta identificativa, precedida de dobles comillas como ya hemos indicado;
  3. posicionarse en el lugar correspondiente y pulsar de nuevo "Retorno de carro" (eventualmente modificándola si se necesita).

La última es la forma más rápida de proceder cuando se quiere modificar el código ligeramente, pues Maxima se ocupa de realizar automáticamente las tareas del proceso 1), pero tiene el inconveniente de que el código original desaparece del histórico.

El tratamiento de mayúsculas y minúsculas en los nombres de los comandos no ha permanecido estable a lo largo de las diferentes versiones de Maxima. Hay versiones en las que los comandos pueden ser escritos indistintamente en mayúsculas o minúsculas, pero las última tendencia es que los comandos definidos ya en Maxima deben ser utilizados en minúsculas. Las variables definidas por el usuario son sensibles a mayúsculas y minúsculas (x y X son diferentes para Maxima). Por su parte Maxima actualmente utiliza minúsculas en sus respuestas, aunque en según que versiones los resultados se expresan con mayúsculas.

 

indice

Definir funciones y asignar valores: introducción

Este tema está tratado con mayor detalle en la sección relativa a Funciones pero conviene introducirlo ya aquí porque serán utilizados ya en esta sección introductoria.

En algunos casos, como ocurre con el ejemplo que viene a continuación, se ha previsto que el resultado de la ejecución de la sentencia aparezca en la propia ventana del navegador de xMaxima, además de en la ventana superior, donde siempre se muestra. Aquí se supone que se ha ejecutado previamente la última de las sentencias del grupo precedente de ejemplos, de suerte que Maxima ha asignado valores constantes a "x" e "y" que no ha olvidado y que le permiten dar como resultado un número.

  1. x*y;
  2. (x/y)*5;

El que Maxima recuerde los valores asignados puede resultar útil en algunos casos, pero en otros puede ser un inconveniente. Por ejemplo si queremos derivar la función cos(x) el que Maxima recuerde que x:9 es un inconveniente, porque ahora interesa que x represente a una variable y no a una constante. Necesitamos decirle a Maxima que olvide el valor constante anteriormente asignado a x. Maxima dispone de comandos para conocer las asignaciones realizadas y para eliminar parte o la totalidad de dichas asignaciones.

  1. x:2$ y: 3$ x*y;
  2. display(x,y);
  3. kill(x)$ x*y;
  4. kill(G)$
  5. G:x^2+1;
  6. integrate(G,x);

Generalmente no es necesario, pero es una medida de seguridad iniciar la asignaciones, "matando" previamente la asignación que se va a realizar.

Cuando una expresión va a ser utilizada repetidas veces puede ser de interés definirla como una nueva función, que quedará añadida (mientras Maxima no se reinicie) a las funciones que ya conoce

Para definir una nueva función, digamos NombreFun en la variable x, se emplea la sintaxis siguiente

NombreFun(x):=expresión

A continuación un primer ejemplo que ilustra la definición de funciones. En las secciones Funciones y Gráficos se ahonda en estas temáticas.

  1. F1(x):=x^2+1
  2. F1(3) /* definida F1 calculamos su valor para x=3 */
  3. Dibujamos la gráfica en el intervalo [-1,1] plot2d(F1(x),[x,-1,1])

 

indice

Comandos que no se ejecutan: apóstrofos

En ocasiones conviene que aparezca una determinada instrucción para Maxima sin que se ejecute, el símbolo   '   sirve a tal fin. Un doble apóstrofo   ''   ejecuta siempre la instrucción.

'sum(k^2,k,1,10) = sum(k^2,k,1,10);
'diff(cos(x),x) = ''diff(cos(x),x);
'integrate(1/(1+x),x) = integrate(1/(1+x),x);

 

indice

Ayuda en línea y ejemplos

Ayuda en línea. Además de utilizando el menú Ayuda|Help de xMaxima, desde la línea de comandos de Maxima podemos obtener ayuda inmediata sobre un comando concreto conociendo su nombre. Esto es cierto para la mayor parte de los comandos. Y la sintaxis es

  1. describe(Comando,exact)
  2. describe(Comando,inexact)
  3. ? Comando
  4. ?? Comando
  5. describe("",inexact)
  6. apropos("cadena")
  7. example(Comando)
  8. example()
  9. demo(Archivo)

El nombre de los comandos es bastante sugerente y por ende fácil de recordar. El primero y el tercero son equivalentes y lo mismo ocurre con el segundo y el cuarto (el espacio de separación después de ? es muy importante).
El quinto lista todos los comandos para los que existe documentación en línea.
El octavo muestra la relación de todos los ejemplos disponibles.
Existe una colección de ejemplos de demostración en forma de batería de sentencias Maxima que se van ejecutando paso a paso una tras otra. En cada una de las etapas es necesario que el operador introduzca el punto y coma de rigor y pulse retorno de carro para pasar a la siguiente. El acceso para ejecución de dichos archivos, cuyo nombre genérico es del tipo Archivo.dem es el objetivo del último comando de la lista anterior

Algunas ilustraciones aparecen a continuación

  1. ? diff;
  2. ?? sum;
  3. apropos("taylor");
  4. example(sum);
  5. example(complex);
  6. demo("cartan");

  7. En el ejemplo precedente las comillas no son necesarias porque el archivo cartan.dem está ubicado en el lugar que Maxima espera; pero si estuviera ubicado, digamos, en /media/usb/maxima/ejemplo.dem entonces tendríamos que ejecutarlo como demo("/media/usb/maxima/ejemplo").

wxMaxima en sus menús dispone de herramientas para mostrar variados ejemplos

 

Salir de Maxima y reiniciar

Maxima es en realidad un programa que funciona en línea de comandos. Si desea ejecutarlo de ese modo ejecute a nivel de la consola de su sistema operativo el comando maxima y obtendrá el indicativo de que el programa ha arrancado y que está dispuesto a tratar de ejecutar la sentencia que usted le escriba.

Si lo hace (y maxima está en el path), encontrará algo similar a esto

Maxima 5.38.1 http://maxima.sourceforge.net
using Lisp GNU Common Lisp (GCL) GCL 2.6.12
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information.
(%i1) 

Para salir de Maxima desde la consola se utiliza

quit();

Si está trabando en entornos gráficos como xMaxima o wxMaxima no tendrá dificultad en salir de dichos programas desde los menus desplegables y ellos se ocuparán de cerrar la sesión de Maxima que subyace.

En estos entornos gráficos existe una posibilidad de reiniciar Maxima sin necesidad de cerrar la interfaz de trabajo. E incluso sin reiniciar, que olvidaría todas las funciones y asignaciones de la sesión, abortar algún proceso que haya generado un bucle en la ejecución de Maxima.

Si antes de salir del programa se desea guardar parte o la totalidad del trabajo realizado pueden utilizarse diferentes procedimientos, dependiendo de la GUI o incluso utilizando el propio Maxima.

Es posible escribir comentarios en el código (es decir textos que Maxima ignora) delimitándolos por /* que lo inicia y */ que lo finaliza. En las secciones siguientes se mostrarán ejemplos de tales comentarios.

También posible conocer en cualquier momento la versión de Maxima que está en uso mediante el comando

build_info()$

 

indice

Maxima on line

Existen diferentes sitios en internet en los que es posible ejecutar Maxima on line. El de la Fundación Pública Galega Centro Tecnolóxico de Supercomputación de Galicia (CESGA) es nuestro preferido: http://maxima.cesga.es.

Mario Rodríguez Riotorto, profesor de matemáticas en Galicia que ha realizado contribuciones muy relevantes al desarrollo de Maxima, ha impulsado el desarrollo de ese servicio implementando el software libre Yamwi que lo hace posible.