>

==============================================

Maple V : un Ambiente de Cálculo Científico

==============================================

28/07/99

>

MapleV es una herramienta de computación científica con las siguientes caracteristicas generales:

° Manipulador Simbólico

° Gran colección de Funciones Numéricas

° Capacidad gráfica en 2D y 3D

° Lenguaje de programación Avanzada

° Sintaxis similar al FORTRAN, PASCAL o C

° Hoja de Cálculo y Editor de Texto con salidas en Latex y HTML

Plataformas:

° Maple V está dispononible para DOS, Windows, MacOS, UNIX
° La gran ventaja : una hoja de cálculo puede ser utilizada sobre cualquier plataforma sin necesidad de ser alterada.

>

1 Sintaxis Básica:

1.- Zona de Texto

2.- Zona de comandos ( Cada comando debe finalizar con ; o con : )

3.- Zona de respuestas

> 25! + 13^23;

[Maple Math]

Las líneas con comentarios se colocan a continuación del símbolo #

> c^2 = a^2 + b^2 ; # Teorema de Pitágoras

[Maple Math]

El siguiente comando reinicia la hoja de cálculo

> restart;

>

2 Primeros Pasos

Maple V hace cálculos tanto con numeros enteros como en Punto Flotante

> 15 + 5^20;

[Maple Math]

> 15. + 5^20;

[Maple Math]

Pero el énfasis radica en los cálculos exáctos

> cos(Pi/12)^2 + ln(2/3+5)/7;

[Maple Math]

> evalf(%); # EVALuate using Floating-point

[Maple Math]

Con % se puede utilizar la última salida de Maple V como entrada en el comando siguiente.

Existe un orden de precedencia para los operadores: + - * / ^

> 1+2*3^2;

[Maple Math]

> (1+2)*3^2;

[Maple Math]

Por lo tanto, su uso descuidado produce errores

> 2^3^5;

`^` unexpected

> 2^-5;

`-` unexpected

Constantes numéricas y letras griegas. MapleV hace distinción entre mayúsculas y minúsculas

> evalf(Pi);

[Maple Math]

> evalf(pi);

[Maple Math]

La precisión de su evaluación puede ser controlada:

> sqrt( 68 ); sqrt( 68. ); evalf(sqrt(68),50 );

[Maple Math]

[Maple Math]

[Maple Math]

Se puede redondear a una fracción

> convert(%,fraction);

[Maple Math]

> restart;

Para asignar un objeto a una variable se hace con el operador :=

> f := arctan( (2*x^2-1)/(2*x^2+1) );

[Maple Math]

> f;

[Maple Math]

Mientras que el simbolo = , se utliza para mostrar una relación entre variables

> h = x + y;

[Maple Math]

> h;

[Maple Math]

Por lo tanto, existen nombres que ya estan definidos

> abs:= f*sin(x);

Error, attempting to assign to `abs` which is protected

abs es la función valor absoluto

> abs(x-a);

[Maple Math]

> restart;

3 Cálculo Elemental

Se definen, se evalúan y se derivan funciones abstractas

> f:= (x,y) -> exp(x^2+y^2)/(x-y);

[Maple Math]

> f(a^(1/2),b^(1/2));

[Maple Math]

> f(2,3);

[Maple Math]

> evalf(%);

[Maple Math]

> diff( f(x,y) , x) + diff( f(x,y) , y) ;

[Maple Math]

Conserva las expresiones para la derivada interna

> f:= (t,r) -> g(c*t+r) + h(c*t-r);

[Maple Math]

> diff(f(t,r),t$3);

[Maple Math]

Para funciones compuestas se utiliza el operador @ y para derivar el operador D

> (cos@ln@sqrt)(x);

[Maple Math]

> D(cos@ln@sqrt)(x);

[Maple Math]

> diff(cos(ln(sqrt(x))),x);

[Maple Math]

Límites:

> f:= (x) -> 1/(1+r/x)^x;

[Maple Math]

> Limit(f(x),x=infinity) = limit(f(x), x=infinity);

[Maple Math]

Las mayúsculas a la izquierda ( Limit ) proveen una representación del Límite. Las minúsculas ( limit ) su ejecución.

También podemos calcular límites a la izquierda y a la derecha.

> g:= (x)-> tan(x + Pi) ;

[Maple Math]

> Limit(g(x), x=Pi/2,right)=limit(g(x),x=Pi/2,right);

[Maple Math]

Sumatorias:

> Sum((1+i)/i^2, i = 1..n) ;

[Maple Math]

> value(%);

[Maple Math]

> ?gamma

> ?Psi

Integración:

> g:=(x)-> 1/( x*( b*x+c*x^2)^(1/2) );

[Maple Math]

> Int( g(x) , x ): % = value(%);

[Maple Math]

Evalua integrales definidas tanto analítica como numéricamente

> f:=(x)-> exp(Pi*x);

[Maple Math]

> Int( f(x) , x=1..3): %= value(%);

[Maple Math]

> Int( f(x) , x=1..3 ): %= evalf(%);

[Maple Math]

Evalua integrales impropias y las funciones que de ella emergen

> h:= (t)-> exp(-t)*t^(z-1);

[Maple Math]

> Int(h(t),t=0..infinity): %= value(%);

Definite integration: Can't determine if the integral is convergent.

Need to know the sign of --> z

Will now try indefinite integration and then take limits.

[Maple Math]

> assume(z>0):

> Int(h(t),t=0..infinity): %= value(%);

[Maple Math]

> GAMMA(0.5); # Funcion Gamma

[Maple Math]

> infolevel[int]:=5:

> Int(x/(x^2+2*x+2),x): %= value(%);

int/indef1:   first-stage indefinite integration

int/ratpoly:   rational function integration

[Maple Math]

> diff(rhs(%),x);# Chequeamos...

[Maple Math]

> simplify(%);

[Maple Math]

> restart;

4 Resolución de sistemas de ecuaciones algebraicas

Resuelve sistemas de ecuaciones algebráicas. El resultado queda almacenado en una lista, y luego hay que asignar esos valores al "nombre" de las variables correspondientes para seguir operando.

> ecu1:= R[1]*i[1]+R[3]*i[3]+R[4]*i[4]-V[1]=0;

[Maple Math]

> ecu2:= R[2]*i[2]-V[2]-R[3]*i[3]=0;

[Maple Math]

> ecu3:= i[1]-i[2]-i[3]= 0;

[Maple Math]

> solve({ecu1,ecu2,ecu3},{i[1],i[2],i[3]} ); assign(%);

[Maple Math]
[Maple Math]

> i[1],i[2],i[3];

[Maple Math]
[Maple Math]

Ahora al evaluar x, y, z en las ecuaciones ecu1 ... ecu3

> ecu1; ecu2; ecu3;

[Maple Math]
[Maple Math]

[Maple Math]

[Maple Math]
[Maple Math]

> simplify(ecu1); simplify(ecu2); simplify(ecu3);

[Maple Math]

[Maple Math]

[Maple Math]

Seguidamente procedemos a "limpiar" el contenido de las variables para poder utilizarlas en otras expresiones.

> i[1]:='i[1]'; i[2]:='i[2]'; i[3]:='i[3]';

[Maple Math]

[Maple Math]

[Maple Math]

Soluciones aproximadas para encontrar las raíces de un polinomio

> p:= x^3 - 3*x^2 = 17*x - 51;

[Maple Math]

> sol:=solve(p,x);

[Maple Math]

> evalf(%);

[Maple Math]

> q:= x^5 +3*x^4 - 6*x^3 + x^2 + 12*x - 14=0;

[Maple Math]

> solve(q , x);

[Maple Math]

> allvalues(%);# evalua expresiones con RootOf

[Maple Math]
[Maple Math]

> fsolve(q,x); # fsolve utiliza punto-flotante

[Maple Math]

> restart:

5 Ecuaciones Diferenciales

> ED1:=diff(y(x),x)+y(x)/x=alpha/(x*y(x)^2);

[Maple Math]

> dsolve(ED1,y(x));

[Maple Math]
[Maple Math]

> sols:=dsolve({ED1,y(1)=5},y(x));

[Maple Math]

Resuelve ecuaciones diferenciales, con y sin valores iniciales por varios métodos. Series . . .

> dsolve({ED1,y(1)=5},y(x),series);

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

Sistemas de Ecuaciones Difereciales. Mediante transformaciones de Laplace. . .

> sys:= diff(y(x),x)=z(x) , diff(z(x),x)=y(x);

[Maple Math]

> fcns:={y(x),z(x)};

[Maple Math]

> s:=dsolve({sys,y(0)=0,z(0)=1},fcns,method=laplace);

[Maple Math]

> s[1]; # Selecciono una de las soluciones

[Maple Math]

Puedo tomar únicamnte el lado derecho de la solución para una posterior manipulación

> 2*( rhs(s[1] )); # right hand sides

[Maple Math]

Ecuaciones diferenciales famosas: Bessel

> ED2:=x^2*diff(y(x),x$2)+x*diff(y(x),x)+(x^2-mu)*y(x)=0;

[Maple Math]

> dsolve(ED2,y(x)); assign(%);

[Maple Math]

> simplify(ED2);

[Maple Math]

Se pueden hacer graficas para un conjunto de condiciones iniciales

> y:=subs(mu=10, _C1=1/2, _C2=1/3 ,y(x));

[Maple Math]

> plot(y, x=0..20,-2..1 ,title=`y(x)`);

[Maple Plot]

Soluciones Numéricas:

> de1 :={diff(g(t),t$2)=-f(t)-g(t),diff(f(t),t$2)= diff(g(t),t)+f(t)};

[Maple Math]

> init1 := {g(0)=1, D(g)(0)=0, f(0)=0, D(f)(0)=1}:

> F := dsolve(de1 union init1, {g(t),f(t)},type=numeric);

[Maple Math]

> F(0.0);

[Maple Math]

> F := dsolve(de1 union init1, {g(t),f(t)},type=numeric, method=mgear,
value=array([0,0.6,1.1,1.5,2.3,2.5]));

[Maple Math]

> with(plots):

> odeplot(F,[t,g(t)],1..10,labels=[t,g]);

[Maple Plot]

> odeplot(F,[t,f(t)],1..10,labels=[t,f]);

[Maple Plot]

> with(DEtools):

> S:=cos(xi)*diff(h(xi),xi$3)-diff(h(xi),xi$2)+Pi*diff(h(xi),xi)=h(xi)-xi;

[Maple Math]

> DEplot(S,h(xi),xi=-2.5..1.4,[[h(0)=1,D(h)(0)=2,(D@@2)(h)(0)=1]],h=-4..5,stepsize=.05);

[Maple Plot]

> restart;

6 Formatos de Salidas

MapleV permite pasar las expresiones a LATEX

> alias(f=f(x,y,z)):# Otra manera de definir funciones

> f:=sin(sqrt(x^2+y^2+z^2)/(y^2+z^2));

[Maple Math]

> Diff(f,x):%= diff(f,x);

[Maple Math]

> latex(%);

{\frac {\partial }{\partial x}}\sin({\frac {\sqrt {{x}^{2}+{y}^{2}+{z}

^{2}}}{{y}^{2}+{z}^{2}}})=\cos({\frac {\sqrt {{x}^{2}+{y}^{2}+{z}^{2}}

}{{y}^{2}+{z}^{2}}})x{\frac {1}{\sqrt {{x}^{2}+{y}^{2}+{z}^{2}}}}

\left ({y}^{2}+{z}^{2}\right )^{-1}

> latex(%,`c:/usuarios/hector/archi1.txt`);

...o en código FORTRAN (en precisión doble y optimizado si el caso)

> h:= Pi*f/2 + 3*diff(f,x)+ 5*diff(f,y) + 4*diff(f,z);

[Maple Math]
[Maple Math]
[Maple Math]

> precision := double:

> fortran([fun=h],optimized);

      t1 = x**2

      t2 = y**2

      t3 = z**2

      t5 = dsqrt(t1+t2+t3)

      t6 = t2+t3

      t7 = 1.D0/t6

      t8 = t5*t7

      t9 = dsin(t8)

      t12 = dcos(t8)

      t13 = 1.D0/t5

      t18 = t13*t7

      t20 = t6**2

      t22 = t5/t20

      fun = 0.3141592653589793D1*t9/2.D0+3.D0*t12*t13*t7*x+5.D0*t12*(t18

     #*y-2.D0*t22*y)+4.D0*t12*(t18*z-2.D0*t22*z)

> fortran([fun=h],optimized,filename=`c:/usuarios/hector/archi2.txt`);

> restart:

7 Manipulación algebraica

Maple V , automáticamente evalua y simplifica expresiones

> p:=(a+b)^3*(a+b)^2;

[Maple Math]

> expand(p);

[Maple Math]

> factor(p);

[Maple Math]

> t:=cos(x)^5+sin(x)^4+2*cos(x)^2-2*sin(x)^2-cos(2*x);

[Maple Math]

> simplify(t);

[Maple Math]

> r:=alpha*(x^3-y^3)/(beta*(x^2+x-y-y^2));

[Maple Math]

> normal(r);

[Maple Math]

> n:=numer(r); d:=denom(r);

[Maple Math]

[Maple Math]

> n*d*delta;

[Maple Math]

> expand(%);

[Maple Math]
[Maple Math]

> collect(%,x);

[Maple Math]
[Maple Math]

> coeff(%,x^3);

[Maple Math]

> factor(%);

[Maple Math]

Puede convertir muchos tipos de expresiones en otras más especificas

> expr1:=(a*x^2+b)/(x*(-3*x^2-x+4));

[Maple Math]

> expr2:=convert(expr1,parfrac,x);

[Maple Math]

> expr3:=sin(x)*cos(x);

[Maple Math]

> expr4:=convert(%,exp);

[Maple Math]

Se pueden aislar los operandos de las expresiones

> op(3,expr2); op(3,expr4);

[Maple Math]

[Maple Math]

> op(3,expr2)*op(3,expr4);

[Maple Math]

> simplify(%);

[Maple Math]

No siempre todo funciona de la manera correcta. La siguiente intregal es trivial, pero veamos lo que sucede con Maple V

> Int(2*x*(x^2+1)^24,x);

[Maple Math]

> value(%);

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

> factor(%);

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

> factor(%+1/25);

[Maple Math]

> restart;

8 Maple V como lenguaje de programación

> isprime(37);

[Maple Math]

> isprime(3778);

[Maple Math]

> for i to 8 do

> n := 2^(2*i+1)-1;

> if isprime(n)

> then print( n, `Es primo !`);

> else print( n, `No es primo`)

> fi;

> od;

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

>

> f := proc(x,y);

> 2*x-2*y;

> end;

[Maple Math]

> f(2,5); f(w,z+1);

[Maple Math]

[Maple Math]

>

> h := proc(x);

> if x > 5 then x^2 else 5-2*x fi;

> end;

[Maple Math]

> h(-2); h(20);

[Maple Math]

[Maple Math]

> restart:

9 Bibliotecas

No todos los comandos son cargados en la memoria cuando Maple V es iniciado. Sólo los comandos estandard son cargados automáticamente

> P:= x^5-24*x^4+85*x^3-108*x^2+166*x-120 ;

[Maple Math]

> factor(P);

[Maple Math]

> realroot(P);

[Maple Math]

> readlib(realroot):

> realroot(P,1);

[Maple Math]

Las Bibliotecas de Maple V :

- La biblioteca estandard

- La biblioteca de misceláneos

- Paquetes

- La biblioteca de programas desarrollados por usuarios (Share Library)

> ?index,library

> ?index,packages

> ?index,libmisc

> restart:

10 Graficos y Visualización

Una mayor capacidad grafica es obtenida con el paquete plots

> with(plots);

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

Graficos básicos en 2 y 3 Dimensiones:

> f:=x-> exp(-x^2)*sin(Pi*x^3);

[Maple Math]

> plot( f(x),x=-2..2,title=`f(x)`);

[Maple Plot]

>

> g:=(x,y)-> f(x)*f(y);

[Maple Math]

> plot3d(g(x,y),x=-1..1,y=-1..1);

[Maple Plot]

>

> h:=(x) -> cos(sqrt(x^2+3*y^2))/(1+x^2/8);

[Maple Math]

> j:= (x) -> 1/3 -(2*x^2+y^2)/19;

[Maple Math]

> plot3d({h(x),j(x)},x=-3..3,y=-3..3,title=`Interseccion de h(x) y j(x)`);

[Maple Plot]

Mapas Topológicos

> with(plots):

> contourplot(sin(x*y),x=-10..10,y=-10..10);

[Maple Plot]

Graficando Campos Vectoriales :

> phi[1]:=(x,y)->ln((x^2+2*x+1+y^2)^(1/2));

[Maple Math]

> phi[2]:=(x,y)->-ln((x^2-2*x+1+y^2)^(1/2));

[Maple Math]

> fieldplot([phi[1](x,y),phi[2](x,y)],x=-2..2,y=-2..2,arrows=SLIM,grid=[8,8]);

[Maple Plot]

> gradplot((-phi[1](x,y)-phi[2](x,y)),x=-2..2,y=-1..1,arrows=SLIM,grid=[10,10]);

[Maple Plot]

Animaciones:

> animate3d(cos(sqrt(t*x^2+t*y^2)),x=-5..5,y=-5..5,t=1..8);

[Maple Plot]

Con un poco más de complejidad

> tubeplot({[10*cos(t),10*sin(t),0,t=0..2*Pi,radius=2+cos(7*t),numpoints=120,tubepoint=24],[0,10+5*cos(t),5*sin(t),t=0..2*Pi,radius=1.5,numpoint=50,tubepoint=18]});

[Maple Plot]

>

11 Procesos en UNIX

Es posible utilizar Maple V en UNIX por medio del comado: maple

nodo5%> maple

| \ ^ / | Maple V Release 3 (IBM De Venezuela)
._| \ | | / |_. Copyright (c) 1981-1994 by Waterloo Maple Software
\ MAPLE / University of Waterloo. All rights reserved.
<____ ____ > Waterloo Maple Software.
| Type ? for help.

>

> evalf(sqrt(Pi),100);


1.772453850905516027298167483341145182797549456122387\
12821380778985291128459132181374950656738544665

>

> Int( tan(x), x ) : "= value(");

/
|
| tan(x) dx = - ln(cos(x))
|
/

>

Maple V sobre UNIX utiliza los archivos de entradas y salidas estandard para leer e imprimir información: < , > , |

nodo5%> maple < archimap

Maple V
ejecutará todos los comandos que se encuentran en el archivo archimap.

>

nodo5%> maple < archimap > archimap.out

Maple V
ejecutará todos los comandos que se encuentran en el archivo archimap y colocará los resultados en el archivo llamado archimap.out

>

nodo5%> maple < archimap | more

Aqui todos los comandos del archivo serán ejecutados para luego ser enviados al terminal

>

Maple V puede ser detenido temporalmente con el comando Control_Z (^Z), de manera que para colocar procesos en "background" se procede de la manera usual:

nodo5%> maple -q < archimap > archimap.out
^Z
Suspended

nodo5%> bg
[2] maple -q < archimap > archimap.out &

nodo5%>

>

Programa Mint:

Es un programa que permite verificar si un archivo fuente de Maple V tiene errores de sintáxis

nodo5%> mint < archimap

>

12 Aplicaciones

Algebra Lineal

> restart:

> with(linalg):# Leemos el paquete de A.L.

Warning, new definition for norm

Warning, new definition for trace

>

Creando Matrices y Vectores

> A:=array( [ [a, b, c], [d, e, f ], [g, h, i ] ] );

[Maple Math]

> B:=array(antisymmetric,1..3,1..3):

> B[1,2]:=x+a; B[1,3]:=y+b; B[2,3]:=z+c;

[Maple Math]

[Maple Math]

[Maple Math]

> print(B);

[Maple Math]

> v:= vector([1,2,3] );

[Maple Math]

Se puede leer datos de un archivo e introducirlos en una matriz

> readlib(readdata): # Libreria para leer datos

> mat:=matrix(readdata(`c:/usuarios/hector/datos`,3)):

> mat[1,3]; mat[3,3];

[Maple Math]

[Maple Math]

> C:=matrix(4,4, (i,j) -> i^(j-1));

[Maple Math]

> M:=array(antisymmetric,1..3,1..3):

> entermatrix(M);

enter element 1,2 > 2*alpha;

enter element 1,3 > 2*beta;

enter element 2,3 > 2*gamma:

[Maple Math]

> N:=diag(mu,nu,lambda);

[Maple Math]

> G:=diag(M,N);

[Maple Math]

>

La función "solve" para resolver un sistema de ecuaciones:

> ec1:= (c^2-1)*x+(c-1)*y = (1-c)^2 ;

[Maple Math]

> ec2:=(c-1)*x+(c^2-1)*y=c-1;

[Maple Math]

> sis:=({ec1,ec2}):

> solve(sis,{x,y});

[Maple Math]

>

Algebra de matrices para resolver el sistema de ecuaciones

> H:=genmatrix(sis,[x,y],'flag');

[Maple Math]

> A:=genmatrix(sis,[x,y]);

[Maple Math]

> B:=delcols(H,1..2);

[Maple Math]

La ecuacion A X = B se puede resolver con:

> sol:= linsolve(A,B);

[Maple Math]

> x:=sol[1,1]; y:=sol[2,1];

[Maple Math]

[Maple Math]

> simplify(ec1); simplify(ec2);

[Maple Math]

[Maple Math]

> x:='x': y:='y': # Limpio las variables x y

>

Operaciones con matrices

> S:=evalm(M+N);

[Maple Math]

> evalm(3*M + 5/3*N);

[Maple Math]

> evalm(M*N);

Error, (in evalm/evaluate) use the &* operator for matrix/vector multiplication

> evalm(M &* N);

[Maple Math]

> evalm(N &* M);

[Maple Math]

> V:= vector([x,y,z]);

[Maple Math]

> evalm(M &* V);

[Maple Math]

> S1:= evalm( (M)^(3) );

[Maple Math]

> S1:= map(factor,S1);

[Maple Math]

> print(S);

[Maple Math]

> zeta:=inverse(S);

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

> map(simplify,evalm(S &* zeta));

[Maple Math]

> trace(zeta);

[Maple Math]
[Maple Math]

> det(zeta);

[Maple Math]

> normal( trace(zeta) / det(zeta) );

[Maple Math]

>

Cálculo de Autovectores y Autovalores

> K:=matrix([[sqrt(2),alpha,beta],[alpha,sqrt(2),alpha],[beta,alpha,sqrt(2)]]);

[Maple Math]

> pc:=charpoly(K, lambda); # Polinomio Caracteristico

[Maple Math]

> factor(%);

[Maple Math]

> solve(pc=0,lambda);

[Maple Math]

> eigenvals(K);

[Maple Math]

> eigenvects(K);

[Maple Math]
[Maple Math]
[Maple Math]

El resultado es una lista de la forma:

[ e_i, m_i, { v[1,i],... v[n_i,i] } ]

donde:

e_i = son los autovalores
m_i = multiplicidad
{v[1,i], ..., v[n_i,i]} = conjunto de vectores bases

> print(K);

[Maple Math]

> K1:=map(evalf,K);

[Maple Math]

> eigenvects(K1);

Error, (in linalg/evalf) matrix entries must all evaluate to float

> K2:=map(convert, K1 ,rational);

[Maple Math]

> eigenvects(K2);

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

> map(evalf,[%]);

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

>

Solución de B x = v mediante Gauss-Jordan

> B:=matrix(3,3,[19,-50,88, 53,85,-49, 78, 17, 72] );

[Maple Math]

> v1:= vector( [3 ,5,-2] ):

> v2:= vector( [4 ,-5,9] ):

> v3:= vector( [21 ,4,7] ):

> augment(B,v1,v2,v3 );

[Maple Math]

Construimos la matriz aumentada, e invocamos la solución

> gaussjord(%);

[Maple Math]

> leastsqrs(B, v1); leastsqrs(B, v2);leastsqrs(B, v3);

[Maple Math]

[Maple Math]

[Maple Math]

Funciones test

> beta := sqrt(2)*sqrt(5-sqrt(5));

[Maple Math]

> A:= matrix([[(sqrt(5)+beta +1)/4, -beta/2 ],[ beta/4 ,( sqrt(5) - beta+1)/4]]);

[Maple Math]

> B:=matrix( [[(sqrt(5)+1)/4,-beta/4 ],[ beta/4,(sqrt(5)+1)/4 ] ]);

[Maple Math]

Queremos verificar si A y B son similares, es decir, si existe una matriz T, no singular, de manera que

B = T A T^(-1).

> issimilar(A,B,'T');

[Maple Math]

> map(simplify,T);

[Maple Math]

>

Cálculo Vectorial.

Gradiente

> f:= 4*x*y*z - 5*y*x^3;

[Maple Math]

> gradf:= grad(f,[x,y,z]);

[Maple Math]

Vectores

> v:=vector([4*x-3*x^3*y,7*x*y*z^2+5*y^3,4*x^2*y^2+2*x]);

[Maple Math]

Rotores

> curlv:= curl(v,[x,y,z] );

[Maple Math]

Jacobianos

> jacobian(%,[x,y,z]);

[Maple Math]

Laplacianos

> laplacf:= laplacian(f,[x,y,z] );

[Maple Math]

Evaluación boleana de expresiones

> evalb(laplacf = diverge(gradf,[x,y,z]));

[Maple Math]

Diferentes tipos de coordenadas

> f := r*sin(theta)*z^2: v := [r, theta, z]:

> gr:=grad(f, v, coords=cylindrical);

[Maple Math]

> diverge(gr,v, coords=spherical);

[Maple Math]

> laph= laplacian(f,v);

[Maple Math]

> laph= laplacian(f,v,coords=bipolarcylindrical);

[Maple Math]

> ?coords

Lectura de datos de un archivo para una posterior visualizacion

> Mdat:=matrix(readdata(`c:/usuarios/hector/setdatos`,5));

[Maple Math]

> x:=col(Mdat,3);

[Maple Math]

> y1:=col(Mdat,4); y2:=col(Mdat,5);

[Maple Math]

[Maple Math]

> lny1:=map(ln,y1); lny2:=map(ln,y2);

[Maple Math]
[Maple Math]
[Maple Math]

[Maple Math]
[Maple Math]
[Maple Math]

> numrows:=rowdim(Mdat);

[Maple Math]

Podemos hacer simples graficos de x vs y

> set1:= [seq( [x[i] , y1[i]] , i=1..numrows)]:

> set2:= [seq( [x[i] , y2[i]] , i=1..numrows)]:

> p1:=plot(set1,0..1,style=point,labels=[x,y],color=red):

> p2:=plot(set2,0..1,style=point,labels=[x,y],color=green):

> datos:=plots[display]({p1,p2}):

> datos;

[Maple Plot]

Se quiere graficar de Q = x*ln(y1) + (1-x)*ln(y2) , lo siguiente: Q vs x

> Q:=[seq(x[i]*lny1[i]+(1-x[i])*lny2[i], i=1..numrows)]:

> Qsx:=[seq([ x[i], Q[i] ] , i=1..numrows)]:

> Qx:= plot({Qsx}, 0..1,0..0.1, style=point):

> Qfig:=plots[display]( {Qx } ):

> Qfig;

[Maple Plot]

>

>

Astronomía

Datos Meteorológicos

Display of Viking Lander 2 meteorological data

Sols 51 to 53 (Summer 1976)

for Release 5

Maple procedures written by
Alexander F. Walz

alexander.f.walz@t-online.de
July 10, 1999

> restart:

> mean := proc(l::listlist)
local vals;
vals := op(map(x -> op(2, x), l));
(min(vals)+max(vals))/2
end:

> adapt := proc(l::listlist, scale::numeric, f::numeric)
op(map(x -> [op(1, x), op(2, x) * scale - f], l))
end:

> filein := `c:/usuarios/hector/segment1.htm`:

> data := NULL:

> alt := readline(filein):

> tbl := table([]):

> i := 0:

> while alt <> 0 do
if not(member(substring(convert(alt, name), 1 .. 1), {`C`, `<`})) then
i := i + 1:
tbl[i] := sscanf(alt, `%*f %*f %f %f %d %f %*f %f`)
fi:
alt := readline(filein):
od:

> data := [seq(tbl[j], j=1 .. i)]: i := 'i': j := 'j':

> temp := map(x -> [op(1, x), op(5, x)], data):

> p1 := plot(temp, sol=51 .. 53, `deg C`=-90 .. -10, axes=frame):

> wind := map(x -> [op(1, x), op(2, x)], data):

> p2 := plot([adapt(wind, -mean(temp)/mean(wind), -1.9*mean(temp) )],
sol=51 .. 53, axes=frame, color=navy, linestyle=3):

>

> plots[display](p1, p2, labels=[`sol`, `deg C`],
title=`Viking Lander 2 meteorological data Sols 51 to 53`);

[Maple Plot]

>

Fractales

Nombre Fórmula de iteración Inicialización de z Inicialización de c
Julia zn+1 := zn + c z0 := x + I*y c = a + I*b

http://SunSite.informatik.rwth-aachen.de/maple/frame03.htm

Julia sets, written by John Oprea. oprea@math.csuohio.edu

> restart; with(plots):

> julia := proc(c,x, y)
local z, m;
z := evalf(x+y*I);
for m from 0 to 30 while abs(z) < 3 do
z := z^2 + c
od;
m
end:

> J := proc(d)
global phonyvar;
phonyvar := d;
(x, y) -> julia(phonyvar, x, y)
end:

> plot3d(0, -2 .. 2, -1.3 ..1.3, style=patchnogrid,
orientation=[-90,0], grid=[250, 250],
scaling=constrained, color=J(-1.25));

[Maple Plot]

>

>

============================================