Professional Documents
Culture Documents
wxm
1 / 20
3+5;
2 / 20
Aunque por defecto el programa nos pondr ";" al final del cada
operacin, es aconsejable que lo pongamos nosotros (se justifica
ms adelante).
El programa tambin nos pone por defecto (%i1) y (%o1) para indicarnos
que es la primera entrada (input 1) que hemos introducido y la
primera salida (output 1) que hemos obtenido.
Tambin es posible acudir a cualquiera de los resultados anteriores
que hayamos obtenido y escribir encima del mismo (por ejemplo, si
nos hemos equivocado a la hora de plantear una operacin); o copiar
el resultado con el cursor y trasladarlo ms abajo (es decir, las
mismas operaciones que solemos hacer bajo windows, por ejemplo con
word, o programas similares).
Si en lugar de ejecutar la operacin que queramos hacer con
MAYUSCULA+ENTER (o con la tecla INTRO del teclado numrico) ponemos
";" y le damos directamente a ENTER, veremos que obtenemos una nueva
lnea debajo de la anterior, en la que podremos incluir otras
operaciones. Cuando le demos entonces a INTRO, veremos que nos calcula
todas las operaciones que hayamos incluido en dicha entrada:
-->
3+6;
4-2;
4*(-8);
-->
??log
En el mismo men superior tenemos algunos comandos que nos pueden ser
tiles, como:
- describe(expr), que nos da ayuda sobre expr
- Ejemplo(expr), que nos da un ejemplo de expr
- A propsito("expr"), que nos da comandos relacionados con expr
3 / 20
2 MANEJO DE WXMAXIMA.
2.1 INTRODUCCIN DE DATOS.
Tenemos la posibilidad de escribir varios comandos dentro de una celda.
Por ejemplo, podemos escribir (acabar cada lnea con ";" y darle a
ENTER):
-->
3!;
%/3;
%O1*10;
100/3;
100.0/3.0;
cos(%pi);
Ahora DAR a INTRO del teclado numrico y observar los resultados. Como
vemos para cada entrada aparece una salida en una lnea distinta y
numerada.
El smbolo "%" tiene varios usos en la ordenes anteriores que vamos a
aclarar:
En la segunda lnea "%" se utiliza para hacer referencia a la ltima
salida generada por Maxima. En "%o1" se utiliza para hacer referencia
a la salida nmero 1 output 1. Por ltimo el " %pi" en la ultima lnea
se utiliza para hacer referencia a la constante pi. Otras constantes que
Maxima reconoce son el nmero e (%e) y la unidad imaginaria i (%i).
Cada entrada que le damos al programa debe terminar con ";" o con "$".
Si termina con ";", Maxima devuelve el resultado, pero si no se desea que
aparezca ningn resultado, se debe terminar la lnea con $. Este smbolo
es til cuando se quieren hacer varias operaciones intermedias y no se
desea que aparezcan los resultados.
Obsrvese que los resultados de 100/3 y en 100.0/3.0 son distintos,
aunque aparentemente la operacin es la misma. Esto es porque Maxima
intenta mantener la precisin y no evala expresiones como 100/3 o
sqrt(2) (la raz cuadrada es sqrt) a no ser que se indique. En la entrada
%i5 se utiliza coma flotante y, por eso, Maxima evala el resultado.
Sin embargo, observar lo que ocurre al hacer
-->
sqrt(2*%e);
float(sqrt(2*%e));
4 / 20
Maxima puede trabajar con nmeros enteros con cualquier nmero de dgitos.
Sin embargo, cuando la representacin es demasiado larga por defecto
elimina la mayor parte de los dgitos intermedios. Por ejemplo, si
evaluamos 123^123, tendremos
-->
123^123;
pez*pez+4*pez+pez;
-->
2.3;
/*el punto est reservado para los decimales*/
-->
3y;
/*si tecleamos 3y el programa no lo entiende*/
/*lo correcto es poner 3*y*/
EJERCICIO 1:
Ejecutar las siguientes operaciones y observar el orden en que se
realizan las operaciones:
1) 2*4+3
5) 6/(3-2) 9) 2*(3^2) 13) (b/c + a)^d - e
2) 2*(4+3) 6) (6/3)-2 10) (2*3)^2 14) b/(c+ a^d-e)
3) (2*4)+3 7) 6/3 - 2 11) 2*3^2
15) (b/c + a)^(d-e)
4) 6/3-2
8) (2*3)^2 12) b/(c+a)^(d-e)
16) (3-8)*10
2/3+2;
-->
%*5;
-->
5 / 20
2/3+4/5-3/7*8;
sqrt(5.0);
-->
exp(6);
-->
exp(6.0);
%pi*2, numer;
amapola:6;
3*amapola-15;
v:2$ w:3$
formula:v*2/w-v*5;
6 / 20
2.4.2 Constantes
Maxima tiene constantes matemticas predeterminadas. Por ejemplo
el nmero e y por lo tanto conviene no usar dichas constantes como
nombres de etiquetas o variables para evitar errores. Dichas
constantes se diferencian porque llevan el smbolo % delante
de la constante y sin espacio (%e). Otros ejemplos son: %i (nmero i),
%pi (nmero p), %phi (razn aurea), etc.
Tampoco conviene utilizar como nombres de etiquetas aquellas que
definen algn comando en Maxima, por ejemplo, integrate, diff, sum, ...
2.4.3 Funciones
Para definir cualquier funcin, la sintaxis es: nombre de la funcin
y argumentos, por ejemplo, f(x) o h(x;y) seguido del smbolo ":="
y la definicin de la funcin.
Ejemplos de funcin de una y varias variables:
-->
f(x):=x^2+sin(x)/x;
-->
h(x,y):=2*%e^(x*y)-3/x^2;
f(2);
h(2,4);
7 / 20
v:[2,-3];
w:[1,2];
v[2];
v+w;
-3*v;
v.w;
sqrt(v.v);
-->
A:matrix([1,2],[3,4]);
B:matrix([1,1],[-1,1]);
C:matrix([1,2,3],[4,5,6],[7,8,9]);
C[2][3];
A+B;
3*A;
A.B;
A*B;
A.v;
transpose(A);
invert(A);
A^-1;
determinant(A);
rank(C);
nullspace(C);
-->
args(%);
y de la Imagen: Im(C)
-->
columnspace(C);
args(%);
8 / 20
linsolve([x+y=2,2*x+3*y=2],[x,y]);
SI: x+y=2,2x+2y=2
-->
linsolve([x+y=2,2*x+2*y=2],[x,y]);
linsolve([x+y=2,2*x+2*y=4],[x,y]);
linsolve_params:false$
linsolve([x+y=2,2*x+2*y=4],[x,y]);
charpoly(A,x);
-->
expand(%);
eigenvalues(A);
-->
solve(charpoly(A,x),x);
eigenvectors(A);
limit(sin(x)/x, x, 0);
limit((2*x-1)^3/(x^2+1),x,-inf);
simpsum;
sum(1/n^2, n, 1, inf);
simpsum:true;
sum(1/n^2, n, 1, inf);
reset(simpsum)$
9 / 20
10 / 20
diff(sin(2*x*y),x,3);
hessian(sin(x+y),[x,y]);
taylor(sin(x)/x,x,0,10);
-->
ratdisrep(%);
-->
powerdisp;
powerdisp:true$
ratdisrep(taylor(sin(x)/x,x,0,10));
powerdisp:false$
ratdisrep(taylor(sin(x)/x,x,0,10));
integrate(x/(x^3-2*x^2+1),x);
integrate(cos(x)^2,x,0,%pi);
integrate(exp(-x^2/2),x,-inf,inf);
-->
rootscontract(%);
load(vect)$
-->
express(grad(x*y^2*sin(z)));
-->
ev(%,diff);
express(div([x,z*y^2,sin(x+z)]));
-->
ev(%,diff);
express(curl([x^2,y^3,z]));
-->
ev(%,diff);
express(laplacian(x*y^2));
-->
ev(%,diff);
ode2('diff(y,x)=sin(x)/sqrt(y),y,x);
ode2('diff(y,x)=y/x+1,y,x);
-->
ic1(%,x=1,y=3);
Homogneas: y'=(x+y)/(2x+y)
-->
ode2('diff(y,x)=(x+y)/(2*x+y),y,x);
ode2('diff(y,x)=(4*x^3-y)/(2*x-x^4/y),y,x);
-->
plot2d(sin(2*x),[x,-2*%pi,2*%pi]);
-->
plot2d([x^2,sqrt(2*x)],[x,-2,2]);
-->
plot3d(cos(x*y),[x,-3,3],[y,-3,3]);
-->
plot3d([cos(u)*cos(v),sin(u)*cos(v),sin(v)],
[u,0,2* %pi],[v,- %pi/2, %pi/2]);
11 / 20
12 / 20
plot2d(sin(2*x),[x,-2*%pi,2*%pi]);
-->
plot2d([x^2,sqrt(2*x)],[x,-2,2]);
wxplot2d(sin(2*x),[x,-2*%pi,2*%pi]);
-->
plot2d(x/(x^2-4),[x,-6,6],[y,-6,6],
[gnuplot_preamble, "set zeroaxis;"])$
-->
plot2d(x/(x^2-4),[x,-6,6],[y,-6,6],
[gnuplot_preamble, "set size ratio 1; set zeroaxis;"])$
-->
plot2d(x/(x^2-4),[x,-6,6],[y,-6,6],
[gnuplot_preamble, "set grid;"])$
13 / 20
plot2d([1], [ph,0,2*%pi],
[plot_format, gnuplot],
[gnuplot_preamble, "set polar; set zeroaxis;"],[x,-1,1])$
plot2d([1], [ph,0,2*%pi],
[plot_format, gnuplot],
[gnuplot_preamble, "set polar;set size ratio 1; set zeroaxis;"],
[x,-1,1])$
plot2d(ph,[ph,0,4*%pi],
[gnuplot_preamble, "set polar; set zeroaxis;"],[x,-15,15])$
plot2d(ph,[ph,0,4*%pi],
[gnuplot_preamble, "set polar; set zeroaxis;"], [nticks,30],
[x,-15,15])$
Si representamos la funcin
r(theta)=exp(cos(theta))-2cos(4theta)+sin(theta/12)^5
obtenemos algo parecido a una mariposa:
-->
r(ph):=exp(cos(ph))-2*cos(4*ph)+sin(ph/12)^5$
plot2d(r(ph),[ph,0,2*%pi],
[gnuplot_preamble, "set polar; set zeroaxis;"],[x,-5,5])$
14 / 20
plot2d([parametric,cos(t)^3,sin(t)^3,[t,0,2*%pi],[nticks,50]]);
plot2d([parametric,(1+cos(t))*cos(t),(1+cos(t))*sin(t),
[t,0,2*%pi],[nticks,50]]);
plot2d([parametric, (cos(t))/(1+sin(t)^2),
(cos(t)*sin(t))/(1+sin(t)^2), [t,0,2*%pi],[nticks,70]]);
%alpha:%pi/2-0.2$
plot2d([parametric,exp(t*cot(%alpha))*cos(t),
exp(t*cot(%alpha))*sin(t),[t,0,4*%pi],[nticks,90]]);
plot2d([parametric,t-sin(t),1-cos(t),[t,0,6*%pi],[nticks,90]]);
-->
plot3d([cos(u)*cos(v),sin(u)*cos(v),sin(v)],
[u,0,2* %pi],[v,- %pi/2, %pi/2]);
15 / 20
-->
-->
16 / 20
5 GRFICOS EN 3D.
Con Maxima se pueden representar funciones de dos variables de forma
similar a como hemos representado funciones de una. La principal
diferencia es que vamos a utilizar el comando plot3d en lugar de plot2d,
pero igual que en el caso anterior, son obligatorios la funcin o
funciones y el dominio que tiene que ser de la forma [a,b]x[c,d]:
plot3d(f(x,y),[x,a,b],[y,c,d]) grfica de f(x,y) en [a,b]x[c,d]
-->
plot3d(cos(x*y),[x,-3,3],[y,-3,3]);
plot3d([cos(u)*cos(v),sin(u)*cos(v),sin(v)],
[u,0,2* %pi],[v,- %pi/2, %pi/2]);
-->
17 / 20
-->
18 / 20
load(draw)$
-->
draw3d(vector([0,0,0],[1,1,1]));
draw3d(explicit(sin(x)+sin(x*y),x,0,2*%pi,y,0,2*%pi));
19 / 20
draw3d(implicit((sqrt(x^2+y^2)-4)^2+z^2=4,x,-6,6,
y,-6,6,z,-2,2) );
wxdraw3d(parametric(cos(t),sin(t),t/8,t,0,4*%pi));
draw3d(parametric_surface((2+cos(v))*cos(u),
(2+cos(v))*sin(u),sin(v),u,0,2*%pi,v,0,2*%pi));
draw3d(cylindrical(cos(z),z,-2,2,t,0,2*%pi));
draw3d(spherical(1,a,0,2*%pi,t,0,%pi));
a(t):=[cos(t),sin(t),t/8]$
define("a'"(t),diff(a(t),t))$
t0:create_list(i*%pi/4,i,0,16)$
T:create_list( vector(a(i),"a'"(i)),i,t0)$
P:map(a,t0)$
-->
objetos:([nticks=100,color=red,
apply(parametric,append(a(t),[t,0,4*%pi]))
color=blue,unit_vectors=true,T,
color=green,point_type=7,points(P),
user_preamble="set size ratio 1",
title="Campo vectorial tangente",
xyplane=0,axis_3d=false,
xtics=false,ytics=false,ztics=false,
xaxis=true,yaxis=true,zaxis=true,
xlabel="x",ylabel="y",zlabel="z"])$
-->
draw3d(objetos);
-->
draw3d(x_voxel=17,y_voxel=17,z_voxel=15,
palette=[12,5,27],enhanced3d=true,
implicit((sqrt(x^2+y^2)-4)^2+z^2=4,x,-6,6,
y,-6,6,z,-2,2));
20 / 20