You are on page 1of 11

Manual de Máxima

Antonio Caizaluisa
Karina Mejı́a
Alex Andrango
René Yánez

30 de julio de 2015

Índice
1. Polinomios 2
1.1. Asignacion en memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2. Funciones y variables para Polinomios 2


2.1. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3. Lı́mites 6
3.1. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.1. Ejercicio 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.2. Ejercicio 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.3. Ejercicio 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.4. Ejercicio 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.5. Ejercicio 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.6. Ejercicio 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.7. Ejercicio 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.8. Ejercicio 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4. Bibliografı́a 11

1
1. Polinomios
Maxima puede realizar divisiones polinomiales, hacer máximo común divisor y mı́nimo común
múltiplo de polinomios, entre otras operaciones.

1.1. Asignacion en memoria


Los polinomios se almacenan en máxima en una forma conocida como canónica CRE constituye
un tipo de reprecentación especialmente apropiado para expandir polinomios y funciones racionales
(ası́ como para polinomios parcialmente factorizados y funciones racionales).

2. Funciones y variables para Polinomios


Función: bothcoef(expr,x)
Devuelve una lista cuyo primer miembro es el coeficiente de x

Función: coeff (expr, x, n)


Devuelve el coeficiente expr, donde expr es un polinomio o monomio en x.

Función: content(p1, x1, ..., xn)


Devuelve una lisa cuyo primer miembro es el máximo común divisor de los coeficientes de los
términos del polinomio

Función: denom(expr)
Devuelve el denominador de la expresión racional expr.

Función: divide (p1,p2,x1,...,xn)


Calcula el cociente y el resto del polinomio p1 dividido por el polinomio p2

Función: ezgcd(p1,p2,p3,...)
Devuelve una lista cuyo primer elemento es el máximo común divisor (mcd) de los polinomios
p1,p2,p3

Función: factor (expr)


Factoriza la expresión expr, que puede contener cualquier número de variables o funciones,
en factores irreducibles respecto de los enteros.

Función: factorsum (expr)


Intenta agrupar términos en los factores de expr que son sumas en grupos de términos tales
que su suma sea factorizable.

Función: fasttimes (p1, p2)


Calcula el producto de los polinomios p1 y p2 utilizando un algoritmo especial. Los polinomios
p1 y p2 deben ser multivariantes, densos y aproximadamente del mismo tamanio.

Función: Icm(p1,p2)
Calcula el mı́nimo común múltiplo de p1, p2 para poder tener acceso a este comando es
necesario cargar el paquete adicional load(fucts)

2
Función: hipow (expr, x)
Devuelve el mayor exponente explı́cito de x en expr.

Variable opcional: intfaclim


Valor por defecto: true Si vale true, Maxima desistirá de factorizar enteros si no encuentra
ningún factor después de las divisiones tentativas

2.1. Ejemplos
1. Ahora veremos un ejemplo de uso del comando expand, lo aplicamos a la frmula del binomio:
(%i1) (a+b)^7;

( %o1) (b + a)7
(%i4) expand(%);

( %o4) b7 + 7 · a · b6 + 21 · a2 · b5 + 35 · a3 · b4 + 35 · a4 · b3 + 21 · a5 · b2 + 7 · a6 · b + a7 2. El comando
factor (el mismo que utilizamos para sacar los factores primos de un nmero) hace lo contrario:
(%i5) factor(x^2+3*x+2);

( %o5) (x + 1) (x + 2)
(%i39) factor ((x+2)/(x^2-8*x+16));

( %o5)
x+2
(x − 4)2
3. El comando ratsimp tratará de expandir al mximo las fracciones, y las sumará, multiplicará, etc.
siempre que esto pueda hacerse:
(%i6) ratsimp(%);

( %o6)
x+2
x2 − 8x + 16
4. Los comandos que llevan un trig delante (o un (tr) en el modo gráfico) se refieren a funciones
trigonométricas. Por ejemplo, Expand (tr) o trigexpand desarrolla funciones trigonométricas, mien-
tras que Simplify (tr) o trigsimp las simplifican:
(%i7) trigexpand(cos(2*x)+sin(3*x));

( %o7)
−sin(x)3 − sin(x)2 + 3cos(x)2 sin(x) + cos(x)2

(%i8) trigsimp(-sin(x)^3-sin(x)^2+3*cos(x)^2*sin(x)+cos(x)^2);

( %o8)
−4sin(x)3 − 2sin(x)2 + 3sin(x) + 1

3
5. El comando básico para resolver ecuaciones de todo tipo es solve. A continuaci ón, damos algunos
ejemplos de su uso:
(%i9) solve(4*x^2+x=5,x);

( %o9)
5
[x = − , x = 1]
4
(%i10) solve(x^4-9*x^2+18,x);

( %o10) √ √ √ √
[x = − 3, x = 3, x = − 6, x = 6]
6. En algunos casos el comando no sabe muy bien cmo queremos resolver la ecuación y nos la
devuelve sin cambios:
(%i11) sqrt(x-4)+x=6;

( %o11) √
x+ x−4=6

(%i12) solve(%,x);

( %o12) √
x=6− x−4
7. En estos casos, suele ayudar reescribir la ecuación eliminando las posibles ambiguedades (en este
caso, los dos posibles signos de la raı́z):
(%i13) solve(x-4=(6-x)^2,x);

( %o13)
[x = 5, x = 8]
8. Las ecuaciones pueden tratarse como variables en Maxima. Esto facilita mucho la labor de saber
si el resultado que obtenemos con solve es efectivamente una solución o no, cosa que podemos hacer
con subst como se muestra a continuaci ón. Es imprescindible comprobar siempre si el resultado
obtenido es o no una solución correcta.
(%i14) eq1:x^3-x^2-x+1=0;

( %o14)
x3 − x2 − x + 1 = 0

(%i15) solve(eq1,x);

( %o15)
[x = −1, x = 1]

(%i16) subst(x=-1,eq1);

4
( %o16)
0=0
9. El comando solve puede resolver sistemas de ecuaciones (incluso ecuaciones no lineales). Para
ello, hay que pasarle una lista con las ecuaciones a resolver. Las listas siempre se dan entre corchetes
[ecuación1, ecuación2,...] y de nuevo hay que especificar la(s) variable(s) respecto de la(s) que se
quiere resolver el sistema. Las soluciones, si existen, también se dan en forma de lista:
(%i17) eq2:4*x^2+x=5;

( %o17)
4x2 + x = 5

(%i18) solve([eq1,eq2],x);

( %o18)
[[x = 1]]

(%i19) solve([x+2*y=0,3*x+5*y=6],[x,y]);

( %o19)
[[x = 12, y = −6]]

2.2. Ejercicios
1. Calcular la suma 1/(4 - 20x2) + x2.
(%i1) factor((1/(4-20*x^2))+x^2);

( %o1)
20x4 − 4x2 − 1
4(5x2 − 1)
2. Factorizar la expresin x5 + 2x3 + x2 + 2.
(%i2) factor(x^5+2*x^3+x^2+2);

( %o2)
(x + 1)(x2 + 2)(x2 − x + 1)
3. Calcular las races de x5 + 15x4 + 85x3 + 225x2 + 274x + 120.
(%i3) solve(x^5+15*x^4+85*x^3+225*x^2+274*x+120);

( %o3)
[x = −2, x = −1, x = −3, x = −5, x = −4]

5
3. Lı́mites
Funciones y variables para lı́mites:

Variable optativa: lhospitallim


Valor por defecto: 4
Es el número máximo de veces que la regla de L’Hopital es aplicada en la función limit,
evitando bucles infinitos al iterar la regla en casos como limit(cot(x)/csc(x), x, 0).

Función: tlimit (expr, x, val, dir)

Función: tlimit (expr, x, val)

Función: tlimit (expr)

Calcula el lı́mite de expr cuando la variable real x se aproxima al valor val desde la dirección
dir. El argumento dir puede ser el valor plus para un lı́mite por la derecha, minus para un
lı́mite por la izquierda o simplemente se omite para indicar un lmite en ambos sentidos.

La función limit utiliza los sı́mbolos especiales siguientes: inf (más infinito) y minf (menos
infinito). En el resultado también puede hacer uso de und (indefinido), ind (indefinido pero
acotado) y inf inity (infinito complejo).

inf inity (infinito complejo) es el resultado que se obtiene cuando el lı́mite del módulo de
la expresión es infinito positivo, pero el propio lı́mite de la expresión no es infinito positi-
vo ni negativo. Esto sucede, por ejemplo, cuando el lı́mite del argumento complejo es una
constante, como en limit(log(x), x, minf ), o cuando el argumento complejo oscila, como en
limit((−2)x , x, inf ), o en aquellos casos en los que el argumento complejo es diferente por
cualquiera de los lados de un lı́mite, como en limit(1/x, x, 0) o limit(log(x), x, 0).

La variable lhospitallim guarda el número máximo de veces que la regla de L’Hopital es aplica-
da en la función limit, evitando bucles infinitos al iterar la regla en casos como limit(cot(x)/csc(x), x, 0).

Si la variable tlimswitch vale true, hará que la función limit utilice desarrollos de Taylor
siempre que le sea posible.

La variable limsubst evita que la función limit realice sustituciones sobre formas desconoci-
das, a fin de evitar fallos tales como que limit(f (n)/f (n + 1), n, inf ) devuelva 1. Dándole a
limsubst el valor true se permitirán tales sustituciones.

La función limit con un solo argumento se utiliza frecuentemente para simplificar expresiones
constantes, como por ejemplo limit(inf − 1).

6
La instrucción example (limit) muestra algunos ejemplos.

Variable optativa: limsubst


Valor por defecto: false
La variable limsubst evita que la función limit realice sustituciones sobre formas desconoci-
das, a fin de evitar fallos tales como que limit(f (n)/f (n + 1), n, inf ) devuelva 1. Dándole a
limsubst el valor true se permitirán tales sustituciones.

Función: tlimit (expr, x, val, dir)

Función: tlimit (expr, x, val)

Función: tlimit (expr)

Calcula el lı́mite del desarrollo de Taylor de la expresión expr de variable x en el punto val
en la dirección dir.

Variable optativa: tlimswitch


Valor por defecto: true
Si tlimswitch vale true, la función limit utilizará un desarrollo de Taylor si el lı́mite de la
expresión dada no se puede calcular directamente. Esto permite el cálculo de lı́mites como
limit(x/(x − 1) − 1/log(x), x, 1, plus). Si tlimswitch vale f alse y el lı́mite de la expresión no
se puede calcular directamente, la función limit devolverá una expresión sin evaluar.

3.1. Ejercicios
Con máxima el usuario puede definir automáticame las funciones:
(%i3)
f(x):=(x-2)/sqrt(x-2);

3.1.1. Ejercicio 1
Los lı́mites son calculados con la instrucción limit sin necesitar de otro comando, pero en oca-
siones es necesario saber si el lı́mite es por la izquierda o por la derecha:

x−2
( %o3) f (x) := √
x−2
(%i4) limit(f(x), x, 2);

7
( %o4) 0
(%i5) g(x):=4*(2-exp(-3*x));

3.1.2. Ejercicio 2
En cuanto a los lı́mites que tienden al infinito es necesario usar el comando inf, para que maxima
traduzca a su lenguaje dicha instrucción, como se mostro en este ejemplo.1

( %o5) g (x) := 4 · (2 − exp ((−3) · x))


(%i6) limit(g(x), x, inf);

( %o6) 8
(%i10) wxplot2d([g(x)], [x,-10,10], [y,-10,10])$

plot2d: some values were clipped.

( %t10)
1
El comando exp se refiere al exponencial, es decir el numero e elevado a una potencia, en el ejemplo visto se
encuentra elevado a la potencia de x

8
3.1.3. Ejercicio 3
Maxima puede calcular el lı́mite ya sea a la derecha o a la izquierda de ese valor, para ello se
usan dos sencillas instrucciones, en el caso de que sea a la dercha usaremos el comando plus, y en
el caso de que sea a la izquierda se usará el comando minus. Como se muestra a continuación

(%i11) h(x):=1/x;
1
( %o11) h (x) :=
x
(%i12) limit(h(x), x, 0, minus);

( %o12) − ∞
(%i13) limit(h(x), x, 0, plus);

( %o13) ∞

(%i14) wxplot2d([h(x)], [x,-8,8], [y,-8,8])$

La gráfica mostrada es con fines didácticos para mostrar que un lı́mite puede variar cuando se rea-
liza a la izquierda o a la derecha.

( %t14)

9
(%i15) f(x,y):=sin(x*y);

3.1.4. Ejercicio 4
Tambien pueden ser calculados los lı́mites en funciones de dos o más variables:

( %o15) f (x, y) := sin (x · y)


(%i16) tlimit(f(x,y), x, 3);

( %o16) sin (3 · y)

3.1.5. Ejercicio 5
La funcion puede ser definida dentro del mismo operador limit como sigue:
(%i19) limit(1/sqrt(x),x,inf);

( %o19) 0

3.1.6. Ejercicio 6
Aquı́ se demuestra que los lı́mites con la serie Taylor son los mismos que calculados normalmente.
(%i20) f(x):=(exp(x)-exp(-x))/(exp(x)+exp(-x));

En esta función se vuelve a demostrar el uso de los lı́mites con la serie Taylor, no varı́a el re-
sultado:

exp (x) − exp (−x)


( %o20) f (x) :=
exp (x) + exp (−x)
(%i21) limit(f(x),x,minf);

( %o21) − 1
(%i22) tlimit(f(x),x,minf);

( %o22) − 1

3.1.7. Ejercicio 7
Cuando se ingresan funciones que pueden reducirse:

(%i23) f(x):=(x+a)*(x^2+b*x+c);

10
En algunos casos maxima se encarga de reducir a la mı́nima expresión las funciones ingresadas:

( %o23) f (x) := (x + a) · x2 + b · x + c


(%i24) limit(f(x),x,1);

3.1.8. Ejercicio 8
Con la función definida del ejercicio anterior; mostrar que maxima reuleve automáticamente las
operaciones algebraicas, y además puede calcular lı́mites que tienden a otras variables:
( %o24) (a + 1) · c + (a + 1) · b + a + 1
(%i25) limit(f(x),x,k);

También pueden ser calculado lı́mites cuando su valor de tendencia es otra variable; a continuación
se muestra el ejemplo:

( %o25) k 3 + (b + a) · k 2 + (c + a · b) · k + a · c

4. Bibliografı́a
http:maxima.sourceforge.netdocsmanualesmaxima 14.html

Servant, R. A., & John W. Jewett, J. (2001). Maxima y sus caracterı́sticas

11

You might also like