Escolar Documentos
Profissional Documentos
Cultura Documentos
Computacin Cientfica y Tcnica con Maple: Uso Bsico de Maple. Versin 1.2. Febrero 2012 by Francisco
Palacios-Quionero is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported
License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/3.0/ or send a letter
to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
F. Palacios 2012
Febrero, 2012
Contenido
1. Lnea de comandos, nombres, ayuda
2. Clculo simblico
3. Clculo exacto
4. Clculo aproximado
5. Evaluacin de expresiones
6. Mens de contexto
7. Grficos
8. Derivadas
9. Integrales
10. Ecuaciones
11. Ecuaciones Diferenciales Ordinarias (EDOs)
12. Resolucin simblica de EDOs
13. Resolucin grfica de EDOS: campos de pendientes
14. Resolucin numrica de EDOs
15. Maple vs Matlab
> ad1
F. Palacios 2012
a := 1
> a CA
1.5
Para suprimir la presentacin de resultados, terminamos la lnea de comandos con dos puntos (:)
> c d a CA :
> c
1.5
Maple puede manejar nombres no asignados, en ese caso se consideran objetos algebraicos
> d
d
> 1 Cd
1 Cd
> e d 1 Cd
e := 1 Cd 2
Podemos aadir comentarios a la lnea de comandos con el carcter #
> expand e # el comando expand( ) fuerza la evaluacin de los productos
1 C2 d Cd2
Si escribimos una expresin entre comillas simples, se evita su evaluacin
> c d'A Ca'
c := a CA
> c
1.5
La evaluacin de un nombre no asignado, devuelve el propio nombre
> a
1
> f
f
Para limpiar un nombre, escribimos nombre:='nombre' , por ejemplo
> c
1.5
> c d'c';
c := c
> c
c
El comando restart limpia todos los nombres
> b
3
> e
1 Cd 2
> restart
> b
Pgina 2
F. Palacios 2012
b
> e
e
Podemos usar nombres de letras griegas como nombres de objetos, Maple los presenta usando los
smbolos del alfabeto griego. Observa que Maple interpreta un espacio blanco como una
multiplicacin implcita.
> alpha d 3;
:= 3
> c d A cos phi t
c := A cos t
> d d A sin t C4
d := A sin t C4
Ayuda. Podemos acceder al sistema de ayuda presionando [Ctrl]+[F1]
Grupos de ejecucin. Es posible escribir varios comandos en la misma lnea. En ese caso,
tenemos que separar los diferentes comandos usando un punto y coma (;).
2
> 1 C1; a d 3; expand b Ca
2
a := 3
2
b C6 b C9
Pgina 3
F. Palacios 2012
Para obtener una presentacin ms clara y estructurada, podemos romper la lnea de comandos (sin
ejecutar el cdigo) pulsando la combinacin de teclas [SHIFT]+[INTRO].
Para entrar los subndices podemos usar las notaciones: e[0] e_0
> e0 d 14;
v 0 d 2;
a dK0.5;
t d 3;
1
ef d e0 Cv0$t C $a$t2
2
e0 := 14
v0 := 2
a := K0.5
t := 3
ef := 17.75000000
2. Clculo simblico
Volver a la tabla de contenidos
Maple usa los nombres "limpios" (no asignados) como objetos algebraicos
> x d 1; y d 2
x := 1
y := 2
> x Cy
3
> x d'x'; y d'y'
x := x
y := y
> p d x Cy
p := x Cy 3
El comando expand( ) fuerza la evaluacin de todos los productos
> expand p
x3 C3 x2 y C3 x y2 Cy3
El comando factor( ) factorizar expresiones algebraicas, y el comando simplify( ) realiza
simplificaciones
2
> q d x C3 x C2;
q := x2 C3 x C2
> factor q
x C2 x C1
2
x K4
> rd 3
x K6 x2 C11 x K6
r :=
x2 K4
x3 K6 x2 C11 x K6
Pgina 4
F. Palacios 2012
> simplify r
x C2
x K4 x C3
2
> factor r
x C2
x K1 x K3
Los comandos numer( ) y denom( ) extraen el numerador y el denominador de una fraccin.
Para ver ms claramente la simplificacin realizada sobre la funcin racional r, podemos factorizar
por separado el numerador y el denominador
> n d numer r
n := x2 K4
> d d denom r
d := x3 K6 x2 C11 x K6
> factor n
x K2 x C2
> factor d
x K1 x K2 x K3
El comando simplify( ) tambin funciona con expresiones trigonomtricas
> a d sin phi ;
b d cos phi ;
c d a2 Cb2;
a := sin
b := cos
c := sin
Ccos
> c1 d simplify c
c1 := 1
El comando convert(expression , parfrac) calcula la descomposicin en fracciones simples de una
funcin racional (cociente de polinomios)
> r
2
x K4
x3 K6 x2 C11 x K6
> rp d convert r, parfrac
5
3
rp :=
K
2 x K3
2 x K1
En el siguient ejemplo, obtenemos la descomposicin en fracciones simples de una funcin racional
impropia en grado (grado del numerador R grado del denominador)
> r1 d x2 r
x2 x2 K4
r1 := 3
x K6 x2 C11 x K6
> r1p d convert r1, parfrac
Pgina 5
r1p := x C6 C
F. Palacios 2012
45
3
K
2 x K3
2 x K1
3. Clculo exacto
Volver a la tabla de contenidos
Maple opera los nmeros exactos sin redondear
> ad3
1
2
a :=
> b d 1 Ca
b := 1 C 3
> expand b
4 C2 3
Los nmeros enteros son nmeros exactos, Maple puede manipular nmeros enteros de tamao
arbitrario (dentro de las posibilidades del ordenador)
> p d 2325 C236 C321
p := 11045767571919545466173891589519882
El comando ifactor( ) obtiene la descomposicin en factores primos
> ifactor 5525432216
2 3 61 349 32443
> ifactor p
2 3 15532109237 314098893699477827 377353
Maple simplifica fracciones automticamente
12
> ad
32
3
a :=
8
tambin opera fracciones de forma exacta, reduciendo a comn denominador
2
Ca
> bd
3
25
b :=
24
La evaluacin de una funcin para un argumento exacto, da como resulado un nmero exacto
Pi
> a d sin
4
1
a :=
2
2
Pi
> b d tan
3
b := 3
> c d a Cb
Pgina 6
c :=
> expand c
1
2
3 C
7
C 3
2
Un ejemplo trigonomtrico
> a d sin 3 ;
b d cos 3 ;
c d a Cb 2;
c1 d expand c ;
simplify c1 ;
F. Palacios 2012
a := sin 3
b := cos 3
c := cos 3 Csin 3
c1 := cos 3
El nmero se escribe Pi
Pi
> cos
4
1
2
4. Clculo aproximado
Volver a la tabla de contenidos
Los nmeros de punto flotante (floats) permiten aproximar el valor de nmeros exactos usando una
cantidad limitada de dgitos
12.34
> ad
4.56
a := 2.706140351
Operaciones aritmticas de nmeros exactos y aproximados suelen producir resultados aproximados
2
> b daC
7
b := 2.991854637
El comando evalf( ) proporciona aproximaciones float de nmeros exactos
Pgina 7
F. Palacios 2012
> a d sqrt 2
a :=
> af d evalf a
af := 1.414213562
En clculos que contienen nmeros exactos y aproximados, algunas veces es necesarios usar el
comando evalf( ) para obtener una evaluacin float completa
7
> ad
Csqrt 2 C1.23
5
a := 2.630000000 C 2
> af d evalf a
af := 4.044213562
Funciones aplicadas sobre nmeros aproximados producen resultados aproximados
> b d exp 2
b := e2
> bf d evalf b
bf := 7.389056099
> exp 2.
7.389056099
> cos 0.2
0.9800665778
Por defecto, Maple realiza evaluaciones float con 10 dgitos.
El comando evalf(valor exacto,n) calcula una evaluacin float con n dgitos
> evalf Pi
3.141592654
> evalf Pi, 150
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089\
9862803482534211706798214808651328230664709384460955058223172535940813
La variable de sistema Digits establece el nmero de dgitos empleado por Maple para presentar y
calcular los nmeros aproximados.
Por defecto, el valor de Digits is 10.
Podemos reasignar el valor de la variable Digits.
> cos 2.
K0.4161468365
> Digits d 20
Digits := 20
> cos 2.
K0.41614683654714238700
!!! Todas las operaciones con floats se realizan usando el nmero de
dgitos indicado en la variable de sistema Digits.
Observa que Digits empieza por mayscula, la asignacin digits:=
16 no produce ningn efecto en el nmero de dgitos
Pgina 8
F. Palacios 2012
10
> cos 2.
K0.4161468365
5. Evaluacin de expresiones
Volver a la tabla de contenidos
El comando eval(expression, var=valor) permite evaluar expresiones.
!!! Observa que para indicar el valor a sustituir se usa el signo = (no
se trata de una asignacin)
> restart
> f d x2 Ccos x
f := x2 Ccos x
> vf d eval f, x = 2
vf := 4 Ccos 2
La evaluacin con floats suele producir resultados float
> vf2 d eval f, x = 3.
vf2 := 8.010007503
eval( ) tambin admite evaluaciones simblicas
> f d x2 Ca x Cb
f := x2 Ca x Cb
> fp d eval f, a = phi Calpha
fp := x2 C C x Cb
Podemos realizar evaluaciones mltiples usando una lista de sustituciones
> pvals d a = 1, b = z Ky, x = 2
pvals := a = 1, b = z Ky, x = 2
> fp d eval f, pvals
fp := 6 Cz Ky
Observa que los nombres a, b, x permanecen sin asignar.
!!! Es muy importante mantener sin asignar los nombres usados
como variables simblicas
> a
a
> b
b
Pgina 9
F. Palacios 2012
> x
x
6. Mens de contexto
Volver a la tabla de contenidos
Los comandos de uso ms frecuente pueden ejecutarse desde Mens de Contexto que se activan
haciendo click con el botn derecho del ratn sobre el objeto correspondiente
En las hojas de trabajo (worksheet), cuando aplicamos un comando desde un men de contexto,
Maple escribe el comando y lo ejecuta. En el modo documento, Maple slo muestra el resultado.
> f d sin 5 t Ccos 20 t
f := sin 5 t Ccos 20 t
El siguiente grfico se ha obtenido pulsando el boton derecho sobre la expresin anterior y
seleccionando Plots > 2D
> smartplot sin 5 * t Ccos 20 * t
2
K2
3
K
2
K K1
2
3
2
t
> f
sin 5 t Ccos 20 t
La siguiente derivada se ha calculado pulsando el boton derecho sobre la expresin anterior y
seleccionando Differenciate > With Respect To > t
> diff sin 5 * t Ccos 20 * t , t
5 cos 5 t K20 sin 20 t
!!! Podemos dibujar un grfico simplemente seleccionando una
expresin y arrastrndola sobre un smartplot
7. Grficos
Volver a la tabla de contenidos
El comando plot(expresion, variable=Vmin..Vmax ) dibuja grficos 2D. El intervalo [a,b] se
representa por a..b
> f d 1 K4 x Cx3
f := 1 K4 x Cx3
> plot f, x =K3 .. 3
Pgina 10
F. Palacios 2012
10
K3
K2
K10
800
K10
K5 K400
5
x
10
Para ver con mayor detalle el grfico en el intervalo [0..2], basta con especificar el intervalo
> plot f, x = 0 ..2
1
0
K1
K2
0.5
1
x
1.5
8.# 108
3.# 108
K2
K1
1
x
K2
K1
10
6
2
0
1
x
Pgina 11
F. Palacios 2012
10
y 6
2
K2
K1
1
x
Para dibujar grficos mltiples, pasamos al comando plot( ) una lista de expresiones [f1,f2,....]
> plot f, g , x =K4 ..4, y =K2 ..10
10
y 6
2
K4 K3 K2 K1 K2
2
x
En el siguiente grfico, hemos asignado colores de forma ordenada a las curvas con la opcin color
= [red, blue], tambin hemos modificado el gosor, aadido la cuadrcula, e incluido la leyenda.
> plot f, g , x =K4 ..4, y =K2 ..10, color = red, blue , thickness = 2, gridlines, legend = y = f, y
=g
10
8
y
6
4
2
K4
K3
K2
K1
K2
y = 1 K 4 x C x3
2
x
y=
x2
>
Haciendo click con el botn izquierdo del ratn sobre un grfico se activa la barra de herramientas
Pgina 12
F. Palacios 2012
de grficos
Esta barra de herramientas permite modificar el estilo de ejes, dibujar la cuadrcula, etc. Tambin
podemos activar la funcin de lectura de datos mediante el cursor (probe). Si selecionamos la ltima
opcin del men desplegable, al posicionar el cursor sobre el grfico obtendremos las coordenadas
del punto ms prximo al cursor
8. Derivadas
Volver a la tabla de contenidos
El comando diff(f,x) calcula la derivada de f con respecto de x.
> f d x sin x
f := x sin x
> df d diff f, x ;
df := sin x Cx cos x
Para calcular la segunda derivada usamos diff(f,x,x).
> df2 d diff f, x, x
df2 := 2 cos x Kx sin x
Para calcular derivadas de orden superior, podemos utilizar el operator $
> x$4
x, x, x, x
Derivada cuarta
> df4 d diff f, x$4
df4 := K4 cos x Cx sin x
En algunos caso, Maple puede incluso realizar un clculo inductivo de la n-sima derivada.
Primero, limpiamos el nombre n para asegurarnos que puede actuar como variable simblica
> n d'n'
n := n
Pgina 13
F. Palacios 2012
> g d x exp x
g := x ex
> dfn d diff g, x$n
dfn := ex x Cn
Veamos otro ejemplo, esta vez para una expresin que contiene parmetros indeterminados
> h d exp Kalpha t sin omega t
h := eK t sin t
Derivada primera
> h1 d diff h, t
Derivada segunda
> h2 d diff h, t, t
2
2
h2 := eK t sin t K2 eK t cos t KeK t sin t
Derivada cuarta
> h4 d diff h, t$4
4
3
2
2
3
h4 := eK t sin t K4 eK t cos t K6 eK t sin t C4 eK t cos t
4
CeK t sin t
eK t
Para establecer una secuencia ordenada de trminos que han de extraerse como factor comn,
podemos especificar una lista de expresiones en el comando collect( ). As, la lista
exp Kalpha t , sin omega t , cos omega t
indica que primero ha de extaerse el factor eK t , seguidamente el factor sin t , y finalmente el
factor cos t .
> collect h4, exp Kalpha t , sin omega t , cos omega t
4
2 2
4
3
3
K6 C sin t C K4 C4 cos t eK t
Veamos el resultado con la derivada 10
> h10 d diff h, t$10
10
9
8
2
h10 := eK t sin t K10 eK t cos t K45 eK t sin t
7
10
cos t
eK t
Notacin prima para derivadas. Las derivadas con respecto de la variable independient x pueden
Pgina 14
F. Palacios 2012
f := x sin x
sin x Cx cos x
> f'''
K3 sin x Kx cos x
Notacin punto para derivadas. Las derivadas con respecto de la variable independiente t pueden
calcularse usando la notacin punto. Presionar [Ctrl]+[Shift]+["] para acceso rpido a la notacin
punto
!!! La combinacin de teclas [Ctrl]+[Shift]+["] proporciona acceso
rpido a la notacin punto para derivadas. En la notacin punto, la
variable independient es t
> yd
sin t
t
y :=
.
> y1 d y
y1 :=
..
> y2 d y
sin t
t
cos t
sin t
K
t
t2
sin t
2 cos t
2 sin t
K
C
y2 := K
2
t
t
t3
Es aconsejable limpiar la variable y, ya que esta variable suele usarse frecuentemente como variable
simblica
> y d'y'
y := y
9. Integrales
Volver a la tabla de contenidos
El comando int(f,variable) calcula la primitiva de f con respecto de la variable indicada.
Nos aseguramos que la variable x est limpia
> x d'x'
x := x
> f d x sin x
f := x sin x
> F d int f, x
F := sin x Kx cos x
Para calcular integrales definidas, basta con indicar el intervalo de integracin int(f,x=a..b).
> f d x2
f := x2
Pgina 15
F. Palacios 2012
1
3
El comando int( ) tambin admite lmites de integracin simblicos
> a d'a'; b d'b';
a := a
b := b
> v d int f, x = a ..b
1 3
1 3
v :=
b K
a
3
3
Si Maple no puede calcular el valor exacto, la integral se devuelve sin evaluar. En ese caso,
podemos obtener una aproximacin float con evalf( ), para ello Maple aplica automticamte un
mtodo de clculo numrico.
> f d sin x6 Cx
f := sin x6 Cx
> v d int f, x = 0 ..1
v :=
sin x6 Cx dx
v :=
0
> vf d evalf v
vf := 0.5163377908
Para entrar derivadas, integrales, lmites, ..., de forma cmoda y en notacin matemtica natural,
podemos usar la Paleta Expression
sin a x cos b x dx
>
0
a cos
K
1
1
a cos
b Ka Cb sin
2
2
a2 Kb2
1
1
a sin
b
2
2
>
>
Tambin podemos acceder de forma rpida a las plantillas de expresiones escribiendo el comando
Pgina 16
F. Palacios 2012
Maple tambin calcula integrales impropias de forma exacta. La opcin assuming permite
establecer propiedades de los parmetros, en nuestro caso establecemos que el parmetro es
positivo.
N
>
1
1
e
>
1
ax
, x = infinity
x C1
a
>
>
lim x e
x /KN
0
x
lim x e
x /CN
x
> plot x e , x =K5 ..1
2
1
K5
K4
K3
K2
K1
Pgina 17
F. Palacios 2012
10. Ecuaciones
Volver a la tabla de contenidos
El comando solve( ) resuelve ecuaciones de formas exacta y simblica
> eq d a x2 Cb x Cc = 0
eq := a x2 Cb x Cc = 0
> solve eq, a
b x Cc
K 2
x
> solve eq, x
1 Kb C b2 K4 a c
1 bC
,K
2
a
2
> eq2 d x3 Kx2 C3 = 0
> s d solve eq2
1
s := K
316 C36
6
C
C
77
1
3 316 C36
2
77
b2 K4 a c
a
eq2 := x3 Kx2 C3 = 0
1/3
1/3
1/3
1/3
3 316 C36 77
1
1
1
C C
I 3 K
6
3
2
,
3 316 C36 77
1
1
K
I 3 K
316 C36
2
6
1
12
77
316 C36
1/3
77
1 1
,
3 12
316 C36
1/3
77
3 316 C36
3 316 C36
77
77
1/3
1/3
316 C36
77
1/3
1
3
1/3
> sf d evalf s
sf := K1.174559411, 1.087279705 K1.171312112 I, 1.087279705 C1.171312112 I
El comando fsolve( ), calcula aproximaciones numricas de las soluciones de una ecuacin.
Podemos indicar un intervalo de bsqueda a fsolve( )
> f d exp K0.23 x Cexp K0.5 x
f := eK0.23 x CeK0.5 x
> g d 1.5 cos 3 x C2.5 sin 5 x
g := 1.5 cos 3 x C2.5 sin 5 x
Grfico conjunto de f y g.
> plot f, g , x =K3 ..4, color = red, blue , gridlines, thickness = 2
6
2
K3 K2
K2
2
x
Observamos que hay cuatro soluciones en el intervalo [0,2]. Inicialmente, el comando fsolve( ) nos
Pgina 18
F. Palacios 2012
s1 := 0.03880717791
Para que fsolve( ) calcule la solucin del intervalo [1,1.5], basta con indicarle el intervalo de
bsqueda
> s2 d fsolve f = g, x = 1 ..1.5
s2 := 1.423574342
Cuando se aplica a ecuaciones polinmicas, el comando fsolve( ) proporciona una aproximacin de
todas las soluciones reales
> p d x6 Kx4 C0.75 x3 C0.25 xK1.32
p := x6 Kx4 C0.75 x3 C0.25 x K1.32
> fsolve p = 0, x
K1.402393886, 1.060940356
Dibujamos un grfico del polinomio para confirmar los valores de las raices proporcianados por
fsolve( )
> plot p, x =K2 ..2, y =K5 ..5
y
K2
K1
4
K2
1
x
> cond d x 0 = 2
F. Palacios 2012
cond := x 0 = 2
1
1
9 K2 t
C
tC
e
4
2
4
El comando odetest( ) permite verificar la correccin de la solucin obtenida con dsolve( ). Una lista
con dos ceros indica que la solucin verifica la EDO y la condicin inicial
> odetest s, edo, cond
0, 0
Podemos extraer una expresin de la solucin con el comando eval( )
> fx d eval x t , s
1
1
9
fx := K C
t C eK2 t
4
2
4
Una vez obtenida la expresin correspondiente a la solucin, podemos evaluarla con eval( ) o
representarla grficamente con plot( )
Valor de x t para t = 0.12
> vx d eval fx, t = 0.12
vx := 1.579912687
Representacin grfica de f en el intervalo t = [0,4]
> plot fx, t = 0 ..4, x = 0 ..2, gridlines, thickness = 2, color = blue
s := x t = K
2
1.5
x 1
0.5
0
2
t
cond := x 0 = 2, D x 0 = K1
Solucin del problema de valor inicial
> s d dsolve edo, cond
1 Kt
s := x t =
e sin 2 t C2 eKt cos 2 t
2
Obtenemos una expresin con la solucin
> fx d eval x t , s
Pgina 20
fx :=
F. Palacios 2012
1 Kt
e sin 2 t C2 eKt cos 2 t
2
vx := K0.4089972466
Representacin grfica de x(t) para valores de t en [0,6]
> plot fx, t = 0 ..6, gridlines, thickness = 2
2
1
0
3
t
a
2
a Cw
2
cos w t a Csin w t w
2
2
a Cw
0, 0
F. Palacios 2012
> fy d eval y t , s
a
cos w t a Csin w t w
C
2
a Cw
a2 Cw2
Usamos el comando eval( ) para calcular la solucin correspondiente a conjunto de valores
concretos de los parmetros
> valp d a = 2, w = 10, y0 = 3
valp := a = 2, w = 10, y0 = 3
fy := eKa t y0 K
155 K2 t
1
5
e C
cos 10 t C
sin 10 t
52
52
52
Obtenemos una versin float con evalf( )
> fypf d evalf fyp
K2. t
fypf := 2.980769231 e C0.01923076923 cos 10. t C0.09615384615 sin 10. t
Grfico y valor de la solucin en t=1.3
> vy d eval fypf, t = 1.3
vy := 0.2792439728
> plot fypf, t = 0 ..4, gridlines, thickness = 2
fyp :=
3
2
1
0
2
t
3
2
1
0
K1
Excitacin
2
t
Respuesta
>
Pgina 22
F. Palacios 2012
2
y(x) 1
K1
K2
Pgina 23
F. Palacios 2012
Tambin podemos incluir algunas soluciones particulares suminstrando a DEplot( ) una lista de
valores iniciales
> vinics d y 0 = 0 , y 0 = 1 , y 0 = 2 , y 0 =K0.7 , y 0 =K0.8
vinics := y 0 = 0 , y 0 = 1 , y 0 = 2 , y 0 = K0.7 , y 0 = K0.8
> DEplot edo, y x , x = 0 ..5, y =K2 ..2, vinics
2
y(x)
1
1
K1
K2
La opcin linecolor permite asignar ordenadamente colores a las diferentes soluciones particulares.
La opcin color controla el color de las flechas del campo
> vcols d black, blue, green, cyan, red
vcols := black, blue, green, cyan, red
> DEplot edo, y x , x = 0 ..5, y =K2 ..2, vinics , linecolor = vcols , color = gray
2
y(x)
1
1
K1
K2
1 3
x
3
s := y x = e
cos _z1 e
1
_z13
3
1 3
x
3
d_z1 Ce
Para estos casos, la opcin numeric del comando dsolve( ) nos permite obtener una aproximacin
numrica de la solucin
> sn d dsolve edo, y 0 = 1 , y x , numeric
sn := proc x_rkf45 ... end proc
El resultado que nos proporciona dsolve( ) con la opcin numeric es un programa (procedure) que
implementa un mtodo numrico para aproximar la funcin solucin. Por defecto, dsolve( )
Pgina 24
F. Palacios 2012
1
0
x
Una EDO de segundo orden
> edo2 d y''Ccos x y'Cx sin x y = cos 20 x 2
d2
d
edo2 := 2 y x Ccos x
y x Cx sin x y x = cos 20 x 2
dx
dx
> cond d y 0 = 0, y' 0 =K1
cond := y 0 = 0, D y 0 = K1
> s d dsolve edo2, cond
s :=
Maple no consigue obtener una soluci exacta. Construimos una solucin aproximada con la opcin
numeric
> sn d dsolve edo2, cond , numeric
sn := proc x_rkf45 ... end proc
En este caso, el procedimiento programado por Maple nos proporciona, para cada x, una
aproximacin numrica del valor que toma la funcin y su derivada
> sn 1.2
d
x = 1.2, y x = K0.413056951893404,
y x = 0.187826374585524
dx
Representamos la solucin y x con odeplot( )
> odeplot sn, x = 0 ..10
Pgina 25
1500
y 1000
500
0
F. Palacios 2012
10
x
Tambin podemos representar la derivada y' x como sigue
> odeplot sn, x, y' x , x = 0 ..10
4000
y' 2000
0
10
x
El siguiente comando dibuja el diagrama de fase
> odeplot sn, y x , y' x , x = 0 ..10
4000
3000
y' 2000
1000
0
500
1000
y
1500
Pgina 26
F. Palacios 2012
Maple
Matlab
Editar
Presentacin de
resultados
Ejecucin
Asignacin
:=
Eliminar presentacin
de resultados
Comentarios
Separacin de
comandos
Romper la lnea de
comandos sin ejecutar
[Shift]+[Enter]
La evaluacin de un nombre no
asignado produce un error
Pgina 27
F. Palacios 2012
Ejemplo resuelto
Ecuacin diferencial, usando la notacin punto para las derivadas
> restart;
..
> edo d y =Kg
d2
edo := 2 y t = Kg
dt
Condiciones iniciales simblicas
.
> cond d y 0 = y0, y 0 = v0
cond := y 0 = y0, D y 0 = v0
Solucin simblica
> s d dsolve edo, cond
1
g t2 Cv0 t Cy0
2
Vemos que hemos obtenido la bien conocida frmula general del desplazaimento en el movimiento
uniformemente acelerado.
Lista de valores particulares
s := y t = K
Pgina 28
F. Palacios 2012
50
20
0
K20
10
0
K10
K20
K30
3
t
F. Palacios 2012
ts := 4.370903613
Velocidad en el instante del impacto
> vs d eval fvp, t = ts
vs := K32.87856444
Grfico t-y
> plot fyp, t = 0 ..ts, gridlines
50
20
0
t
Tiempo para altura mxima (pico)
> tp d solve fvp = 0
Altura mxima
> yp d eval fyp, t = tp
tp := 1.019367992
yp := 55.09683996
Pgina 30
F. Palacios 2012
Actividades
..
Resuelve los siguientes apartados para la EDO y t =Kg
.
1. Calcula la solucin simblica para las condiciones iniciales y 0 = y0, y 0 = v0.
2. Calcula la solucin particular correspondiente a la posicin inicial y0 = 75m, la
velocidad inicial v0 = 28 m/ s, y el valor g = 9.81m/s2.
Soluciones
> restart;
Ecuacin diferencial, usamos la notacin punto para derivadas
..
> edo d y =Kg
d2
edo := 2 y t = Kg
dt
Condiciones iniciales simblicas
.
> cond d y 0 = y0, y 0 = v0
cond := y 0 = y0, D y 0 = v0
Solucin simblica
Pgina 31
F. Palacios 2012
1
g t2 Cv0 t Cy0
2
s := y t = K
100
60
0
4
t
20
K10
K30
4
t
K50
La velocidad en el instante t = 2.5 est alrededor de 4m/s. El cuerpo an est ascendiendo en ese
instante
Pgina 32
F. Palacios 2012
vp := 3.47500000
ts := 7.695423507
vs := K47.49210460
100
60
0
Tiempo para altura mxima (pico)
> tp d solve fvp = 0
Altura mxima
> yp d eval fyp, t = tp
4
t
tp := 2.854230377
yp := 114.9592253
>
Pgina 33
F. Palacios 2012
d
x t = a Text Kx t
dt
Condiciones iniciales
Pgina 34
> cond d x 0 = x0
F. Palacios 2012
cond := x 0 = x0
Solucin simblica
> s d dsolve edo, cond
s := x t = Text CeKa t x0 KText
Test de la solucin
> odetest s, edo, cond
0, 0
Expresin para x t
> fx d eval x t , s
fxp := 20 C80 e
Temperatura despus de 5 minutos
> vx d eval fxp, t = 5.
vx := 26.56679989
Evolucin de la temperatura x t para los primeros 40 minutos
> plot fxp, t = 0 ..40, x = 0 ..100, gridlines
100
x
60
0
10
20
t
30
40
Tiempo necesario para que la temperatua del objeto descienda hasta 45C
> vt d fsolve fxp = 45
vt := 2.326301620
Pgina 35
F. Palacios 2012
F. Palacios 2012
1
4
ln
15
13
va := K
Aproximacin float del valor de a
> vaf d evalf va
vaf := 0.07857699974
Una vez calculado el valor de a, obtenemos la expresion de la solucin
> fx2 d eval fx1, a = va
fx2 := 25 C195 e
4
1
ln
13
15
Expresion float
> fx2f d evalf fx2
200
x 100
0
20
40
60
80
100
t
Temperatura del horno despus de 30 minuntos
> v30 d eval fx2f, t = 30.
v30 := 43.46153847
Tiempo para apertura de seguridad
> ts d solve fx2 = 45
4
15 ln
39
ts :=
4
ln
13
Aproximacin float
> tsf d evalf ts
tsf := 28.98134686
Resolucin grfica
> plot fx2, 45 , t = 0 ..60, x = 0 ..220, gridlines, color = blue, red , thickness = 2, 1
200
150
x 100
50
0
10
20
30
t
40
50
60
Pgina 37
F. Palacios 2012
Text K45
K220 CText
ln
4
13
Evaluacin float
> tsf d evalf ts
tsf := K12.72637035 ln
Text K45.
K220. CText
Tiempo de apertura
80
t
K10
50
20
0
10
20 30
Text
40
50
Pgina 38
F. Palacios 2012
A partir del grfico, podemos apreciar claramente que el tiempo de enfriamieno seguro aumenta
significativamente cuando la temperatura del medio est alrededor de 40C. La asntota vertical
localizada en Text = 45 C indica que la temperatura de seguridad no puede alcanzarse (obviamente)
cuando Text R 45 C.
Si asumimos que el horno opera normalmente en el rango de temperaturas externas 20 % Text % 40,
podemos dibujar el siguiente grfico:
> plot tsf, Text = 20 ..40, t = 25 ..45, gridlines, thickness = 2, title = "Tiempo de apertura"
45
40
t 35
30
25
Tiempo de apertura
25
30
Text
35
40
Pgina 39
F. Palacios 2012
Actividad 1
Tomando como referencia el Ejemplo 1, resuelve las siguiente cuestiones para la EDO
d
x t = a Text t Kx t
dt
1. Resuelve la ecuacin diferencial para los valores particualres a = 0.2, Text = 35C,
y la temperatura inicial x 0 = 300 C
2. Dibuja el grfico de la temperatura x t para la primera media hora (t 2 0, 30 .
Incluye la cuadrcula en el grfico.
3. A partir del grfico, estima aproximadamente el valor de la temperatura para
t = 10 min.
4. Calcula con eval( ) la temperatura x 10 . Compara el valor obtenido con la
estimacin que has hecho a partir del grfico.
5. Usa el grfico para estimar el tiempo necesario para que el objeto alcance una
temperatura de 150C.
6. Calcula con fsolve( ) el tiempo necesario para que el objeto alcance 150C.
Compara el resultado con la estimacin anterior.
Actividad 2
Ahora supongamos que tenemos un horno a 530C y que, despus de 15 minutos, la
temperatura ha decrecido hasta 110C.
1. Asumiendo que la temperatura del entorno se mantiene constante a 30C, usa la
ley de enfriamiento de Newton para determinar la temperatura despus de 22
minutos.
2. Dibuja un grfico de la evolucin de la temperatura x t a lo largo de la primera
media hora. Usa el grfico para estimar la temperatura despus de 10 minutos, y
el tiempo necesario para que el horno descienda hasta una temperatura de 150C.
3. Calcula con eval( ) la temperatura x 10 .
4. Calcula con fsolve( ) el tiempo t para x t = 150C.
Nota: Puedes usar el Ejemplo 2 como orientacin. Consulta el ejemplo e intenta escibir
tu propio cdigo, procurando comprender el funcionamiento de los comandos y su
sintaxis.
Pgina 40
F. Palacios 2012
Actividad 3
Para los valores particulares a = 0.3, y Text = 40C.
1. Dibuja el campo de pendientes de la ecuacin diferencial. Usa los intervalos
0 % t % 40 min, 0 % x t % 300 C.
2. Dibuja sobre el campo de pendientes la solucin particular correspondiente a la
temperatua inicial x 0 = 200 C. Para esta solucin particular, estima sobre el
grfico la temperatura en t = 5 min, y el tiempo requerido para x t = 150 C.
Dibuja la curva en color azul y grosor doble (opciones linecolor=blue y
thickness=2).
3. Dibuja el campo de pendientes con las soluciones particulares correspondientes a
las condiciones iniciales x 0 = 300 C, x 0 = 250 C, x 0 = 200 C, x 0 = 40
C, x 0 = 20 C. Dibuja las flechas del campo en color gris (opcin color=gray),
y assigna los colores black, red, green, blue, cyan a las diferentes curvas.
6. Suponiendo que la temperatura inicial se sita en el rango [200 C, 300 C],
realiza una estimacin del rango de temperaturas despus de 4 minutos.
7. Suponiendo que la temperatura inicial est en el rango [200 C, 300 C], realiza
una estimacin del tiempo requerido para que la temperatura del objeto descienda
hasta 100C.
8. Explica el comportamiento de las curvas con condiciones iniciales x 0 = 40 C,
x 0 = 20 C.
9. Calcula valores numricos para las estimaciones realizadas en los apartados (2),
(4) and (5).
Pgina 41
F. Palacios 2012
Soluciones
Actividad 1
EDO
> restart
.
> edo d x = a Text Kx
edo :=
Condiciones iniciales
> cond d x 0 = x0
d
x t = a Text Kx t
dt
cond := x 0 = x0
Solucin simblica
> s d dsolve edo, cond
s := x t = Text CeKa t x0 KText
Expresin para la solucin
> fx d eval x t , s
Grfico
> plot fxp, t = 0 ..30, gridlines
300
200
100
0
10
20
30
t
Valor estimado en el grfico x(10) z 75
Valor calculado para x 10
> vx10 d eval fxp, t = 10.
vx10 := 70.86385005
Tiempo estimado para x t = 150 / 4min
Tiempo calculado para x t = 150
Pgina 42
F. Palacios 2012
t150 := 4.173988488
Actividad 2
1. Temperatura despus de 22min.
> restart
Primero, calculamos el valor de la constante a
EDO
.
> edo d x = a$ Text Kx
d
edo :=
x t = a Text Kx t
dt
> cond d x 0 = 530
cond := x 0 = 530
> s d dsolve edo, cond
s := x t = Text CeKa t 530 KText
> fx d eval x t , s
1
4
ln
15
25
va := K
> vaf d evalf va
vaf := 0.1221720976
Expresin para x t
> fxp1 d eval fxp, a = vaf
vx22 := 64.01569213
600
400
x
200
0
10
20
30
t
40
50
60
Pgina 43
F. Palacios 2012
Actividad 3
3.1 Campo de pendientes
> restart
.
> edo d x = a Text Kx
edo :=
> pvals d a = 0.3, Text = 40
d
x t = a Text Kx t
dt
300
x(t)
200
100
0
10
20
t
30
40
300
x(t)
200
100
0
10
20
t
30
40
Valores estimados a partir del grfico: temperatura para t = 5min z 75 C. Tiempe para
x t = 150 C, approx 1.5 min.
Pgina 44
F. Palacios 2012
300
x(t)
200
100
0
10
20
t
30
40
3.4 Estimacin del rango de temperaturas despus de 4 min para soluciones con valores
inciales en el rango [200,300]
> pvalins d x 0 = 300, x 0 = 250, x 0 = 200
pvalins := x 0 = 300, x 0 = 250, x 0 = 200
> pcols d black, red, green
pcols := black, red, green
> DEplot edop, x t , t = 0 ..4, x = 0 ..300, pvalins , linecolor = pcols , color = gray,
thickness = 2
300
x(t)
200
100
0
2
t
Pgina 45
F. Palacios 2012
300
x(t)
200
100
3
t
>
El rango aproximado de tiempos es 3-5 min.
Pgina 46