Está en la página 1de 7

Tutorial para usar maple

Aqu se explican las herramientas ms importantes que pueden usar en este


excelente programa de matemticas:

Asignacin a variables:
:= , unassign , restore, assume

var := comando maple;


Se evalua el comando maple y la expresin que resulta es asignada a la variable
var
assume(x>a); assume(n,integer); assume(z,real)
Son ejemplos de assume. Para mayor informacin ejecute ?assume;
unassign('var');
"borra" todo lo que se conoce acerca de la variable var, incluyendo las restricciones
impuestas con el comando assume. De este modo, ella puede ser usada sin
restricciones ms adelante. Las comillas ' ' son fundamentales.
restore;
reinicializa todas las variables que se hayan ocupado "borrando" todo lo que se
conoce sobre ellas. Es equivalente a aplicar unassign('var') a cada variable var que
se haya ocupado.

Aproximaciones decimales:
evalf
Digits:= N;
Define que de ahora en adelante se ocupa aritmtica decimal con N dgitos
significativos. Al iniciar Maple Digits vale 10
evalf( expr)
Evala la expresin en artimtica decimal con N dgitos sgniticativos, donde N es el
valor que tiene la variable Digits.
evalf(expr,N)
Evalua la expresin expr en aritmtica decimal con N dgitos significativos.

Algebra:
los comandos expand, combine, simplify, factor, normal, coeff, quo, rem.
expand( expresion);
Expande la expresin desarrollando potencias de binomios, distribuyendo productos
con sumas, o expandiendo frmulas trigonomtricas, etc..
combine( expresion);
aplicado a ciertas expresiones realiza la operacin inversa de expand
simplify(expresion);
aplica las reglas de simplificacin que cumplen las funciones tpicas
trigonomtricas, exponenciacin, logaritmos, polinomios, etc.. La nocin que Maple
tiene de una expresin simplificada es con toda probabilidad diferente de la que Ud.
tiene, la que es a su vez diferente de la de su vecino.

factor(polinomio);
factoriza el polinomio en factores con coeficientes enteros , racionales.
factor(polinomio,real);
factoriza el polinomio en factores con coeficeintes reales usando aritmtica de
punto flotante.
factor(polinomio,complex);
factoriza el polinomio en factores lineales complejos usando aritmtica de punto
flotante.
normal(expresion);
obtiene una expresin en la forma denominador/numerador, con trminos comunes
simplificados.
coeff( expresion ,x^k);
obtiene el coeficiente de x^k en la expresion, siempre que sta sea una suma de
pontencias de x.
q:= rem(a,b,x); r:= rem(a,b,x);
Si a,b son polinomios, q es el cuociente de a dividido por b y r es el resto de a
dividido por b. El resto y el couciente satisfacen a= b*q+r, donde grado(r) < grado
(b)

Expresiones versus procedimientos:


->, proc(), subs(), unapply()
Las funciones matemticas pueden representarse en Maple mediante expresiones
y/o procedimientos.
f:= x -> expr
define un procedimiento que asigna a cada x (input) su valor f(x) (output) que se
obtiene al reemplazar el valor de x en la expresin expr
r:= expr
asigna a la variable r la expresin dada.
subs( {x=a},expr)
retorna la expresin expr donde x es reemplazado por el valor de a.
subs( {x=a,y=b},expr)
retorna la expresin expr donde x es reemplazado por el valor de a, y es
reemplazado por el valor de b
subs( {eq1,eq2,.., eqk}, expresion);
donde eq1, eq2, ... eqk, son reglas de substitucin.
unapply(expr,x) retorna el procedimiento x->expr
func:= proc(x) ...... end proc define un procedimiento que asigna a cada x(input) el
resultado func(x) (output) (es alternativo a usar el operador -> )
Ejemplos:
Podemos definir el procedimiento maple
f:= x-> x^2;

Para evaluar f en x=2 hacemos:


f(2);
Si tenemos una expresin
r:= x^2;
e intentamos r(2) resulta un sin sentido
r(2);
Para reemplazar x por x=2 en una expresin usamos el comando subs (por
substitute)
subs({x=2},r);
r;
El comando subs(), permite entonces reemplazar variables por valores sin alterar el
valor de la expresin original.
Podemos reemplazar ms de una variable el mismo tiempo,
subs({x=2,y=1},x^2+y^2);
Una alternativa a substituir es construir un procedimiento con unapply y luego usar
el procedimiento:
g:= unapply(r,x);
g(2);
Si el procedimiento que define a una funcin es muy complicado es preferible
definirlo usando proc().
La siguiente funcin determina los valores de y tal que x*exp(y)=y para un valor de
x dado.
func:= proc(z) local eq1; eq1:=subs(x=z,x*exp(y)=y); solve(eq1,y); evalf(%); end
proc;
func(0.367879441);
exp(-1.0);

Grfico de funciones y curvas en el plano


plot( f(x), x=a..b);
Grafica a y=f(x) en el intervalo [a,b]. El rango y escala del eje Y se ajusta
automticamente
plot ( f(x) , x=a..b, scaling=constrained);
Idem que el anterior pero las escalas en los ejes X a Y estn en relacin 1:1.
plot ( f(x) , x=a..b, y=c..d);
Muestra la porcin del grfico de y=f(x) que yace en el rectngulo a <= x <= b,
c<= y <= d.
plot( f(x), x=a..b, view=[x1..x2,y1..y2])
Muestra la porcin del grfico de y=f(x) para a <= x <= b pero enmarcado en una
ventana con x1 < x < x2, y1 < y < y2.
plot ( f(x) , x=a..b, y=c..d, discont=true);
Idem que el anterior, pero se usa cuando f es discontnua (y f no toma valores
complejos)
plot( f(x), x=a..b, y=c..d, discont=true, color=COLOR);
Idem que el anterior donde y=f(x) se grafica con color COLOR, donde COLOR puede
ser red, blue, green, cyan, magenta, etc...
plot( [f(x),g(x), h(x)] , x=a..b, y=c..d,discont=true, color=[red,blue,cyan]);

Idem que en el anterior pero se grafican las tres funciones f,g,h al mismo tiempo en
colores red,blue, cyan respectivamente.
plot( [x(t), y(t) , t=a..b], color=red );
grafica los puntos (x(t),y(t)) en el plano XY cuando t vara desde a hasta b.
plot( [x(t), y(t) , t=a..b], color=red, scaling=constrained) );
Idem que el anterior, pero las escalas en los ejes X,Y estn en relacin 1:1.
(equivalente a presionar el botn 1:1 en la barra de men del grfico).

Ms Grficos:
with(plots), implicitplot, animate, animatecurve, display.
with(plots)Activa al paquete plots donde se encuentran las rutinas, display,
implicitplot, textplot, etc....
implicitplot( f(x,y)=g(x,y), x=a..b,y=a..b,numpoints=N) Grafica la porcin de la
curva definida implicitamente por la ecuacin f(x,y)=g(x,y) que yace en el
rectngulo a<=x <=b, c<=y<=d.. N es el nmero de veces que resuelve la
ecuacin implcita para construir el grfio.
animate( { f(x), g(x,h)}, x=a..b, h=h1..h2, nframes); Crea una animacin donde en
cada cuadro se grafica a las funciones f(x), g(x,h) en el intervalo [a,b], con h
variando desde h1 hasta h2 con un incremento de
h2 - h1
----------nframes - 1
. En total hay nframes cuadros.
animatecurve( [x(t), y(t),t=t1 .. t2], view=[a..b , c..d], color=red);
Crea una animacin que genera una curva a partir de una parametrizacin x(t), y(t)
de ella cuando el parmetro t vara desde t1 hasta t2.
p1:= plot( f(x), x=a..b): Guarda en la variable p1 el grfico de y=f(x), el cual puede
ser desplegado mediante el comando display(p1). Note que la nica manera en que
el grfico puede ser desplegado es mediante el comando display. Es conveniente
terminar el comando con : en vez de ; para evitar ouput indeseable.
display(p1,p2,p3); Grafica los grficos guardados en las variables p1,p2,p3
display( sucesin o lista de de variables con grficos); Muestra en un mismo grfico
los grficos guardados en las variables.
display( sucesin o lista de de variables con grficos, insequence=true); Muestra
cuadro a cuadro los grficos en la lista creando una animacin.

Grficos 3D

Comandos genricos para curvas y superficies


with(plots); Inicializa el paquete plots que permite ocupar varias rutinas para
despliegue de grficos.
spacecurve( [x(t), y(t), z(t)], t=a..b); Grafica la trayectoria o curva que siguen los
puntos [x(t),y(t),z(t)] cuando t vara desde t=a hasta t=b (requiere el paquete plots)

plot3d( [x(u,v), y(u,v) , z(u,v) ], u=a..b, v=c..d ); Grafica la superficie que generan
los puntos de la forma [x(u,v), y(u,v) , z(u,v) ] cuando u vara en el intervalo [a,b] y
v en el intervalo [c,d].

Solucin de ecuaciones, sistemas de


ecuaciones: fsolve,solve
fsolve( f(x)=g(x), x=a..b);
Calcula por mtodos numricos UNA solucin de f(x)=g(x) en el intervalo [a,b], CON
LA EXCEPCION del caso en que f(x), g(x) sean polinomios, donde encuentra TODAS
las raices reales en el intervalo [a,b]
fsolve( f(x)=g(x), x=a)
busca por mtodos numricos UNA solucin de
f(x) = g(x)
comenzando la bsqueda en x=a. No necesariamente encuentra la solucin ms
cercana a x=a.
fsolve( p(x),x);
Determina aproximaciones decimales a todas las raices reales del polinomio p(x).
fsolve( p(x),x,complex);
Determina aproximaciones decimales a todas las raices, incluyendo las complejas,
del polinomio p(x)
solve( f(x)=g(x), x).
Si f, g son polinomios, encuentra todas las raices, en otros casos intenta encontrar
tantas soluciones como pueda mediante reducciones algebraicas. Si no encuentra
soluciones ya sea por que no hay o por que no pudo encontrar, retorna NULL, es
decir "nada".
solve( f(x)< g(x), x) Intenta resolver la inecuacin mediante reducciones
algebraicas (clculo simblico).
solve( conjunto de ecuaciones, conjunto de variables)
intenta resolver mediante manipulaciones algebraicas el sistema de ecuaciones con
respecto a las variables indicadas. Cuando tiene xito, retorna una sucesin de
reglas de substitucin (para ser ocupadas con el comando subs) . CUIDADO: solve
puede no encontrar todas las soluciones existentes de un sistema de ecuaciones no
lineales.
Ejemplos
regla:=solve({y=x+2,y=2*x-4},{x,y});
Podemos ocupar la solucin con el comando subs
x0:=subs(regla,x);
y0:= subs(regla,y);
subs(regla, (x^2+y^2+1)/ (x+y));
Podemos determinar los puntos de interseccin de la recta y=x+2, con la
circunferencia x^2+y^2=4
suc_reglas:=solve( {y=x+2,x^2+y^2=4},{x,y});
La primera solucin es
x1:=subs(suc_regla[1],x);
y1:= subs(suc_regla[1],y);
Podemos evaluar expresiones que involucaran a cualquiera de las soluciones
directamente
subs(suc_regla[2],x^2-y^2);

Para resolver un sistema de 3 ecuaciones con 3 incongnitascomo este x+y+z=1, xy-z=2, 2*x+3*y-2*z=3
hacemos:
regla3:=solve({x+y+z=1, x-y-z=2, 2*x+3*y-2*z=3},{x,y,z});
Podemos reemplazar estos valores en cualquiera expresin
subs( regla3,x^2-y+z);

Estructuras de datos, (expresin) sucesin,


lista, conjunto, tabla:
[ s], {s}, nops(s) , op(s) , seq(s) , s[n] , map(f,s)

Para agrupar varios datos en una misma variable, se puede usar una de las
siguientes estructuras de datos: (expresin) sucesin, lista, conjunto, tabla.
exp1, exp2, ... , expn Es la sucesin formada por las expresiones exp1, exp2, etc.
En general, expresiones separadas por comas definen a un sucesin. Las
expresiones pueden ser de distintos tipos.
[s] Es la lista formada por los elementos de la sucesin s. En general, si s es una
sucesin entonces [s] es una lista.
{s} Es el conjunto formado por los elementos de la sucesin s. En general, si s es
una sucesin. entonces {s} es un conjunto. En maple un conjunto emula al
concepto matemtico de conjunto: elementos repetidos se eliminan y el orden de
los elementos no importa. .
T[algo]:=valor; Si T no es una lista , crea la tabla T con una entrada. Con
asignaciones adicionales del tipo T[indice]=valor se agregan elementos a la tabla T.
s[k] el elemento k-simo de la lista o conjunto s,
T[algo] Si T es una tabla, valor asociado a "algo" en la tabla.
nops(s) el nmero de elementos de la lista o conjunto s.
op(s) la sucesin con los elementos del conjunto o lista s (le quita los parntesis a s)
seq( a(n), n=n1..n2 ) la sucesin a(n1), a(n1+1), a(n1+2), .... a(n2).
[ seq ( (a(n), n=n1..n2 ) ] la lista con los elementos a(n1), a(n1+1), ... , a(n2)
{ seq ( (a(n), n=n1..n2 ) } el conjunto con los elementos a(n1), a(n1+1), ... , a(n2).
Elementos repetidos se eliminan.
map(f,s) la lista o conjunto que se obtiene de aplicar una funcin f a cada elemento
de la lista o conjunto s
Ejemplos:
sucesion:=1,4,2,10,9,1,-4;
lista:= [sucesion];
conjunto:= {sucesion};
op(conjunto); op(lista);
nops(lista) , nops(conjunto);

f:= x-> x^2; map(f,lista);map(f,conjunto);


seq( k^2,k=1..5);
datos:= [ [1,2], [3,4], [5,6]];
datos[2];
datos[2][1];
Una tabla consiste en una asociacin entre valores de un ndice y expresiones. Las
tablas se definen en forma dinmica.
T[1]:= 3;
T[4]:= 2;
T[cabeza_de_pescado]:= cola_de_pescado;
op(T);

También podría gustarte