You are on page 1of 14

aprendiendo maxima.wxm

1 / 14

--> INTRODUCCION AL MANEJO DE MAXIMA 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 direcc 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 ejemplo la suma

(%i1) 2+2; 2+2;

(%o1) 4

--> division division

(%o2) 2 2

3

(%i2) 2/3;

--> suma de fracciones suma de fracciones

(%o3) 7 7

3

(%i3) 2/3+5/3;

--> potenciacion potenciacion

(%i4) 4^(1/2); (%o4) 2 4^(1/2); (%o4) 2

(%i5) 2^5; 2^5;

(%o5) 32

-->(%o3) 7 3 (%i3) 2/3+5/3; --> potenciacion (%i4) 4^(1/2); (%o4) 2 (%i5) 2^5; (%o5) 32 como

como sacar el valor de pi

aprendiendo maxima.wxm

2 / 14

(%i6) pi; pi;

(%o6)

--> como sacar el exponente de Euler como sacar el exponente de Euler

(%i7) %e; %e;

(%o7) %e

--> si queremos el valor numerico del numero pi con el comando float() si queremos el valor numerico del numero pi con el comando float()

(%i8) float(pi); (%o8) float(pi); (%o8)

(%i9) float(e); (%o9) e float(e); (%o9) e

(%i10) float(%e); (%o10) 2.718281828459045 float(%e); (%o10) 2.718281828459045

--> si deseamos controlar el numero de cifras significativas de nuestros calculos si deseamos controlar el numero de cifras significativas de nuestros calculos

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

(%o11) 70

--> luego el numero de cifras significativas del exponente de Euler queda luego el numero de cifras significativas del exponente de Euler queda

2.718281828459045235360287471352662497757247093699959574966967627724077b0numero de cifras significativas del exponente de Euler queda (%i12) bfloat(%e); (%o12)

(%i12) bfloat(%e);

(%o12)

3.141592653589793238462643383279502884197169399375105820974944592307816b0(%i12) bfloat(%e); (%o12) (%i13) bfloat(%pi); (%o13) (%i14) float(%e^7); (%o14)

(%i13) bfloat(%pi);

(%o13)

(%i14) float(%e^7); (%o14) 1096.633158428459 float(%e^7); (%o14) 1096.633158428459

(%i15) float(%pi^620); (%o15) 1.7097045613747134 10 3 0 8 float(%pi^620); (%o15) 1.7097045613747134 10 308

--> tambien podemos realizar operaciones numericas complejas observen el uso de los parentesis-->

aprendiendo maxima.wxm

3 / 14

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

--> (3+2^3)^3*(3+6^4)^7; (%o16) 8306959880404311519920769 si deseo que x y y tomen cierto valor se asigna con :

si deseo que x y y tomen cierto valor se asigna con : y que luego se realicen las operaciones indicadas separadas por ;

(%i17) x:3;y:321;x*y;x/y;x-y; x:3;y:321;x*y;x/y;x-y;

(%o17) 3

(%o18) 321

(%o19) 963

(%o20)

(%o21) - 318

1

107

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

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

--> aqui le pedimos que la funcion sea evaluada en pi aqui le pedimos que la funcion sea evaluada en pi

(%o23) 2 - + 1 2 - +1

(%i23) f(%pi);

--> y con este comando calculamos su valor numerico y con este comando calculamos su valor numerico

(%i24) float(%); (%o24) 7.728011747499565 float(%); (%o24) 7.728011747499565

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

--> este comando ?? float podemos tener acceso a una ayuda del programa este comando ?? float podemos tener acceso a una ayuda del programa

--> ??float; ??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); kill(x);

(%o26) done

aprendiendo maxima.wxm

4 / 14

--> 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)
(%i27) wxplot2d([f(x)],[x,-5,5]);
(%t27)
(%o27)

--> aqui declaramos la funcion g(x) aqui declaramos la funcion g(x)

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

-->--> aqui declaramos la funcion g(x) (%i28) g(x):=x^3; (%o28) g( x ) := x 3 y

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

aprendiendo maxima.wxm

5 / 14

(%i29) wxplot2d([g(x),f(x)],[x,-5,5]); (%t29) (%o29)
(%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) log(10); (%o30) log(10)

(%i31) float(%); (%o31) 2.302585092994046 float(%); (%o31) 2.302585092994046

(%i32) log(e); (%o32) log( e ) log(e); (%o32) log(e)

(%i33) float(%); (%o33) log( e ) float(%); (%o33) log(e)

(%i34) log(%e); log(%e);

(%o34) 1

float(%); (%o33) log( e ) (%i34) log(%e); (%o34) 1 (%i35) sin(pi); (%o35) s i n (

(%i35) sin(pi);

(%o35) sin( )

log(%e); (%o34) 1 (%i35) sin(pi); (%o35) s i n ( ) (%i36) cos(pi); (%o36) c o

(%i36) cos(pi);

(%o36) cos( )

(%i35) sin(pi); (%o35) s i n ( ) (%i36) cos(pi); (%o36) c o s ( )

(%i37) tan(pi);

(%o37) tan( )

aprendiendo maxima.wxm

6 / 14

--> por ejemplo numericamente por ejemplo numericamente

(%i38) sin(%pi); sin(%pi);

(%o38) 0

(%i39) cos(%pi); cos(%pi);

(%o39) - 1

(%i40) tan(%pi); tan(%pi);

(%o40) 0

(%i41) asin(%0); (%o41) asin( %0 ) asin(%0); (%o41) asin(%0)

(%i42) atan(%pi); (%o42) atan( ) atan(%pi); (%o42) atan( )

(%i43) float(%); (%o43) 1.262627255678912 float(%); (%o43) 1.262627255678912

--> aqui declaramos la funcion q(x) aqui declaramos la funcion q(x)

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

--> y aqui la graficamos y aqui la graficamos

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

aprendiendo maxima.wxm

7 / 14

--> la funcion arco de tangente la funcion arco de tangente

(%i46) p(x):=atan(x); (%o46) p( x ) := atan( x ) p(x):=atan(x); (%o46) p(x):= atan(x)

(%i47) wxplot2d([p(x)],[x,-5,5]); (%t47) (%o47)
(%i47) wxplot2d([p(x)],[x,-5,5]);
(%t47)
(%o47)

--> el valor numerico de las funciones inversas el valor numerico de las funciones inversas

(%i48) atan(%pi); (%o48) atan( ) atan(%pi); (%o48) atan( )

(%i49) float(%); (%o49) 1.262627255678912 float(%); (%o49) 1.262627255678912

(%i50) asin(%pi); (%o50) asin( ) asin(%pi); (%o50) asin( )

(%i51) float(%); (%o51) 1.570796326794897 - 1.811526272460853 %i float(%); (%o51) 1.570796326794897 - 1.811526272460853 %i

(%i52) acos(%pi); (%o52) acos( ) acos(%pi); (%o52) acos( )

(%i53) float(%); (%o53) 1.811526272460853 %i float(%); (%o53) 1.811526272460853 %i

(%i54) float(acos(%pi)); (%o54) 1.811526272460853 %i float(acos(%pi)); (%o54) 1.811526272460853 %i

aprendiendo maxima.wxm

8 / 14

--> la funcion factorial la funcion factorial

(%i55) 1 5 ! ; 15!;

(%o55) 1307674368000

--> factorizar un polinomio factorizar un polinomio

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

--> la simplificacion de un polinomio la simplificacion de un polinomio

(%i57) radcan((x^2-1)/(x-1)); radcan((x^2-1)/(x-1));

(%o57) x + 1

(%i58) radcan(x^(1/2)/x); 1 (%o58) x
(%i58) radcan(x^(1/2)/x);
1
(%o58)
x

-->(%o57) x + 1 (%i58) radcan(x^(1/2)/x); 1 (%o58) x la solucion de la ecuacion de 2

la solucion de la ecuacion de 2 grado

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

--> las soluciones de una ecuacion de grado sexto las soluciones de una ecuacion de grado sexto

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

,x=-1,x=-

(%i61) kill(all); (%o0) d o n e kill(all); (%o0) done

-->,x= 2 2 ,x=- 1 ,x=- (%i61) kill(all); (%o0) d o n e el valor absoluto

el valor absoluto de -5

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

3 %i + 1 2
3 %i + 1
2

,x=-

3 %i - 1 2
3 %i - 1
2

,x=1]

--> la parte entera del numero pi la parte entera del numero pi

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

--> redondear el numero pi redondear el numero pi

aprendiendo maxima.wxm

9 / 14

(%i3) round(%pi); (%o3) 3 round(%pi); (%o3) 3

(%i4) exp(3); (%o4) %e 3 exp(3); (%o4) %e 3

(%i5) float(%e^3); (%o5) 20.08553692318767 float(%e^3); (%o5) 20.08553692318767

(%i6) log(x); (%o6) log( x ) log(x); (%o6) log(x)

(%i7) log(3); (%o7) log(3) log(3); (%o7) log(3)

(%i8) float(%log(3)); (%o8) %log(3.0) float(%log(3)); (%o8) %log(3.0)

--> como calcular un limite de una funcion. -->

a

Aqui tenemos las funcion sin(a*x)/x cuando x tiende

cero. el comando es limit(f(x),variable, punto)

(%i9) limit(sin(a*x)/x,x,0); (%o9) a 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); 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); 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-->

aprendiendo maxima.wxm

10 / 14

(%i12) diff(sin(x),x); (%o12) cos( x ) diff(sin(x),x); (%o12) cos(x)

(%i13) diff(sin(x),x,2); (%o13) - sin( x ) diff(sin(x),x,2); (%o13) - sin(x)

(%i14) f(x):=x^3+x^2+1; (%o14) f( x ) := x 3 + x 2 + 1 f(x):=x^3+x^2+1; (%o14) f(x):= x 3 +x 2 +1

(%o15) 3 x 2 + 2 x 3 x 2 +2x

(%i15) diff(f(x),x);

(%i16) diff(f(x),x,2); diff(f(x),x,2);

(%o16) 6 x + 2

--> resolver una derivada igual a cero resolver una derivada igual a cero

(%i17) solve(diff(f(x),x,2)=0,x); (%i17)

(%o17) [ x = -

1

3 ]

--> evaluar la funcion en 1/3; evaluar la funcion en 1/3;

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

(%o18) %1 3 27 +

%1 2

9 +1

--> simplificar el resultado simplificar el resultado

(%i19) ratsimp(%);

(%o19) %1 3 + 3 %1 2 + 27

27

(%i20) f(x):=x; (%o20) f( x ) := x f(x):=x; (%o20) f(x):= x

--> integracion indefinida integracion indefinida

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

(%o21) x 2

2

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

(%o22) %e x

aprendiendo maxima.wxm

11 / 14

--> integrales definidas mucho cuidado con la sintaxis es integrate(f(x), variable, punto inf punto sup)-->

(%i23) integrate(exp(x),x,0,1); integrate(exp(x),x,0,1);

(%o23) %e - 1

--> su valor numerico su valor numerico

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

--> otros ejemplos otros ejemplos

(%i25) integrate(x,x,0,1); (%i25)

(%o25) 1

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( ) float(%); (%o27) 1.0 - 1.0 cos( )

(%i28) integrate(exp(-x),x,0,inf); integrate(exp(-x),x,0,inf);

(%o28) 1

--> polinomios de taylor polinomios de taylor

(%i29) taylor(cos(x),x,0,2);

(%o29)/T/ 1 -

x 2

2

+

(%i30) taylor(exp(x),x,0,3);

(%o30)/T/ 1 + x +

x 2 x 3

2 + 6 +

--> series de potencia series de potencia

aprendiendo maxima.wxm

12 / 14

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

(%o31)

• x i1 i1 !
x i1
i1 !

i1 = 0

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

(%o32)

d i2  • x i2   dx i2 %exp(x)    
d i2
x i2 
dx i2 %exp(x)
x=0
i2 !

i2 = 0

(%i33) kill(y); kill(y);

(%o33) done

--> integracion de una serie de potencias integracion de una serie de potencias

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

(%o34)

• (-1) i3 x i3 i3 !
(-1) i3 x i3
i3 !

i3 = 0

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

(%o35) done

--> grafica de funciones de tres variables grafica de funciones de tres variables

(%i36) f(x,y):=sin(x)+cos(y); (%o36) f( x , y ) := sin( x ) + cos( y ) 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 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)
(%i37) wxplot3d(f(x,y),[x,-5,5],[y,-5,5]);
(%t37)
(%o37)

--> como se declara un ecuacion diferencial como se declara un ecuacion diferencial

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

(%o38)

d

dx

y(x)+ sin(x)+ y(x)

2 =0

--> como se resuelve con el comando desolve sin condiciones iniciales como se resuelve con el comando desolve sin condiciones iniciales

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

(%o39) y(x)= -

x

-

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

2

5

+

+

5 10

--> con condiciones iniciales con condiciones iniciales

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

(%o40) 1

--> como se resuelve con el comando desolve con condiciones iniciales como se resuelve con el comando desolve con condiciones iniciales

(%i41) atvalue(y(x),x=0,1); atvalue(y(x),x=0,1);

(%o41) 1

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

(%o42) y(x)= -

x

-

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

2

+

+

5

5

5

aprendiendo maxima.wxm

14 / 14

--> 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