Uso básico de Maplefpq/maple/taller-maple15-ICE/Seminario... · 2012-11-21 · Uso básico de...
Transcript of Uso básico de Maplefpq/maple/taller-maple15-ICE/Seminario... · 2012-11-21 · Uso básico de...
Computación Científica y Técnica con Maple
Uso básico de MapleVersion 1.2, Febrero 2012
Francisco Palacios Quiñonero
Departamento Matemática Aplicada III
Universidad Politécnica de Cataluña (UPC)
Computación Científica y Técnica con Maple: Uso Básico de Maple. Versión 1.2. Febrero 2012 by Francisco Palacios-Quiñonero 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.
Uso básico de Maple F. Palacios 2012
Página 1
> >
> >
> >
> >
> >
Computación científica y técnica con Maple
Unidad 1: Uso básico de MapleF. Palacios Quiñonero
Dept. Matemática Aplicada III. Universidad Politécnica de Cataluña
Ver. 1.2 Febrero, 2012
Este documento se ha editado usando las hojas de trabajo (worksheet) de Maple 15
Contenido
Línea de comandos, nombres, ayuda1. Cálculo simbólico2. Cálculo exacto3. Cálculo aproximado4. Evaluación de expresiones5. Menús de contexto6. Gráficos7. Derivadas8. Integrales9. Ecuaciones10. Ecuaciones Diferenciales Ordinarias (EDOs)11. Resolución simbólica de EDOs12. Resolución gráfica de EDOS: campos de pendientes13. Resolución numérica de EDOs14. Maple vs Matlab15.
1. Linea de comandos, nombres, ayudaVolver a la tabla de contenidosPara ejecutar la línea de comandos, presionamos [INTRO]
1C12
Para asignar un nombre a un objeto, usamos :=a d 1
a := 1b d 3
b := 3c d aCb
c := 4La combinación de teclas [Ctrl]+[t] crea de forma rápida una celda de texto (como esta)Maple distingue entre mayúsculas y minúsculas
A d 0.5 A := 0.5
Uso básico de Maple F. Palacios 2012
Página 2
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > a d 1a := 1
aCA1.5
Para suprimir la presentación de resultados, terminamos la línea de comandos con dos puntos (:)c d aCA : c
1.5Maple puede manejar nombres no asignados, en ese caso se consideran objetos algebraicos
dd
1Cd1Cd
e d 1Cd 2
e := 1Cd 2
Podemos añadir comentarios a la línea de comandos con el carácter #expand e # el comando expand( ) fuerza la evaluación de los productos
1C2 dCd2
Si escribimos una expresión entre comillas simples, se evita su evaluaciónc d'ACa '
c := aCA
c1.5
La evaluación de un nombre no asignado, devuelve el propio nombrea
1f
f
Para limpiar un nombre, escribimos nombre:='nombre' , por ejemploc
1.5c d'c ';
c := c
cc
El comando restart limpia todos los nombresb
3e
1Cd 2
restartb
Uso básico de Maple F. Palacios 2012
Página 3
> >
> >
> >
> >
> >
b
ee
Podemos usar nombres de letras griegas como nombres de objetos, Maple los presenta usando los símbolos del alfabeto griego. Observa que Maple interpreta un espacio blanco como una multiplicación implícita.
alphad 3;α := 3
c d A cos phi tc := A cos φ t
También podemos insertar letras griegas desde la Paleta Greek
d d A sin ω tC4
d := A sin ω tC4
Ayuda. Podemos acceder al sistema de ayuda presionando [Ctrl]+[F1]
Grupos de ejecución. Es posible escribir varios comandos en la misma línea. En ese caso, tenemos que separar los diferentes comandos usando un punto y coma (;).
1C1; a d 3; expand bCa 2
2a := 3
b2C6 bC9
Uso básico de Maple F. Palacios 2012
Página 4
> >
> >
> >
> >
> >
> >
> >
> >
> >
Para obtener una presentación más clara y estructurada, podemos romper la línea de comandos (sin ejecutar el código) pulsando la combinación de teclas [SHIFT]+[INTRO]. Para entrar los subíndices podemos usar las notaciones: e[0] ó e_0
e0 d 14; v 0 d 2; a dK0.5; t d 3;
ef d e0Cv0$tC12$a$t2
e0 := 14
v0 := 2
a := K0.5t := 3
ef := 17.75000000
2. Cálculo simbólicoVolver a la tabla de contenidosMaple usa los nombres "limpios" (no asignados) como objetos algebraicos
x d 1; y d 2x := 1y := 2
xCy3
x d'x '; y d'y 'x := xy := y
p d xCy 3
p := xCy 3
El comando expand( ) fuerza la evaluación de todos los productosexpand p
x3C3 x2 yC3 x y2Cy3
El comando factor( ) factorizar expresiones algebraicas, y el comando simplify( ) realiza simplificaciones
q d x2C3 x C2;q := x2C3 xC2
factor qxC2 xC1
r dx2 K4
x3K6 x2 C11 xK6
r := x2K4x3K6 x2C11 xK6
Uso básico de Maple F. Palacios 2012
Página 5
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
simplify rxC2
x2K4 xC3factor r
xC2xK1 xK3
Los comandos numer( ) y denom( ) extraen el numerador y el denominador de una fracción.Para ver más claramente la simplificación realizada sobre la función racional r, podemos factorizar por separado el numerador y el denominador
n d numer rn := x2K4
d d denom rd := x3K6 x2C11 xK6
factor nxK2 xC2
factor dxK1 xK2 xK3
El comando simplify( ) también funciona con expresiones trigonométricasa d sin phi ;b d cos phi ;c d a2Cb2;
a := sin φb := cos φ
c := sin φ2Ccos φ
2
c1 d simplify cc1 := 1
El comando convert(expression , parfrac) calcula la descomposición en fracciones simples de una función racional (cociente de polinomios)
rx2K4
x3K6 x2C11 xK6rp d convert r, parfrac
rp := 52 xK3
K3
2 xK1En el siguient ejemplo, obtenemos la descomposición en fracciones simples de una función racional impropia en grado (grado del numerador R grado del denominador)
r1 d x2 r
r1 := x2 x2K4x3K6 x2C11 xK6
r1p d convert r1, parfrac
Uso básico de Maple F. Palacios 2012
Página 6
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
r1p := xC6C 452 xK3
K3
2 xK1
3. Cálculo exactoVolver a la tabla de contenidosMaple opera los números exactos sin redondear
a d 312
a := 3
b d 1Ca 2
b := 1C 32
expand b
4C2 3Los números enteros son números exactos, Maple puede manipular números enteros de tamaño arbitrario (dentro de las posibilidades del ordenador)
p d 2325C236C321
p := 11045767571919545466173891589519882 El comando ifactor( ) obtiene la descomposición en factores primos
ifactor 55254322162 3 61 349 32443
ifactor p2 3 15532109237 314098893699477827 377353
Maple simplifica fracciones automáticamente
a d1232
a := 38
también opera fracciones de forma exacta, reduciendo a común denominador
b d23Ca
b := 2524
La evaluación de una función para un argumento exacto, da como resulado un número exacto
a d sin Pi4
a := 12
2
b d tan Pi3
b := 3
c d aCb 2
Uso básico de Maple F. Palacios 2012
Página 7
> >
> >
> >
> >
> >
> >
c := 3 C12
22
expand c72C 3 2
Un ejemplo trigonométricoa d sin 3 ;b d cos 3 ;c d aCb 2;c1 d expand c ;simplify c1 ;
a := sin 3b := cos 3
c := cos 3 Csin 3 2
c1 := cos 3 2C2 cos 3 sin 3 Csin 3 2
2 cos 3 sin 3 C1
El número π se escribe Pi
cos Pi4
12
2
pi es la letra griega π. ¡ No es un número!
cos pi4
cos 14
π
!!! No debemos confundir el número Pi con la letra del alfabeto griego pi
4. Cálculo aproximadoVolver a la tabla de contenidosLos números de punto flotante (floats) permiten aproximar el valor de números exactos usando una cantidad limitada de dígitos
a d12.344.56
a := 2.706140351Operaciones aritméticas de números exactos y aproximados suelen producir resultados aproximados
b d aC27
b := 2.991854637El comando evalf( ) proporciona aproximaciones float de números exactos
Uso básico de Maple F. Palacios 2012
Página 8
> >
> >
> >
• • > >
> >
• •
> >
> >
> >
> >
> >
> >
> >
> >
a d sqrt 2a := 2
af d evalf aaf := 1.414213562
En cálculos que contienen números exactos y aproximados, algunas veces es necesarios usar el comando evalf( ) para obtener una evaluación float completa
a d7 5
Csqrt 2 C1.23
a := 2.630000000C 2af d evalf a
af := 4.044213562Funciones aplicadas sobre números aproximados producen resultados aproximados
b d exp 2b := e2
bf d evalf bbf := 7.389056099
exp 2.7.389056099
cos 0.20.9800665778
Por defecto, Maple realiza evaluaciones float con 10 dígitos.El comando evalf(valor exacto,n) calcula una evaluación float con n dígitos
evalf Pi3.141592654
evalf Pi, 1503.1415926535897932384626433832795028841971693993751058209749445923078164062862089\
9862803482534211706798214808651328230664709384460955058223172535940813La variable de sistema Digits establece el número de dígitos empleado por Maple para presentar y calcular los números aproximados.
Por defecto, el valor de Digits is 10. Podemos reasignar el valor de la variable Digits.
cos 2.K0.4161468365
Digits d 20Digits := 20
cos 2.K0.41614683654714238700
!!! Todas las operaciones con floats se realizan usando el número de dígitos indicado en la variable de sistema Digits. Observa que Digits empieza por mayúscula, la asignación digits:=16 no produce ningún efecto en el número de dígitos
Uso básico de Maple F. Palacios 2012
Página 9
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
!!! El comando restart, además de borrar todas las asignaciones de nombres, reestablece la variable de sistema Digits a su valor por defecto (10)
restartDigits
10cos 2.
K0.4161468365
5. Evaluación de expresionesVolver a la tabla de contenidosEl 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 asignación)
restart
f d x2 Ccos xf := x2Ccos x
vf d eval f, x = 2vf := 4Ccos 2
La evaluación con floats suele producir resultados floatvf2 d eval f, x = 3.
vf2 := 8.010007503eval( ) también admite evaluaciones simbólicas
f d x2Ca xCbf := x2Ca xCb
fp d eval f, a = phiCalphafp := x2C φCα xCb
Podemos realizar evaluaciones múltiples usando una lista de sustituciones pvals d a = 1, b = zKy, x = 2
pvals := a = 1, b = zKy, x = 2fp d eval f, pvals
fp := 6CzKy
Observa que los nombres a, b, x permanecen sin asignar.
!!! Es muy importante mantener sin asignar los nombres usados como variables simbólicas
aa
bb
Uso básico de Maple F. Palacios 2012
Página 10
> >
> >
> >
> >
> >
> >
> >
xx
6. Menús de contextoVolver a la tabla de contenidosLos comandos de uso más frecuente pueden ejecutarse desde Menús de Contexto que se activan haciendo click con el botón derecho del ratón 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 sólo muestra el resultado.
f d sin 5 t Ccos 20 tf := sin 5 t Ccos 20 t
El siguiente gráfico se ha obtenido pulsando el boton derecho sobre la expresión anterior y seleccionando Plots > 2D
smartplot sin 5 * t Ccos 20 * t
t
K2 πK
3 π2
KπKπ2
π2
π 3 π2
2 πK1
2
fsin 5 t Ccos 20 t
La siguiente derivada se ha calculado pulsando el boton derecho sobre la expresión anterior y seleccionando Differenciate > With Respect To > t
diff sin 5 * t Ccos 20 * t , t5 cos 5 t K20 sin 20 t
!!! Podemos dibujar un gráfico simplemente seleccionando una expresión y arrastrándola sobre un smartplot
7. GráficosVolver a la tabla de contenidosEl comando plot(expresion, variable=Vmin..Vmax ) dibuja gráficos 2D. El intervalo [a,b] se representa por a..b
f d 1K4 xCx3
f := 1K4 xCx3
plot f, x =K3 .. 3
Uso básico de Maple F. Palacios 2012
Página 11
> >
> >
> >
> >
> >
xK3 K2 1 2 3
K10
10
Si no inicamos nada, el intervalo por omisión es -10..10 plot f
xK10 K5 5 10K400
800
Para ver con mayor detalle el gráfico en el intervalo [0..2], basta con especificar el intervalo plot f, x = 0 ..2
x0.5 1 1.5 2
K2K1
01
A veces es necesario restingir el intervalo de representacion para el eje vertical
g d1 x2
g := 1x2
plot g, x =K2 ..2
xK2 K1 0 1 2
3.#1088.#108
El gráfico anterior no se representa adecuadamente debido a la asíntota vertical en x=0. Restringimos el intervalo de representación para el eje vertical especificando un segundo intervalo en el comando plot( )
plot g, x =K2 ..2,K1 ..10
xK2 K1 0 1 2
26
10
Uso básico de Maple F. Palacios 2012
Página 12
• •
> >
• •
> >
> >
• •
> >
Algunas opciones interesantes del comando plot( ) son: gridlines, dibuja la cuadrículathickness, controla el grosor de la líneacolor, controla el color de linea
plot g, x =K2 ..2, y =K1 ..10, thickness = 2, color = blue, gridlines
xK2 K1 0 1 2
y2
6
10
Para dibujar gráficos múltiples, pasamos al comando plot( ) una lista de expresiones [f1,f2,....]plot f, g , x =K4 ..4, y =K2 ..10
xK4 K3 K2 K1 1 2 3 4
y
K2
2
6
10
En el siguiente gráfico, hemos asignado colores de forma ordenada a las curvas con la opción color = [red, blue], también hemos modificado el gosor, añadido la cuadrícula, e incluido la leyenda.
plot f, g , x =K4 ..4, y =K2 ..10, color = red, blue , thickness = 2, gridlines, legend = y = f, y= g
y = 1K4 xC x3 y = 1x2
xK4 K3 K2 K1 1 2 3 4
y
K2
2
4
6
8
10
Haciendo click con el botón izquierdo del ratón sobre un gráfico se activa la barra de herramientas
Uso básico de Maple F. Palacios 2012
Página 13
> >
> >
> >
> >
> >
> >
de gráficos
Esta barra de herramientas permite modificar el estilo de ejes, dibujar la cuadrícula, etc. También podemos activar la función de lectura de datos mediante el cursor (probe). Si selecionamos la últimaopción del menú desplegable, al posicionar el cursor sobre el gráfico obtendremos las coordenadas del punto más próximo al cursor
8. DerivadasVolver a la tabla de contenidosEl comando diff(f,x) calcula la derivada de f con respecto de x.
f d x sin xf := 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 cuartadf4 d diff f, x$4
df4 := K4 cos x Cx sin x
En algunos caso, Maple puede incluso realizar un cálculo inductivo de la n-ésima derivada.Primero, limpiamos el nombre n para asegurarnos que puede actuar como variable simbólica
n d'n 'n := n
Uso básico de Maple F. Palacios 2012
Página 14
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > g d x exp xg := x ex
dfn d diff g, x$ndfn := ex xCn
Veamos otro ejemplo, esta vez para una expresión que contiene parámetros indeterminadosh d exp K alpha t sin omega t
h := eKα t sin ω tDerivada primera
h1 d diff h, t
h1 := Kα eKα t sin ω t CeKα t cos ω t ωDerivada segunda
h2 d diff h, t, t
h2 := α2 eKα t sin ω t K2 α eKα t cos ω t ωKeKα t sin ω t ω
2
Derivada cuartah4 d diff h, t$4
h4 := α4 eKα t sin ω t K4 α
3 eKα t cos ω t ωK6 α
2 eKα t sin ω t ω
2C4 α eKα t cos ω t ω
3
CeKα t sin ω t ω4
El comando collect( ) extrae un término especificado como factor comúncollect h4, exp Kalpha tα
4 sin ω t K4 α
3 cos ω t ωK6 α
2 sin ω t ω
2C4 α cos ω t ω
3Csin ω t ω
4 eKα t
Para establecer una secuencia ordenada de términos que han de extraerse como factor común, podemos especificar una lista de expresiones en el comando collect( ). Así, la lista
exp Kalpha t , sin omega t , cos omega tindica 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α
4K6 α
2 ω
2Cω
4 sin ω t C K4 α
3 ωC4 α ω
3 cos ω t eKα t
Veamos el resultado con la derivada 10ªh10 d diff h, t$10
h10 := α10
eKα t sin ω t K10 α9 eKα t cos ω t ωK45 α
8 eKα t sin ω t ω
2
C120 α7 eKα t cos ω t ω
3C210 α
6 eKα t sin ω t ω
4K252 α
5 eKα t cos ω t ω
5
K210 α4 eKα t sin ω t ω
6C120 α
3 eKα t cos ω t ω
7C45 α
2 eKα t sin ω t ω
8
K10 α eKα t cos ω t ω9KeKα t sin ω t ω
10
collect h10, exp Kalpha t , sin omega t , cos omega tα
10K45 α
8 ω
2C210 α
6 ω
4K210 α
4 ω
6C45 α
2 ω
8Kω
10 sin ω t C K10 α
9 ωC120 α
7 ω
3
K252 α5 ω
5C120 α
3 ω
7K10 α ω
9 cos ω t eKα t
Notación prima para derivadas. Las derivadas con respecto de la variable independient x pueden
Uso básico de Maple F. Palacios 2012
Página 15
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
calcularse usando la notación primaf d x$sin x
f := x sin x
f'sin x Cx cos x
f'''K3 sin x Kx cos x
Notación punto para derivadas. Las derivadas con respecto de la variable independiente t pueden calcularse usando la notación punto. Presionar [Ctrl]+[Shift]+["] para acceso rápido a la notación punto
!!! La combinación de teclas [Ctrl]+[Shift]+["] proporciona acceso rápido a la notación punto para derivadas. En la notación punto, la variable independient es t
y dsin t
t
y := sin tt
y1 d y.
y1 := cos tt
Ksin t
t2
y2 d y..
y2 := Ksin t
tK
2 cos t
t2C
2 sin t
t3
Es aconsejable limpiar la variable y, ya que esta variable suele usarse frecuentemente como variable simbólica
y d'y 'y := y
9. IntegralesVolver a la tabla de contenidosEl 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 xf := x sin x
F d int f, xF := sin x Kx cos x
Para calcular integrales definidas, basta con indicar el intervalo de integración int(f,x=a..b). f d x2
f := x2
Uso básico de Maple F. Palacios 2012
Página 16
> >
> >
> >
> >
> >
> >
> >
> >
> >
v d int f, x = 0 ..1
v := 13
El comando int( ) también admite límites de integración simbólicosa d'a '; b d'b ';
a := ab := b
v d int f, x = a ..b
v := 13
b3K13
a3
Si Maple no puede calcular el valor exacto, la integral se devuelve sin evaluar. En ese caso, podemos obtener una aproximación float con evalf( ), para ello Maple aplica automáticamte un método de cálculo numérico.
f d sin x6Cxf := sin x6Cx
v d int f, x = 0 ..1
v :=0
1
sin x6Cx dx
vf d evalf vvf := 0.5163377908
Para entrar derivadas, integrales, límites, ..., de forma cómoda y en notación matemática natural, podemos usar la Paleta Expression
0
π2
sin a x cos b x dx
Ka cos 1
2 π a cos 1
2 π b KaCb sin 1
2 π a sin 1
2 π b
a2Kb2
También podemos acceder de forma rápida a las plantillas de expresiones escribiendo el comando
Uso básico de Maple F. Palacios 2012
Página 17
> >
> >
> >
> >
> >
> >
> >
correspondiente y presionando [ctrl]+[barra espaciadora]
Maple también calcula integrales impropias de forma exacta. La opción assuming permite establecer propiedades de los parámetros, en nuestro caso establecemos que el parámetro α es positivo.
1
N
x2 eKα xdx assuming alpha O 0
2
α3 eα
C2
α2 eα
C1
α eα
La integral impropia es divergente para α! 0
1
N
x2 eKα xdx assuming alpha ! 0
N
El nombre Maple de N es infinity1
infinity0
limita x
xC1, x = infinity
a
limx/KN
x ex
0
limx/CN
x ex
N
plot x ex, x =K5 ..1
xK5 K4 K3 K2 K1 0 1
1
2
Uso básico de Maple F. Palacios 2012
Página 18
> >
> >
> >
> >
> >
> >
> >
> >
> >
10. EcuacionesVolver a la tabla de contenidosEl comando solve( ) resuelve ecuaciones de formas exacta y simbólica
eq d a x2Cb xCc = 0eq := a x2Cb xCc = 0
solve eq, a
Kb xCc
x2
solve eq, x
12
KbC b2K4 a ca
, K12
bC b2K4 a ca
eq2 d x3Kx2C3 = 0eq2 := x3Kx2C3 = 0
s d solve eq2
s := K16
316C36 771/3
K2
3 316C36 771/3 C
13
, 112
316C36 771/3
C1
3 316C36 771/3 C
13C
12
I 3 K16
316C36 771/3
C2
3 316C36 771/3 , 1
12 316C36 77
1/3C
1
3 316C36 771/3 C
13
K12
I 3 K16
316C36 771/3
C2
3 316C36 771/3
sf d evalf ssf := K1.174559411, 1.087279705K1.171312112 I, 1.087279705C1.171312112 I
El comando fsolve( ), calcula aproximaciones numéricas de las soluciones de una ecuación. Podemos indicar un intervalo de búsqueda a fsolve( )
f d exp K0.23 x Cexp K0.5 xf := eK0.23 xCeK0.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
Gráfico conjunto de f y g.plot f, g , x =K3 ..4, color = red, blue , gridlines, thickness = 2
xK3 K2 1 2 3 4K2
2
6
Observamos que hay cuatro soluciones en el intervalo [0,2]. Inicialmente, el comando fsolve( ) nos
Uso básico de Maple F. Palacios 2012
Página 19
> >
> >
> >
> >
> >
> >
> >
> >
> >
proporciona una de ellass1 d fsolve f = g
s1 := 0.03880717791Para que fsolve( ) calcule la solución del intervalo [1,1.5], basta con indicarle el intervalo de búsqueda
s2 d fsolve f = g, x = 1 ..1.5s2 := 1.423574342
Cuando se aplica a ecuaciones polinómicas, el comando fsolve( ) proporciona una aproximación de todas las soluciones reales
p d x6Kx4C0.75 x3C0.25 xK1.32p := x6Kx4C0.75 x3C0.25 xK1.32
fsolve p = 0, xK1.402393886, 1.060940356
Dibujamos un gráfico del polinomio para confirmar los valores de las raices proporcianados porfsolve( )
plot p, x =K2 ..2, y =K5 ..5
xK2 K1 1 2
y
K2
4
Con la opción complex, fsolve( ) proporciona también las soluciones complejasfsolve p = 0, x, complex
K1.40239388561125, K0.492204872015816K0.745677422358486 I, K0.492204872015816C0.745677422358486 I, 0.662931636809589K0.819671091123570 I, 0.662931636809589C0.819671091123570 I, 1.06094035602370
11. Ecuaciones diferenciales ordinarias (EDOs)Volver a la tabla de contenidosEl comando dsolve(edo) resuelve ecuaciones diferenciales ordinarias Obtención de la solución general
edo d y 'C2 y = sin x
edo := ddx
y x C2 y x = sin x
s d dsolve edo
s := y x =K15
cos x C25
sin x CeK2 x _C1
El comando dsolve([edo,cond]) resuelve problemas de valor inicial, cond representa una secuencia de condiciones iniciales (separadas por comas, cuando hay más de una)
edo d x.C2 x = t
edo := ddt
x t C2 x t = t
Uso básico de Maple F. Palacios 2012
Página 20
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
cond d x 0 = 2cond := x 0 = 2
s d dsolve edo, cond
s := x t =K14C
12
tC 94
eK2 t
El comando odetest( ) permite verificar la corrección de la solución obtenida con dsolve( ). Una listacon dos ceros indica que la solución verifica la EDO y la condición inicial
odetest s, edo, cond0, 0
Podemos extraer una expresión de la solución con el comando eval( )fx d eval x t , s
fx := K14C
12
tC 94
eK2 t
Una vez obtenida la expresión correspondiente a la solución, podemos evaluarla con eval( ) o representarla gráficamente con plot( )Valor de x t para t = 0.12
vx d eval fx, t = 0.12vx := 1.579912687
Representación gráfica de f en el intervalo t = [0,4]plot fx, t = 0 ..4, x = 0 ..2, gridlines, thickness = 2, color = blue
t0 1 2 3 4
x
00.5
11.5
2
Problema de valor inicial para EDO de segundo ordenEntramos la EDO usando la notación punto para las derivadas. En esta caso la variable independiente es t
edo d x..C2 x
.C5 x = 0
edo := d2
dt2 x t C2 d
dt x t C5 x t = 0
Condiciones inicialescond d x 0 = 2, x
.0 =K1
cond := x 0 = 2, D x 0 =K1Solución del problema de valor inicial
s d dsolve edo, cond
s := x t = 12
eKt sin 2 t C2 eKt cos 2 t
Obtenemos una expresión con la soluciónfx d eval x t , s
Uso básico de Maple F. Palacios 2012
Página 21
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
fx := 12
eKt sin 2 t C2 eKt cos 2 t
Valor de x t para t =1.6vx d eval fx, t = 1.6
vx := K0.4089972466Representación gráfica de x(t) para valores de t en [0,6]
plot fx, t = 0 ..6, gridlines, thickness = 2
t1 2 3 4 5 6
0
1
2
Tiempo necesario para que x t tome el valor 0.75t1 d fsolve fx = 0.75
t1 := 0.5618757616Tiempo necesario para que la solución pase del valor x t = 1 hasta el valor x t = 0.25
t1 d fsolve fx = 1t1 := 0.4660615600
t2 d fsolve fx = 0.25t2 := 0.7747419625
Delta t = t2K t1Δ
t= 0.3086804025
12. Resolución simbólica de EDOsVolver a la tabla de contenidosEl comando dsolve( ) puede manejar ecuaciones diferenciales y condiciones iniciales con parámetros simbólicos
restartedo d y
.Ca y = cos w t
edo := ddt
y t Ca y t = cos w t
cond d y 0 = y0cond := y 0 = y0
s d dsolve edo, cond
s := y t = eKa t y0Ka
a2Cw2 Ccos w t aCsin w t w
a2Cw2
Verificamos la corrección de la soluciónodetest s, edo, cond
0, 0Extraemos una expresión para la solución
Uso básico de Maple F. Palacios 2012
Página 22
> >
> >
> >
> >
> >
> >
> >
> >
fy d eval y t , s
fy := eKa t y0Ka
a2Cw2 Ccos w t aCsin w t w
a2Cw2
Usamos el comando eval( ) para calcular la solución correspondiente a conjunto de valores concretos de los parámetros
valp d a = 2, w = 10, y0 = 3valp := a = 2, w = 10, y0 = 3
fyp d eval fy, valp
fyp := 15552
eK2 tC152
cos 10 t C552
sin 10 t
Obtenemos una versión float con evalf( )fypfd evalf fyp
fypf := 2.980769231 eK2. tC0.01923076923 cos 10. t C0.09615384615 sin 10. tGráfico y valor de la solución en t=1.3
vy d eval fypf, t = 1.3vy := 0.2792439728
plot fypf, t = 0 ..4, gridlines, thickness = 2
t0 1 2 3 4
0123
Gráfico múltiple que muestra la salida y la excitaciónplot cos 10 t , fyp , t = 0 ..4, color = blue, red , gridlines, legend = "Excitación",
"Respuesta" , thickness = 2
Excitación Respuestat
1 2 3 4K1
0
1
23
Uso básico de Maple F. Palacios 2012
Página 23
> >
> >
> >
13. Resolución gráfica de ODEs: campos de pendientesVolver a la tabla de contenidosLos campos de pendientes son una excelente representación gráfica para ODEs de primer orden en la forma y ' x = F x, y x . Los campos de pendientes permiten apreciar claramente el comportamiento cualitativo de las soluciones.El comando DEplot( ) de la libreria DEtools pemite dibujar los campos de pendientes de forma muysimple.
!!! Para acceder a los comandos contenidos en una libreria, debemos cargar previamente la libreria con el comando with( )
with DEtoolsAreSimilar, Closure, DEnormal, DEplot, DEplot3d, DEplot_polygon, DFactor, DFactorLCLM,
DFactorsols, Dchangevar, Desingularize, FunctionDecomposition, GCRD, Gosper, Heunsols,Homomorphisms, IVPsol, IsHyperexponential, LCLM, MeijerGsols,MultiplicativeDecomposition, ODEInvariants, PDEchangecoords, PolynomialNormalForm,RationalCanonicalForm, ReduceHyperexp, RiemannPsols, Xchange, Xcommutator, Xgauge,Zeilberger, abelsol, adjoint, autonomous, bernoullisol, buildsol, buildsym, canoni, caseplot,casesplit, checkrank, chinisol, clairautsol, constcoeffsols, convertAlg, convertsys, dalembertsol,dcoeffs, de2diffop, dfieldplot, diff_table, diffop2de, dperiodic_sols, dpolyform, dsubs, eigenring,endomorphism_charpoly, equinv, eta_k, eulersols, exactsol, expsols, exterior_power, firint,firtest, formal_sol, gen_exp, generate_ic, genhomosol, gensys, hamilton_eqs, hypergeomsols,hyperode, indicialeq, infgen, initialdata, integrate_sols, intfactor, invariants, kovacicsols,leftdivision, liesol, line_int, linearsol, matrixDE, matrix_riccati, maxdimsystems, moser_reduce,muchange, mult, mutest, newton_polygon, normalG2, ode_int_y, ode_y1, odeadvisor, odepde,parametricsol, particularsol, phaseportrait, poincare, polysols, power_equivalent,rational_equivalent, ratsols, redode, reduceOrder, reduce_order, regular_parts, regularsp,remove_RootOf, riccati_system, riccatisol, rifread, rifsimp, rightdivision, rtaylor, separablesol,singularities, solve_group, super_reduce, symgen, symmetric_power, symmetric_product,symtest, transinv, translate, untranslate, varparam, zoom
Escribimos la EDO usando la notación prima para la derivada, en esta caso la variable independientees x
edo d y '= xKy2
edo := ddx
y x = xKy x 2
DEplot edo, y x , x = 0 ..5, y =K2 ..2
x1 2 3 4 5
y(x)
K2K1
12
Uso básico de Maple F. Palacios 2012
Página 24
> >
> >
> >
> >
> >
> >
> >
> >
También podemos incluir algunas soluciones particulares suminstrando a DEplot( ) una lista de valores iniciales
vinicsd y 0 = 0 , y 0 = 1 , y 0 = 2 , y 0 =K0.7 , y 0 =K0.8vinics := 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
x1 2 3 4 5
y(x)
K2K1
12
La opción linecolor permite asignar ordenadamente colores a las diferentes soluciones particulares. La opción color controla el color de las flechas del campo
vcols d black, blue, green, cyan, redvcols := black, blue, green, cyan, red
DEplot edo, y x , x = 0 ..5, y =K2 ..2, vinics , linecolor = vcols , color = gray
x1 2 3 4 5
y(x)
K2
K1
1
2
14. Resolución numérica de EDOsVolver a la tabla de contenidosLa mayoría de EDOs no tienen una solución exacta, expresable como una combinación de funcioneselementales
restart
edo d y '=Kx2 yCcos x
edo := ddx
y x =Kx2 y x Ccos x
s d dsolve edo, y 0 = 1 , y x
s := y x = eK
13
x3
0
x
cos _z1 e13
_z13
d_z1 CeK
13
x3
Para estos casos, la opción numeric del comando dsolve( ) nos permite obtener una aproximación numérica de la solución
sn d dsolve edo, y 0 = 1 , y x , numericsn := proc x_rkf45 ... end proc
El resultado que nos proporciona dsolve( ) con la opción numeric es un programa (procedure) que implementa un método numérico para aproximar la función solución. Por defecto, dsolve( )
Uso básico de Maple F. Palacios 2012
Página 25
> >
> >
> >
> >
> >
> >
> >
> >
> >
implementa el método de Runge-Kutta 45 forward. En caso necesario podemos indicar a dsolve( ) que implemente otros métodos numéricos
sn 1.2x = 1.2, y x = 1.14961123596730
El comando odeplot( ) de la libreria plots( ) nos permite dibujar una representación gráfica de la solución usando el programa proporcionado por dsolve( )
with plotsanimate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d, conformal,
conformal3d, contourplot, contourplot3d, coordplot, coordplot3d, densityplot, display,dualaxisplot, fieldplot, fieldplot3d, gradplot, gradplot3d, implicitplot, implicitplot3d, inequal,interactive, interactiveparams, intersectplot, listcontplot, listcontplot3d, listdensityplot, listplot,listplot3d, loglogplot, logplot, matrixplot, multiple, odeplot, pareto, plotcompare, pointplot,pointplot3d, polarplot, polygonplot, polygonplot3d, polyhedra_supported, polyhedraplot,rootlocus, semilogplot, setcolors, setoptions, setoptions3d, spacecurve, sparsematrixplot,surfdata, textplot, textplot3d, tubeplot
odeplot sn, x = 0 ..5
x1 2 3 4 5
y
0
1
Una EDO de segundo ordenedo2 d y ''Ccos x y 'Cx sin x y = cos 20 x 2
edo2 := d2
dx2 y x Ccos x ddx
y x Cx sin x y x = cos 20 x 2
cond d y 0 = 0, y ' 0 =K1cond := y 0 = 0, D y 0 =K1
s d dsolve edo2, conds :=
Maple no consigue obtener una solució exacta. Construimos una solución aproximada con la opciónnumeric
sn d dsolve edo2, cond , numericsn := proc x_rkf45 ... end proc
En este caso, el procedimiento programado por Maple nos proporciona, para cada x, una aproximación numérica del valor que toma la función y su derivada
sn 1.2
x = 1.2, y x =K0.413056951893404, ddx
y x = 0.187826374585524
Representamos la solución y x con odeplot( )odeplot sn, x = 0 ..10
Uso básico de Maple F. Palacios 2012
Página 26
> >
> >
x2 4 6 8 10
y
0500
10001500
También podemos representar la derivada y ' x como sigueodeplot sn, x, y ' x , x = 0 ..10
x2 4 6 8 10
y'
0
2000
4000
El siguiente comando dibuja el diagrama de fase odeplot sn, y x , y ' x , x = 0 ..10
y0 500 1000 1500
y'
1000
2000
3000
4000
Uso básico de Maple F. Palacios 2012
Página 27
15. Algunas diferencias entre Maple y MatlabVolver a la tabla de contenidos
Acciones Maple Matlab
Editar Edición en hojas de trabajo y documentos intractivos
Conjuntos de comandos en m-files
Presentación de resultados
Los resultados son presentados en la misma hoja de trabajo, a continuación
del comando
Los resultados se presenta en la ventana de comandos
Ejecución [ENTER] ejecuta la línea de comandos [F5] ejecuta el m-file actual
Asignación := =
Eliminar presentación de resultados
: ;
Comentarios # %
Separación de comandos
; ,
Romper la línea de comandos sin ejecutar
[Shift]+[Enter] [Enter], en el editor de m-files
Trabajo con nombres no asignados
Los nombres no asignados actúan como variables simbólicas
La evaluación de un nombre no asignado produce un error
Práctica 1: Caída libre sin fricción F. Palacios 2012
Página 28
> > > >
> >
> >
Computación científica y técnica con Maple
Práctica 1. Caída libre sin fricciónF. Palacios Quiñonero
Dept. Matemática Aplicada III. Universidad Politécnica de Cataluña
Ver. 1.1. Febrero, 2012
m, masa (in kg)•
g = 9.81 m/s2, aceleración de la gravedad• fg = m g, peso (en Newtons)•
y t , posición (en m)•
v t = y.
t , velocidad (en m sK1• Ecuación diferencialm y
..=Km g 0 y
..t =Kg
El objetivo de este ejercicio práctico es obtener una experiencia directa en el manejo de algunos comandos básicos de Maple. Usamos para ello un problema simple y bien conocido: la caída libre de un objeto cuando la fricción es despreciable.
Ejemplo resueltoEcuación diferencial, usando la notación punto para las derivadas
restart;edo d y
..=Kg
edo := d2
dt2 y t =Kg
Condiciones iniciales simbólicascond d y 0 = y0, y
.0 = v0
cond := y 0 = y0, D y 0 = v0
Solución simbólicasd dsolve edo, cond
s := y t =K12
g t2Cv0 tCy0
Vemos que hemos obtenido la bien conocida fórmula general del desplazaimento en el movimiento uniformemente acelerado.Lista de valores particulares
Práctica 1: Caída libre sin fricción F. Palacios 2012
Página 29
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
vpart d y0 = 50, v0 = 10, g = 9.81vpart := y0 = 50, v0 = 10, g = 9.81
Extraemos la expresion general del desplazamiento y tfy d eval y t , s
fy := K12
g t2Cv0 tCy0
Expresion particular del desplazamiento para los valores particulares contenidos en la lista vpartfyp d eval fy, vpart
fyp := K4.905000000 t2C10 tC50Gráfico de y t para t 2 0, 5
plot fyp, t = 0 ..5, gridlines
t1 2 3 4 5
K20
0
20
50
La posición después de 4 segundos es un poco mayor de 10mPosición después de t = 4 segundos
tp d 4tp := 4
yp d eval fyp, t = tpyp := 11.52000000
Expresión particular para la velocidadfvp d diff fyp, t
fvp := K9.810000000 tC10Grafico de la velocidad para t 2 0, 5
plot fvp, t = 0 ..5, gridlines
t1 2 3 4 5
K30K20K10
010
La velocidad después de 4 segundos está alrededor de -30m/sVelocidad para t = 4s
vp d eval fvp, t = tpvp := K29.24000000
Tiempo de impacto contra el suelots d fsolve fyp = 0, t = 0 ..50
Práctica 1: Caída libre sin fricción F. Palacios 2012
Página 30
> >
> >
> >
> >
ts := 4.370903613Velocidad en el instante del impacto
vsd eval fvp, t = tsvs := K32.87856444
Gráfico t-yplot fyp, t = 0 ..ts, gridlines
t0 1 2 3 4
0
20
50
Tiempo para altura máxima (pico) tp d solve fvp = 0
tp := 1.019367992Altura máxima
yp d eval fyp, t = tpyp := 55.09683996
Práctica 1: Caída libre sin fricción F. Palacios 2012
Página 31
> >
> >
> >
Actividades
Resuelve los siguientes apartados para la EDO y..
t =Kg
Calcula la solución simbólica para las condiciones iniciales y 0 = y0, y.
0 = v0.1.
Calcula la solución particular correspondiente a la posición inicial y0 = 75m, la
velocidad inicial v0 = 28 m/ s, y el valor g = 9.81m/s2.
2.
Dibuja el gráfico de y t para 0 % t % 8s.3. Calcula la velocidad v t = y
.t y dibuja el gráfico de v t para 0 % t % 8s.4.
A partir de los gráficos, realiza una estimación aproximada del valor de la posición y la velocidad del objeto para t = 2.5 s
5.
Calcula los valores de la posición y la velocidad del objeto para t = 2.5s6. Calcula la altura máxima y el tiempo correspondiente (Indicación: la velocidad esnula en cuando se alcanza la altura máxima). Observa los gráficos correspondientes para verificar que los valores obtenidos son consistentes con la información gráfica disponible.
7.
Calcula el instante en que el objeto impacta contra el suelo, y la velocidad de impacto. Observa los gráficos para verificar la consistencia de los resultados obtenidos.
8.
Compara tus resultados con los obtenidos por alguno de tus compañeros. En caso de discrepancia, intentad encontrar el error.
9.
Nota. Como guía, puedes consultar el tutorial de Maple y el ejemplo resuelto. Sin embargo, es recomendable que evites copiar literalmente los comandos, y/o copiar-pegar fragmentos de código. Recuerda que el objectivo de este ejercicio práctico es obtener una experiencia práctica en el manejo de los comandos básicos de Maple.
Solucionesrestart;
Ecuación diferencial, usamos la notación punto para derivadasedo d y
..=Kg
edo := d2
dt2 y t =Kg
Condiciones iniciales simbólicascond d y 0 = y0, y
.0 = v0
cond := y 0 = y0, D y 0 = v0
Solución simbólica
Práctica 1: Caída libre sin fricción F. Palacios 2012
Página 32
> >
> >
> >
> >
> >
> >
> >
> >
> >
sd dsolve edo, cond
s := y t =K12
g t2Cv0 tCy0
Lista de valores particularesvpart d y0 = 75, v0 = 28, g = 9.81
vpart := y0 = 75, v0 = 28, g = 9.81
Extraemos la expresion del desplazamiento y tfy d eval y t , s
fy := K12
g t2Cv0 tCy0
Expresion particular del desplazamiento para los valores particulares contenidos en la lista vpartfyp d eval fy, vpart
fyp := K4.905000000 t2C28 tC75Gráfico de y t para t 2 0, 8
plot fyp, t = 0 ..8, gridlines
t1 2 3 4 5 6 7 8
0
60
100
La posición después de 2.5 segundos es un poco mayor de 110mPosición después de t = 2.5 segundos
tp d 2.5tp := 2.5
yp d eval fyp, t = tpyp := 114.3437500
Expresión particular para la velocidadfvp d diff fyp, t
fvp := K9.810000000 tC28Gráfico de v t para t 2 0, 8
plot fvp, t = 0 ..8, gridlines
t1 2 3 4 5 6 7 8
K50
K30
K10
20
La velocidad en el instante t = 2.5 está alrededor de 4m/s. El cuerpo aún está ascendiendo en ese instante
Práctica 1: Caída libre sin fricción F. Palacios 2012
Página 33
> >
> >
> >
> >
> >
> >
> > Velocidad para t = 2.5 s
vp d eval fvp, t = tpvp := 3.47500000
Tiempo de impacto contra el suelots d fsolve fyp = 0, t = 0 ..50
ts := 7.695423507Velocidad en el instante del impacto
vsd eval fvp, t = tsvs := K47.49210460
Gráfico t-y, ajustado al tiempo de vueloplot fyp, t = 0 ..ts, gridlines
t0 1 2 3 4 5 6 7
0
60
100
Tiempo para altura máxima (pico) tp d solve fvp = 0
tp := 2.854230377Altura máxima
yp d eval fyp, t = tpyp := 114.9592253
Práctica 2. Ley de enfriamiento de Newton F. Palacios 2012
Página 34
> >
> >
Computación científica y técnica con Maple
Práctica 2. Ley de enfriamiento de NewtonF. Palacios Quiñonero
Dept. Matemática Aplicada III. Universidad Politécnica de Cataluña
Ver. 1.1. Febrero, 2012
En este ejercicio práctico, vamos a estudiar la evolución de la temperatura de un objetox t ubicado en un entorno con una temperatura Text t . Para este problema, la Ley de enfriamiento de Newton establece que el cambio de temperatura en el objeto es proporcional a la diferencia de temperatura entre el objeto y el medio TextKx t . Con mayor precisión,
ddt
x t = a Text t K x t ,
donde los distintos símbolos tienen el siguiente significado:t, tiempo (en minutos) • x t temperatura del cuerpo (en ºC)• Text t temperatura externa (en ºC)• a O 0, constante de proporcionalidad•
Observa que si Text t O x t 0 x.
t O 0. Por lo tanto, x t es creciente en este caso. Análogamente, x t decrece para Text t ! x t .
Ejemplo 1. Un ejemplo básicorestart
Ecuación diferencialedo d x
.= a TextKx
edo := ddt
x t = a TextKx t
Condiciones iniciales
Práctica 2. Ley de enfriamiento de Newton F. Palacios 2012
Página 35
> >
> >
> >
> >
> >
> >
> >
> >
> >
cond d x 0 = x0cond := x 0 = x0
Solución simbólica s d dsolve edo, cond
s := x t = TextCeKa t x0KText
Test de la soluciónodetest s, edo, cond
0, 0Expresión para x t
fx d eval x t , sfx := TextCeKa t x0KText
Valores particulares de los parámetros y la condición inicial
pvals d a = 12
, x0 = 100, Text = 20
pvals := a = 12
, x0 = 100, Text = 20
Expresión de la solución para los valores particulares de los parámetrosfxp d eval fx, pvals
fxp := 20C80 eK
12
t
Temperatura después de 5 minutosvx d eval fxp, t = 5.
vx := 26.56679989Evolución de la temperatura x t para los primeros 40 minutos
plot fxp, t = 0 ..40, x = 0 ..100, gridlines
t0 10 20 30 40
x
0
60
100
Tiempo necesario para que la temperatua del objeto descienda hasta 45ºCvt d fsolve fxp = 45
vt := 2.326301620
Práctica 2. Ley de enfriamiento de Newton F. Palacios 2012
Página 36
> >
> >
> >
> >
> >
> >
> >
> >
> >
Ejemplo 2. Un ejemplo algo más realistaEn un determinado momento, la temperatura de un horno es de 220 ºC. Después de 15 minutos, la temperatura ha descendido hasta 85 ºC. a) Suponiendo que la temperatura ambiente se mantiene constante a 25ºC, usa la Ley de Enfriamiento de Newton para calcular la temperatura del horno después de 30 minutos.
b) Asumiendo que el horno incorpora un mecanismo de seguridad que impide la apertura a temperaturas superiores a 45ºC, calcula el tiempo necesario para la apertura del horno.
Empezamos con los mismos cuatro pasos iniciales seguidos en el ejemplo anterior.restart;
Ecuación diferencialedo d x
.= a TextKx
edo := ddt
x t = a TextKx t
Condiciones inicialescond d x 0 = x0
cond := x 0 = x0
Solución simbólicas d dsolve edo, cond
s := x t = TextCeKa t x0KText
fx d eval x t , sfx := TextCeKa t x0KText
Ahora, introducimos los valores particulares de la temperatura inicial x0 = 220 ºC, y la temperatura exterior Text = 25 ºC
pvals1 d Text = 25, x0 = 220pvals1 := Text = 25, x0 = 220
Obenemos la expresión de la solución con esos valores particulars de los parámetrosfx1 d eval fx, pvals1
fx1 := 25C195 eKa t
A continuación, usamos la información adicional x 15 = 85 ºC para calcular el valor de la constante de proporcionalidad a
vx15 d eval fx1, t = 15vx15 := 25C195 eK15 a
Valor exacto de a va d solve vx15 = 85
Práctica 2. Ley de enfriamiento de Newton F. Palacios 2012
Página 37
> >
> >
> >
> >
> >
> >
> >
> >
va := K115
ln 413
Aproximación float del valor de a vaf d evalf va
vaf := 0.07857699974Una vez calculado el valor de a, obtenemos la expresion de la solución
fx2 d eval fx1, a = va
fx2 := 25C195 e115
ln413
t
Expresion floatfx2fd evalf fx2
fx2f := 25.C195. eK0.07857699974 t
Evolución de la temperatura para los primeros 100 minutosplot fx2, t = 0 ..100, x = 0 ..220, gridlines, color = blue , thickness = 2
t0 20 40 60 80 100
x
0
100
200
Temperatura del horno después de 30 minuntosv30 d eval fx2f, t = 30.
v30 := 43.46153847Tiempo para apertura de seguridad
ts d solve fx2 = 45
ts :=15 ln 4
39
ln 413
Aproximación floattsf d evalf ts
tsf := 28.98134686Resolución gráfica
plot fx2, 45 , t = 0 ..60, x = 0 ..220, gridlines, color = blue, red , thickness = 2, 1
t0 10 20 30 40 50 60
x
050
100150200
Práctica 2. Ley de enfriamiento de Newton F. Palacios 2012
Página 38
> >
> >
> >
> >
> >
> >
Ejemplo 3. Estudio del tiempo de enfriamiento en función del valor de la temperatura del medio En el ejemplo anterior hemos obtenido una expresión genérica para la temperatura x t . El nombre asignado a esa solución es fx
fxTextCeKa t x0KText
Maple nos permite resolver todas las cuestiones anteriores manteniendo indeterminado el valor de los parámetros y la condición inicial. Para ilustrar el interés de este enfoque, vamos a estudiar el tiempo de enfriamiento en función de la temperatura del medio Text
Tiempo necesario para alcazar la temperatura de apertura segura 45 ºCt45 d solve fx = 45, t
t45 := K
lnTextK45Kx0CText
a
Usando esta expresión, podemos investigar la dependencia del tiempo de apertura segura respecto de la temperatura externa. En este ejemplo, tomaremos los valores correspondientes al horno del Ejemplo 2
pvals2 d a = va, x0 = 220
pvals2 := a =K115
ln 413
, x0 = 220
Evaluamos el tiempo de enfriamiento seguro para los valores particulares de a y x0 ts d eval t45, pvals2
ts :=15 ln
TextK45K220CText
ln 413
Evaluación floattsf d evalf ts
tsf := K12.72637035 lnTextK45.
K220.CText
Gráfico del tiempo de enfriamiento seguro en función de la temperatura exteriorplot tsf, Text =K10 ..50, t = 0 ..80, gridlines, thickness = 2, title = "Tiempo de apertura"
Text
K10 0 10 20 30 40 50
t20
5080
Tiempo de apertura
Práctica 2. Ley de enfriamiento de Newton F. Palacios 2012
Página 39
> >
> >
> >
> >
> >
A partir del gráfico, podemos apreciar claramente que el tiempo de enfriamieno seguro aumenta significativamente cuando la temperatura del medio está alrededor de 40ºC. La asíntota 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 gráfico:
plot tsf, Text = 20 ..40, t = 25 ..45, gridlines, thickness = 2, title = "Tiempo de apertura"
Text
25 30 35 40
t
2530354045
Tiempo de apertura
En el gráfico podemos apreciar una importante variabilidad en el tiempo de enfriamiento seguro, con un rango aproximado de 20 minutos. A continuación, calculamos con precisión ese rango
ts20 d eval tsf, Text = 20.ts20 := 26.46374318
ts40 d eval tsf, Text = 40.ts40 := 45.60518916
rangts d ts40Kts20
rangts := 19.14144598
Práctica 2. Ley de enfriamiento de Newton F. Palacios 2012
Página 40
2. 2.
4. 4.
3. 3.
5. 5.
6. 6.
1. 1.
Actividad 1
Tomando como referencia el Ejemplo 1, resuelve las siguiente cuestiones para la EDOddt
x t = a Text t Kx t
Resuelve la ecuación diferencial para los valores particualres a = 0.2, Text = 35ºC, y la temperatura inicial x 0 = 300 ºCDibuja el gráfico de la temperatura x t para la primera media hora (t 2 0, 30 .Incluye la cuadrícula en el gráfico.A partir del gráfico, estima aproximadamente el valor de la temperatura para t = 10 min.Calcula con eval( ) la temperatura x 10 . Compara el valor obtenido con la estimación que has hecho a partir del gráfico.Usa el gráfico para estimar el tiempo necesario para que el objeto alcance una temperatura de 150ºC.Calcula con fsolve( ) el tiempo necesario para que el objeto alcance 150ºC. Compara el resultado con la estimación anterior.
Actividad 2
Ahora supongamos que tenemos un horno a 530ºC y que, después de 15 minutos, la temperatura ha decrecido hasta 110ºC.
Asumiendo que la temperatura del entorno se mantiene constante a 30ºC, usa la ley de enfriamiento de Newton para determinar la temperatura después de 22 minutos.
1.
Dibuja un gráfico de la evolución de la temperatura x t a lo largo de la primera media hora. Usa el gráfico para estimar la temperatura después de 10 minutos, y el tiempo necesario para que el horno descienda hasta una temperatura de 150ºC.
2.
Calcula con eval( ) la temperatura x 10 .3. Calcula con fsolve( ) el tiempo t para x t = 150ºC.4.
Nota: Puedes usar el Ejemplo 2 como orientación. Consulta el ejemplo e intenta escibirtu propio código, procurando comprender el funcionamiento de los comandos y su sintaxis.
Práctica 2. Ley de enfriamiento de Newton F. Palacios 2012
Página 41
Actividad 3
Para los valores particulares a = 0.3, y Text = 40ºC.
Dibuja el campo de pendientes de la ecuación diferencial. Usa los intervalos 0 % t % 40 min, 0 % x t % 300º C.
1.
Dibuja sobre el campo de pendientes la solución particular correspondiente a la temperatua inicial x 0 = 200º C. Para esta solución particular, estima sobre el gráfico 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 ythickness=2).
2.
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 (opción color=gray), y assigna los colores black, red, green, blue, cyan a las diferentes curvas.
3.
Suponiendo que la temperatura inicial se sitúa en el rango [200º C, 300º C], realiza una estimación del rango de temperaturas después de 4 minutos.
6.
Suponiendo que la temperatura inicial está en el rango [200º C, 300º C], realiza una estimación del tiempo requerido para que la temperatura del objeto desciendahasta 100ºC.
7.
Explica el comportamiento de las curvas con condiciones iniciales x 0 = 40º C, x 0 = 20º C.
8.
Calcula valores numéricos para las estimaciones realizadas en los apartados (2), (4) and (5).
9.
Práctica 2. Ley de enfriamiento de Newton F. Palacios 2012
Página 42
> >
> >
> >
> >
> >
> >
> >
> >
> >
Soluciones
Actividad 1EDO
restartedo d x
.= a TextKx
edo := ddt
x t = a TextKx t
Condiciones inicialescond d x 0 = x0
cond := x 0 = x0
Solución simbólicas d dsolve edo, cond
s := x t = TextCeKa t x0KText
Expresión para la soluciónfx d eval x t , s
fx := TextCeKa t x0KText
Valores particulares de los parámetros y la condición inicialpvals d a = 0.2, Text = 35, x0 = 300
pvals := a = 0.2, Text = 35, x0 = 300
Espresión para la solución particularfxp d eval fx, pvals
fxp := 35C265 eK0.2 t
Gráficoplot fxp, t = 0 ..30, gridlines
t0 10 20 30
100
200
300
Valor estimado en el gráfico x(10) z 75ºValor calculado para x 10
vx10 d eval fxp, t = 10.vx10 := 70.86385005
Tiempo estimado para x t = 150º / 4minTiempo calculado para x t = 150º
Práctica 2. Ley de enfriamiento de Newton F. Palacios 2012
Página 43
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
t150 d fsolve fxp = 150t150 := 4.173988488
Actividad 21. Temperatura después de 22min.
restartPrimero, calculamos el valor de la constante a EDO
edo d x.
= a$ TextKx
edo := ddt
x t = a TextKx t
cond d x 0 = 530cond := x 0 = 530
s d dsolve edo, conds := x t = TextCeKa t 530KText
fx d eval x t , sfx := TextCeKa t 530KText
fxp d eval fx, Text = 30
fxp := 30C500 eKa t
vx15 d eval fxp, t = 15vx15 := 30C500 eK15 a
va d solve vx15 = 110, a
va := K115
ln 425
vaf d evalf vavaf := 0.1221720976
Expresión para x tfxp1 d eval fxp, a = vaf
fxp1 := 30C500 eK0.1221720976 t
Temperatura después de 22minvx22 d eval fxp1, t = 22
vx22 := 64.015692132.1 Grafico para la primer hora
plot fxp1, t = 0 ..60, x = 0 ..600, gridlines
t0 10 20 30 40 50 60
x
0200400600
Práctica 2. Ley de enfriamiento de Newton F. Palacios 2012
Página 44
> >
> >
> >
> > > >
> >
> >
> >
> >
Valores estimados: x 10 z 175º C; tiempo aproximado para x t = 150º C / t z 12 min. 2.3, 2.4 Valores calculados
vx10 d eval fxp1, t = 10.vx10 := 177.3612599
vt150 d fsolve fxp1 = 150vt150 := 11.68119713
Actividad 33.1 Campo de pendientes
restartedo d x
.= a TextKx
edo := ddt
x t = a TextKx t
pvals d a = 0.3, Text = 40pvals := a = 0.3, Text = 40
EDO particular para los valores de los parámetrosedop d eval edo, pvals
edop := ddt
x t = 12.0K0.3 x t
Carga de la libreria DEtoolswith DEtools :DEplot edop, x t , t = 0 ..40, x = 0 ..300
t0 10 20 30 40
x(t)100
200
300
3.2 Gráfico de la solución del problema de valor inicial con x 0 = 200DEplot edop, x t , t = 0 ..40, x = 0 ..300, x 0 = 200 , linecolor = blue
t0 10 20 30 40
x(t)100
200
300
Valores estimados a partir del gráfico: temperatura para t = 5min z 75º C. Tiempe para x t = 150º C, approx 1.5 min.
Práctica 2. Ley de enfriamiento de Newton F. Palacios 2012
Página 45
> >
> >
> >
> >
> >
> >
> >
3.3 Conjunto de soluciones para los valores iniciales dadospvalins d x 0 = 300, x 0 = 250, x 0 = 200, x 0 = 40, x 0 = 20
pvalins := x 0 = 300, x 0 = 250, x 0 = 200, x 0 = 40, x 0 = 20pcols d black, red, green, blue, cyan
pcols := black, red, green, blue, cyan
DEplot edop, x t , t = 0 ..40, x = 0 ..300, pvalins , linecolor = pcols , color = gray,thickness = 2
t0 10 20 30 40
x(t)100
200
300
3.4 Estimación del rango de temperaturas después de 4 min para soluciones con valores inciales en el rango [200,300]
pvalins d x 0 = 300, x 0 = 250, x 0 = 200pvalins := x 0 = 300, x 0 = 250, x 0 = 200
pcols d black, red, greenpcols := black, red, green
DEplot edop, x t , t = 0 ..4, x = 0 ..300, pvalins , linecolor = pcols , color = gray,thickness = 2
t0 1 2 3 4
x(t)100
200
300
El rango aproximado de temperaturas es [90,120]3.5 Estimación del rango de tiempo para temp=100º C cuando la temperatura incial está enel rango [200,300]
DEplot edop, x t , t = 0 ..6, x = 0 ..300, pvalins , linecolor = pcols , thickness = 2, color= gray
Práctica 2. Ley de enfriamiento de Newton F. Palacios 2012
Página 46
> >
t0 1 2 3 4 5 6
x(t)
100
200
300
El rango aproximado de tiempos es 3-5 min.