You are on page 1of 14

aprendiendo maxima.

wxm

-->

1 / 14

INTRODUCCION AL MANEJO DE MAXIMA


FUNDACION UNIVERSITARIA LOS LIBERTADORES
DEPARTAMENTO DE CIENCIAS BASICAS
PROFESOR WILSON ROJAS
warojasc@ulibertadores.edu.co
warojasc@bt.unal.edu.co
2011

introduccion:
MAXIMA: corresponde a un software libre con el que podemos hacer
calculos sencillos, de algebra,calculo diferencial, integral o
ecuaciones diferenciales. lo que acontinuacion se muestra
corresponde a unaz breve introduccion necesaria para el desarrollo
de problemas que requieren su uso. Este se puede descargar de la direcci
http://sourceforge.net/projects/maxima/files/
Comandos basicos en Maxima: al ejecutar el programa para que
este calcule siempre debemos
la orden shift+ enter
-->

ejemplo la suma

(%i1) 2+2;
(%o1) 4
-->

division

(%i2) 2/3;
(%o2)
-->

2
3

suma de fracciones

(%i3) 2/3+5/3;
(%o3)
-->

7
3

potenciacion

(%i4) 4^(1/2);
(%o4) 2
(%i5) 2^5;
(%o5) 32
-->

como sacar el valor de pi

aprendiendo maxima.wxm

2 / 14

(%i6) pi;
(%o6)
-->

como sacar el exponente de Euler

(%i7) %e;
(%o7) %e
-->

si queremos el valor numerico del numero pi


con el comando float()

(%i8) float(pi);
(%o8)
(%i9) float(e);
(%o9) e
(%i10) float(%e);
(%o10) 2.718281828459045

-->

si deseamos controlar el numero de cifras


significativas de nuestros calculos

(%i11) fpprec:70;
(%o11) 70

-->

luego el numero de cifras significativas


del exponente de Euler queda

(%i12) bfloat(%e);
(%o12)

2.718281828459045235360287471352662497757247093699959574966967627724077b0
(%i13) bfloat(%pi);
(%o13)

3.141592653589793238462643383279502884197169399375105820974944592307816b0
(%i14) float(%e^7);
(%o14) 1096.633158428459
(%i15) float(%pi^620);
(%o15) 1.7097045613747134 10 308

-->

tambien podemos realizar operaciones numericas complejas


observen el uso de los
parentesis

aprendiendo maxima.wxm

(%i16) (3+2^3)^3*(3+6^4)^7;
(%o16) 8306959880404311519920769

-->

si deseo que x y y tomen cierto valor se asigna


con : y que luego se realicen las
operaciones indicadas separadas por ;

(%i17)
(%o17)
(%o18)
(%o19)

x:3;y:321;x*y;x/y;x-y;
3
321
963

(%o20)

1
107

(%o21) - 318

-->

de manera similar se opera con funciones se asignan con :=

(%i22) f(x):=x^2-x+1;
(%o22) f( x ):= x 2 - x + 1

-->

aqui le pedimos que la funcion sea evaluada en pi

(%i23) f(%pi);
(%o23) 2 - + 1

-->

y con este comando calculamos su valor numerico

(%i24) float(%);
(%o24) 7.728011747499565
(%i25) float(f(%pi));
(%o25) 7.728011747499565

-->

este comando ?? float podemos tener acceso a una


ayuda del programa

-->

??float;

-->

como x ya tiene un valor asignado antes se lo


podemos quitar con kill(x), en el caso
que tengamos que quitar todos los valores de las
variables asignadas lo hacemos
con kill(all)

(%i26) kill(x);
(%o26) done

3 / 14

aprendiendo maxima.wxm

-->

con este commando podemos graficar la funcion


f(x) la cual fue declarada
previamente. Observen como se llama la
funcion , la variable x, el intervalo en
que se desea graficar

(%i27) wxplot2d([f(x)],[x,-5,5]);

(%t27)

(%o27)

-->

aqui declaramos la funcion g(x)

(%i28) g(x):=x^3;
(%o28) g( x ):= x 3

-->

y las graficamos f(x) y g(x) juntas

4 / 14

aprendiendo maxima.wxm

(%i29) wxplot2d([g(x),f(x)],[x,-5,5]);

(%t29)

(%o29)

-->

podemos calcular el valor de funciones tales


como logaritmos, exponenciales, funciones
trigonometricas

(%i30) log(10);
(%o30) log( 10 )
(%i31) float(%);
(%o31) 2.302585092994046
(%i32) log(e);
(%o32) log( e )
(%i33) float(%);
(%o33) log( e )
(%i34) log(%e);
(%o34) 1
(%i35) sin(pi);
(%o35) sin( )
(%i36) cos(pi);
(%o36) cos( )
(%i37) tan(pi);
(%o37) tan( )

5 / 14

aprendiendo maxima.wxm

-->

por ejemplo numericamente

(%i38) sin(%pi);
(%o38) 0
(%i39) cos(%pi);
(%o39) - 1
(%i40) tan(%pi);
(%o40) 0
(%i41) asin(%0);
(%o41) asin( %0 )
(%i42) atan(%pi);
(%o42) atan( )
(%i43) float(%);
(%o43) 1.262627255678912

-->

aqui declaramos la funcion q(x)

(%i44) q(x):=sin(x);
(%o44) q( x ):= sin( x )

-->

y aqui la graficamos

(%i45) wxplot2d([q(x)],[x,-3,3]);

(%t45)

(%o45)

6 / 14

aprendiendo maxima.wxm

-->

la funcion arco de tangente

(%i46) p(x):=atan(x);
(%o46) p( x ):= atan( x )
(%i47) wxplot2d([p(x)],[x,-5,5]);

(%t47)

(%o47)

-->

el valor numerico de las funciones inversas

(%i48) atan(%pi);
(%o48) atan( )
(%i49) float(%);
(%o49) 1.262627255678912
(%i50) asin(%pi);
(%o50) asin( )
(%i51) float(%);
(%o51) 1.570796326794897 - 1.811526272460853 %i
(%i52) acos(%pi);
(%o52) acos( )
(%i53) float(%);
(%o53) 1.811526272460853 %i
(%i54) float(acos(%pi));
(%o54) 1.811526272460853 %i

7 / 14

aprendiendo maxima.wxm

-->

la funcion factorial

(%i55) 15!;
(%o55) 1307674368000

-->

factorizar un polinomio

(%i56) factor(x^2+x-6);
(%o56) ( x - 2 )( x + 3 )

-->

la simplificacion de un polinomio

(%i57) radcan((x^2-1)/(x-1));
(%o57) x + 1
(%i58) radcan(x^(1/2)/x);
1
(%o58)
x

-->

la solucion de la ecuacion de 2 grado

(%i59) solve(x^2-4=0,x);
(%o59) [ x = - 2 , x = 2 ]

-->

las soluciones de una ecuacion de grado sexto

(%i60) solve(x^6-1=0,x);
(%o60) [ x =

3 %i + 1
3 %i - 1
3 %i + 1
3 %i - 1
,x=
,x=-1,x=,x=,x=1]
2
2
2
2

(%i61) kill(all);

(%o0) done
-->

el valor absoluto de -5

(%i1) abs(-5);
(%o1) 5
-->

la parte entera del numero pi

(%i2) entier(%pi);
(%o2) 3
-->

redondear el numero pi

8 / 14

aprendiendo maxima.wxm

(%i3) round(%pi);
(%o3) 3
(%i4) exp(3);
(%o4) %e 3
(%i5) float(%e^3);
(%o5) 20.08553692318767
(%i6) log(x);
(%o6) log( x )
(%i7) log(3);
(%o7) log( 3 )
(%i8) float(%log(3));
(%o8) %log( 3.0 )
-->

como calcular un limite de una funcion.


Aqui tenemos las funcion sin(a*x)/x cuando x tiende
a cero. el comando es limit(f(x),variable, punto)

(%i9) limit(sin(a*x)/x,x,0);
(%o9) a
-->

como calcular un limite de una funcion.


Aqui tenemos las funcion sin(a*x)/x cuando x tiende
a cero por la derecha. el comando es
limit(f(x),variable, punto, plus) si es por la izquierda
es minus

(%i10) limit(sin(a*x)/x,x,0,plus);
(%o10) a

-->

como calcular un limite de una funcion al


infinito. Aqui tenemos las funcion
(1+2/x)^x^(1/3 cuando x tiende al infinito .
el comando es limit(f(x),variable,inf)

(%i11) limit((1+2/x)^x^(1/3),x,inf);
(%o11) 1

-->

como calcular una derivada con el comando


diff(f(x),variable,numero de derivacion) si es primera
segunda o tercera derivada

9 / 14

aprendiendo maxima.wxm

(%i12) diff(sin(x),x);
(%o12) cos( x )
(%i13) diff(sin(x),x,2);
(%o13) - sin( x )
(%i14) f(x):=x^3+x^2+1;
(%o14) f( x ):= x 3 + x 2 + 1
(%i15) diff(f(x),x);
(%o15) 3 x 2 + 2 x
(%i16) diff(f(x),x,2);
(%o16) 6 x + 2

-->

resolver una derivada igual a cero

(%i17) solve(diff(f(x),x,2)=0,x);
1
(%o17) [ x = - ]
3

-->

evaluar la funcion en 1/3;

(%i18) f(%1/3);
(%o18)

-->

%1 3 %1 2
+
+1
27
9

simplificar el resultado

(%i19) ratsimp(%);
%1 3 + 3 %1 2 + 27
(%o19)
27
(%i20) f(x):=x;
(%o20) f( x ):= x

-->

integracion indefinida

(%i21) integrate(f(x),x);
(%o21)

x2
2

(%i22) integrate(exp(x),x);
(%o22) %e x

10 / 14

aprendiendo maxima.wxm

-->

integrales definidas mucho cuidado con la


sintaxis es integrate(f(x), variable, punto inf
punto sup)

(%i23) integrate(exp(x),x,0,1);
(%o23) %e - 1

-->

su valor numerico

(%i24) float(%);
(%o24) 1.718281828459045

-->

otros ejemplos

(%i25) integrate(x,x,0,1);
1
(%o25)
2
(%i26) integrate(sin(x),x,0,+pi);

positive, negative, or zero? p;


(%o26) 1 - cos( )

Is

(%i27) float(%);
(%o27) 1.0 - 1.0 cos( )
(%i28) integrate(exp(-x),x,0,inf);
(%o28) 1

-->

polinomios de taylor

(%i29) taylor(cos(x),x,0,2);
(%o29)/T/ 1 -

x2
+ ...
2

(%i30) taylor(exp(x),x,0,3);
(%o30)/T/ 1 + x +

-->

x2 x3
+ + ...
2 6

series de potencia

11 / 14

aprendiendo maxima.wxm

12 / 14

(%i31) powerseries(exp(x),x,0);

x i1

(%o31)

i1 !
i1 = 0

(%i32) powerseries(%exp(x),x,0);

(%o32)

d i2

%exp( x )

i2
d x

0
x
=

x i2

i2 !
i2 = 0

(%i33) kill(y);
(%o33) done

-->

integracion de una serie de potencias

(%i34) y:powerseries(exp(-x),x,0);

( - 1 )i3 x i3
(%o34)

i3 !
i3 = 0

(%i35) kill(f,x,y);
(%o35) done

-->

grafica de funciones de tres variables

(%i36) f(x,y):=sin(x)+cos(y);
(%o36) f( x , y ):= sin( x )+ cos( y )

-->

observence como se declaran los intervalos en que se grafican

aprendiendo maxima.wxm

13 / 14

(%i37) wxplot3d(f(x,y),[x,-5,5],[y,-5,5]);

(%t37)

(%o37)

-->

como se declara un ecuacion diferencial

(%i38) edo:diff(y(x),x,1)+1/2*y(x)+sin(x)=0;
y( x )
d
(%o38)
y( x )+ sin( x )+
=0
2
dx

-->

como se resuelve con el comando desolve sin condiciones iniciales

(%i39) desolve(edo,y(x));
x

2 sin( x ) 4 cos( x ) ( 10 y( 0 )- 8 ) %e
(%o39) y( x )= -

-->

10

con condiciones iniciales

(%i40) atvalue(y(x),x=0,1);
(%o40) 1

-->

como se resuelve con el comando desolve con condiciones iniciales

(%i41) atvalue(y(x),x=0,1);
(%o41) 1
(%i42) desolve(edo,y(x));
x

(%o42) y( x )= -

2 sin( x ) 4 cos( x ) %e
+
+
5
5
5

aprendiendo maxima.wxm

-->

en internet se haya gran cantidad de bibliografia


respecto a maxima. esto es solo una introduccion
wilson
Bibliografia recomendada
[1] http://www.guadalinex.org/mas-programas/descargas
/contribuciones-de-usuario/introduccion_a_maxima.pdf/view
[2] http://www.dma.uvigo.es/SwLibre/SMB_08/Notas_Maxima.pdf
[3] http://www.telefonica.net/web2/biomates/maxima/max.pdf

14 / 14