Вы находитесь на странице: 1из 7

Tutorial para usar maple

Aquí se explican las herramientas más importantes que pueden usar en este
excelente programa de matemáticas:

Asignación a variables:
:= , unassign , restore, assume

var := comando maple;


Se evalua el comando maple y la expresión que resulta es asignada a la variable
var

assume(x>a); assume(n,integer); assume(z,real)


Son ejemplos de assume. Para mayor información 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 más 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 aritmética decimal con N dígitos
significativos. Al iniciar Maple Digits vale 10

evalf( expr)
Evalúa la expresión en artimética decimal con N dígitos sgniticativos, donde N es el
valor que tiene la variable Digits.

evalf(expr,N)
Evalua la expresión expr en aritmética decimal con N dígitos significativos.

Algebra:
los comandos expand, combine, simplify, factor, normal, coeff, quo, rem.

expand( expresion);
Expande la expresión desarrollando potencias de binomios, distribuyendo productos
con sumas, o expandiendo fórmulas trigonométricas, etc..

combine( expresion);
aplicado a ciertas expresiones realiza la operación inversa de expand

simplify(expresion);
aplica las reglas de simplificación que cumplen las funciones típicas
trigonométricas, exponenciación, logaritmos, polinomios, etc.. La noción que Maple
tiene de una expresión 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 aritmética de
punto flotante.

factor(polinomio,complex);
factoriza el polinomio en factores lineales complejos usando aritmética de punto
flotante.

normal(expresion);
obtiene una expresión en la forma denominador/numerador, con términos 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 matemáticas 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 expresión expr

r:= expr
asigna a la variable r la expresión dada.

subs( {x=a},expr)
retorna la expresión expr donde x es reemplazado por el valor de a.

subs( {x=a,y=b},expr)
retorna la expresión 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 substitución.

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 expresión
r:= x^2;
e intentamos r(2) resulta un sin sentido
r(2);
Para reemplazar x por x=2 en una expresión 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 expresión original.
Podemos reemplazar más 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 función es muy complicado es preferible


definirlo usando proc().

La siguiente función 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);

Gráfico 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
automáticamente

plot ( f(x) , x=a..b, scaling=constrained);


Idem que el anterior pero las escalas en los ejes X a Y están en relación 1:1.

plot ( f(x) , x=a..b, y=c..d);


Muestra la porción del gráfico de y=f(x) que yace en el rectángulo a <= x <= b,
c<= y <= d.

plot( f(x), x=a..b, view=[x1..x2,y1..y2])


Muestra la porción del gráfico 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 discontínua (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 varía 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 están en relación 1:1.
(equivalente a presionar el botón 1:1 en la barra de menú del gráfico).

Más Gráficos:
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 porción de la


curva definida implicitamente por la ecuación f(x,y)=g(x,y) que yace en el
rectángulo a<=x <=b, c<=y<=d.. N es el número de veces que resuelve la
ecuación implícita para construir el gráfio.

animate( { f(x), g(x,h)}, x=a..b, h=h1..h2, nframes); Crea una animación 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 animación que genera una curva a partir de una parametrización x(t), y(t)
de ella cuando el parámetro t varía desde t1 hasta t2.

p1:= plot( f(x), x=a..b): Guarda en la variable p1 el gráfico de y=f(x), el cual puede
ser desplegado mediante el comando display(p1). Note que la única manera en que
el gráfico 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 gráficos guardados en las variables p1,p2,p3

display( sucesión o lista de de variables con gráficos); Muestra en un mismo gráfico


los gráficos guardados en las variables.

display( sucesión o lista de de variables con gráficos, insequence=true); Muestra


cuadro a cuadro los gráficos en la lista creando una animación.

Gráficos 3D
Comandos genéricos para curvas y superficies

with(plots); Inicializa el paquete plots que permite ocupar varias rutinas para
despliegue de gráficos.

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 varía 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 varía en el intervalo [a,b] y
v en el intervalo [c,d].

Solución de ecuaciones, sistemas de


ecuaciones: fsolve,solve
fsolve( f(x)=g(x), x=a..b);
Calcula por métodos numéricos UNA solución 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 métodos numéricos UNA solución de
f(x) = g(x)
comenzando la búsqueda en x=a. No necesariamente encuentra la solución más
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 inecuación mediante reducciones


algebraicas (cálculo simbólico).

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 sucesión de
reglas de substitución (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 solución 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 intersección 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 solución 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, x-
y-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 expresión
subs( regla3,x^2-y+z);

Estructuras de datos, (expresión) sucesión,


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: (expresión) sucesión, lista, conjunto, tabla.

exp1, exp2, ... , expn Es la sucesión formada por las expresiones exp1, exp2, etc.
En general, expresiones separadas por comas definen a un sucesión. Las
expresiones pueden ser de distintos tipos.

[s] Es la lista formada por los elementos de la sucesión s. En general, si s es una


sucesión entonces [s] es una lista.

{s} Es el conjunto formado por los elementos de la sucesión s. En general, si s es


una sucesión. entonces {s} es un conjunto. En maple un conjunto emula al
concepto matemático 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 número de elementos de la lista o conjunto s.

op(s) la sucesión con los elementos del conjunto o lista s (le quita los paréntesis a s)

seq( a(n), n=n1..n2 ) la sucesión 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 función 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 asociación entre valores de un índice y expresiones. Las
tablas se definen en forma dinámica.
T[1]:= 3;
T[4]:= 2;
T[cabeza_de_pescado]:= cola_de_pescado;
op(T);

Вам также может понравиться