Está en la página 1de 26

TECNOLGICO DE ESTUDIOS SUPERIORES DE

HUIXQUILUCAN
Sesion # 1
Funciones Bsicas de MAPLE
Dr. Ildebrando Prez Reyes
"Maple is a trademark of Waterloo Maple Inc."
"The computations in this paper were performed by using Maple(TM)."

Iniciando con MAPLE. Sintaxis del software


Se recomienda que siempre al inicar una Hoja de Trabajo (Worksheet) despus del ttulo se
introduzca el comando "restart".

Despues de cada comando u operacin es necesario agregar ";" o ":". Los dos puntos ocultan el
resultado "output" de la operacion que es util cuando se trabaja con expresiones muy grandes. De
otra manera el software no ejecuta el comando u operacin.
> restart;
El comando "restart" tiene limpia o borra de la memoria todas las asignaciones realizadas en
la hoja de trabajo.
La accin de asignar valores numricos o expresiones algebraicas bajo un nombre, letra o
combinacion de ellas se hace a travs de ":=".

El uso del signo "=" tambin es aceptado pero el valor numrico o expresin algebraica no queda
asignado ni registrado en la memoria. Como ejemplo vea lo siguiente
> a:= 4;#Los comentarios son tambien aceptados con la condicin
de escribir # antes de cada uno.
(1.1)
> a;
4 (1.2)
en cambio cuando se usa "=" se tiene
> b=4;
(1.3)
> b;# Vease que no ocurri asignacin del valor 4 a b.
b (1.4)
Notese ahora que despus del comando "restart", todas las asignaciones son borradas
> restart;
> a;
a (1.5)
Ntese que tambin es posible escribir varios comandos en un mismo apartado o "execution group"
siempre y cuando queden separados por sus respectivas ";" o ":". Vase el siguiente ejemplo:
> 1*2; 2*2;3*3;# Los comandos pueden estar separados por espacios
o no.
2
4
9 (1.6)
> 1*2;
2*2;
3*3;#Cada comando puede ser escrito en una diferente linea para
mejor visualizacin. Para ello use "SHIFT + ENTER"
2
4
9 (1.7)

Las operaciones bsicas se realizan a traves de los signos comunes a diversos lenguajes de
programacin como sigue
> #SUMA " + "
> #RESTA " - "
> #MULTIPLICACION " * "
> #DIVISION " / "
> #POTENCIACION " ^ " o bien "**"
> #RAIZ CUADRADA " sqrt() " o bien " ^(1/2) " o bien " **(1/2) "
> #RADICACION " ^(1/2) " o bien " **(1/2) "

Otras operaciones que involucran funciones trigonomtricas, hiperbolicas o te otro tipo tambien
estn disponibles. Debe tenerse en cuenta que el software esta pensado para personas de habla
inglesa asi que los comandos deben introducirse en ingles. Ejemplos de ellos son:
> #SENO o SINE " sin() "
> #COSENO o COSINE " cos() "
> #TANGENTE o TANGENT " tan() "
> #SECANTE o SECANT " sec() "
> #COTANGENTE o COTANGENT " cot() "
> #COSECANTE o COSECANT " csc() "
> ################################
> #SENO HIPERBOLICO o HYPERBOLIC SINE " sinh() "
> #COSENO HIPERBOLICO o HYPERBOLIC COSINE " cosh() "
> #TANGENTE HIPERBOLICA o HYPERBOLIC TANGENT " tanh() "
> #SECANTE HIPERBOLICA o HYPERBOLIC SECANT " sech() "
> #COTANGENTE HIPERBOLICA o HYPERBOLIC COTANGENT " coth() "
> #COSECANTE HIPERBOLICA o HYPERBOLIC COSECANT " csch() "
> ################################
> #EXPONENCIAL o EXPONENTIAL " exp() "
> #LOGARITMO NATURAL o NATURAL LOGARITHM " ln() "
> #LOGARITMO DE BASE b o LOGARITHM OF BASE b " log[b]() "
Es imortante sealar que las combinaciones de teclas o "shorcuts" para copiar, pegar y cortar son
los de softwares en ingles:
> # COPIAR " CTRL + c "
> # PEGAR " CTRL + v "
> # CORTAR " CTRL + x "
> # GUARDAR " CTRL + s "

Funciones definidas por el usuario


Es posible definir funciones en MAPLE como sigue:
> f:=x->x**2-1;
(2.1)
en donde se ha definido una funcin que tiene a x como variable independiente. En otras palabras la
funcin es equivalente a f(x) = Que es como comnmente se escribe en el papel.
De esta manera se pueden construir otras funciones como la siguiente
> g:=y->cos(y)+1;
(2.2)
La utilidad es que ayuda a realizar muchos otros clculos, como el de evaluar directamente la
funcin en un valor dado. Tambim ser til para clculos de lmites, derivadas, integrales,
ecuaciones diferenciales, etc.
Como primer ejemplo, evaluemos la funcin f(x) defnida arriba en x=8,5,0,
> f(8);
f(5);
f(0);
63
24
(2.3)

> g(Pi);
g(180.);
g(0);
0
0.4015399309
2 (2.4)

Operaciones bsicas con MAPLE


MAPLE es un software capaz de realizar manejo algebraico de expresiones matemticas y de
realizar muy diversos clculos numricos en corto tiempo. Por otro lado, dentro de sus funciones
tambien estan incluidas las graficas.

Operaciones bsicas: suma, resta, multiplicacion y division


Consideremos primero los casos numricos:
> 1+2;
2+8;
3+6+9;#Suma de nmeros enteros
3
10
18 (3.1)
> 1/3+2/3;
1/9+8/3+4/5;#Suma de nmeros fraccionarios
1
161
(3.2)
45
> 1/2 + 3 + 8/9+5;#Combinaciones de nmeros enteros y
fraccionarios
169
(3.3)
18
> 1/2 - 1/2 + 1;#Suma y resta
1 (3.4)
> 1/2 - 1/2 - 1;#Suma y resta. MAPLE reconoce nmeros negativos
(3.5)
> 2*1/2-1;#Incluyendo multiplicacin
2*(1/2)-1;#El uso de los parentesis es opcional.
0
0 (3.6)
> 3*(1/2-4)+2;#Cuando se trata de 2 o mas trminos es necesario
usar parntesis
(3.7)

Consideremos ahora los casos algebraicos


> a+b;
a+b-c;

(3.8)
> a/b-c/d-4*a;
(3.9)

> 2*a/b + 8/3*a/b - 5*a/b;


(3.10)

> (a/b) / (a/b);


1 (3.11)
> 2*x/8-x**2/y+x*y/2;

(3.12)

> x/y*x/y + x/y;

(3.13)

Operaciones algebraicas
Como evaluar con eval, evalf, subs
Debe aceptarse por el usuario que los tres comandos eval, evalf y subs pueden hacer lo
mismo, cambiando nicamente su sintaxis y algunos detalles.

eval
Este comando es el que en el sentido estricto de la palabra, junto con evalf, debe ser usado
para evaluar. Este comando se deriva de la plabra EVALUATE y puede evaluar de manera
simbolica como si fuera una sustitucin y ejecutar el valor dado. Consideremos la siguiente
expresin:
> Ra:= 720*(k^2+2*k)/Biot/k^3;

(3.1.1)

evalese solo para Biot=2


> Ra00:= eval(Ra,Biot=2);

(3.1.2)

y en el caso de evaluar a k=5 tambin se puede agregar una lista como sigue
> Ra01:= eval(Ra,[Biot=2,k=5]);
(3.1.3)

Pero tmese en cuenta que a pesar de haber evaluado, si el usuario necesita un nmero decimal
en vez de una fraccin, el comando falla y tendramos que usar una calculadora. Para rodear este
obstculo basta con agregar un punto decimal despus del 2 o bien despus del 5 para que
MAPLE lo considere como decimal en todo el algoritmo
> eval(Ra,Biot=2.);

(3.1.4)

> eval(Ra,[Biot=2,k=5.]);
eval(Ra,[Biot=2.,k=5]);
100.8000000
100.8000000 (3.1.5)
evalf
El objetivo de evalf es el mismo que el de agregar un punto decimal despus de algn nmero;
pero cuando se trata de expresiones ms grandes y de operaciones en donde el manejo del "error"
es importante, este comando es de gran ayuda. Su nombre deriva de EVALUATE FLOATING,
es decir usar punto flotante para evaluar o simplemente decimales. Comprese con el ejemplo
anterior de Ra
> evalf(eval(Ra,Biot=2));

(3.1.6)

> evalf(eval(Ra,[Biot=2,k=5]));
100.8000000
504
(3.1.7)
5
subs
Muchos usuarios emplean mal este comando. Su nombre proviene de SUBSTITUTION y su
sintaxis es como sigue subs(lista,expresin). Este comando est pensado para realizar
sustituciones de tipo algebraico o simblico sin tomar en cuenta precisin decimal; aunque de
hecho puede hacer lo mismo que eval. Por ejemplo, consideremos
> Ra;

(3.1.8)

y que en vez de asignar un valor numrico a Biot, deseamos expresarlo en trminos de k como
sigue
> Biot0:= 2/3*k;
(3.1.9)

Entonces, usando subs tenemos


> Ra02:= subs(Biot=Biot0, Ra);
Ra03:= subs(Biot=2/3*k, Ra);

(3.1.10)

Pero ntese que tambien sirve para evaluar numricamente


> Ra04:= subs(Biot=2/3.*k, Ra);
Ra04:= subs(Biot=2./3*k, Ra);

(3.1.11)

Ntese la siguiente comparacion entre subs y eval


> subs(y=0, sin(y));
eval(sin(y), y=0);

0 (3.1.12)
Lo idneo sera
> evalf(subs(y=0, sin(y)));
0. (3.1.13)
Un caso en donde subs no funciona es el siguiente en donde se desea sustituir k^2 por K
> Nus:= 720*(k^2+2*k^4)/(Biot*k^6);

(3.1.14)
> subs(k^2=K, Nus);

(3.1.15)

El error est en que debi intercambiar k^4 por K^2 y k^6 por K^3. Para rodear este obstculo
el usuario debe usar un poco de astucia
> subs(k=K^(1/2), Nus);

(3.1.16)

Factorizacin

Factorizacin
Consideremos un caso simple donde hay un factor comun como en la siguiente expresin
> ej00:= x^2/y^2+x/y;#La expresin quedo asignada a ej00
"ejemplo 00"

(3.2.1)

> ej00;#Esta dado de alta en la memoria

(3.2.2)

En la factorizacin el comando a usar es "factor()" que para expresiones mas complicadas


puede ser necesario agregar otras opciones (ver ayuda)
> factor(ej00);
(3.2.3)

Otro ejemplo:
> ej01:= x**2 + 4*x + 4;#Binomio al cuadrado
(3.2.4)
> factor(ej01);
(3.2.5)
Otro ejemplo:
> ej02:= x**2 + 5*x + 6;
(3.2.6)
> factor(ej02);#OJO Tomar en cuenta que este comando funciona
cuando las soluciones al polinomio son reales
(3.2.7)
Otro ejemplo:
> ej03:= x**2 + 2/3*x + 1/9;
(3.2.8)

> factor(ej03);#OJO Tomar en cuenta que este comando funciona


cuando las soluciones al polinomio son reales
(3.2.9)

Un caso de un polinomio cbico:


> ej04:= x**3 + 2/3*x**2 + 1/9*x;
(3.2.10)

> factor(ej04);
(3.2.11)

Otro polinomio cbico


> ej05:= 2*x**3 + 3*x**2 - 3*x - 2;
(3.2.12)
> factor(ej05);
(3.2.13)
Otro polinomio cbico
> ej06:= x**3 + 2*x**2 - x - 2;
(3.2.14)
> factor(ej06);
(3.2.15)
En el caso de que se trate de una expresion que involucre funciones trigonomtricas tambien
puede funcionar
> ej07:= sin(x)*cos(x) + 2*sin(x)**2*tan(2*y) - sin(x)**3*sinh
(5*x);
(3.2.16)
> factor(ej07);#Donde se factoriz el sin(x)
(3.2.17)

Solucin a ecuaciones algebraicas

Solucion de ecuaciones algebraicas


MAPLE puede resolver cualquier tipo de expresiones para dar un resultado ya sea numerico o
algebraico. Considrese la expresion del ejemplo 00
> ej00;

(3.3.1)

> ej08:= ej00 = 0;#Donde se ha aignado a ej08 e igualado a 0

(3.3.2)

el comando usado para resolver o calcular las raices de la ecuacion cuadrtica anterior es
"solve(expresin,incgnita)". En este caso consideraremos que "x" es la incgnita y
que "y" es una constante
> solve(ej08,x);
solve(x^2/y^2+x/y = 0,x);
solve(x^2/y^2+x/y,x);#Ntese que si no se escribe "=0" MAPLE
por default considera que la expresion est igualada a cero
siempre

(3.3.3)
Considrese ahora el ejemplo 01
> ej09:= ej01 = 0;
(3.3.4)
> solve(ej09,x);#Que es precisamente lo que se deduce de la
factorizacin
(3.3.5)
> solve(ej09);#Si solo hay una letra o variable, MAPLE la
considera la incgnita
(3.3.6)
Consideremos ahora una ecuacin en donde el comando "factor" no funciona y cuyas raices
son imaginarias
> ej10:= x^2+4*x+5 = 0;
(3.3.7)
> factor(ej10);#El comando no pudo factorizar y devuelve la
misma expresion
(3.3.8)
> solve(ej10,x);#factor() no funciona porque las raices son
imaginarias
(3.3.9)
Consideremos la ecuacin cbica del ejemplo 05
> ej11:= ej05 = 0;
(3.3.10)
(3.3.10)
> solve(ej11,x);#Lo cual concuerda con la factorizacin
(3.3.11)

Consideremos una ecuacin de grado 4 en donde el comando "solve" no funciona


> ej12:= x**4 - 2*x^3+3*x^2-3*x-2 = 0;
(3.3.12)
> solve(ej12);#El comando no puede hallar las raices de manera
algebraica. A partir de ecuaciones de grado 4 es muy dificil.
Para este tipo de caso se usa la versin numrica de solve
que usa tecnicas numricas para calcular las raices
(3.3.13)

El comando es "fsolve(expresin,incgnita)" y en este caso es necesario que solo


admite una incgnita
> fsolve(ej12,x);#En este caso solo proporciona dos raices, que
son las reales. Las otras dos son complejas.
(3.3.14)
> fsolve(ej12,x,complex);#Para visualizar todas las raices
(incluyendo las complejas) se agrega la opcin "complex"
(3.3.15)

Puede verificarse que las raices son correctas al sustituirlas en la ecuacin original. Se usa el
comando "eval(expresin,valor a sustituir)" con la primera raiz
> eval(ej12,x=-.4245630329);
eval(x^4-2*x^3+3*x^2-3*x-2 = 0,x=-.4245630329);

(3.3.16)

Grficas con MAPLE


Grficas 2D

Grficas 2D
MAPLE permite hacer graficas en 2D con el comando "plot(expresin,variable)".
Considrese el siguiente ejemplo basado enel ejemplo 00 que corresponde a una expresin
cuadrtica
> y00 := ej01;#Aqu se considera la funcin y(x) aunque en el
programa se escribe y00
(4.1.1)
> plot(y00,x);#En donde no se la da restriccines a los valores
de x
140

120

100

80

60

40

20

0 5 10
x

Por otro lado tambien es posible dar un intervalo de graficacion para la funcion y(x) desde x=
-6 hasta x=4, por ejemplo
> plot(y00,x=-6..4);
30

20

10

0 2 4
x

tambien es posible escribir las etiquetas en los ejes x y y.Tambien se puede definir las
caracteristicas de los ejes como sigue
> plot(y00, x=-6..4, labels=[x,y(x)], axes=boxed);
30

20

y x

10

0
0 2 4
x

Considrese ahora otro ejemplo mas complicado


> y01:= x*cos(x) + 4*sin(2*x);
(4.1.2)
> plot(y01,x=-1..1, labels=[x,y(x)], axes=normal);
4

y x
2

0 1
x

Tambien se pueden graficar mas de una funcin en el mismo grafico. Por ejemplo graficaremos
y00 y y01 en el mismo grfico y se les identificar
> plot([y00,y01],x=-1..1, labels=[x,y(x)], axes=normal, legend=
["y00", "y01"]);
8

y x
4

0 1
x

y00 y01

Adems tambien se puede agregar un mallado que resulta muy util al tratar de dar un punto
coordenado
> plot([y00,y01],x=-1..1, labels=[x,y(x)], axes=boxed, legend=
["y00", "y01"], axis=[gridlines=[20, color=blue]]);
9

y x
2

0 1
x
y00 y01

Como graficar funciones implcitas


Obviamente se parte de una expresin implcita de dos variables. Para ello se usa el comando
"implicitplot(expresin,x=a..b,y=c..d,opciones)"; pero antes es necesario
cargar una paquetera como se muestra a continuacin. Considrese entonces la siguiente
expresin implcita
> exprimpl00:= x^2+y^2=1;
(4.1.3)
> with(plots,implicitplot);
(4.1.4)
> implicitplot(exprimpl00,x=-1..1,y=-1..1);

0
x

> exprimpl01:= x^2-y^2=1;


(4.1.5)
> implicitplot(exprimpl01,x=-5..5,y=-5..5);
4

3
y
2

0 2 4
x

Se pueden consultar diversos otros ejemplos de grficos en la Plotting Guide .

Grficas 3D
Con MAPLE se pueden hacer grficas 3D con el comando "plot3d(expresion, x=a..
b, y=c..d, opciones)" y se usa como sigue. Considrese la siguiente funcin de dos
variables
> W:= 2*x^2+4*y^2-5;#Las variables independientes son "x" y "y"
(4.2.1)
> plot3d(W,x=-1..1,y=-1..1);
Adems, se pueden agregar los ejes coordenados como sigue
> plot3d(W,x=-1..1,y=-1..1,axes=boxed);#Adems se pueden usar
las opciones: "frame" y "normal"
Manejo de expresiones complicadas: collect, combine,
rationalize, expand, simplify, etc.
Considrese una expresin grande y complicada, de la cual se desea obtener alguna informacin a
partir de los parmetros involucrados en esta
> RaG:= diff(sin(x)*cos(x)*x/tan(x),x,x,x);

(5.1)
(5.1)

Si bien es cierto, la expresin es tan grande que no permite inferir nada e incluso a primera vista
cualquier intento de simplificacin con identidades trigonomtricas no lleva a nada. Probemos con
el comando collect(expresin,[lista])para colectar funciones seno
> collect(RaG,[sin(x)]);

(5.2)

> collect(RaG,[sin]);

(5.3)
Probemos ahora colectando funciones coseno
> collect(RaG,[cos(x)]);

(5.4)

> collect(RaG,[cos]);

(5.5)

Ntese que no sirvi de nada. Tratemos ahora de desbaratar todas los binomios y hacer algunas
sumas y restas con expand(expresion)
> expand(collect(RaG,[cos]));

(5.6)

Por lo menos hubo un avance. Pero a veces es mejor dejar que MAPLE haga su trabajo. Usemos el
comando simplify(expresin)
> simplify(RaG);
(5.7)
UN SOLO COMANDO!!!!!!!!!
Consideremos ahora el caso de las fracciones parciales. Consideremos el siguiente caso
> yfrac00:= (s^2+6*s+9)/(s^3+s^2-10*s+8);

(5.8)

La experiencia nos dice que debemos factorizar el denominador para luego ver que caso de
fracciones parciales usar. Entonces,
> yfrac01:= factor(yfrac00);

(5.9)

Para ello MAPLE tiene el comando convert(expresin,parfrac,variable) que hace


todo el trabajo
> yfrac02:= convert(yfrac01,parfrac,s);
(5.10)

que obviamente pudo usarse desde el inicio


> yfrac03:= convert(yfrac00,parfrac,s);
(5.11)

y puede comprobarse que es equivalente a lo anterior al simplificar


> yfrac04:= simplify(yfrac03);

(5.12)

El comando convert tiene muchas otras opciones. Ver ayuda