Diferencias Finitas
Problemas de Valor Inicial
Modelaci´ on computacional en las ciencias y las ingenier´ıas como apoyo en el proceso ense˜ nanza-aprendizaje
(PAPIME-PE101019)
Instituto de Geof´ısica
Universidad Nacional Aut´ onoma de M´ exico
Esta obra est´a bajo unaLicencia Creative Commons Atribuci´on-NoComercial-CompartirIgual 4.0 Internacional.
Contenido
1 Problemas de Valor Inicial
2 M´ etodo de Euler Ejercicio 6.
Ejercicio 7.
Ejercicio 8.
3 M´ etodos de Runge-Kutta Ejercicio 9.
4 Referencias
5 Cr´ editos
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 2 / 42
Contenido
1 Problemas de Valor Inicial
2 M´ etodo de Euler Ejercicio 6.
Ejercicio 7.
Ejercicio 8.
3 M´ etodos de Runge-Kutta Ejercicio 9.
4 Referencias
5 Cr´ editos
Problemas de Valor Inicial
Las ecuaciones diferenciales que modelan problemas de la ciencia y la ingenier´ıa involucran el cambio de alguna variable con respecto a otra. La mayor´ıa de estos problemas requieren de la soluci´ on de un problema de valor inicial, es decir, la soluci´ on de una ecuaci´ on diferencial que satisface una condici´ on inicial dada:
IVP (Initial Value Problem) Aproximar la soluci´ on y(t) al problema:
dy(t)
dt = f (t, y), para a ≤ t ≤ b sujeto a la condici´ on inicial y(a) = α
En muchos casos las soluciones anal´ıticas a los problemas de valor inicial no pueden encontrarse, por lo que se usan m´ etodos num´ ericos para aproximar sus soluciones.
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 4 / 42
Contenido
1 Problemas de Valor Inicial
2 M´ etodo de Euler Ejercicio 6.
Ejercicio 7.
Ejercicio 8.
3 M´ etodos de Runge-Kutta Ejercicio 9.
4 Referencias
5 Cr´ editos
M´ etodo de Euler
El m´ etodo de Euler es el m´ as sencillo para obtener soluciones
aproximadas al problema de valor inicial bien planteado que se escribe como:
dy
dt = f (t, y), a ≤ t ≤ b, y(a) = α (1) Podemos aproximar la soluci´ on en N t pasos de tiempo igualmente espaciados en [a, b], estos puntos se definen como sigue: t n = a + n ∗ h t
para n = 0, 1, 2, . . . , N t , donde h t = (b − a)/N t es el tama˜ no del paso (stepsize).
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 6 / 42
Supongamos que el problema (1) tiene una soluci´ on ´ unica y(t) y que adem´ as tiene dos derivadas continuas en [a, b], de tal manera que para cada n = 0, 1, 2, . . . , N t − 1 tenemos la siguiente expansi´ on en series de Taylor:
y(t n+1 ) = y(t n ) + (t n+1 − t n ) dy
dt (t n ) + (t n+1 − t n ) 2 2
d 2 y dt 2 (ξ n ) para alg´ un n´ umero ξ n ∈ (t n − t n+1 ). Dado que y(t) satisface la ecuaci´ on diferencial (1) y como h t = (t n+1 − t n ) entonces podemos escribir:
y(t n+1 ) = y(t n ) + h t f (t n , y(t n )) + h 2 t
2 y 00 (ξ n ) (2)
Forward Euler
El m´ etodo de Euler hacia adelante (forward ) consiste en eliminar el
´
ultimo t´ ermino de la ecuaci´ on (2) de tal manera que, definiendo y n = y(t n ) tenemos lo siguiente
y 0 = y(a) = α
y n+1 = y n + h t f (t n , y n ), para n = 0, 1, 2, . . . , N t − 1 (3) La ecuaci´ on (3) proporciona una aproximaci´ on a la soluci´ on del
problema (1) en el paso t n+1 y se conoce como la ecuaci´ on en diferencias. Este m´ etodo:
• Es expl´ıcito.
• Es barato.
• Es f´ acil de implementar.
• Es condicionalmente estable
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 8 / 42
Backward Euler
Es posible derivar un m´ etodo de Euler hacia atr´ as (Backward Euler) el cual se escribe como:
y
0= y(a) = α
y
n+1= y
n+ h
tf (t
n+1, y
n+1), para n = 1, 2, . . . , N
t− 1 (4) Obs´ ervese que:
• Esta f´ ormula es impl´ıcita.
• El costo por paso puede ser mayor que en el caso de Forward Euler.
• En general es m´ as dif´ıcil de implementar.
• Este m´ etodo es m´ as estable que el Forward Euler.
Ejercicio 6: Decaimiento radiocativo
La ley de decaimiento radioactivo dice que la masa de una substancia radioactiva decae a una raz´ on que es proporcional a la cantidad de masa que est´ a presente. Si y(t) expresa la cantidad de substancia en el tiempo t, entonces la ley de decaimiento se expresa como:
dy(t)
dt = −λy(t), para 0 < t < T
maxy(0) = y
0(condici´ on inicial)
donde y
0representa la cantidad de susbtancia inicial, T
max= h
t∗ N
ty λ > 0. La soluci´ on exacta es: y(t) = y
0e
−λt.
1 Aproximar el decaimiento radioctivo usando los m´ etodos forward Euler y backward Euler :
a Escribir y analizar las f´ ormulas de los m´ etodos.
b Implementar los m´ etodos en Python.
c Mostrar el comportamiento de ambos m´ etodos para λ = 1.5, y
0= 20, T
max= 10 y N
t= 7, 8, 9, 10, 20.
d ¿Cu´ antos pasos de tiempo (N
t) se necesitan para que el error sea menor que 1.0 en cada m´ etodo?
Entregue su c´ odigo documentado en una notebook de nombre E06 decaimiento.ipynb.
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 10 / 42
Ejercicio 6: Soluci´ on 1.a
Forward Euler:
y
n+1= y
n− h
tλy
n=⇒ y
n+1= (1 − h
tλ) y
nPaso 1: y
1= A y
0Paso 1: y
2= A
2y
0. . . . . . . . . Paso N
t: y
n+1= A
Nty
0Donde: A = (1 − h
tλ). Obs´ ervese que si existe un error en y
i, ese error se multiplica por A al calcular y
i+1. Si
|A| > 1 dicho error podr´ıa llevar a la no convergencia del m´ etodo.
Backward Euler:
y
n+1= y
n− h
tλy
n+1=⇒ y
n+1= (1 + h
tλ)
−1y
nPaso 1: y
1= B y
0Paso 1: y
2= B
2y
0. . . . . . . . . Paso N
t: y
n+1= B
Nty
0Donde: B = (1 + h
tλ)
−1. Obs´ ervese que
si existe un error en y
i, ese error se
multiplica por B al calcular y
i+1, pero
B < 1 en todos los casos, por lo que el
m´ etodo es estable.
Ejercicio 6: Soluci´ on 1.b
Nota: implemente el siguiente c´ odigo y documente usando docstring. Agregue el c´ odigo corrrespondiente para realizar las gr´ aficas que se muestran en las siguientes p´ aginas.
def m e s h ( a , b , Nt ):
ht = ( b - a ) / Nt r e t u r n ht
def e x a c t S o l u t i o n ( t , y0 , lam ):
r e t u r n y0 * np . exp ( - lam * t )
def f o r w a r d E u l e r ( y , ht , lam ):
A = 1 - ht * lam An = [ A ]
for i , val in e n u m e r a t e( y [ 0 : - 1 ] ) : y [ i +1] = A * y [ i ]
An . a p p e n d ( An [ i ] * A ) r e t u r n An
def b a c k w a r d E u l e r ( y , ht , lam ):
B = 1 /(1 + ht * lam ) Bn = [ B ]
for i , val in e n u m e r a t e( y [ 0 : - 1 ] ) : y [ i +1] = B * y [ i ]
Bn . a p p e n d ( Bn [ i ] * B ) r e t u r n Bn
Nt = 6 T m a x = 10
ht = m e s h (0 , Tmax , Nt ) y0 = 20
lam = 1.5
t = np . l i n s p a c e (0 , Tmax , Nt +1) yf = np . z e r o s ( Nt +1)
yb = np . z e r o s ( Nt +1)
yf [0] = y0 yb [0] = y0
e r r o r _ f = f o r w a r d E u l e r ( yf , ht , lam ) e r r o r _ b = b a c k w a r d E u l e r ( yb , ht , lam )
tl = np . l i n s p a c e (0 , Tmax , 1 0 0 ) y _ e x a c t a = e x a c t S o l u t i o n ( tl , y0 , lam ) y _ e x a c _ p = e x a c t S o l u t i o n ( t , y0 , lam )
e r r o r _ f = np . l i n a l g . n o r m ( yf - y _ e x a c _ p ,2) e r r o r _ b = np . l i n a l g . n o r m ( yb - y _ e x a c _ p ,2)
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 12 / 42
Ejercicio 6: Soluci´ on 1.c
0 2 4 6 8 10
t 30
20 10 0 10 20 30
y( t)
y(t) = y
0e
λt, N
t= 7, h
t= 1.43, Error: FE = 97.265882144, BE = 4.429308736
Sol. Exacta Forward Euler Backward Euler
1 2 3 4 5 6 7
n 3
2 1 0 1 2 3
A
n, B
nAn Bn
Decaimiento Radioactivo
El m´ etodo forward Euler (FE) es inestable y diverge. El m´ etodo backward Euler (BE) es muy estable y se obtiene una buena soluci´ on aunque imprecisa con un error de ∼ 4.43. Las gr´ aficas de los coeficientes de cada m´ etodo, A
ny B
n, reflejan el
comportamiento de cada
soluci´ on.
Ejercicio 6: Soluci´ on 1.c
0 2 4 6 8 10
t 30
20 10 0 10 20 30
y( t)
y(t) = y
0e
λt, N
t= 8, h
t= 1.25, Error: FE = 35.449598858, BE = 4.428349749
Sol. Exacta Forward Euler Backward Euler
1 2 3 4 5 6 7 8
n 1.0 0.8
0.6 0.4 0.2 0.0 0.2 0.4 0.6 0.8
A
n, B
nAn Bn
Decaimiento Radioactivo
La h
tse reduce, por lo que el m´ etodo FE ya no diverge, pero es inestable de tal manera que oscila.
El m´ etodo BE sigue estable, observe que el error es similar al del caso anterior. Las gr´ aficas de los coeficientes de cada m´ etodo, A
ny B
n, se mantienen entre −1 y 1, es decir |A
n| < 1 y
|B
n| < 1.
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 14 / 42
Ejercicio 6: Soluci´ on 1.c
0 2 4 6 8 10
t 30
20 10 0 10 20 30
y( t)
y(t) = y
0e
λt, N
t= 9, h
t= 1.11, Error: FE = 20.592451368, BE = 4.389771777
Sol. Exacta Forward Euler Backward Euler
1 2 3 4 5 6 7 8 9
n 0.8 0.6
0.4 0.2 0.0 0.2 0.4 0.6
A
n, B
nAn Bn
Decaimiento Radioactivo
La h
tes a´ un menor, pero el m´ etodo FE sigue oscilando, aunque menos que en el caso anterior. El m´ etodo BE sigue estable, observe que el error es del mismo orden que el caso anterior. Las gr´ aficas de los coeficientes de cada m´ etodo, A
ny B
n, muestran una reducci´ on y se sigue cumpliendo
|A
n| < 1 y |B
n| < 1.
Ejercicio 6: Soluci´ on 1.c
0 2 4 6 8 10
t 30
20 10 0 10 20 30
y( t)
y(t) = y
0e
λt, N
t= 10, h
t= 1.00, Error: FE = 15.316185442, BE = 4.330108267
Sol. Exacta Forward Euler Backward Euler
1 2 3 4 5 6 7 8 9 10
n 0.5 0.4
0.3 0.2 0.1 0.0 0.1 0.2 0.3 0.4
A
n, B
nAn Bn
Decaimiento Radioactivo
La h
tes a´ un menor, el m´ etodo FE oscila menos que en el caso anterior y el error se ha reducido. El m´ etodo BE sigue estable, observe que el error es del mismo orden que el caso anterior. Las gr´ aficas de los coeficientes de cada m´ etodo, A
ny B
n, muestran una reducci´ on y observe ahora que
|A
n| < 0.5 y |B
n| < 0.5.
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 16 / 42
Ejercicio 6: Soluci´ on 1.c
0 2 4 6 8 10
t 30
20 10 0 10 20 30
y( t)
y(t) = y
0e
λt, N
t= 20, h
t= 0.50, Error: FE = 5.867683225, BE = 3.612508004
Sol. Exacta Forward Euler Backward Euler
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 n
0.0 0.1 0.2 0.3 0.4 0.5 0.6
A
n, B
nAn Bn
Decaimiento Radioactivo
Finalmente el m´ etodo FE ya no oscila y su
comportamiento es similar al m´ etodo BE, a partir de ahora parece que los errores comienzan a reducirse en ambos casos conforme se aumenta N
t. De igual manera las gr´ aficas de los coeficientes de cada m´ etodo, A
ny B
ntienen un comportamiento similar y se mantienen en
|A
n| < 1 y |B
n| < 1.
Ejercicio 6: Soluci´ on 1.d
0 2 4 6 8 10
t 10 5 0 5
10 15 20 25 30
y( t)
y(t) = y
0e
λt, N
t= 367, h
t= 0.03, Error: FE = 1.023147849, BE = 0.999034497
Sol. Exacta Forward Euler Backward Euler
0 50 100 150 200 250 300 350
n 0.0
0.2 0.4 0.6 0.8 1.0
A
n, B
nAn Bn
Decaimiento Radioactivo
Se requiere de N
t= 367 para que el m´ etodo BE tenga un error menor que 1. Sin embargo ambos m´ etodos presentan un compartamiento similar con un error muy parecido. Las gr´ aficas de los coeficientes de cada m´ etodo, A
ny B
n, se mantienen en |A
n| < 1 y
|B
n| < 1.
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 18 / 42
Ejercicio 6: Soluci´ on 1.d
0 2 4 6 8 10
t 10 5 0 5
10 15 20 25 30
y( t)
y(t) = y
0e
λt, N
t= 384, h
t= 0.03, Error: FE = 0.999700114, BE = 0.977171230
Sol. Exacta Forward Euler Backward Euler
0 50 100 150 200 250 300 350
n 0.0
0.2 0.4 0.6 0.8 1.0
A
n, B
nAn Bn
Decaimiento Radioactivo
Se requiere de N
t= 384 para que el m´ etodo FE tenga un error menor que 1. Sin embargo ambos m´ etodos presentan un compartamiento similar con un error muy parecido. Las gr´ aficas de los coeficientes de cada m´ etodo, A
ny B
n, se mantienen en |A
n| < 1 y
|B
n| < 1.
Ejercicio 6: C´ odigo para los gr´ aficos
E c u a c i o n = ’ $y(t) = y_0 e ^{\ lambda t}$,’ + ’ $N_t$ ’ + ’= {} ’.f o r m a t( Nt ) + \
’ , $h_t$ ’ + ’= {:03.2 f}’.f o r m a t( ht )
E r r o r = ’ , E r r o r : FE = { : 1 0 . 9 f } , BE = { : 1 0 . 9 f } ’ .f o r m a t( n o r m a _ e r r o r _ f , n o r m a _ e r r o r _ b )
plt . s t y l e . use ([ ’ S o l a r i z e _ L i g h t 2 ’ ]) fig , ( ax1 , ax2 ) = plt . s u b p l o t s (2 ,1)
fig . s u p t i t l e ( ’ D e c a i m i e n t o R a d i o a c t i v o ’ , f o n t s i z e = 1 4 ) ax1 . p l o t ( tl , y _ e x a c t a , ’g - ’ , lw =3 , l a b e l = ’ Sol . E x a c t a ’ ) ax1 . p l o t ( t , yf , ’ C7o - - ’ , l a b e l = ’ F o r w a r d E u l e r ’ ) ax1 . p l o t ( t , yb , ’ C6o - - ’ , l a b e l = ’ B a c k w a r d E u l e r ’ )
ax1 . s e t _ t i t l e ( E c u a c i o n + Error , f o n t s i z e =12 , c o l o r = ’ b l u e ’ ) ax1 . s e t _ x l i m ( -0.5 , t [ - 1 ] + 0 . 5 )
ax1 . s e t _ y l i m ( -30 ,30) ax1 . s e t _ x l a b e l ( ’$t$ ’) ax1 . s e t _ y l a b e l ( ’$y(t)$’)
ax1 . l e g e n d ( loc = ’ u p p e r r i g h t ’ , n c o l =1 , f r a m e a l p h a =0.75 , f a n c y b o x = True , f o n t s i z e = 1 0 ) ax1 . g r i d ( c o l o r = ’ w ’ )
n t i c k s = np . a r a n g e (1 , Nt +1 ,1)
ax2 . p l o t ( nticks , An [: -1] , ’ C7v - ’ , l a b e l = ’$A^n$ ’) ax2 . p l o t ( nticks , Bn [: -1] , ’ C6 ^ - ’ , l a b e l = ’$B^n$ ’) ax2 . s e t _ x l i m ( -0.5 , Nt + 0 . 5 )
ax2 . s e t _ x t i c k s ( n t i c k s ) ax2 . s e t _ x l a b e l ( ’$n$ ’)
ax2 . s e t _ y l a b e l ( ’$A^n$ , $B^n$ ’)
ax2 . l e g e n d ( loc = ’ u p p e r r i g h t ’ , n c o l =1 , f r a m e a l p h a =0.75 , f a n c y b o x = True , f o n t s i z e = 1 0 ) ax2 . g r i d ( c o l o r = ’ w ’ )
plt . s u b p l o t s _ a d j u s t ( h s p a c e = 0 . 3 5 )
plt . s a v e f i g ( ’ d e c a i m i e n t o _ N t _ {}. pdf ’ .f o r m a t( Nt )) plt . s h o w ()
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 20 / 42
Ejercicio 7: Decaimiento radiocativo con λ = 2.0
Resuelva el mismo problema del ejercicio 6, pero ahora use λ = 2.0 y conteste lo siguiente:
1 ¿Para qu´ e valor de N
tel m´ etodo FE converge?
2 ¿Para qu´ e valor de N
tel m´ etodo FE deja de oscilar?
3 ¿Para qu´ e valor de N
tel m´ etodo BE tiene un error menor a 3.0?
4 ¿Para qu´ e valor de N
tel m´ etodo FE tiene un error menor a 3.0?
Entregue su c´ odigo documentado en una notebook de nombre E07 decaimiento.ipynb.
Ejercicio 8: Equaci´ on log´ıstica
En el estudio de crecimiento de poblaciones, limitadas por competencia por alimentos, se tiene un modelo matem´ atico conocido como la ecuaci´ on log´ıstica:
dy(t)
dt = λy(1 − y), para 0 < t < T
maxy(0) = y
0(condici´ on inicial)
donde y
0es la poblaci´ on inicial, λ > 0 y T
max= h
t∗ N
t. Obs´ ervese que en este caso la ecuaci´ on es no lineal, pues del lado derecho aparece un t´ ermino con y
2. La soluci´ on exacta es: y(t) = y
0y
0+ (1 − y
0)e
−λt.
1 Aproximar el crecimiento de la poblaci´ on usando el m´ etodo forward Euler .
1 Escribir la f´ ormula del m´ etodo para este caso e implementarla en Python.
2 Reproducir la gr´ afica que se muestra en la siguiente l´ amina para λ = 10, y
0= 0.01 y N
t= 4, 16 y 64.
Entregue su c´ odigo documentado en una notebook de nombre E08 logistica.ipynb.
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 22 / 42
Ejercicio 8: Equaci´ on log´ıstica
0.0 0.2 0.4 0.6 0.8 1.0
t
0.0
0.2 0.4 0.6 0.8 1.0
y(t)
y(t) = y0
y0 + (1 y0)e
tSol. Exacta
N
t= 4, Error: 0.74879
N
t= 16, Error: 0.45282
N
t= 64, Error: 0.23659
Función logística
Contenido
1 Problemas de Valor Inicial
2 M´ etodo de Euler Ejercicio 6.
Ejercicio 7.
Ejercicio 8.
3 M´ etodos de Runge-Kutta Ejercicio 9.
4 Referencias
5 Cr´ editos
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 24 / 42
M´ etodos de Runge-Kutta
El m´ etodo de Euler es de orden O(h t ). Es posible obtener m´ etodos de
´
ordenes mayores, varios de ellos son conocidos como m´ etodos de Runge-Kutta.
M´ etodo de Runge-Kutta de orden dos (punto medio)
w 0 = α (condici´ on inicial) k 1 = h t f (t n , w n )
w n+1 = w n + h t f (t n + h t /2, w n + k 1 /2) para n = 0, 1, . . . , N t − 1
Este m´ etodo es de orden O(h 2 t ).
M´ etodos de Runge-Kutta
M´ etodo de Runge-Kutta de orden tres (Heun)
w 0 = α (condici´ on inicial) k 1 = h t f (t n , w n )
k 2 = h t f (t n + h t /3, w n + k 1 /3) k 3 = h t f (t n + 2h t /3, w n + 2k 2 /3) w n+1 = w n + (k 1 + 3k 3 ) /4
para n = 0, 1, . . . , N t − 1
Este m´ etodo es de orden O(h 3 t ).
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 26 / 42
M´ etodos de Runge-Kutta
M´ etodo de Runge-Kutta de cuarto orden
w 0 = α (condici´ on inicial) k 1 = h t f (t n , w n )
k 2 = h t f
t n + h t
2 , w n + 1 2 k 1
k 3 = h t f
t n + h t
2 , w n + 1 2 k 2
k 4 = h t f (t n+1 , w n + k 3 ) w n+1 = w n + 1
6 (k 1 + 2k 2 + 2k 3 + k 4 ), para n = 0, 1, . . . , N t − 1
Este m´ etodo es de orden O(h 4 t ).
Ejercicio 9: M´ etodos de Runge-Kutta Considere el siguiente problema:
dy
dt = y − t
2+ 1 en 0 ≤ t ≤ 4 y(0) = 0.5
Cuya soluci´ on exacta es: y(t) = (t + 1)
2− 0.5e
t.
Para h
t= 1.0, 0.5, 0.25, 0.125 (N
t= 4, 8, 16, 32), realice lo siguiente:
1 Aproximar la soluci´ on del problema con:
• M´ etodo de Euler.
• M´ etodo de Runge-Kutta de orden 2.
• M´ etodo de Runge-Kutta de orden 3.
• M´ etodo de Runge-Kutta de orden 4.
2 En una figura, grafique la soluci´ on exacta y comp´ arela con las soluciones num´ ericas obtenidas con cada m´ etodo.
3 En otra figura, grafique el error y explique el comportamiento de cada m´ etodo.
Entregue su c´ odigo documentado en una notebook de nombre E09 Runge-Kutta.ipynb.
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 28 / 42
Ejercicio 9: Soluci´ on (1)
Nota: implemente el siguiente c´ odigo y documente usando docstring.
def m e s h ( a , b , Nt ):
ht = ( b - a ) / Nt r e t u r n ht
def f ( t , y ):
r e t u r n y - t **2 + 1
def E x a c t a ( t ):
r e t u r n ( t + 1 ) * * 2 - 0.5 * np . exp ( t )
def E u l e r ( f , t , w , ht ):
for i , val in e n u m e r a t e( w [ 0 : - 1 ] ) : w [ i +1] = w [ i ] + ht * f ( t [ i ] , w [ i ]) t [ i +1] = t [0] + ( i +1) * ht
def RK2 ( f , t , w , ht ):
for i , val in e n u m e r a t e( w [ 0 : - 1 ] ) : k1 = ht * f ( t [ i ] , w [ i ]) w [ i +1] = w [ i ] +
ht * f ( t [ i ] + ht * 0.5 , w [ i ] + k1 * 0 . 5 ) t [ i +1] = a + ( i +1) * ht
def RK3 ( f , t , w , ht ):
for i , val in e n u m e r a t e( w [ 0 : - 1 ] ) : k1 = ht * f ( t [ i ] , w [ i ]) k2 = ht * f ( t [ i ] + ht /3 ,
w [ i ] + k1 / 3) k3 = ht * f ( t [ i ] + 2 * ht / 3 ,
w [ i ] + 2 * k2 / 3) w [ i +1] = w [ i ] + ( k1 + 3 * k3 ) / 4 t [ i +1] = a + ( i +1) * ht
def RK4 ( f , t , w , ht ):
for i , val in e n u m e r a t e( w [ 0 : - 1 ] ) : k1 = ht * f ( t [ i ] , w [ i ]) k2 = ht * f ( t [ i ] + ht /2 ,
w [ i ] + k1 / 2) k3 = ht * f ( t [ i ] + ht /2 ,
w [ i ] + k2 / 2) k4 = ht * f ( t [ i ] + ht , w [ i ] + k3 ) w [ i +1] = w [ i ] + ( k1 + 2* k2 +
2* k3 + k4 ) / 6 t [ i +1] = a + ( i +1) * ht
Ejercicio 9: Soluci´ on (1)
Nota: implemente el siguiente c´ odigo y documente usando docstring. Agreque el c´ odigo corrrespondiente para reproducir las gr´ aficas que se muestran en las siguientes p´ aginas (en azul se muestran los errores obtenidos con cada m´ etodo).
Nt = 8 # 4 , 8 , 16 , 32 a = 0
b = 4
ht = m e s h ( a , b , Nt ) y0 = 0.5
t = np . l i n s p a c e ( a , b , Nt +1) y _ e u l = np . z e r o s ( Nt + 1 ) ; y _ r k 2 = np . z e r o s ( Nt +1) y _ r k 3 = np . z e r o s ( Nt +1) y _ r k 4 = np . z e r o s ( Nt +1)
y _ e u l [ 0 ] = y0 y _ r k 2 [ 0 ] = y0 y _ r k 3 [ 0 ] = y0 y _ r k 4 [ 0 ] = y0
E u l e r ( f , t , y_eul , ht ) RK2 ( f , t , y_rk2 , ht ) RK3 ( f , t , y_rk3 , ht ) RK4 ( f , t , y_rk4 , ht )
yp = E x a c t a ( t )
e _ e u l = np .abs( yp - y _ e u l ) e _ r k 2 = np .abs( yp - y _ r k 2 ) e _ r k 3 = np .abs( yp - y _ r k 3 ) e _ r k 4 = np .abs( yp - y _ r k 4 )
n _ e r r o r _ e u l = np . l i n a l g . n o r m ( e_eul , 2) n _ e r r o r _ r k 2 = np . l i n a l g . n o r m ( e_rk2 , 2) n _ e r r o r _ r k 3 = np . l i n a l g . n o r m ( e_rk3 , 2) n _ e r r o r _ r k 4 = np . l i n a l g . n o r m ( e_rk4 , 2)
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 30 / 42
Ejercicio 9: Comparaci´ on de m´ etodos con N
t= 4
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 t
2 0 2 4 6
y( t)
E Eul : 4.6382, E RK2 : 1.4779, E RK3 : 0.3717, E RK4 : 0.2793 Euler
RK2 RK3 RK4 Exacta
Solución y aproximación Nt = 4
Ejercicio 9: Comparaci´ on de m´ etodos con N
t= 4
1 2 3 4
n 10
110
0Er ro r
E Eul : 4.6382, E RK2 : 1.4779, E RK3 : 0.3717, E RK4 : 0.2793 Euler
RK2 RK3 RK4
Errores Nt = 4
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 32 / 42
Ejercicio 9: Comparaci´ on de m´ etodos con N
t= 8
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 t
2 0 2 4 6
y( t)
E Eul : 2.7881, E RK2 : 0.6453, E RK3 : 0.1021, E RK4 : 0.0234 Euler
RK2 RK3 RK4 Exacta
Solución y aproximación Nt = 8
Ejercicio 9: Comparaci´ on de m´ etodos con N
t= 8
1 2 3 4 5 6 7 8
n 10
310
210
110
0Er ro r
E Eul : 2.7881, E RK2 : 0.6453, E RK3 : 0.1021, E RK4 : 0.0234
Euler RK2 RK3 RK4
Errores Nt = 8
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 34 / 42
Ejercicio 9: Comparaci´ on de m´ etodos con N
t= 16
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 t
2 0 2 4 6
y( t)
E Eul : 1.8807, E RK2 : 0.2576, E RK3 : 0.0218, E RK4 : 0.0019 Euler
RK2 RK3 RK4 Exacta
Solución y aproximación Nt = 16
Ejercicio 9: Comparaci´ on de m´ etodos con N
t= 16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
n 10
510
410
310
210
110
0Er ro r
E Eul : 1.8807, E RK2 : 0.2576, E RK3 : 0.0218, E RK4 : 0.0019
Euler RK2 RK3 RK4
Errores Nt = 16
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 36 / 42
Ejercicio 9: Comparaci´ on de m´ etodos con N
t= 32
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 t
2 0 2 4 6
y( t)
E Eul : 1.4408, E RK2 : 0.0973, E RK3 : 0.0042, E RK4 : 0.0002 Euler
RK2 RK3 RK4 Exacta
Solución y aproximación Nt = 32
Ejercicio 9: Comparaci´ on de m´ etodos con N
t= 32
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 n
10
610
510
410
310
210
1Er ro r
E Eul : 1.4408, E RK2 : 0.0973, E RK3 : 0.0042, E RK4 : 0.0002
Euler RK2 RK3 RK4
Errores Nt = 32
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 38 / 42
Contenido
1 Problemas de Valor Inicial
2 M´ etodo de Euler Ejercicio 6.
Ejercicio 7.
Ejercicio 8.
3 M´ etodos de Runge-Kutta Ejercicio 9.
4 Referencias
5 Cr´ editos
[1] Richard Burden and J. Douglas Faires Numerical Analysis
Ninth Edition, 2011 Brooks/Cole, Cengage Learning [2] R.J. Leveque,
Finite Difference Method for Ordinary and Partial Differential Equations:
Steady State and Time-Dependent Problems ,
Society for Industrial and Applied Mathematics (SIAM), Philadelphia, 2007.
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 40 / 42
Contenido
1 Problemas de Valor Inicial
2 M´ etodo de Euler Ejercicio 6.
Ejercicio 7.
Ejercicio 8.
3 M´ etodos de Runge-Kutta Ejercicio 9.
4 Referencias
5 Cr´ editos
Cr´ editos
Dr. Luis M. de la Cruz Salas Departamento de Recursos Naturales
Instituto de Geof´ısica
Universidad Nacional Aut´ onoma de M´ exico
Trabajo realizado con el apoyo del Programa UNAM-DGAPA-PAPIME PE101019
©LMCS (IGEF–UNAM) PAPIME–PE101019 2019–2021 42 / 42