Escolar Documentos
Profissional Documentos
Cultura Documentos
1 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
INTRODUCCIN
HOJAS DE TRABAJO
Cuando inicies una sesin de MAPLE aparecer una hoja de trabajo(worksheet ) en blanco, en la que vers un signo mayor que
precedido de un corchete abierto([> ). El corchete indica un rea de trabajo y el signo > indica una zona de entrada. Todo lo que
teclees ah aparecer en rojo y ser interpretado como un comando de MAPLE.
TIPOS DE REGIONES
Hay varios tipos de regiones:
Regin de entrada de texto, como esta que ests leyendo, donde aparecen comentarios en negro. Puedes activar una zona
de comentarios pulsando el icono T en la barra de comandos. Podrs ecribir con diferentes formatos, tamaos, etc.
Regin de comando(input), como la que aparece al iniciar MAPLE. Se reconoce por el signo > y en ella el texto escrito
aparecer en rojo. Puedes iniciar una zona de comando pulsando el icono [> en la barra de comandos. Dentro de una zona de
comando se pueden introducir comentarios aclaratorios. Para ello utilizamos el smbolo #, despus se escribe el comentario.
Regin de salida (output), en la que aparecer, en azul, la salida producida por un comando
Las diferentes regiones pueden unirse utilizando la tecla F4, y separarse con F3
AYUDAS
Lo primero que debes saber es cmo llamar a la ayuda de MAPLE. Es tan sencillo como teclear ? en una lnea de comando y pulsar
[INTRO]
>?
Si lo que ocurre es que tienes dudas sobre cul es la sintaxis de un determinado comando, teclea ? y detrs el nombre del comando,
despus pulsa [INTRO], por ejemplo:
> ?factor
nos dar informacin acerca del comando factor
Se puede obtener una ayuda general de todas las posibilidades de MAPLE con el comando:
> ?index
COMANDOS
SINTAXIS GENERAL DE UN COMANDO
Como norma general un comando consta de un palabra clave seguida de unos argumentos que se escribirn englobados en un
parntesis separados por comas. Por ejemplo:
> solve(a*b-c,b);
El comando solve resuelve la ecuacin del polinomio (igualado a 0) que aparace como primer argumento en el parntesis despejando
19-03-2015 20:51
Tutorial de MAPLE V
2 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
la variable que aparecere como segundo argumento en el parntesis. Para ver con ms detalle cmo se utiliza este comando teclea:
> ?solve
Hay comandos que no tienen este tipo de sintaxis, como son las operaciones bsicas, la potenciacin, el factorial.
FINALIZADOR DE UN COMANDO
Para que el comando sea ejecutado ser necesario escribir un finalizador y pulsar [INTRO]. Hay dos tipos de finalizador de comando:
el punto y coma (;) ejecutar el comando y producir una salida que se ver en pantalla en color azul.
los dos puntos (:) que ejecuta el comando pero no producir salida alguna. Es muy til cuando sea necesario ejecutar una
serie de comandos donde nicamente interese la salida del ltimo de ellos.
Por ejemplo, el comando para factorizar enteros es ifactor (i por integer y factor por factorizar):
> ifactor(180);
> ifactor(180):
Hay comandos que no tienen este tipo de sintaxis, como son las operaciones bsicas, la potenciacin, el factorial. Puedes ver algunos
de ellos tecleando:
> ?index,expression
COMANDOS ENCADENADOS
Es posible encadenar los comando en una misma lnea utilizando los separadores entre ellos, por ejemplo:
> 2+3; 5-3;
Tambin podemos separarlos con una coma, en cuyo caso la salida ser de esta manera:
> 2+3 , 5-3;
simplify Y expand
Dos comandos muy utilizados son simplify y expand.
El comando simplify se utiliza para simplificar expresiones, como quebrados, potencias, etc.
> (x^3-3*x+2)/(x^3+3*x^2-4)=simplify((x^3-3*x+2)/(x^3+3*x^2-4));
MAYSCULAS Y MINSCULAS
19-03-2015 20:51
Tutorial de MAPLE V
3 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
MAPLE es case sensitive, es decir, distingue entre maysculas y minsculas . Por esto deberemos tener especial cuidado al
escribir variables. Por ejemplo: para MAPLE las variables Numero y numero son distintas.
En general, los comandos se escriben en minscula.
Reservaremos las maysculas para las funciones y procedimientos definidos por nosotros.
EXPRESIN INERTE
MAPLE tiene varios comandos que, segn se escriban con la primera letra en mayscula o minscula, hacen diferenetes acciones.
Por ejemplo:
Para hallar un lmite se utiliza el comando limit, pero si escribimos Limit lo que aparecer ser la expresin del lmite en su notacin
convencional, que es lo que se denomina expresin inerte:
> Limit(x/(x^2-1),x=infinity);
> limit(x/(x^2-1),x=infinity);
Esta capacidad de MAPLE se puede utilizar para escribir frmulas de la siguiente manera:
> Limit(x/(x^2-1),x=infinity)=limit(x/(x^2-1),x=infinity);
Otros comandos con capacidad de escribir la expresin inerte son, por ejemplo:
Sum y sum (sumatorio)
Product y product (productorio)
Diff y diff (para el cculo de derivadas)
Int y int (calcula la integral indefinida de una funcin).
CARGANDO UN PAQUETE
Si necesitamos cargar un paquete concreto utilizaremos el comando with indicando el nombre del paquete. El resultado por pantalla
es distinto segn el finalizardor: con punto y coma se listan los comando cargados, con dos puntos el paquete se carga pero no se nos
indica nada.
> with(linalg);
Warning, new definition for norm
Warning, new definition for trace
19-03-2015 20:51
Tutorial de MAPLE V
4 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> with(linalg):
Si utilizamos un comando de un paquete no cargado MAPLE no har nada, simplemente devolver un eco del comando escrito.
DESCARGANDO UN PAQUETE
Si queremos descargar un paquete (lo que liberar memoria) utilizaremos el comando:
> restart;
LIBRERAS
Determinados comandos muy poco usados no estn contenidos ni en el ncleo de MAPLE ni en un paquete determinado. En vez de
esto estn en una librera general. Se pueden cargar con el comando readlib.
Por ejemplo, el comando discont, que calcula puntos de discontinuidad de una funcin, se carga de la siguiente manera:
> readlib(discont);
> discont(1/(x^2-1),x);
FACTORIALES
El factorial se indica con el signo admiracin cerrada< !
> 45!;
NMEROS ALEATORIOS
Podemos obtener nmeros aleatorios con el comando rand.
Sin argumento, rand() devuelve un nmero entero aleatorio de 12 dgitos:
19-03-2015 20:51
Tutorial de MAPLE V
5 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> rand();
Pero podemos elegir el rango entre los que ser elegido el nmero aleatorio:
> n:=rand(50..60):n();
EL COMODN %
El cdigo % indica que se va a utilizar el ltimo resultado obtenido, aunque no haya salido en pantalla. Por ejemplo:
> 3+2:
> %!;
El uso de % se puede reiterar hasta tres veces: %% se referir al penltimo resultado y %%% al antepenltimo:
> 2+2:
> 5-2:
> 2:
> %+%%+%%%;
VARIABLES
Una variable puede llamarse como queramos, siempre que no utilicemos como nombre de la variable el de un comando de MAPLE.
Tampoco podemos empezar el nombre de la variable con nmeros e interesa que no incluyamo cdigos extraos (acentos, ee, etc).
Recordemos, tambin, que MAPLE distingue entre maysculas y minsculas.
ASIGNACIN DE VARIABLES
Para asignar valor a una variable se utiliza la combinacin dos puntos e igual :=, por ejemlo:
> a:=13;
que devuelve como eco la asignacin a la variable a del valor 13.
BORRADO DE VARIABLES
Para borar el valor de una variable basta con igualarla a s misma entre comillas simples:
> a:='a';
19-03-2015 20:51
Tutorial de MAPLE V
6 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Si lo que queremos es borrar todas las variables asignadas podemos utilizar el comando restart
> restart;
Para poner la salida de forma ms legible usaremos los comandos print y el ya conocido evalf:
> print(`El capital final es de `,evalf(cf));
El comando print permite poner entre parntesis lo que va a salir por pantalla. Si queremos que sea texto se encerrar entre los
acentos agudos (^) que aparecen en la tecla a la derecha de la P (junto con [ y ^). Las diferentes partes de la salida se separan con
comas. Como nico inconveniente de print decir que estas comas separadoras aparecen en la salida por pantalla.
CONVERSIN DE TIPOS
A veces puede ser til convertir una variable de un tipo a otro. Esto se realiza con el comando convert, que recibe dos argumentos: la
variable y el tipo final.
Para ver un listado de los tipos de variables teclea:
> ?convert
o, tambin:
> ?type
Por ejemplo:
> convert(117,binary);
TIPOS DE ESTRUCTURAS
CONJUNTOS (SET)
DEFINICIN
Por extensin
Un conjunto se define por extensin enumerando sus elementos entre llaves:
> dias:={lunes,martes,miercoles,jueves,viernes,sabado,domingo};
Por comprensin
19-03-2015 20:51
Tutorial de MAPLE V
7 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Se define un conjunto por comprensin dando una ley de formacin. En MAPLE se usa el signo dolar ($):
> pares:={2*i$i=1..10};
OPERACIONES
Las operaciones bsicas con conjuntos son la union, interseccin y diferencia, que en MAPLE se hacen con los operadores union,
intersect y minus, respectivamente:
> A:={1,2,3,4,5,6,7,8,9,10} : B:={2,3,5,7,11,13}:
> A union B;
> A intersect B;
> A minus B;
LISTAS
Las listas se indican entre corchetes. Se diferencian de los conjuntos en que en la listas se respeta el orden. Al igual que los
conjuntos, las listas pueden definirs por extensin y por comprensin (utilizando el signo $)
> vocales:=[a,e,i,o,u];
> pares:=[2*i$i=1..10];
MATRICES
Para definir una matriz (o un vector) utilizamos el comando array, indicando el nmero de filas y desps el de columnas:
> A:=array(1..2,1..3);print(A);
19-03-2015 20:51
Tutorial de MAPLE V
8 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
MATRICES ESPECIALES
Hay ciertas matrices que pueden definirse de forma directa:
- La matriz nula con el parmetro sparse:
> N:=array(sparse,1..2,1..3);print(N);
- La matriz simtrica con el parmetro symmetric. Basta con llenar la mitad de la matriz, MAPLE rellenar automticamente el resto:
> S:=array(symmetric,1..3,1..3): S[1,1]:=1: S[1,2]:=2: S[1,3]:= 3: S[2,2]:=4: S[2,3]:=5: S[3,3]:=6:print(S);
PROGRAMACIN
En MAPLE podemos definir procedimientos que realicen ciertas operaciones y llamarlos cuando los necesitemos. Vamos a ver un
ejemplo sencillo.
Supongamos que en una cierta hoja de trabajo vamos a necesitar calcular constantemente la velocidad final con la que llega al suelo
un cuerpo que cae, en cada libre, desde h metros.
Vamos a definir el procedimiento vfinal:
> vfinal:=proc(h)
> sqrt(2*9.8*h):
19-03-2015 20:51
Tutorial de MAPLE V
9 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> end:
Aqu podemos ver:
1.- hemos asignado al procedimiento el nombre vfinal, ah el uso de :=
2.- la palabra clave para definir un procedimiento es proc. Despus se ponen, entre parntesis y separadas por comas las variables
que mandamos desde el exterior y que sern usadas dentro del procedimiento
3.- en este caso concrero el procedimiento consta de una sla lnea que calcula el valor buscado
4.- el procedimiento termina con el comando end:
Para usar este procedimiento, por ejemplo si la altura fuera 10, haramos:
> vfinal(10);
> TERNAP(2.3,5);
Error, TERNAP expects its 1st argument, p, to be of type integer,
but received 2.3
Tambin es posible dejar el procedimiento sin entradas, en cuyo caso se dejan los parntesis vacos.
VARIABLES
Las variables usadas dentro del procedimiento pueden ser locales o globales.
Una variable local se declara con el comando local seguido del nombre de las variables separados por comas. Una variable local slo
tiene existencia dentro del procedimiento.
Una variable global se declara con el comando global seguido del nombre de las variables separados por comas. Una variable global
tiene validez una vez hayamos salido del procedimiento.
RECURSIVIDAD
Un procedimiento puede llamar a otro e incluso llamarse a s mismo. En este ltimo caso es necesario tener cuidado para poner la
condicin de salida. Es clsico el ejemplo del factorial de un nmero por su elegancia:
> FACT:=proc(n::integer)
> if (n<=0) then 1 else n*FACT(n-1) fi
> end:
19-03-2015 20:51
Tutorial de MAPLE V
10 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> FACT(500);
En el caso de que la recursividad alcance muchos ciclos es posible que se sature le memoria. Para evitar esto pondremos como
segunda lnea option remember; que hace que MAPLE construya una tabla con los valores ya calculados.
CONDICIONALES
if then else fi
La sentencia condicional se inicia con if que probar si se cumple una cierta condicin, por ejemplo a=b. Si esta condicin se cumple
se ejecutarn los comando escritos despus de then, en caso contrario se ejecutarn los comandos escritos despus de else (es
parte del condicional es opcional). El condicional termina con fi (que es if al revs).
> DISCRIM1:=proc(a,b,c)
> if (b^2-4*a*c<0) then print(`Discriminante negativo`) fi
> end:
> DISCRIM1(1,2,3);
> DISCRIM2:=proc(a,b,c)
> local d:
> d:=b^2-4*a*c:
> if d<0 then print(`No tiene soluciones reales`)
> else print(`Si tiene soluciones reales`)
> fi
> end:
> DISCRIM2(3,4,1);
CONDICIONALES ANIDADOS
Un condicional puede estar dentro de otro, pero en este caso como alternativa al then no se pone else sino elif.
> DISCRIM3:=proc(a,b,c)
19-03-2015 20:51
Tutorial de MAPLE V
11 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> local d:
> d:=b^2-4*a*c:
> if d<0 then print(`No tiene soluciones reales`)
> elif d=0 then print(`Tiene solucin nica`)
> else print(`Tiene dos soluciones`)
> fi
> end:
> DISCRIM3(1,2,1);
BUCLES
En general la estructura de un bucle es for variable to tope do sentencias do;
En este caso la variable contadora empieza en 1 y va aumentando de 1 en 1 hasta alcanzar el tope:
> for i to 4 do i^2 od;
Si necesitamos empezar en un valor distindo de 1 utilizaremos from, y si adems, el salto no es de 1 en 1 usaremos by:
> for j from 10 to 7 by -1 do 2*j od;
19-03-2015 20:51
Tutorial de MAPLE V
12 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
NMEROS ENTEROS
ARITMTICA EXACTA
MAPLE permite trabajar con enteros de enorme tamao. Por ejemplo: calcular el nmero de ceros en los que acaba el factorial de 50:
> 50!;
Para saber el nmero total de dgitos que tiene este nmero utilizamos el comando length
> length(%);
Por ejemplo, podemos tratar de ver si Z[4] es un Dominio de Integridad (anillo sin divisores de cero) hallando su tabla de
multiplicacin: ([0], [1], [2], [3])x([0],[1],[2],[3])
> A:=[0,1,2,3] ; B:=[0,1,2,3];
> for i to 4 do for j to 4 do print(A[i],B[j],A[i]*B[j] mod 4) od od;
19-03-2015 20:51
Tutorial de MAPLE V
13 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Podemos ver como el producto 2*2 = 0 en Z[4], luego Z[4] no es un Dominio de Integridad
NMEROS PRIMOS
MAPLE permite utilizar nmeros primos con gran facilidad.
Podemos saber si un nmero es primo con el comando booleano isprime:
> isprime(13453);
Podemos obtener los primos anterior y siguiente de un nmero dado con los comandos prevprime y nextprime:
> prevprime(13453),nextprime(13453);
Tambin podemos obtener el i-simo primo de la tabla de primos con el comando ithprime:
> ithprime(34);
DIVISORES
MAPLE permita hallar todos los divisores de un nmero entero, para lo cual hay que cargar el paquete numtheory
> with(numtheory):
> divisors(36);
Warning, new definition for B
Warning, new definition for order
19-03-2015 20:51
Tutorial de MAPLE V
14 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
MCD Y MCM
Tambin podemos hallar el Mximo Comn Divisor y el mnimo comn mltiplo:
Para hallar el MCD se utiliza el comando igcd (integer great common divisor) y para hallar el mcm se utiliza el comando ilcm (integer
l east common multiple). Podemos mejorar la salida con el comando print
> print(`MCD(126,140)=`,igcd(126,140));
> print(`mcm(126,140)=`,ilcm(126,140));
19-03-2015 20:51
Tutorial de MAPLE V
15 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
El lema de Bezout aplicado a los nmeros enteros establece la Propiedad lineal del MCD: si a y b son dos enteros no nulos, existen
dos enteros u y v tales que: ua + vb = MCD(a,b)
Con MAPLE podemos hallar u y v utilizando el comando igcdex
Por elemplo obtener u y v para a=30 y b=45: 30u + 45v = MCD(30,45)
> igcdex(30,45,'u','v'):
u y v quedan en la memoria:
> u,v;
NMEROS REALES
Ya sabemos que los nmeros reales resultan de la unin de los racionales e irracionales.
NMEROS RACIONALES
En el caso de operaciones con quebrados se devuelve el resultado ms simplificado.
> 36/30;
Si queremos que el quebrado se opere hasta el final podemos hacer dos cosas.
1.- Poner alguno de los nmeros con coma decimal:
> 36/30.0;
NMEROS IRRACIONALES
RADICALES
En general, si p no es potencia n-sima, entonces la raz n-sima de p es irracional.
Para obtener la raz cuadrada de un nmero utilizamos el comando sqrt (square root). Para que se evale la raz utilizamos evalf:
> sqrt(13) = evalf(sqrt(13));
Caso de necesitar nicamente la parte entera de la raz utilizaremos isqrt (integer square root ):
> isqrt(13);
Para races de ndice superior utilizaremos la expresin potencial (elevando al nmero racional), por ejemplo, la raz quinta de 13 ser:
> 13^(1/5) = evalf(13^(1/5));
19-03-2015 20:51
Tutorial de MAPLE V
16 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
SIMPLIFICACIN DE RADICALES
Como con otras expresiones, los radicales se simplifican con el comando simplify:
> 32^(3/15) = simplify(32^(3/15));
RACIONALIZACIN DE DENOMINADORES
Utilizaremos el comando rationalize:
> (a-1)/(sqrt(a)-1) = rationalize((a-1)/(sqrt(a)-1));
NMEROS ESPECIALES
EL NMERO PI
En MAPLE se escribe Pi y podemos obtenerlo con la precisin que deseemos con evalf, por ejemplo con 50 decimales:
> Pi = evalf(Pi,50);
EL NMERO e
El nmero e es, posiblemente, el nmero ms importante en matemticas superiores. Aparece en muchos procesos de crecimiento,
en la desintegracin radiactiva, en la frmula de la catenaria, etc. Podemos obtenerlo a travs del siguiente lmite:
> Limit((1+1/n)^n,n=infinity) = evalf(limit((1+1/n)^n,n=infinity));
En MAPLE se escribe con e minscula y podemos obtenerlo con exp(1) y la precisin que deseemos:
> e = evalf(exp(1),25);
19-03-2015 20:51
Tutorial de MAPLE V
17 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
La parte entera de un nmero se obtiene con trunc y la parte decimal con frac:
> trunc(5.78);frac(5.78);
Para conseguir todos los decimales que queramos damos, como segundo argumento de evalf, el nmero de decimales requerido.
> evalf(1/7,50);
LOGARITMOS Y EXPONENCIALES
MAPLE calcula de forma directa los logaritmos neperianos con ln() log(). Para que se evalue hay que utilizar evalf:
> ln(10) = evalf(ln(10));
Podemos utilizar los comandos expand o simplify para desarrollar expresiones con logaritmos y potencias:
> simplify(log(3*a/5*b^2));
19-03-2015 20:51
Tutorial de MAPLE V
18 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> L(1)=evalf(L(1));
> L(2)=evalf(L(2));Ln(2)=evalf(ln(2));
TRIGONOMETRA
GRADOS Y RADIANES
MAPLE permite convertir de grados a radianes con el comando convert, utilizando como segundo argumento degrees o radians:
> convert(2*Pi/3,degrees);
> convert(210*degrees,radians);
LNEAS TRIGONOMTRICAS
19-03-2015 20:51
Tutorial de MAPLE V
19 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Las lneas trigonomtricas en MAPLE se corresponden con los comandos: sin, cos y tan, que reciben como argumento el ngulo en
radianes:
> sin(3*Pi/2);cos(Pi/4);tan(Pi/3);
MAPLE conoce todas las relaciones entre lneas trigonomtricas. Podemos utilizar los comandos simplify y expand para desarrollar
una expresin trigonomtrica:
> sin(alpha-beta) = expand(sin(alpha-beta));
19-03-2015 20:51
Tutorial de MAPLE V
20 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Vamos a calcular la expresin del coseno del ngulo (a-b) entre los vectores u y v, para ello haremos uso del comando angle del
paquete linalg. Este comando devuelve el arccos el ngulo. Por esto evaluamos su coseno y le pedimos a MAPLE que lo simplifique:
> with(linalg):
> u:=vector([cos(a),sin(a)]);v:=vector([cos(b),sin(b)]);
> cos(a-b):=simplify(cos(angle(u,v)));
Warning, new definition for norm
Warning, new definition for trace
Ahora podemos calcular el seno de la resta y coseno y seno de la suma sustituyento el ngulo b por determinados valores y pidiendo
a MAPLE que simplifique la expresin:
> cos(a+b):=simplify(subs(b=-b,cos(a-b)));
> sin(a-b):=simplify(subs(b=b+Pi/2,cos(a-b)));
> sin(a+b):=simplify(subs(b=-b,sin(a-b)));
TRIGONOMETRA HIPERBLICA
Las funciones hiperblicas en MAPLE son: sinh, cosh, tanh y sus inversas arcsinh, arccosh y arctanh.
MAPLE conoce las diferentes relaciones entre las lneas hiperblicas.
19-03-2015 20:51
Tutorial de MAPLE V
21 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
>cosh(alpha)^2-sinh(alpha)^2 = simplify(cosh(alpha)^2-sinh(alpha)^2);
NMEROS COMPLEJOS
LA UNIDAD IMAGINARIA I
En MAPLE la unidad imaginaria (raz cuadrada de -1) se escribe con I mayscula. Sus potencias son:
> for i from 0 to 3 do print(`i elevado a`,i,`da`,I^i) od;
FORMA BINMICA
En forma binmica el nmero complejo se escribe:
> z1 := 3-2*I;
Si lo que queremos es pasar un complejo en forma polar a forma binmica usamos evalc (evalue complex):
> evalc(z);
19-03-2015 20:51
Tutorial de MAPLE V
22 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
FORMA EXPONENCIAL-TRIGONOMTRICA
Utilizando la Frmula de Euler (que podemos obtener utilizando series):
> exp(ix) = cos(x) + I*sin(x);
Para obtener la forma exponencial y trigonomtrica de un complejo utilizaremos exp y evalc, respectivamente.
> z:=3-2*I;
> exp(z) = evalc(exp(z));
> convert(5*exp(I*4),trig);
EXPRESIONES RootOf
El comando RootOf pemite definir nmeros como races de un polinomio. Si deseamos conocer todos los valores debemos usar el
comando allvalues:
> a:=RootOf(x^5+9*x^3-4*x^4-14*x^2+14*x-12);
> allvalues(a);
> (z1*z2)^2;
19-03-2015 20:51
Tutorial de MAPLE V
23 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> z2/z1;
RACES DE UN COMPLEJO
Para hallar todas las races de un complejo deberemos obtener todos los valores (allvalues ) de una expresin RootOf. Para hallar
todas las races cbicas de I planteamos la ecuacin:
> z:=(-1)^(1/3) ; ec:=convert(z,'RootOf');
> allvalues(ec);
CONJUGADO
Podemos obtener la parte real y la parte imaginaria de un complejo con Re e Im, respectivamente:
> z:=3-2*I;Re(z),Im(z);
LOGARITMO DE UN COMPLEJO
Para tomar el logaritmo de un complejo utilizaremos ste en forma exponencial:
> z:=r*exp(I*theta);
As, todemos disear un procedimiento que calcule el logaritmo neperiano de un complejo. Lo llamaremos lnc:
19-03-2015 20:51
Tutorial de MAPLE V
24 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> lnc:=proc(z)
> local r,a:
> r:=abs(z):
> a:=argument(z):
> ln(r)+I*a
> end:
> lnc(4-2*I);
> lnc(I);
Por ejemplo para calcular i^i (la unidad imaginaria elevada a s misma) haremos:
> I^I = exp(I*Ln(I));
Por lo tanto:
> I^I = exp(-Pi/2);
Claro que no hace falta tanto proceso: MAPLE realiza este tipo de operaciones con evalc:
> evalc(I^I);
19-03-2015 20:51
Tutorial de MAPLE V
25 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
COMBINATORIA
Los comandos relativos a combinatoria estn en el paquete combinat.
VARIACIONES
Para calcular el nmero de variaciones sin repeticin de m elementos tomados de n en n utilizamos el comando numbperm del
paquete combinat. Como primer argumento damos el nmero de elementos totales y como segundo argumento el tamao de cada
grupo.
> with(combinat):
> V(5,2) = numbperm(5,2);
> restart:
Warning, new definition for Chi
Para calcular las variaciones con repeticin de m elementos tomados de n en n utilizaremos la frmula terica: m^n<
> VR(3,14) = 3^14;
PERMUTACIONES
El comando de MAPLE que permite calcular el nmero de permutaciones sin repeticin de m elementos es numbperm del paquete
combinat. En este caso nicamente se da un argumento: m
> with(combinat):
> P(5) = numbperm(5);
> restart:
Warning, new definition for Chi
En el caso de ser pocos elementos MAPLE permite listar las permutaciones posibles con el comando permute:
> with(combinat):permute(4);rstart:
Warning, new definition for Chi
19-03-2015 20:51
Tutorial de MAPLE V
26 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> with(combinat):permute([as,reina,rey]);restart:
Para obtener las permutaciones con repeticin podemos recurrir a la frmula terica con el uso de factoriales o al comando
multinomial del paquete combinat. Por ejemplo si queremos hallar las permutaciones con repeticin de 10 letras: a,a,a,b,b,c,c,c,c,d
haremos:
> with(combinat):multinomial(10,3,2,4,1);restart:
Warning, new definition for Chi
COMBINACIONES
Para hallar el nmero de combinaciones sin repeticin de m elementos tomados de n en n podemos utilizar el comando
numbcomb o el comando binomial, que devuelve el nmero combinatorio:
> with(combinat):C(5,2)=numbcomb(5,2);C(5,2)=binomial(5,2);restart:
Warning, new definition for Chi
Si lo que queremos es listar las combinaciones utilizaremos el comando choose, dando como primer parmetro la lista, o el conjunto,
de elementos y como segundo parmetro el tamao de las agrupaciones:
> with(combinat):
> choose({a,b,c,d,e},3);
> restart:
Warning, new definition for Chi
Para calcular las combinaciones con repeticin de m elementos tomados de n en n, recurrimos a la frmula terica, que es el
nmero combinatorio de m+n-1 sobre n. Podramos escribir un procedimiento para calcular las combinaciones con repeticin, ser
CR:
> CR:=proc(m::integer,n::integer)
> local a:
> with(combinat):a:=binomial(m+n-1,n);restart:
> a
> end:
> CR(4,3);
Warning, new definition for Chi
POLINOMIOS
DEFINICIN Y GRADO
Para definir un polinomio basta con asignarlo a una variable:
19-03-2015 20:51
Tutorial de MAPLE V
27 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> q:=3*x^4-2*x*y^2+2*x*y-1;
Incluso podemos pedir a MAPLE que genere un polinomio aleatoriamente con randpoly, basta con decirle las variables y el nmero
de monomios que deseamos, por ejemplo, un polinomio de 4 monomios en a, b y c:
> p:=randpoly([a,b,c],terms=4);
Si queremos ver el grado del polinomio p podemos hacerlo globalmente o por cada una de sus variables:
> degree(p),degree(p,a),degree(p,b),degree(p,c);
Podemos pedir a MAPLE que ordene un polinomio en el grado de la variable que deseemos, por ejemplo:
> sort(q,y);
OPERACIONES BSICAS
SUMA, RESTA Y MULTIPLICACIN
Basta con usar los operadores habituales. Por ejemplo, sea:
> p:=3*x^4-4*x^2+3*x-1 : q:=3*x^2-2*x+3:
> p+q,p-q;
> 2*p-5*q;
Sin embargo al hacer la mltiplicacin nicamente la dejar indicada siendo necesario expandirla:
> p*q;
> expand(p*q);
POTENCIA DE POLINOMIOS
Con la potencia ocurre igual que con el producto de polinomios, MAPLE se limita a dejarla indicada siendo necesario pedirle que la
19-03-2015 20:51
Tutorial de MAPLE V
28 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
expand a:
> (2*x-3*y)^4,expand((2*x-3*y)^4);
BINOMIO DE NEWTON
Utilizando MAPLE podemos desarrollar diferentes potencias del binomio (a+b) para tratar de obtener la frmula de Newton:
> (a+b)^0;(a+b)^1;expand((a+b)^2);expand((a+b)^3);expand((a+b)^4);
Si observamos con detenimiento veremos que la frmula para obtener la potencia (a+b)^n es:
> (a+b)^n,Sum(binomial(n,i)*a^(n-i)*b^i,i=0..n);
Donde binomial(n.i) es un comando de MAPLE que halla el nmero combinatorio "n sobre i". Por ejemplo para n=5 obtendremos el
binomio de quinto grado:
> n:=5:sum(binomial(n,i)*a^(n-i)*b^i,i=0..n);
Un detalle de MAPLE: si usas sum, en minscula, se calcula la suma; pero si usas Sum, en mayscula, nicamente se pone la
frmula (es lo que se llama expresin inerte).
FACTOR COMN
Para extraer factor comn se utiliza el comando collect, indicando sobre qu polinomio actuar y qu queremos sacar factor comn:
> p:=3*x^2+4*y^2-5*x^2*y-4*x^3*y^2;
> collect(p,x);
DIVISIN DE POLINOMIOS
Si realizamos la divisin de polinomios utilizando el operador / no obtendremos los resultados deseados, por ejemplo sean los
polinomios p y q:
> p:=6*x^6-7*x^5+4*x^4-10*x^3-x^2+5*x: q:=2*x^2-x:
Vamos a realizar la operacion p/q e incluso a pedir que la expand a:
> p/q;expand(p/q);
19-03-2015 20:51
Tutorial de MAPLE V
29 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Como podemos ver no hace la divisin entera de polinomios, para ello tenemos que usar los comandos quo y rem que nos
devolvern el cociente y el resto de la divisin, respectivamente. Como parmetros hay que dar el polinomio dividendo, el polinomio
divisor y la variable respecto de la que dividimos:
> quo(p,q,x);rem(p,q,x);
FRACCIONES ALGEBRAICAS
Las fracciones algebraicas son aquellas cuyo numerador y denominador son polinomios. Una de las operaciones bsicas que
podemos hacer con ellas es simplificarlas, si es posible. Para ello utilizamos el comando simplify:
> p:=x^3-x^2-x+1 : q:=x^3+x^2-x-1:p/q;
> simplify(p/q);
Fracciones Simples
MAPLE es capaz de descomponer fracciones algebraica complejas en fracciones ms simples. Esto puede ser muy til en el clculo
de ciertas integrales. Para hacer esto utlizamos en comando convert, que recibe como primer parmetro la fraccin a simplificar,
como segundo parmetro la palabra clave parfrac y como ltimo parmetro la variable:
> p:=(4*x-2)/(x^3+3*x^2-x-3);
> convert(p,parfrac,x);
19-03-2015 20:51
Tutorial de MAPLE V
30 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> factor(a^3-a^2*b-a*b^2+b^3);
Tambin podemos hallar el MCD y MCM de dos polinomios con los comandos gcd y lcm, respectivamente:
> p:=x^4-x^3-3*x^2+x+2 : q:=x^5-5*x^4+6*x^3+2*x^2-7*x+3:
> gcd(p,q);
> lcm(p,q);
FACTORIZACIONES EN Z[i]
Tambin podemos factorizar en los anillos Z[i]. En MAPLE la unidad imaginaria se escribe I, desplegando el men
View>Palettes>Symbol Palette: I es el ltimo smbolo que aperece en la ventana.
Por ejemplo, podemos factorizar x^2+4 en Z[i]:
> factor(x^2+4,I);
DESARROLLOS DE TAYLOR
Los polinomios de Taylor se utilizan para aproximar funciones en un determinado punto. Para ello es necesario que la funcin tenga
derivada hasta el orden n (n ser el grado del polinomio de Taylor) en dicho punto.
La expresin del polinomio de Taylor en x=a es:
> P(x)=Sum(D^i*[f(a)]/i!*(x-a)^i,i=0..n);
En este polinomio el ltimo trmino expresa el error cometido, es lo que se denomina resto de Taylor.
Podemos pintar la funcin seno y el polinomio hallado en el entorno de x=0 para obsevar su coincidencia. Pero, para esto, es
necesario convertir en polinomio la expresin de Taylor hallada. Esto se hace con el comando convert:
> p:=convert(taylor(sin(x),x=0,8),polynom);
19-03-2015 20:51
Tutorial de MAPLE V
31 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Si lo que queremos es hallar soluciones reales aproximadas, el comando es fsolve (float solve):
> fsolve(3*x-1=13,x);
MAPLE tambin encuentra soluciones imaginarias (hay que recordar eu I es la unidad imaginaria):
> solve(x^2-2*x+2);
ECUACIONES NO ALGEBRAICAS
MAPLE puede resolver diferentes tipos de ecuaciones no algebraicas (recordemos que las ecuaciones algebraicas son aquellas que
se pueden resolver efectuando operaciones algebracias: suma, resta, multiplicacin y divisin).
19-03-2015 20:51
Tutorial de MAPLE V
32 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
ECUACIONES TRIGONOMTRICAS
MAPLE resuelve las ecuaciones trigonomtricas dando la solucin para el primer periodo. Hay que recordar que las funciones
trigonomtricas en MAPLE se escriben: sin(), cos() y tan() para el seno, coseno y tangente, respectivamente. Por ejemplo:
> solve(sin(x)+cos(x)=1,x);
ECUACIONES EXPONENCIALES
MAPLE resuelve ecuaciones exponenciales recurriendo a logaritmos neperianos.
> solve(2^x=3);
ECUACIONES RECURRENTES
Vamos a resolver el siguiente problema: "Un mono tiene una bolsa de cacahuetes. Cada maana su dueo le aade 100 cacahuetes.
Luego, durante el da el mono se come la mitad de los cacahuetes que hay en la bolsa. Una noche, despus de varios aos haciendo
esto, el dueo cont los cacahuetes cuntos cacahuetes habr en la bolsa?"
Planteamos la siguiente ecuacin recurrente: la noche del da k+1 en la bolsa habr x(k+1)=(100+x(k))/2 porque al iniciar el da haba
x(k) cacahuetes, a los que el dueo aade 100, pero luego el mono se come la mitad...
Cmo resolvemos esta ecuacin recurrente? Utilizamos el comando rsolve, en el que los argumentos son la propia ecuacin
recurrente y la funcin incgnita:
> rsolve(x(k+1)=50+x(k)/2,x);
Como pasan muchos aos tomas el lmite de la funcin obtenida cuando k tiende a infinito.
> limit(%,k=infinity);
19-03-2015 20:51
Tutorial de MAPLE V
33 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
ECUACIONES DIOFNTICAS
Las ecuaciones diofnticas son aquellas cuyas soluciones son nmeros enteros.
Por ejemplo, si deseamos llevar 430 euros en billetes de 50 y 20 euros.. 1) es posible? 2) en caso de ser posible cuntos billetes de
cada hay que coger?
> isolve(50*x+20*y=430);
Obtenemos un conjunto de soluciones sustituyendo _NI por nmeros enteros, por ejemplo:
> for i from -5 to 5 do print(`x=`,1+2*i,`y=`,19-5*i) od;
donde nos quedaramos con las parejas de soluciones positivas,por ejemplo (1,19), es decir 1 billete de 50 y 19 de 20, etc.
ECUACIONES DIFERENCIALES
En ingeniera y el ciencias hay muchos problemas que, cuando se formulan en trminos matemticos, requieren la determinacin de
una funcin que debe satisfacer una ecuacin que contiene derivadas de la propia funcin desconocida. Estas ecuaciones se
denominan ecuaciones diferenciales.
Por ejemplo, para determinar el movimiento de una partcula sobre la que acta la fuerza de la gravedad, es necesario determinar una
funcin u(t) que satisfaga la siguiente ecuacin:
> ec1:=m*diff(u(t),t$2)=-m*g;
El comando de MAPLE para resolver ecuaciones diferenciales es dsolve, que recive dos parmetros: la ecuacin diferencial y el
nombre de la funcin incgnita:
> dsolve(ec1,u(t));
Como podemos ver, aparecen _C1 y _C2, que son constantes que se pueden determinar si se conocen las condiciones iniciales.
19-03-2015 20:51
Tutorial de MAPLE V
34 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
El paquete DEtools contiene comandos sobre ecuaciones diferenciales. Interesa echarle un vistazo:
> ?DEtools
Tambin es interesante que veamos la explicacin del comando que resuelve ecuaciones diferenciales:
> ?dsolve
El comando dsolve admite, como tercer argumento, que se le inidique el mtodo de resolucin de la ecuacin diferencial:
- poniendo method=laplace, utilizar la transformada de Laplace
- poniendo type=series, se obtendr una serie como solucin aproximada
- poniendo type=numeric, se obtendr una solucin numrica utilizando un Runge-Kutta de orden 4-5.
CONDICIONES INICIALES
Cuando conocemos las condiciones iniciales podemos hallar una solucin particular de la ecuacin diferencial. Las condiciones
iniciales se incluyen en el comando dsolve haciendo un conjunto cuyo primer elemendo es la ecuacin a resolver, y despus las
condiciones iniciales separadas por comas.
Encontrar la solucin de y'=y^2 sabiendo que y(0)=1:
> ec:=diff(y(x),x)=y(x)^2;
> dsolve({ec,y(0)=1},y(x));
Podemos comprobar que la solucin obtenida cumple la ecuacin planteada. Para ello debemos coger la parte derecha (comando
rhs, right side) de la ltima salida (comodn %) y sustituirla en la ecuacin:
> y:=unapply(rhs(%),x);
> ec;
19-03-2015 20:51
Tutorial de MAPLE V
35 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
La solucin aparece expresada como una funcin arbitraria _F1 que podemos elegir nosotros. Vamos a tomar como _F1 la funcin
seno:
> subs(_F1=sin,%);
Ahora vamos a sustituirla en la ecuacin y a simplificar la expresin para ver que, en efecto, se cumple la ecuacin:
> simplify(subs(u(x,t)=rhs(%),ec));
INECUACIONES
Se resuelven utilizando el comando solve. En la solucin se indica si el intervalo es abierto con Open.
> solve(x-1>5);
> solve(x^2+2*x-3>=0);
SISTEMAS
SISTEMAS DE ECUACIONES
Para resolver un sistema de ecuaciones se utiliza el comando solve dando dos argumentos. El primero es el conjunto de las
ecuaciones, y el segundo el conjunto de las incgnitas.
19-03-2015 20:51
Tutorial de MAPLE V
36 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> solve({y-3*x=-5,x^2+y=-1},{x,y});
y como el nmero de incgnitas es 3, el sistema es compatible determinado. Ahora descargamos el paquete para liberar memoria.
> restart:
Podemos escribir un procedimiento que utilice el teorema de Rouche-Frobenius para discutir un sistema lineal y dar su solucin:
> rouchef:=proc(ecuaciones::list,variables::list)
> local S,A,n:
> with(linalg):
> S:=genmatrix(ecuaciones,variables):
> A:=genmatrix(ecuaciones,variables,flag):
> n := nops(variables);
> if rank(S)<>rank(A) then print(`Sistema incompatible`)
> elif rank(S)=n then print(`Sistema compatible determinado`)
19-03-2015 20:51
Tutorial de MAPLE V
37 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
EIGENVALORES Y EIGENFUNCIONES
La ecuacin matricial formada a partir de un sistema de ecuaciones: Ax = y puede imaginarse como una transformacin lineal de un
vector dado x en un nuevo vector y.
En este tipo de transformaciones los vectores que se transforman en mltiplos de s mismos tienen mltiples aplicaciones (por
ejemplo, en el problema de encontrar los ejes principales de los esfuerzos de un cuerpo elstico, o en el caso de encontrar los modos
de vibracin libre en un sistema conservativo con un nmero finto de grados de libertad).
Para encontrar estos vectores haremos:
> y=lambda*x;
Los valores de lambda que satisfacen esta ecuacin se denominan eigenvalores o valores propios de la matriz A y las soluciones
que se obtienen utilizando estos eigenvalores en la ecuacin Ax=lambday se denominan eigenvectores, o vectores propios,
asociados a ese eigenvalor.
Vamos a encontrar los eigenvectores y eigenvalores de la matriz A:
> A:=matrix([[0,1,1],[1,0,1],[1,1,0]]);Id:=matrix([[1,0,0],[0,1,0],[0,0,1]]);
19-03-2015 20:51
Tutorial de MAPLE V
38 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> B:=evalm(A)-lambda*evalm(Id);evalm(B);
Hemos obtenido tres eigenvalores: lambda1=2, lambda2=-1 y lambda3=-1 (luego 2 es un eigenvalor simple y -1 es un eigenvalor de
multiplicidad dos)
Vamos ahora a encontrar los eigenvectores asociados. El sistema ser:
> X=matrix([[x[1]],[x[2]],[x[3]]]);nulo:=matrix([[0],[0],[0]]):
> evalm(B)*X=evalm(nulo);
19-03-2015 20:51
Tutorial de MAPLE V
39 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Sin embargo, MAPLE no necesita hacer todo este proceso para obtener los eigenvalores y eigenvectores. Para ello disponde de los
comandos eigenvalues y eigenvectors, respectivamente, del paquete linalg.
> restart:with(linalg):
> A:=matrix([[0,1,1],[1,0,1],[1,1,0]]);
> eigenvalores:=eigenvalues(A);
Warning, new definition for norm
Warning, new definition for trace
> eigenvectores:=eigenvectors(A);restart:
SISTEMAS DE INECUACIONES
Para resolverlos utilizaremos el comando solve con dos parmetros: el conjunto de inecuaciones y el conjunto de incgnitas. En caso
de no aparecer respuesta es que el sistema no tiene solucinPor ejemplo:
En este tipo de sistemas es ms til pintar las soluciones. Para ello necisatamos cargar el paquete plots, y utilizar el comando
inequal. Este comando tiene como argumentos el conjunto de inecuaciones, el rango en X, el rango en Y y la posibilidad de indicar el
color de las diferentes zonas. Interesa ver las diferentes opciones del comando:
> ?inequal
> with(plots):
> inequal({2*x-y<=3,2*x+y<3},x=-3..3,y=-5..5,optionsfeasible=(color=green),optionsopen=
(color=blue,thickness=2),optionsclosed=(color=red, thickness=3),optionsexcluded=(color=yellow));
> restart:
19-03-2015 20:51
Tutorial de MAPLE V
40 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
En este ejemplo hemos pedido: - La zona solucin en color verde; - La zona excluida en color amarillo; -Las fronteras abiertas en color
azul; - Las fronteras cerradas en color rojo.
19-03-2015 20:51
Tutorial de MAPLE V
41 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
MATRICES Y VECTORES
VECTORES
Para definir un vector utilizamos el comando vector, dando las componentes del vector en forma de lista:
> v:=vector([1,2,3,4,5]);
En el caso de necesitar que una lista se convierta en vector, podemos usar el comando convert con la opcin vector.
Para transferir el contenido de un vector a otro se utiliza el comando copy:
> w:=copy(v);
> evalm(u-v);
PRODUCTO ESCALAR
El producto escalar se calcula a travs del comando dotprod del paquete linalg, que recibe como parmetros los dos vectores que
se multiplican. Est definido considerando que los vectores pueden ser complejos. Esto quiere decir que dotprod de los vectores u y
v, devuelve el producto escalar de u por el conjugado de v (esto permite calcular el mdulo de un complejo):
> u:=vector([u1,u2*I]);v:=vector([v1,v2*I]);
> with(linalg):dotprod(u,v);restart:
Si se necesitara calcular el producto escalar de u por v sin utilizar el conjugado podemos hacerlo con dotprod del paquete linalg,
utilizando como tercer parmetro la opcin 'orthogonal':
> u:=vector([u1,u2*I]);v:=vector([v1,v2*I]);
> with(linalg):dotprod(u,v,'orthogonal');restart:
19-03-2015 20:51
Tutorial de MAPLE V
42 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
MAPLE tiene el comando norm del paquete linalg. Damos como primer parmetro el vector y como segundo parmetro el ndice de
la raz para calcular el mdulo (2).
> with(linalg):v:=vector([I,-2,3*I]):norm(v,2);restart:
Warning, new definition for norm
Warning, new definition for trace
De todas formas MAPLE puede normalizar un vector directamente con el comando normalize del paquete linalg.
19-03-2015 20:51
Tutorial de MAPLE V
43 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> with(linalg):
> V:=([I,1,2*I]);
> U:=normalize(V);
> restart:
Warning, new definition for norm
Warning, new definition for trace
De todas formas MAPLE permite hallar el ngulo entre dos vectores con el comando angle del paquete linalg. El resultado aparece
en radianes.
> u:=vector([1,0]);v:=vector([1,1]);
> with(linalg):
> angulorad:=angle(u,v);
> angulograd:=convert(angulorad,degrees);
> restart:
19-03-2015 20:51
Tutorial de MAPLE V
44 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
PRODUCTO VECTORIAL
El producto vectorial se consigue con el comando crossprod del paquete linalg.
> with(linalg):
> u:=vector([1,0,0]);v:=vector([0,1,0]);
> uxv:=crossprod(u,v);
> restart:
Warning, new definition for norm
Warning, new definition for trace
Como podemos ver, el vector resultante es perpendicular al plano definido por los otros dos vectores.
Interpretacin geomtrica
El producto vectorial de dos vectores u y v se puede interpretar como el rea del paralelogramo definido por los dos vectores
(tomando el mdulo de producto vectorial, naturalmente).
Por ejemplo, si queremos hallar el rea del tringulo cuyos vrtices tienen por coordenadas A(3,-1,2), B(0,1,2) y C(2,2,2) haremos lo
siguiente:
Hallamos los vectores u=AB y v=AC y obtenemos la mitad del modulo del producto vectorial (porque el rea del tringulo es la mitad
del rea del paralelogramo):
> u:=vector([0-3,1-(-1),2-2]);v:=vector([2-3,2-(-1),2-2]);
> with(linalg):
> area=1/2*norm(crossprod(u,v),2);
> restart:
ANLISIS VECTORIAL
GRADIENTE
El gradiente de una funcin escalar f(x,y,z), continua y derivable, es una funcin vectorial que se obtiene calculando sus derivadas
parciales con respecto a cada una de las coordenadas. MAPLE permite calcular el gradiente de una funcin escalar con el comando
grad del paquete linalg, que recibe como primer argumento la expresin de la funcin, y como segundo argumento la lista de las
variables.
> restart:
19-03-2015 20:51
Tutorial de MAPLE V
45 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> `grad`(f)=(Diff(f,x),Diff(f,y),Diff(f,z));
El operador gradiente es comunmente utilizado en Fsica. Por ejemplo, el campo elctrico (E) es una funcin vectorial que resulta de
aplicar el gradiente a la funcin potencial: E = -grad(V)
> with(linalg):
> V:=x^2+y^2+z^2;E:=-grad(V,[x,y,z]);
> restart:
Warning, new definition for norm
Warning, new definition for trace
Tambin podemos calcular el gradiene en coordenadas esfricas o cilndricas. Para ello inclumos el parmetro coords=spherical
o coords=cylindrical, respectivamente. Por defecto el gradiente se calcula en coordenadas cartesianas.
> with(linalg):
> V:=x^2+y^2+z^2;E:=-grad(V,[x,y,z],coords=cylindrical);
> restart:
Warning, new definition for norm
Warning, new definition for trace
> with(linalg):
> V:=x^2+y^2+z^2;E:=-grad(V,[x,y,z],coords=spherical);
> restart:
Warning, new definition for norm
Warning, new definition for trace
DIVERGENCIA
El operador divergencia acta sobre una funcin vectorial F (Fx,Fy,Fz) devolviendo un escalar. En coordenadas cartesianas la
divergencia se expresa:
> div(F)=Diff(Fx,x)+Diff(Fy,y)+Diff(Fz,z);
El operador divergencia se utiliza mucho en Fsica. Por ejemplo, en electromagnetismo, la divergencia del campo electrico hace
19-03-2015 20:51
Tutorial de MAPLE V
46 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
referencia al flujo total de las lneas de campo elctrico (que puede ser nulo, positivo y entonces hay una fuente, o negarivo y
entonces hay un sumidero). Por ejemplo, sea el campo E:
> Ex:=6*x*y:Ey:=3*x^2-3*y^2:Ez:=3*z:
> e:=[Ex,Ey,Ez];
> with(linalg):
> divergencia(E)=diverge(e,[x,y,z]);
> restart:
En este resultado la divergencia del campo elctrico es positiva. Tenemos, por lo tanto, una fuente.
En este otro caso la divergencia resulta ser nula:
> Ex:=6*x*y:Ey:=3*x^2-3*y^2:Ez:=0:
> e:=[Ex,Ey,Ez];
> with(linalg):
> divergencia(E)=diverge(e,[x,y,z]);
> restart:
Tambin podemos calcular la divergencia en coordenadas esfricas o cilndricas. Para ello inclumos el parmetro
coords=spherical o coords=cylindrical, respectivamente. Por defecto la divergencia se calcula en coordenadas cartesianas.
> with(linalg):
> Ex:=2*Pi*rho*x:Ey:=rho*y/(2*epsilon[0]):Ez:=0:
> e:=[Ex,Ey,Ez];
> divergencia(E)=diverge(e,[x,y,z],coords=cylindrical);
> restart:
Warning, new definition for norm
Warning, new definition for trace
19-03-2015 20:51
Tutorial de MAPLE V
47 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
ROTACIONAL
El operador rotacional acta sobre una funcin vectorial y devuelve otra funcin vectorial. Desde el punto de vista de la Fsica el
rotacional distinto de cero significa que el campo tiene circulacin, o turbulencia. Por ejemplo, el campo de velocidades del agua al
vaciar una baera adquiere, generalmente, una circulacin. Su rotacional no es cero en la mayor parte de la superficie (cualquier
cuerpo que flote en la superficie gira mientras avanza).
MAPLE dispone del comando curl del paquete linalg para calcular el rotacional. Como parmetros es necesario dar la funcin
vectorial y la lista de variables.
> with(linalg):
> f1:=x*y*z:f2:=3*x^2*z:f3:=-2*y*z^2:
> F:=[f1,f2,f3];rot(f)=curl(F,[x,y,z]);
> restart:
Warning, new definition for norm
Warning, new definition for trace
Tambin podemos calcular el rotacional en coordenadas esfricas o cilndricas. Para ello inclumos el parmetro coords=spherical
o coords=cylindrical, respectivamente. Por defecto el rotacional se calcula en coordenadas cartesianas.
> with(linalg):
> f1:=x*y*z:f2:=3*x^2*z:f3:=-2*y*z^2:
> F:=[f1,f2,f3];rot(f)=curl(F,[x,y,z],coords=cylindrical);
> restart:
Warning, new definition for norm
Warning, new definition for trace
LAPLACIANA
El operador laplaciana se puede considerar como "la divergencia del gradiente", es decir, partiendo de una funcin escalar aplicamos
el gradiente, por lo que obtenemos la variacin de dicha funcin en las tres direcciones del espacio. Ahora aplicamos sobre esta
funcin vectorial recien hallada el operador divergencia, por lo que volvemos a obtener una funcin escalar.
En coordenadas cartesianas la laplaciana tiene la siguiente forma:
> laplaciana(f)=Diff(f,x$2)+Diff(f,y$2)+Diff(f,z$2);
El comando de MAPLE que hace de operador laplaciana es laplacian, del paquete linalg. Este comando recibe como argumentos la
funcin escalar y la lista de variables:
> with(linalg):
> f:=x^2+y^2+z^2:
19-03-2015 20:51
Tutorial de MAPLE V
48 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> laplaciana(f)=laplacian(f,[x,y,z]);
> restart:
Warning, new definition for norm
Warning, new definition for trace
Dondequiera que la densidad de carga sea nula (todas las regiones del espacio que no contienen carga elctrica) el potencial elctrico
V tiene que satisfacer la ecuacin de Laplace:
> laplaciana(V)=0;
Tambin podemos calcular la laplaciana en coordenadas esfricas o cilndricas. Para ello inclumos el parmetro
coords=spherical o coords=cylindrical, respectivamente. Por defecto la laplaciana se calcula en coordenadas cartesianas.
> with(linalg):
> f:=x^2+y^2+z^2:
> laplaciana(f)=laplacian(f,[x,y,z],coords=spherical);
> restart:
Warning, new definition for norm
Warning, new definition for trace
MATRICES
DEFINIENDO MATRICES
En la introduccin ya se habl de como definir matrices. Vamos a ver ahora cmo definir una matriz de otras formas:
El comando matrix permite definir y rellenar matrices dando las sucesivas filas en forma de lista:
> m:=matrix([[1,2,3],[4,5,6]]);
19-03-2015 20:51
Tutorial de MAPLE V
49 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Matriz de Vandermonde:
> vandermonde([a,b,c]);
Matriz diagonal:
> diag(a,b,c);
Matriz jacobiana: se aplica sobre funciones vectoriales, evalundose en cada fila las dereivadas parciales de cada componente de la
funcin con respecto a cada una de las variables. El comando es jacobian.
> f=f(fx,fy,fz),jacobiano=matrix([[Diff(fx,x),Diff(fx,y),Diff(fx,z)],[Diff(fy,x),Diff(fy,y),Diff(fy,z)],[Diff(fz,x),Diff(fz,y),Diff(fz,z)]]);
19-03-2015 20:51
Tutorial de MAPLE V
50 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> f:=[x*y*z,x^2+y^2+z^2,y]:
> funcion=f,jacobiana=jacobian(f,[x,y,z]);
Matriz wronskiana: se utiliza para la resolucin de determinadas ecuaciones diferenciales. La primera fila muestra las componentes
de una funcin vectorial, y las filas siguientes son sus derivadas sucesivas. El comando es wronskian.
> f:=[sin(x^2),exp(-x),1/x]:
> funcion=f,wronskiana=wronskian(f,x);
> a+b=evalm(a+b);
> 3*a=evalm(3*a);
> 4*a-2*b=evalm(4*a-2*b);
MULTIPLICACIN DE MATRICES
Para multiplicar dos matrices es necesario utilizar la combinacin de smbolos &*, dado que este producto no es conmutativo.
Tenemos que recordar que, para que dos matrices se puedan multiplicar, es necesario que el nmero de columnas de la primera
19-03-2015 20:51
Tutorial de MAPLE V
51 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
coincida con el nmero de filas de la segunda. Para evaluar el resultado utilizaremos el comando evalm.
> a:=matrix([[a11,a12,a13],[a21,a22,a23]]);b:=matrix([[b11,b12],[b21,b22],[b31,b32]]);
> evalm(a&*b);
Como caso especial comentar que si multiplicamos un vector fila (1xM) por una matriz (MxN) obtendremos otro vector fila (1xM)
> v:=vector([v1,v2]):
> evalm(v)&*evalm(a)=evalm(v&*a);
Si multiplicamos una matriz (MxN) por un vector columna (Nx1) obtendremos otro vector columna (Mx1), aunque MAPLE devuelva el
resultado en forma de vector fila.
> w:=vector([w1,w2,w3]):
> evalm(a)*evalm(w)=evalm(a&*w);
Si queremos el resultado en forma de vector columna debemos definir el vector como una matriz de tres filas y una nica columna:
> a:=matrix([[1,2,3],[4,5,6]]):v:=matrix([[-1],[0],[1]]):
> evalm(a)*evalm(v)=evalm(a&*v);
POTENCIA DE MATRICES
Elevar una matriz a una potencia significa multiplicarla por s misma tantas veces como sea necesario, por lo tanto nicamente
podremos calcular la potencia de matrices cuadradas, o de lo contrario no se podran multiplicar. Para indicar la potencia utilizamos el
operador ^ y el comando evalm para visualizar el resultado.
> a:=matrix([[1,I],[-I,1]]);
> evalm(a^2);
19-03-2015 20:51
Tutorial de MAPLE V
52 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> evalm(a^4);
MATRIZ TRASPUESTA
La traspuesta At de una matriz A se obtiene intercambiando las filas y las columnas de A. MAPLE utiliza el comando transpose, del
paquete linalg, para obtener la traspuesa de una matriz:
> with(linalg):
> A:=matrix([[3,2-I],[4+3*I,-5+2*I]]);At:=transpose(A);
> restart:
MATRIZ CONJUGADA
La conjugada de una matriz se consigue reemplazando cada elemento de la matriz por su conjugado. El comando conjugate aplicado
sobre una matriz realiza esta tarea. Si queremos visualizar la matriz debemos utilizar el comando evalm:
> A:=matrix([[3,2-I],[4+3*I,-5+2*I]]);conjugate(A)=evalm(conjugate(A));
MATRIZ ADJUNTA
La matriz adjunta de otra es la traspuesta de su matriz conjugada. Maple obtiene la adjunta de una matriz con la combinacin de los
comando conjugate y transpose del paquete linalg:
> with(linalg):
> A:=matrix([[3,2-I],[4+3*I,-5+2*I]]);
> Aadj=transpose(conjugate(A));
> restart:
Warning, new definition for norm
Warning, new definition for trace
19-03-2015 20:51
Tutorial de MAPLE V
53 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
MATRIZ INVERSA
Se define la matriz inversa de A a otra tal que multiplicada por A da la matriz identidad. No todas las matrices tienen inversa (en primer
lugar hay que decir que nicamente se define la inversa de matrices cuadradas). En el caso de que una matriz no tenga inversa se
denomina singular.
El clculo de una matriz inversa es largo y tedioso, pero MAPLE puede calcular la inversa de una matriz de dos formas distintas:
evaluando 1/A elevando A^(-1)
> A:=matrix([[1,-1,-1],[3,-1,2],[2,2,3]]);
> Ainv:=evalm(1/A);
> Ainv:=evalm(A^(-1));
En el caso de que queramos hallar la inversa de una matriz singular, MAPLE devuelve un error:
> B:=matrix([[1,2],[2,4]]);evalm(1/B);
19-03-2015 20:51
Tutorial de MAPLE V
54 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Para multiplicar todos los elementos de una fila, o de una columna, por un escalar se utilizan los comando mulrow y mulcol,
respectivamente, del paquete linalg. Como argumentos se dan la matriz, la posicin de la fila o columna y el escalar:
> A=evalm(A),fila2por3=mulrow(A,2,3),columna3por_k=mulcol(A,3,k);
Tambin es posible multiplicar todos los elementos de una fila, o columna, por un escalar y sumar el resultado a otra fila, o columna.
Para esto se utilizan los comando addrow y addcol, respectivamente, del paquete linalg. Como argumentos damos la matriz; la
posicin de las fila, o columna, que va a ser multiplicada; la posicin de la fila, o columna, a la que vamos a sumar la anterior; y el
valor del escalar:
> A=evalm(A),fila1+fila2_por3=addrow(A,2,1,3),col3+col1_por(-1)=addcol(A,1,3,-1);
Con todos estos comandos podemos triangular una matriz dada. Por ejemplo:
> A=evalm(A);
> A1:=swaprow(A,1,3):A2:=addrow(A1,1,2,1):A3:=addrow(A2,1,3,-2):
> swapfil1y3=evalm(A1),fila2+fila1por(1)=evalm(A2),fila3+fila1por(-2)=evalm(A3);
> A4:=addrow(A3,2,3,3):fila3+fila2por3=evalm(A4);restart:
19-03-2015 20:51
Tutorial de MAPLE V
55 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
De todas formas MAPLE es capaz de hacer todo este proceso por s solo, con el comando gausselim (eliminacin gaussiana) del
paquete linalg, que recibe como parmetro la matriz inicial:
> with(linalg):A:=matrix([[2,-1,-1],[-1,1,-2],[1,-2,3]]);gausselim(A);restart:
Warning, new definition for norm
Warning, new definition for trace
RANGO
Podemos obtener el rango de una matriz con el comando rank, del paquete linalg:
> A:=matrix([[1,2,3],[4,5,6],[2,4,6]]):
19-03-2015 20:51
Tutorial de MAPLE V
56 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> with(linalg):
> A=evalm(A),rango=rank(A),eliminacion_gaussiana=gausselim(A);
> restart:
Warning, new definition for norm
Warning, new definition for trace
DETERMINANTES
Para calcular el valor de un determinante MAPLE tiene el comando det del paquete linalg. Como argumento damos la matriz
(cuadrada evidentemente) cuyo determinante queremos hallar.
> A:=matrix([[1,0,2],[-2,-4,5],[0,1,-1]]);
> with(linalg):
> Det(A)=det(A);
> restart:
VOLUMEN DE UN TETRAEDRO
Para hallar el volumen de un tetraedro de vrtices A(a1,a2,a3), B(b1,b2,b3), C(c1,c2,c3) y D(d1,d2,d3) podemos utilizar el
determinante de la siguiente matriz:
> M:=matrix([[b1-a1,c1-a1,d1-a1],[b2-a2,c2-a2,d2-a2],[b3-a3,c3-a3,d3-a3]]);
19-03-2015 20:51
Tutorial de MAPLE V
57 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> M:=matrix([[1,1,1,1],[a1,b1,c1,d1],[a2,b2,c2,d2],[a3,b3,c3,d3]]);
Vamos a escribir un procedimiento que devuelva el volumen de un tetraedro dando sus vrtices como argumento:
> voltetra:=proc(a,b,c,d::list)
> local M,A,vol:
> A:=matrix([[1,1,1,1]]);
> with(linalg):
> M:=stackmatrix(A,transpose(matrix([a,b,c,d])));
> #stackmatrix apila dos matrices
> restart:
> vol:=1/6*det(M)
> end:
> vol=voltetra([2,3,1],[4,1,-2],[6,3,7],[-5,-4,8]);
Warning, new definition for norm
Warning, new definition for trace
19-03-2015 20:51
Tutorial de MAPLE V
58 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
En el paquete linalg el comando genmatrix, con la opcin flag, genera la matriz del sisema.
> with(linalg):
> C:=genmatrix([ec1,ec2,ec3],[t,s]): #genmatrix genera la matriz de coeficientes
> S:=genmatrix([ec1,ec2,ec3],[t,s],flag): #genmatrix, con la opcin flag, genera la matriz del sistema
> Coeficientes=evalm(C),Sistema=evalm(S);
La matriz de coeficientes debe tener rango 2, pues los dos vectores que definen el plano deben ser linealmente independientes. Por
los tanto, el sistema tendr solucin nicamente si el rango de la matriz del sistema tiene rango 2 (si tuviera rango 3 el sistema sera
incompatible). Por lo tanto el determinante de la matriz del sistema debe ser nulo:
> Det(evalm(S))=0;
Podemos desarrollar este determinante, sacando factor comn x,y,z, con el comando collect de MAPLE:
> d:=det(S)=0:
> collect(d,[x,y,z]);
Podemos escribir un procedimiento que devuelva la ecuacin que define un plano dando como argumentos los vectores directores del
plano y un punto del plano:
> ecuplano:=proc(v,w,m::list)
> local X,M,Ind,S;
> X:=matrix([[x,y,z]]):M:=matrix([m]):Ind:=evalm(X-M);
> with(linalg):
> S:=concat(transpose(matrix([v,w])),transpose(Ind)); #concat une matrices del mismo n de filas, una a la derecha de otra
> det(S)=0
> end:
> ec:=ecuplano([1,2,3],[2,0,1],[0,1,1]);
FUNCIONES
MAPLE permite dibujar funciones en el plano y en el espacio, para ello utiliza los comandos plot y plot3d, respectivamente.
FUNCIONES EN EL PLANO
DEFINICIN
19-03-2015 20:51
Tutorial de MAPLE V
59 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
A PRIORI
Para definir una funcin a priori se utiliza el operador ->
> f:=x->x^2-2*x+1;
> g:=t->1/2*9.8*t^2;
19-03-2015 20:51
Tutorial de MAPLE V
60 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
A POSTERIORI
Podemos tomar el resultado de un clculo anterior y convertirlo en funcin con el comando unapply, que tiene como primer
argumento la candidata a funcin y como segundo argumento la candidata a variable independiente.
> a:=expand(2*(x-1)^2+3);
> f:=unapply(a,x);
IMGENES
Para obtener la imagen de un cierto valor se hace:
> f:=x->3*x-1;
> f(2);
> g:=(ci,r,t)->ci*(1+r/100)^t;
> g(3000,5,3);
19-03-2015 20:51
Tutorial de MAPLE V
61 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> with(plots):
> p:=plot({f(x),g(x),suma(x),resta(x)},x=-2..4,color=[yellow,red,green,blue]):
> t:=textplot([[4,f(4),'f(x)'],[4,g(4),'g(x)'],[4,suma(4),'f+g'],[4,resta(4),'f-g']]):
> display(p,t,title=`Suma y resta de funciones`);
> restart:
> plot(m3(x),x=-4..4);
19-03-2015 20:51
Tutorial de MAPLE V
62 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
COMPOSICIN DE FUNCIONES
Para componer dos funciones podemos hacer:
> f:=x->x-1 : g:=x->x^2+1:
> h:=x->g(f(x));
> with(plots):
> p:=plot({f(x),g(x),h(x)},x=-3..3,color=[red,green,blue]):
> t:=textplot([[-3,f(-3),'f(x)'],[-3,g(-3),'g(x)'],[-3,h(-3),'g(f(x))']]):
> display(p,t,title=`Composicin de funciones`);
> restart:
TRASLACIN DE FUNCIONES
Vamos a tratar aqu cmo podemos trasladar matemticamente una determinada funcin horizontal y verticalmente.
TRASLACIN VERTICAL
19-03-2015 20:51
Tutorial de MAPLE V
63 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Para trasladar una funcin verticalmente basta con sumar, o restar, un valor a la funcin: g(x)=f(x)+k
Vamos a ver cmo se traslada verticalmene la funcin f(x)=x^2-3:
> f:=x->x^2-3:
> with(plots):
> animate(f(x)+t,x=-3..3,t=-3..3);
> restart:
Como podemos ver, el comando animate (que est en el paquete plots) permite ver la secuencia de movimientos. Como parmetros
tiene la funcin (con dos variables: la x y el paso de tiempo), el rango del eje x y el rango de tiempo. Si hacemos click sobre la figura
aparecer un men con las opciones clsicas de un video. nicamene tenemos que probar.
TRASLACIN HORIZONTAL
Para trasladar una funcin horizontalmente basta con sumar, o restar, un valor al argumento de la funcin: g(x)=f(x+k)
Vamos ver cmo se traslada horizontalmente la funcin f(x)x^2-3:
> f:=x->x^3:
> with(plots):
> animate(f(x+t),x=-6..6,t=-3..3);
> restart:
19-03-2015 20:51
Tutorial de MAPLE V
64 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> plot({f(x),g(x)},x=0..4,y=0..4,scaling=constrained);
19-03-2015 20:51
Tutorial de MAPLE V
65 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Si hacemos click sobre el cuadro de la funcin veremos cmo se activa un nuevo men que nos permitir colocar los ejes, cambiar el
aspecto de la funcin, etc. nimo... la curiosidad es la mejor baza.
Si lo que queremos es representar varias funciones a la vez tambin podemos usar el comando plot, pero ahora debemos pasar un
conjunto de funciones (entre llaves, aunque tambin podemos pasar una lista de las funciones, entre corchetes). Podemos elegir los
colores de cada una con la opcin color y el nombre de los colores en ingls:
> f:=x->x : g:=x->x^2 : h:=x->x^3:
> plot({f(x),g(x),h(x)},x=-2..2,color=[red,green,blue]);
19-03-2015 20:51
Tutorial de MAPLE V
66 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
EL COMANDO DISPLAY
El comando display est en el paquete plots, y permite pintar varias grficas juntas, con rtulos e incluso ttulo:
> ?plots,display
Si queremos pintar varais grficas y rotularlas, la mejor opcin es ir definiendo cada grfica con el comando plot y guardarlas como
variables. Los rtulos se definen con textplot y se guardan en otra variable. El comando display permite recoger todas estas
variables y pintar la grfica.
> with(plots):
> g1:=plot(ln(x),x=0.1..7,color=red):
> g2:=plot(exp(x),x=-5..2,color=blue):
> g3:=plot(x,x=-4..5,color=green):
> t:=textplot([[6,ln(6)-1,'ln(x)'],[3,exp(2),'exp(x)'],[6,5,x]]):
> display(g1,g2,g3,t,title=`Funciones inversas`,scaling=CONSTRAINED);
> restart:
19-03-2015 20:51
Tutorial de MAPLE V
67 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
REPRESENTACIN IMPLCITA
Para representar una funcin con ecuaciones implcitas se utiliza el comando implicitplot del paquete plots. Al comando implicitplot
hay que darle la funcin implcita, el intervalo de variacin de la variable independiente y el intervalo de variacin de la variable
dependiente.
> with(plots):implicitplot(x^2-y^2=2,x=-3..3,y=-3..3,scaling=CONSTRAINED);restart:
19-03-2015 20:51
Tutorial de MAPLE V
68 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Haciendo click sobre la figura, sta queda seleccionada y se activa un men (en la barra de mens) con diferentes opciones para
probar.
REPRESENTACIN PARAMTRICA
Para representar una curva en ecuaciones paramtricas se utiliza el comando plot. El conjunto de ecuaciones paramtricas se le da a
plot en forma de lista ordenada: primero x(t), luego y(t), junto con la variacin del parmetro t. El resto de opciones de plot siguen
siendo vlidas.
Una de las conocidas curvas de Lissajous se puede obtener as:
> plot([5*sin(1/4*t),7*sin(t),t=-2*Pi..8*Pi]);
La curva locura de Stanley S. Miller ilustra de una forma excelente la representacin de curvas a travs de ecuaciones
parametrizadas:
> plot([sin(0.99*t)-0.7*cos(3.1*t),cos(1.01*t)+0.1*sin(15.03*t),t=0..50],color=blue);
19-03-2015 20:51
Tutorial de MAPLE V
69 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
COORDENADAS POLARES
MAPLE puede representar curvas dadas en coordenadas polares utilizando el comando polarplot del paquete plots. Este comando
recibe dos parmetros: la funcin polar r=r(theta) y el intervalo de variacin del argumento.
> with(plots):polarplot(5,theta=0..Pi/2,scaling=CONSTRAINED);restart:
> with(plots):polarplot(cos(6*alpha),alpha=0..2*Pi,scaling=CONSTRAINED);restart:
19-03-2015 20:51
Tutorial de MAPLE V
70 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Tambin podemos dar el mdulo y el argumento en forma paramtrica, utilizando tambin el comando polarplot dando una lista
ordenada con la ecuacin del mdulo y la del argumento en funcin de un parmetro, y dando el intervalo de variacin del parmetro.
> with(plots):polarplot([t,t,t=0..4*Pi],color=blue,scaling=CONSTRAINED);restart:
GRFICAS A TRAMOS
Podemos representar una curva poligonal haciendo una lista de los vrtices por los que pasa. Los pares ordenados se ponen entre
corchetes, como las listas, para indicar precisamente que estn ordenados.
> p:=[[-3,1],[-1,0],[1,3],[2,4],[4,5],[6,2]]:
> plot(p,x=-4..7);
19-03-2015 20:51
Tutorial de MAPLE V
71 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
EL COMANDO plot3d
MAPLE puede representar superficies en el espacio con el comando plot3d, al que hemos de darle la funcin explcita de dos
variables y el intervalo de variacin de cada una de ellas
> f:=(x,y)->x^2-y^2;
> plot3d(f(x,y),x=-8..8,y=-8..8,grid=[50,50]);
Si hacemos click sobre la imagen se activar un men en la barra de mens que nos permitir elegir el tipo de grid, los ejes y la
escala, as como rotar la funcin alrededor de los ejes. Si hacemos click sin soltar el botn sobre la funcin podremos moverla para
verla desde diferentes ngulos.
El comando plot3d tiene muchas opciones con las que podemos cambiar el aspecto de la grfica (como la opcin grid utilizada en el
ejemplo. Es recomendable acudir a la ayuda de MAPLE para ver estas opciones:
> ?plot3d[option]
Con el comando plot3d podemos pintar varias funciones a la vez, basta con pasar como parmetro al comando plot3d el conjunto de
19-03-2015 20:51
Tutorial de MAPLE V
72 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
SUPERFICIES EN PARAMTRICAS
Para representar una superficie dada en forma de ecuaciones paramtricas basta con utilizar el comando plot3d dando como primer
argumento la lista de las ecuaciones paramtricas y despus el intervalo de variacin de los parmetros:
> x:=-(3+sin(u))*sin(v):y:=(3+sin(u))*cos(v):z:=cos(v):
> plot3d([x(u,v),y(u,v),z(u,v)],u=-Pi..Pi,v=-Pi..Pi,axes=BOXED,orientation=[137,72]);
Si hacemos girar una circunferencia definida en el plano YZ, en torno al eje X, obtendremos un toro:
> x:=10*cos(u)+3*cos(u)*cos(v):y:=10*sin(u)+3*sin(u)*cos(v):z:=3*sin(v):
> plot3d([x(u,v),y(u,v),z(u,v)],u=0..2*Pi,v=0..2*Pi,axes=NORMAL,labels=[X,Y,Z],scaling=CONSTRAINED);
19-03-2015 20:51
Tutorial de MAPLE V
73 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
19-03-2015 20:51
Tutorial de MAPLE V
74 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
CUDRICAS
Las llamadas superficies cuadrticas, o simplemente cudricas, se definen mediante ecuaciones de la forma:
> f:=Sum(a[ij]*x[i]*x[j],ij=i..3)+Sum(b[i]*x[i],i=1..3)+c=0;
19-03-2015 20:51
Tutorial de MAPLE V
75 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
19-03-2015 20:51
Tutorial de MAPLE V
76 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
19-03-2015 20:51
Tutorial de MAPLE V
77 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
[69,64]);
> restart:
19-03-2015 20:51
Tutorial de MAPLE V
78 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
MAPLE puede representar superficies dadas en coordenadas esfricas usando el comando sphereplot del paquete plots.
> with(plots):
> r:=(theta,phi)->5*theta*phi;
> sphereplot(r(theta,phi),theta=0..2*Pi,phi=0..2*Pi,axes=BOXED,style=LINE,orientation=[-137,36]);
> restart:
19-03-2015 20:51
Tutorial de MAPLE V
79 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Se puede incluir texto en las grficas con el comando textplot3d del paquete plots indicando, en forma de lista, las tres coordenadas
y el text.
El proceso es el siguiente:
1) definimos la grfica (con plot3d o implicitplot3d) y la guardamos en una variable
2) usando textplot3d definimos los textos y los guardamos en otra variable
3) por ltimo utilizamos el comando display, del paquete plots, para pintarlo todo. display recibe en forma de conjunto las
variariables que guardan las grficas y los textos. Adems display puede recibir muchas opciones. Conviene visitar la ayuda de
MAPLE y tener curiosidad.
> with(plots):
> ec1:=x^2/a^2-y^2/b^2-z=0;a:=5:b:=4:
> c:=implicitplot3d(ec1,x=-10..10,y=-10..10,z=-6..6,axes=BOXED,scaling=CONSTRAINED,title=`Paraboloide
elptico`,orientation=[139,57],style=PATCHNOGRID): #hemos guardado la grafica en la variable g
> t:=textplot3d([0,0,0,`Punto de silla`], font=[COURIER,BOLD,14],color=black): #hemos guardado los textos en la variable t
> display({c,t},title=`Punto de silla en un paraboloide hiperblico`);
> restart:
CURVAS EN EL ESPACIO
Para representar curvas en el espacio se utiliza el comando spacecurve del paquete plots. Este comando recibe las ecuaciones
paramtricas de la funcin en forma de lista, y el intervalo de variacin del parmetro.
> with(plots):
> x:=t->2*cos(t):y:=t->2*sin(t):z:=t->t:
> spacecurve([x(t),y(t),z(t)],t=0..6*Pi,axes=NORMAL,labels=[X,Y,Z],orientation=[96,63],title=`HELICE CIRCULAR`);
> restart:
19-03-2015 20:51
Tutorial de MAPLE V
80 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
El comando tubeplot, del paquete plots, permite realzar la curva con la opcin radius, que permite dar grosor, en forma de tubera, a
la curva. Para ello incluiremos la opcin radius=a un nmero que ser el grosor de la tubera:
> with(plots):
> x:=t->20*cos(t):y:=t->20*sin(t):z:=t->t:
> tubeplot([x(t),y(t),z(t)],t=0..6*Pi,axes=NORMAL,labels=[X,Y,Z],orientation=
[-32,67],radius=2,scaling=UNCONSTRAINED,title=`Tubo en forma de hlice circular`);
> restart:
19-03-2015 20:51
Tutorial de MAPLE V
81 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Una vez dibujada la grfica hacemos click sobre ella. Entonces aparecer un men, similar al de un video, en la barra de mens.
Basta con pular el play...
LMITES DE FUNCIONES
Podemos hallar el lmite de una funcin con el comando limit, que presenta la expresin inerte si se escribe Limit. Es necesario pasar
dos parmetros a este comando: la funcin cuyo lmite queremos calcular y el valor hacia el que tiende la variable.
> f:=x->x^2/(2*x^2+3):
> Limit(f(x),x=2)=limit(f(x),x=2);
LMITES LATERALES
Tambin podemos evaluar el lmite de una funcin en un punto por la izquierda y por la derecha con las opciones left y right,
respectivamente, del comando limit:
> f:=x->x/(x-1):
> Limit(f(x),x=1,left)=limit(f(x),x=1,left);
> Limit(f(x),x=1,right)=limit(f(x),x=1,right);
> Limit(f(x),x=1)=limit(f(x),x=1);
19-03-2015 20:51
Tutorial de MAPLE V
82 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> plot(f(x),x=-3..3,y=-5..5,discont=true,color=red);
19-03-2015 20:51
Tutorial de MAPLE V
83 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> limit(f(x),x=0,left);
> limit(f(x),x=0,right);
> f(0);
En la librera general est el comando iscont, que nos dice si una funcin es, o no, contnua:
> readlib(iscont):iscont(f(x),x=-2..5);
Y, tambin en la librera general est el comando discont, que devuelve los valores de abscisa donde se encuentran puntos anmalos
(aunque a veces no son discontinuidades):
> readlib(discont):discont(f(x),x);restart:
ASNTOTAS HORIZONTALES
Las asntotas horizontales (AH) se calculan de la siguiente manera:
> restart:
> AHd=Limit(f(x),x=infinity);
Tambin podemos ver las AH hacia la izquierda:
> AHi=Limit(f(x),x=-infinity);
19-03-2015 20:51
Tutorial de MAPLE V
84 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
ASNTOTAS VERTICALES
Una funcin tiene asntotas verticales (AV) en x=k si el lmite cuando x tiende a k de la funcin es infinito (ms infinito o menos infinito)
o indeterminado.
19-03-2015 20:51
Tutorial de MAPLE V
85 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
El comando discont de la librera general devuelve puntos anmalos candidatos a ser AV:
> readlib(discont):
> f:=x->x^2/(x^2-1);
> discont(f(x),x);
> limit(f(x),x=-1);
> limit(f(x),x=1);
> plot(f(x),x=-2..2,y=-10..10,discont=true,color=blue);
ASNTOTAS OBLICUAS
Las asntotas oblicuas (AO) son rectas (y=mx+n) cuya pendiente y ordenada hay que determinar.
Para determinar la pendiente efectuamos el lmite:
> restart:
> m=Limit(f(x)/x,x=infinity);
Si este lmite se va a infinito no hay AO. Si el lmite se anula es probable que haya una AH.
Para determinar la ordenada en el origen (n) de la AO se calcula el siguiente lmite:
> n=Limit(f(x)-m*x,x=infinity);
> f:=x->x^2/(x-2);
19-03-2015 20:51
Tutorial de MAPLE V
86 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> m:=limit(f(x)/x,x=infinity);
> n:=limit(f(x)-m*x,x=infinity);
> AO:=x->m*x+n;
> plot([f(x),AO(x)],x=-3..10,y=-5..20,color=[blue,red]);
SUCESIONES Y SERIES
A pesar de que en el lenguaje corriente sucesin y serie sean trminos sinnimos, en el lenguaje matemtico son conceptos muy
distintos.
Matemticamente hablando, una sucesin es una aplicacion que asigna a un entero positivo un nmero real, o complejo. La sucsin
converge si, cuando n tiende a infinito, la difencia entre dos trminos consecutivos de la sucesin tiende a cero.
Se llama serie a la sucesin de las sumas parciales de los trminos de sucesin.
SUCESIN:
> seq(a[n],n=1..5);
SERIE:
> seq(s[n]=sum(a[i],i=1..n),n=1..5);
SUCESIONES
El comando seq (sequence) define sucesiones finitas a travs de su ley de formacin. Este comando recive dos parmetros: la ley de
formacin expresada con una variable contadora y la variacin de la variable contadora:
19-03-2015 20:51
Tutorial de MAPLE V
87 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> seq(i,i=0..10);
> seq(evalf((1+1/n)^n,5),n=1..10);
SERIES
Ya sabemos que la serie es la sucesin de las sumas parciales. Para evaluarla utilizamos el sumatorio a travs del comando sum.
Este comando devuelve la expresin inerte si se escribe Sum, y recibe dos parmetros: la expresin y el rango de variacin del
contador:
> Sum(2*n+1,n=0..10)=sum(2*n+1,n=0..10);
Si evaluamos el sumatorio sobre infinitos trminos obtenemos la serie infinita o, sencillamente, la serie. Para indicar el infinito
utilizamos la palabra clave infinity. Por ejemplo, la serie armnica diverge, como podemos ver aqui:
> Sum(1/i,i=1..infinity)=sum(1/i,i=1..infinity);
Sin embargo la serie resultante de sumar los inversos de las potencias de 2 converge:
> Sum(1/2^i,i=0..infinity)=sum(1/2^i,i=0..infinity);
19-03-2015 20:51
Tutorial de MAPLE V
88 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> Sum((-1)^(i-1)*1/i,i=1..infinity)=sum((-1)^(i-1)*1/i,i=1..infinity);
PRODUCTORIOS
De igual forma que los sumatorios, los productorios se evaluan en MAPLE con un comando, product, que si se escribe Product
devuelve la expresion inerte, y que recibe dos parmetros: la expresin y la variacin del contador:
> Product(1/i,i=1..10)=product(1/i,i=1..10);
DERIVADAS
MAPLE es capaz de realizar cualquier clculo con derivadas: derivacin implcita, logartmica, derivada parcial, etc. Para ello utiliza los
comandos diff y D. El comando diff ofrece la forma inerte si lo escribimos Diff:
EL COMANDO diff
Para hallar la derivada de una funcin se utiliza el comando diff, que en su forma Diff da la expresin inerte de la derivada. diff tiene
dos argumentos: la funcin a derivar y la variable respecto de la que se deriva.
> f:=x^2*sin(x):
> Diff(f,x) = diff(f,x);
diff puede aplicarse sobre una expresin, como en el caso anterior, o sobre una funcin:
> f:=x->x^2*sin(x):
> Diff(f(x),x) = diff(f(x),x);
Podemos preguntarle a MAPLE las diferentes reglas de derivacin: se las sabe todas! (incluso con la aplicacin de la regla de la
cadena):
> restart:
19-03-2015 20:51
Tutorial de MAPLE V
89 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> Diff(sin(x),x)=diff(sin(x),x);
> Diff(cos(f(x)),x)=diff(cos(f(x)),x);
> Diff(arctan(f(x)),x)=diff(arctan(f(x)),x);
DERIVADAS PARCIALES
Cuando una funcin tiene varias variables se deriva respecto de una de ellas, considerando constante a las dems:
> f:=(x,y,z)->x^2+4*x*y-y^2*z^3+5:
> Diff(f(x,y,x),y,x) = diff(f(x,y,z),y,x);
DERIVACIN LOGARMICA
Para hacer derivadas de funciones potencial exponenciales recurrimos al logaritmo neperiano.
> y=x^x;
> ln(y(x)) = x*ln(x);
> diff(ln(y(x)),x) = diff(x*ln(x),x);
> diff(y(x),x) = y(x)*diff(x*ln(x),x);
19-03-2015 20:51
Tutorial de MAPLE V
90 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
MAPLE no tiene por qu realizar todo este proceso. MAPLE realiza estas deriadas de forma automtica:
> diff(x^x,x);
FUNCIN DERIVADA
Para obtener la funcin derivada (no la expresin de la derivada) se utiliza el operador D. Este operador nicamente acta sobre
funciones.
> f:=x->x^2;
> F:=D(f);
> plot({f(x),F(x)},x=-3..3,title=`Una funcin y su funcin derivada`);
APLICACIONES DE LA DERIVADA
La derivada se utiliza en multitud de clculos matemticos, como pueden ser los desarrollos de Taylor y en serie de potencias, el
clculo de mximos y mnimos, la determinacin de ciertos lmites de funciones, etc.
19-03-2015 20:51
Tutorial de MAPLE V
91 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> Diff(y(x),x)=diff(y(x),x);
> dp:=rhs(%);
> Diff(y(x),x$2)=diff(y(x),x$2);
> ds:=rhs(%);
Igualamos a cero la primera derivada y resolvemos la ecuacin, as encontramos la abscisa de un punto singular, pero no sabemos si
es un mximo o un mnimo:
> p:=solve(dp=0,x);
> p[1],DS(p[1]);
> p[4],DS(p[4]);
> p[5],DS(p[5]);
REGLA DE L'HPITAL
En 1696, Guillermo Francisco Antonio de L'Hpital (1661-1704) escribi el primer libro de clculo diferencial. Gran parte del contenido
de este libro, incluyendo el mtodo conocido como "regla de L'Hpital", se bas en el trabajo anterior de Juan Bernoulli, uno de los
maestros de L'Hpital.
La regla de L'Hpital se utiliza para calcular el lmite de expresiones f(x)/g(x) donde el numerador f(x) y el denominador g(x) tienden a
0. Se dice que el cociente adopta la forma indeterminada 0/0.
19-03-2015 20:51
Tutorial de MAPLE V
92 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Supongamos que f(x) y g(x) son dos funciones para las que f(a)=g(a)=0. Entonces, para x<>a, tenemos:
> f(x)/g(x)=(f(x)-f(a))/(g(x)-g(a));
Si dividimos arriba y abajo por x-a y hacemos el lmite cuando x->a obtendremos:
> f(x)/g(x)=Diff(f(a),x)/Diff(g(a),x);
Por lo tanto, si existen las derivadas de f y g en a y si la derivada de g en a es distinta de 0, entonces cuando x tiende a a, el cociente
f(x)/g(x) tiende al conciente de sus derivadas. Esta es la conocida como "regla de L'Hpital". Vamos a ver un ejemplo: hallar el lmite
cuando x tiende a 0 de (1-exp(2x))/(x)
> f:=x->1-exp(2*x):g:=x->x:
> Limit(f(x),x=0)=limit(f(x),x=0);Limit(g(x),x=0)=limit(f(x),x=0);
> df:=unapply(diff(f(x),x),x);dg:=unapply(diff(g(x),x),x);
> Limit(df(x),x=0)=limit(df(x),x=0);Limit(dg(x),x=0)=limit(dg(x),x=0);
SERIES DE POTENCIAS
Desarrollar una funcin en serie de potencias supone encontrar un polinomio que aproxime esa funcin tanto como queramos. Esto
puede ser muy til, ya que los polinomios son fciles de operar, deivar, integrar, etc.
19-03-2015 20:51
Tutorial de MAPLE V
93 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
Estas series son un caso particular de las serier geomtricas cuya convergencia est asegurada si |r|<1, donde r es la razn de la
serie. As, por ejemplo, si x es complejo y |x|<1, la serie geomtrica.
> Sum(x^n,n=0..infinity);
Acabamos de encontrar la serie de potencias que aproxima el logaritmo neperiano de x+1, vlido si |x|<=1. Como podemos evaluar la
integral del sumatorio, convergene, como el sumatorio de las integrales, obtendremos la serie con el grado de aproximacin requerido.
Por ejemplo, si n=5:
> ln(x+1)=int(sum((-x)^n,n=0..5),x);p:=unapply(rhs(%),x):
Podemos ver el grado de aproximacin pintando las funciones: en rojo el logaritmo, en azul el polinomio.
> plot({ln(x+1),p(x)},x=-1..1,color=[red,blue]);
19-03-2015 20:51
Tutorial de MAPLE V
94 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
INTEGRALES
MAPLE puede calcular integrales con el comando int. Si escribimos el comando Int obtendremos la expresin interte de la integral.
En el paquete student hay comandos referidos a la integracin. Conviene, por lo tanto, mirar la ayuda:
> ?student
INTEGRAL INDEFINIDA
Podemos integrar expresiones con el comando int dando como primer argumento la expresin, y como segundo argumento la
variable con respecto a la cual integramos:
> int(2*x*sin(x),x);
Para integrar funciones basta con que el primer parmetro sea la funcin a integrar:
> f:=x->x*exp(x);Int(f(x),x)=int(f(x),x);
19-03-2015 20:51
Tutorial de MAPLE V
95 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
MAPLE es capaz de integrar por diferentes mtodos: cambio de variable, por partes y por fracciones simples, aunque para el usuario
el procedimiento no se ve, basta con utilizar el comando int. De todas formas podemos forzar a MAPLE a integrar por partes con el
comando intparts del paquete student, dando como primer parmetro la expresin de la integral y como segundo parmetro la
funcin u (de int(udv) = uv-int(vdu)):
> with(student):intparts(int(x^4*exp(x),x),x^4);restart:
INTEGRAL DEFINIDA
Para evaluar una integral definida tambin se utiliza el comando int, dando como primer parmetro la expresin o la funcin a integrar,
y como segundo argumento el intervalo de variacin de la variable. Recordemos que Int devuelve la expresin inerte:
> Int(x*sin(x),x=0..Pi)=int(x*sin(x),x=0..Pi);
> f:=x->1/sqrt(a^2-x^2):
> Int(f(x),x=0..a)=int(f(x),x=0..a);
19-03-2015 20:51
Tutorial de MAPLE V
96 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> middlebox(f(x),x=0..5,10);Suma2:=evalf(middlesum(f(x),x=0..5,10));
> leftbox(f(x),x=0..5,10);Suma3:=evalf(leftsum(f(x),x=0..5,10));
Podemos ver cmo estos tres valores convergen cuando el nmero de rectngulos crece.
INTEGRALES IMPROPIAS
MAPLE calcula automticamente integrales impropias, sean de la especie que sean, con el comando int.Como primer argumento se
da la expresin a integrar y como segundo argumento el intervalo de integracin, poniendo el infinito como infinity
> f:=x->x/(sqrt(x^4+1)):
> Int(f(x),x=0..infinity)=int(f(x),x=0..infinity);
19-03-2015 20:51
Tutorial de MAPLE V
97 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
> f:=x->exp(-x^2):
> Int(f(x),x=0..infinity)=int(f(x),x=0..infinity);
> Int(f(x),x=-infinity..infinity)=int(f(x),x=-infinity..infinity);
> f:=x->sin(p*x)^2/x^2:
> Int(f(x),x=0..infinity)=int(f(x),x=0..infinity);
> f:=x->exp(-a*x^2):
> assume(a>0):Int(f(x),x=0..infinity)=int(f(x),x=0..infinity);
> assume(a=0):Int(f(x),x=0..infinity)=int(f(x),x=0..infinity);
> assume(a<0):Int(f(x),x=0..infinity)=int(f(x),x=0..infinity);
19-03-2015 20:51
Tutorial de MAPLE V
98 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
INTEGRACIN NUMRICA
El paquete student ofrece mtodos numricos para el clculo aproximado de integrales, como son el mtodo de los trapecios y el
mtodo de Simpson. Los comandos a utilizar son trapezoid y simpson, respectivamente. En ambos casos se pasan tres: la funcin
a integrar, el intervalo de integracin y el nmero de rectngulos (a mayor nmero mejor aproximacin en el clculo).
> f:=x->x/(sin(x)):
> Int(f(x),x=0..Pi/2)=evalf(int(f(x),x=0..Pi/2));
> with(student):evalf(simpson(f(x),x=0.00001..Pi/2,10));restart:
Warning, new definition for D
INTEGRALES MLTIPLES
Podemos hacer integrales mltiples reiterando el comando int.
> f:=(x,y,z)->x^2+y^2+z^2:
> Int(Int(Int(f(x,y,z),z=0..1),y=0..1),x=0..1)=int(int(int(f(x,y,z),z=0..1),y=0..1),x=0..1);
Tambin podemos utilizar los comando Doubleint y Tripleint del paquete student, siendo necesario evaluar luego la salida de estos
comandos:
> with(student):
> f:=(x,y,z)->x*y*z+x^2:
Warning, new definition for D
> Tripleint(f(x,y,z),z=0..1,y=-2..2,x=-1..1);
> %=value(%);
19-03-2015 20:51
Tutorial de MAPLE V
99 de 99
http://www.dmdelrio.es/Maple/MAPLE1.html
OTROS TEMAS
El objetivo de estos apuntes no era el hacer un "manual de referencia" de MAPLE. Lo que se pretenda era mostrar la potencia de
este programa de clculo simblico, sobre todo para estudiantes universitarios. Por ello no se han tratado todos los comandos
posibles, si no nicamente aquellos que podan resultar ms tiles para este tipo de pblico.
MAPLE puede desarrollar tambin clculo de lgica, a travs del paquete logic; operaciones con elementos de conjuntos y
particiones de un nmero, con el paquete combinat; multitud de operaciones geomtricas, con el paquete geometry; cculos
estadsticos, con el paquete stats, etc.
Puede que para futuras revisiones se traten estos temas.
Espero que estos apuntes sean de utilidad. Sin embargo, la mejor recomendacin que se puede dar es tener curiosidad a la hora de
utilizar MAPLE y hacer constante uso de las ayudas que proporciona (en perfecto ingls).
BIBLIOGRAFA
Para la confeccin de estos apuntes se han utilizado, aparte de las propias ayudas de MAPLE, los siguientes libros:
1.-"Clculos matemticos por ordenador con MAPLE V.5", E.Roanes Macas, E.Roanes Lozano. Ed.Rubios1999
2.-"Clculus" vol I y II, Tom M. Apostol. Ed.Revert1986
3.-"Nmeros, grupos y anillos" J.Dorronsoro y E.Hernndez. Ed.Addison-Wesley/UAM1996
4.-"Ejercicios de anlisis" B. de Diego. Ed.Deimos1983
5.-"Ecuaciones diferenciales y problemas con valores en la frontera" W.E.Boyce y R.C.DiPrima. Ed.Limusa1989
6.-"Frmulas y tablas de matemtica aplicada" Serie Schaum. M.R.Spiegel y L.Abellanas. Ed.McGrawHill1988
7.- "Geometra diferencial" Serie Schaum. M.Lipschutz. Ed.McGrawHill1985
8.-"Juegos de ordenador" de A.K.Dewdney de la revista Investigacin y Ciencia, julio 1988
9.-"Electricidad y magnetismo" Berkeley Physics Course-Volumen 2. Ed.Revert1988
19-03-2015 20:51