Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Este apunte presenta una escueta sı́ntesis de algunos comandos del software
Maxima que tienen utilidad práctica para el estudio de la asignatura Instru-
mentación y Control de Procesos. No pretende ser un manual ni una referencia
exaustiva del programa, por lo que se recomienda acudir al manual oficial de la
aplicación.
1. Introducción.
En nuestra materia utilizaremos Maxima (se escribe sin acento) principalmente para cal-
cular la Transformada y la Transformada inversa de Laplace de distintas funciones. Maxima
también puede efectuar el cálculo de los lı́mites utilizados en los teoremas del Valor Inicial
y del Valor Final, tanto en el dominio del tiempo como en el dominio complejo, calcular
expansiones en fracciones parciales y resolver sistemas de ecuaciones. Además, con Maxima
resulta muy sencillo graficar funciones.
1
Instrumentación y Control de Procesos - FIQ - UNL
Maxima funciona a través de una colección de comandos que pueden ser introducidos desde
una consola de texto (desde una ventana de texto). El lenguaje de Maxima cuenta con
varias decenas de comandos que el usuario debe aprender para hacer un uso eficiente del
programa.
Sin embargo, para el usuario casual o para el usuario que sólo utilizará una pequeña fracción
de los comandos disponibles (como es nuestro caso en la aplicación de Maxima a la materia
Instrumentación y Control de procesos), resulta más conveniente utilizar una interfaz gráfica
que facilite la interacción con Maxima. Una interfaz gráfica es un programa que presenta
los comandos del lenguaje de Maxima agrupados en forma de menús y ventanas de diálogos
intuitivas, de modo que el usuario no necesite memorizarlos. La interfaz gráfica se encarga
de traducir las operaciones del usuario al lenguaje de Maxima.
Existen varias interfaces gráficas para Maxima. Dos de ellas vienen incluidas en el archivo de
instalación de Maxima que se descarga del website oficial: xMaxima y wxMaxima. La interfaz
gráfica que utilizaremos es wxMaxima, debido a que xMaxima está dirigida a usuarios más
avanzados.
2. Nociones básicas.
Cada interfaz gráfica posee caracterı́sticas propias que las hacen más o menos sencillas de
utilizar. Algunas de las caracterı́sticas más interesantes de wxMaxima para nuestro trabajo
son:
La mayorı́a de los comandos básicos están presentes en los bastos menús de wxMaxi-
ma. En Particular, el menú ((Análisis)) contiene los comandos más usados en nuestra
materia. Al final de este apunte se incluye un listado de las opciones de los menús de
wxMaxima y los comandos equivalentes de Maxima.
Cuando se selecciona una opción de un menú, se abre una ventana donde podemos
completar los parámetros necesarios para llevar a cabo la operación deseada. Tras
cerrar la ventana, el comando equivalente se muestra en una lı́nea de comando, facili-
tando tanto el aprendizaje del lenguaje de Maxima como el “reciclado” de comandos
mediante operaciones como copiar y pegar.
Cada lı́nea de comando en wxMaxima comienza con un identificador entre paréntesis
que consta de un número correlativo (el número de lı́nea) precedido por %i para las
entradas (i = input) del usuario y por %o para las salidas (o = output) del programa.
Los identificadores pueden usarse como un atajo para otro comando. Por ejemplo, si
la salida de un comando es una función identificada como %o34 y se desea graficar esta
función, en vez de reescribir la función en la ventana del comando de gráficos, sólo
basta con ingresar su identificador, %o34.
2 v.2012.08.03
Comandos básicos de Maxima
% es un identificador especial, que equivale a la última salida del programa (al último
identificador %o) emitido por el programa.
Si se desea se puede escribir directamente un comando en vez de usar la opción del
menú correspondiente. En este caso, debe pulsarse la combinación de teclas MAYUS-
CULAS + ENTER (o SHIFT + RETURN en los teclados en inglés) al final del co-
mando para ingresarlo.
Los operadores de uso frecuente, utilizados al escribir una expresión (una ecuación) en
Maxima son:
+ suma
- resta
* multiplicación
/ división
^ potenciación (idéntico a **)
** potenciación (idéntico a ^)
sin(x ) seno de x
cos(x ) coseno de x
tan(x ) tangente de x
sqrt(x ) raı́z cuadrada de x
exp(x ) exponencial de x
log(x ) logaritmo natural de x
Nota: Maxima no cuenta con una función para el logaritmo decimal. Para obtener el loga-
ln(x)
ritmo de x en base 10 debe recurrirse a la definición log10 (x) = , que en sintaxis de
ln(10)
Maxima equivale a: log10(x) := log(x)/log(10).
En Maxima, el signo igual (=) se utiliza como operador de comparación o para expresar
igualdades, no como operador de asignación. Maxima cuenta con varios tipos de operadores
de asignación, siendo los más utilizados:
v.2012.08.03 3
Instrumentación y Control de Procesos - FIQ - UNL
(%i1) a:5;
( %o1) 5
Ejemplo: Definir la función a(x) = b sen x2 , donde b es una constante.
2.6. Integrales.
R 42 1
Ejemplo: Indicar la integral: 1 x dx
(%i3) ’integrate(1/x,x,1,42);
Z 42
1
( %o3) dx
1 x
En cambio, para evaluar una integral, se usa el comando sin el apóstrofo inicial:
R 42 1
Ejemplo: Evaluar la integral: 1 x dx
(%i4) integrate(1/x,x,1,42);
2.7. Derivadas.
Las derivadas se ingresan en Maxima mediante el comando diff(). Al igual que con las
integrales, existen dos posibilidades a la hora de emplear una derivada: que nos interese
resolverla (evaluarla) o que simplemente queramos dejarla expresada (indicarla).
Para indicar una derivada, se usa el comando con un apóstrofo inicial:
4 v.2012.08.03
Comandos básicos de Maxima
d2
Ejemplo: Indicar la derivada 2
3 x2 .
dx
(%i5) ’diff(3*x^2,x,2);
d2
3 x2
( %o5) 2
dx
En cambio, para evaluar una derivada, se usa el comando sin el apóstrofo inicial:
d2
Ejemplo: Resolver la derivada 2
3 x2 .
dx
(%i6) diff(3*x^2,x,2);
( %o6) 6
Nota: En wxMaxima, la opción ))Derivar (( del menú ((Análisis)) abre una ventana que per-
mite el cálculo en forma interactiva.
Salvo que se lo configure expresamente con otro comportamiento, Maxima expresa las can-
tidades no exactas como fracciones u operaciones. Por ejemplo, en el caso de la integración
visto anteriormente:
(%i4) integrate(1/x,x,1,42);
float(expresión);
(%i7) float(%o4);
( %o7) 3,737669618283368
Nota: En wxMaxima, la opción ))A real (( del menú ((Numérico)) evalúa la última expresión
generada.
2.9. Vectores
Los vectores en Maxima son una colección de elementos separados por comas y encerrados
ente corchetes.
v.2012.08.03 5
Instrumentación y Control de Procesos - FIQ - UNL
(%i9) %o8[1];
( %o9) 12
2.10. Igualdades
Puede seleccionarse el lado izquierdo de una igualdad (left hand side) con:
lhs(igualdad );
Para seleccionar el lado derecho de una igualdad (right hand side), se usa:
rhs(igualdad );
(%i10) y = 34 + sin(t);
(%i11) lhs(%o10);
( %o11) y
(%i12) rhs(%o10);
( %o12) sin (t) + 34
2.11. Fracciones
num(fracción);
denom(fracción);
K(s + 1)
Ejemplo: Para la fracción :
T 2 s2 + 2zT s + 1
(%i13) (K*(s+1))/(T^2*s^2+2*z*T*s+1);
(s + 1) K
( %o13)
s2 T 2 + 2 s z T + 1
6 v.2012.08.03
Comandos básicos de Maxima
(%i14) num(%o13);
( %o14) (s + 1) K
(%i15) denom(%o13);
( %o15) s2 T 2 + 2 s z T + 1
v.2012.08.03 7
Instrumentación y Control de Procesos - FIQ - UNL
1
Ejemplo: Hallar la transformada inversa de Laplace de la función F (s) = 1+s .
( %o2) e−t
En wxMaxima, la opción ))Calcular lı́mite(( del menú ((Análisis)) abre la ventana de la figura
3 que permite el cálculo en forma interactiva.
Los principales parámetros se explican a continuación, en el comando equivalente. Para
una explicación de la opción “Serie de Taylor” consultar en la ayuda en lı́nea el comando
tlimit.
8 v.2012.08.03
Comandos básicos de Maxima
(%i3) limit(exp(-3*t),t,inf);
( %o3) 0
partfrac(expresión, variable);
v.2012.08.03 9
Instrumentación y Control de Procesos - FIQ - UNL
s2 + 9s + 19
Ejemplo: Expandir la función
s3 + 7s2 + 14s + 8
(%i4) partfrac((s^2+9*s+19)/(s^3+7*s^2+14*s+8),s);
1 5 11
( %o4) − − +
6 (s + 4) 2 (s + 2) 3 (s + 1)
Maxima cuenta con poderosas funciones gráficas, y con numerosos comandos y parámetros
para trazar prácticamente cualquier gráfico con el formato deseado. Para obtener un pano-
rama más amplio y a la vez más detallado de sus capacidades gráficas, se sugiere consultar
el manual en lı́nea de Maxima.
Dada la complejidad de los comandos para generar gráficos por la multiplicidad de paráme-
tros que admiten, se recomienda el uso de la opción ))Gráficos 2D(( del menú ((Gráficos)) de
wxMaxima en vez del comando equivalente.
10 v.2012.08.03
Comandos básicos de Maxima
0), el programa elegirá automáticamente una escala adecuada. La opción logscale permite
adoptar una escala logarı́tmica para el eje de ordenadas.
Graduaciones: Un valor bajo genera curvas que se ven segmentadas, compuestas de tramos
rectos. Un valor alto genera curvas suaves, pero requiere más potencia de procesamiento, y
el gráfico tarda más tiempo en mostrarse. Esto sólo es un problema en PCs viejas o de baja
potencia, como algunas netbooks.
Formato: “en lı́nea” inserta el gráfico dentro de la ventana de wxMaxima y permite, si
se le hace clic con el botón derecho del ratón, copiar el gráfico para pegarlo en otra apli-
cación (como un procesador de textos) o guardar el gráfico como un archivo con formato
estándar png (Portable Network Graphics). “gnuplot”1 genera el gráfico en una ventana in-
dependiente, con opciones avanzadas para zoom, ver coordenadas, etc. “openmath” utiliza el
estándar openmath para generar el gráfico, aunque esta funcionalidad todavı́a está en desa-
rrollo y suele fallar. “predeterminado” utiliza la opción predeterminada en la configuración
de wxMaxima (“en lı́nea” bajo MS-Windows, y “gnuplot” bajo Linux).
Opciones: permite elegir algunos parámetros predeterminados o incluir parámetros perso-
nalizados en el comando para generar el gráfico. Es de interés la opción “set grid;” que
permite mostrar la cuadrı́cula en gráfico.
Archivo: guarda el gráfico como un archivo con formato estándar png (Portable Network
Graphics) en vez de mostrarlo en pantalla. para activar esta opción debe indicarse el lugar
y el nombre deseado para el nuevo archivo.
Como mencionamos antes, dominar las opciones para generar gráficos mediante la lı́nea de
comandos requiere práctica. Sin embargo, trazar gráficos sencillos es simple mediante los
siguientes comandos:
plot2d genera el gráfico en una ventana independiente (equivale a la opción gnuplot descrita
en el gráfico vı́a menú), mientras que wxplot2d genera el gráfico embebido en la ventana de
wxMaxima (equivale a la opción en lı́nea descrita en el gráfico vı́a menú).
expresión: función o funciones a graficar. Si se desea trazar más de una función en el mismo
gráfico, deben escribirse las funciones entre corchetes ([ ]) y separadas por comas.
var.abscisa: nombre de la variable independiente usada en las funciones a trazar, correspon-
diente al eje de abscisas (eje x).
mı́n: valor mı́nimo a graficar en el eje de abscisas (eje x).
máx : valor máximo a graficar en el eje de abscisas (eje x).
[var.ordenada, mı́n, máx ]: éste parámetro es opcional, y permite indicar un nombre para
el eje de ordenadas y el rango del mismo a mostrar en el gráfico.
v.2012.08.03 11
Instrumentación y Control de Procesos - FIQ - UNL
( %t6)
La función escalón de Heaviside, también conocida como función escalón unitario H(t − t0 ),
utilizada para expresar corrimientos temporales, se define en Maxima como:
unit step(t-t0 )
( %t8)
12 v.2012.08.03
Comandos básicos de Maxima
atvalue fija las condiciones de contorno: asigna el valor c a la expresión en el punto x=a.
expresión: función cuyas condiciones iniciales se quieren fijar.
x=a: punto en el que se evalúa la expresión. x es la variable independiente de la función
(debe reemplazarse por el nombre de la variable usada), y a es el valor de esa variable.
c: es el valor que toma la expresión en el punto donde x vale a.
Nota: En wxMaxima, la opción ))Condición inicial (( del menú ((Ecuaciones)) despliega una
ventana interactiva.
desolve(expresión, variable);
0
sujeta a las condiciones iniciales y(0) = y(0) = 0 y donde u(t) = e−3t para t ≥ 0.
Comenzamos por definir la función u(t):
(%i1) u(t):=exp(-3*t);
(%i2) diff(y(t),t,2)+diff(y(t),t,1)+4*y(t)=3*diff(u(t),t,1)+2*u(t);
d2 d
( %o2) y (t) + y (t) + 4 y (t) = −7 e−3 t
d t2 dt
En el ejemplo, Maxima identifica a la ecuación diferencial con el identificador %o2.
v.2012.08.03 13
Instrumentación y Control de Procesos - FIQ - UNL
Notemos que las derivadas de y(t) quedan indicadas (pese a que no las escribimos precedidas
por un apóstrofo), porque la función y(t) no fue definida previamente. En cambio, la derivada
de u(t), que definimos al principio, sı́ es resuelta por Maxima.
0
Introducimos las condiciones de contorno. Condición de contorno y(0) = 0:
(%i3) atvalue(diff(y(t),t,1),t=0,0);
( %o3) 0
Condición de contorno y(0) = 0:
(%i4) atvalue(y(t),t=0,0);
( %o4) 0
Por último, resolveremos la ecuación diferencial. Como dijimos, en lugar de reescribir la
ecuación utilizaremos el identificador %o2 que le asignó Maxima:
(%i5) desolve(%o2,y(t));
√ √
15 t 15 t
7 cos 7 sin −3 t
( %o5) y (t) = e
t
−2 2
− √
2
− 7e
10 2 15 10
a+b a + b
y(t) y(t)
d
y 0 (t) = y(t) ’diff(y(t),t,1)
dt
d2
y 00 (t) = y(t) ’diff(y(t),t,2)
dt2
L [y(t)] = Y (s) laplace(y(t),t,s)
14 v.2012.08.03
Comandos básicos de Maxima
A continuación se exponen los comandos de Maxima subyacentes detrás de las opciones del
menú de wxMaxima. Este compendio se basa en wxMaxima v.12.04.0 en español para Linux.
v.2012.08.03 15
Instrumentación y Control de Procesos - FIQ - UNL
16 v.2012.08.03
Comandos básicos de Maxima
v.2012.08.03 17