View
13
Download
0
Category
Preview:
Citation preview
Clase No. 22:
Diferenciación numérica:Método de Euler implícitoMétodos tipo Runge-Kutta
MAT–251 Dr. Alonso Ramírez ManzanaresDepto. de MatemáticasUniv. de Guanajuatoe-mail: alram@cimat.mxweb: http://www.cimat.mx/salram/met_num/
Dr. Joaquín Peña AcevedoCIMAT A.C.e-mail: joaquin@cimat.mx
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 1 / 28
Estabilidad del método de Euler
Para el PVI
dy
dx= λy
y(0) = y0
donde λ ∈ C, tenemos que es estable si Re(λ) ≤ 0. Este caso limy→∞ y(x) = 0.Para el método de Euler,
yk+1 = (1+ hλ)ky0
tenemos que es numéricamente estable si
yk+1 = yk + hλyk =⇒ |1+ hλ| ≤ 1.
−2.5 −2.0 −1.5 −1.0 −0.5 0.0 0.5 1.0
−1.
0−
0.5
0.0
0.5
1.0
c(−2.5, 1)
c(−
1.25
, 1.2
5)
●
−1−2
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 2 / 28
Estabilidad del método de Euler
Para el PVI
dy
dx= λy
y(0) = y0
donde λ ∈ C, tenemos que es estable si Re(λ) ≤ 0. Este caso limy→∞ y(x) = 0.Para el método de Euler,
yk+1 = (1+ hλ)ky0
tenemos que es numéricamente estable si
yk+1 = yk + hλyk =⇒ |1+ hλ| ≤ 1.
−2.5 −2.0 −1.5 −1.0 −0.5 0.0 0.5 1.0
−1.
0−
0.5
0.0
0.5
1.0
c(−2.5, 1)
c(−
1.25
, 1.2
5)
●
−1−2
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 2 / 28
Ejemplos (I)Ejemplo 1. Para el PVI
dy
dx= −5y
y(0) = 1
se tienen los siguientes resultados
0 1 2 3 4
−1.
5−
0.5
0.0
0.5
1.0
1.5
c(0, vx[n + 1])
c(m
in(v
s, v
y), m
ax(v
s, v
y))
●
●
●
●
●
●
●
●
●
●
●
0 1 2 3 4
−1.
0−
0.5
0.0
0.5
1.0
c(0, vx[n + 1])
c(m
in(v
s, v
y), m
ax(v
s, v
y))
●
●
●
●
●
●
●
●
●
●
●
h = 0.41 h = 0.39
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 3 / 28
Ejemplos (II)
Se puede ver que la solución es estable para h < 0.4.
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.2
0.4
0.6
0.8
1.0
c(0, vx[n + 1])
c(m
in(v
s, v
y), m
ax(v
s, v
y))
●
●
●
●
●●
● ● ● ● ●
h = 0.1
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 4 / 28
Ejemplos (III)
Ejemplo 2. Para el PVI
dy
dx= −y
y(0) = y0
Para h = 0.1 construimos la soluciones para y0 = 1 y y0 = 1.1, y se muestranlos resultados obtenidos:
0 1 2 3 4 5
0.0
0.2
0.4
0.6
0.8
1.0
c(0, vx[n + 1])
c(m
in(v
y1, v
y2),
max
(vy1
, vy2
))
0 1 2 3 4 5
−0.
10−
0.08
−0.
06−
0.04
−0.
020.
00
vx
vy1
− v
y2
yk y yk yk − yk
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 5 / 28
Ejemplos (IV)
3.5 4.0 4.5 5.0
−0.
0035
−0.
0025
−0.
0015
−0.
0005
vx[ii]
vy1[
ii] −
vy2
[ii]
yk − yk
Se puede determinar h a partir de que se tiene que cumplir que
|1+ hλ|k |y0 − y0| ≤ ε
para k = 1, ...,n.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 6 / 28
Estabilidad del método trapezoidal (I)
Analizamos la estabilidad del método
yk+1 = yk +h
2[f (xk,yk) + f (xk+1,yk+1)]
con el PVI
dy
dx= λy
y(0) = y0
yk+1 = yk +h
2[λyk + λyk+1] =⇒
�
1−h
2λ
�
yk+1 =
�
1+h
2λ
�
yk
yk+1 =
�
1−h
2λ
�−1�
1+h
2λ
�
k+1
y0
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 7 / 28
Estabilidad del método trapezoidal (II)
De donde, el método es estable si�
�
�
�
�
�
1−h
2λ
�−1�
1+h
2λ
�
�
�
�
�
�
≤ 1
�
�
�
�
1+h
2λ
�
�
�
�
≤�
�
�
�
1−h
2λ
�
�
�
�
La región de estabilidad esel semiplano negativo.
−2.5 −2.0 −1.5 −1.0 −0.5 0.0 0.5 1.0
−1.
0−
0.5
0.0
0.5
1.0
c(−2.5, 1)
c(−
1.25
, 1.2
5)
Re(λ) < 0
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 8 / 28
Método de Euler implícito (I)
Desde el punto de vista de integración,
y(xk+1) = y(xk) +
∫ xk+1
xk
f (x,y)dx,
podemos aproximar la integral usando ahora el rectángulo con alturaf (xk+1,yk+1), y obtenemos el método de Euler implícito:
yk+1 = yk + hf (xk+1,yk+1)
Para analizar la estabilidad del método, consideramos el PVI
dy
dx= λy
y(0) = y0
tenemos que yk+1 = yk + hλyk+1, es decir
yk+1 =1
1− hλyk =
1
(1− hλ)k+1y0
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 9 / 28
Método de Euler implícito (II)
La solución es estable para�
�
�
�
1
1− hλ
�
�
�
�
≤ 1 =⇒ 1 ≤ |1− hλ|
−1.0 −0.5 0.0 0.5 1.0 1.5 2.0 2.5
−1.
5−
1.0
−0.
50.
00.
51.
01.
5
c(−1, 2.5)
c(−
1.5,
1.5
)
●
1 2
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 10 / 28
Consistencia de métodos de 1 paso (I)
Tenemos el PVIy′ = f (x,y), y(a) = y0.
Queremos resolverlo con un método de un paso. La forma general de éstoses
yk+1 = yk + hϕ(h,xk,yk,yk+1)
donde ϕ es una función que depende de f .
• Para el método de Euler, ϕ = f (xk,yk).
• En el método trapezoidal, ϕ = 12 [f (xk,yk) + f (xk+1,yk+1)].
• En general, si ϕ = ϕ(h,xk,yk), el método es explícito. En cualquier otrocaso, el método es implícito.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 11 / 28
Consistencia de métodos de 1 paso (II)
El error local de truncamiento εk+1(h) se define como el error que se cometeal sustituir la solución verdadera en el esquema del método numérico:
y(xk+1) = y(xk) + hϕ(h, xk, y(xk), y(xk+1) ) + εk+1(h).
εk+1(h) corresponde al error que se comete en un solo paso cuando seempieza en y(xk). Si se tiene que
max |εk+1(h)| = O(hp+1), p ≥ 1,
se dice que el método es consistente con un orden de precisión p.Decimos que el método de solución es convergente si para cualquier PVI,con una función f que es Lipschitz, se tiene que
limh→0
maxk|εk(h)| = 0.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 12 / 28
Consistencia de métodos de 1 paso (III)
Para el método de Euler:
εk+1(h) =1
h[y(xk+1)− y(xk)]− f (xk,y(xk)) =
1
h[y(xk+1)− y(xk)]− y′(xk)
=1
h
�
y(xk) + hy′(xk) +h2
2y′′(ξ)− y(xk)
�
− y′(xk)
=h
2y′′(ξ)→ 0
si h→ 0. Entonces el método es consistente y convergente.
Definición
Un método de solución es consistente con la ecuación diferencial si el errorde truncamiento tiende a cero cuando el tamaño de paso h tiende a cero.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 13 / 28
Consistencia y convergencia (I)Consistencia no implica convergencia.
Para ver esto, consideremos el PVI
y′ = f (x,y)
y(x0) = y0
y lo queremos resolver numéricamente mediante
yi+1 = −3
2yi + 3yi−1 −
1
2yi−2 + 3hf (x,yi)
Note que
2y(x+ h) = 2y(x) +2hy′(x) +h2y′′(x) +h3
3 y(3)(x) +O(h4)
−6y(x− h) = −6y(x) +6hy′(x) −3h2y′′(x) +h3y(3)(x) +O(h4)
y(x− 2h) = y(x) −2hy′(x) +2h2y′′(x) −4h3
3 y(3)(x) +O(h4)
3y(x) = 3y(x)
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 14 / 28
Consistencia y convergencia (II)
Sumando las ecuaciones
2y(x+ h) + 3y(x)− 6y(x− h) + y(x− 2h) = 6hy′(x) +O(h4)
2y(x+ h) + 3y(x)− 6y(x− h) + y(x− 2h)
6h= y′(x) +O(h3)
Así, la expresión de la izquierda converge a y′ de orden h3. Ese es el errorde truncamiento.
y(x+ h) ≈ −3
2y(x) + 3y(x− h)−
1
2y(x− 2h) + 3hy′(x).
Se tiene que el método es consistente y que tiene un orden mayor que elmétodo de Euler.
Vamos a aplicarlo a un caso particular.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 15 / 28
Consistencia y convergencia (III)
Ejemplo. Si
y′ = f (x,y) = 2x(1+ y2)
y(0) = 0
La solución del problema es
y(x) = tan(x2).
Aplicando el método de Euler y el esquema propuesto se obtiene losiguiente:
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 16 / 28
Consistencia y convergencia (IV)
0.0 0.2 0.4 0.6 0.8 1.0 1.2
02
46
c(0, h * n)
c(0,
max
(vs)
)
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●
●●
●
●
●
●
●
●
0.0 0.2 0.4 0.6 0.8 1.0 1.20
24
6c(0, h * n)
c(0,
max
(vs)
)
●●●●●●●●
●
●
●
n = 60, h = 0.02
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 17 / 28
Consistencia y convergencia (V)
0.0 0.2 0.4 0.6 0.8 1.0 1.2
02
46
c(0, h * n)
c(0,
max
(vs)
)
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●
●●●●●●●●●
●●●●●●●
●●●●●
●●●●
●●●●
●●●●●●●●●●
●
●
●
●
●
●
0.0 0.2 0.4 0.6 0.8 1.0 1.2
02
46
c(0, h * n)
c(0,
max
(vs)
)
●●●●●●●●
●
●
●
n = 120, h = 0.01
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 18 / 28
Métodos de Runge-Kutta
• Los métodos tipo Runge-Kutta tratan de imitar a los métodos basadosen series de Taylor, que tienen la desventaja de requerir el cálculo dederivadas de orden superior (y′′,y′′′, ...).
• Los métodos tipo Runge-Kutta sólo usan la función f del PVI.
El desarrollo de Taylor para f (x,y) es
f (x+ h,y+ l) =∞∑
i=0
1
i!
�
h∂
∂x+ l
∂
∂y
�i
f (x,y)
donde
�
h∂
∂x+ l
∂
∂y
�0
f = f
�
h∂
∂x+ l
∂
∂y
�1
f = h∂f
∂x+ l
∂f
∂y�
h∂
∂x+ l
∂
∂y
�2
f = h2 ∂2f
∂x2+ 2hl
∂2f
∂x∂y+ l2
∂2f
∂y2
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 19 / 28
Método de Runge-Kutta de 2o. orden (I)
Este método requiere la evalación de dos funciones
K1 = f (x,y)
K2 = f (x+ αh, y+ βhK1)
para calcular el valor de y en x+ h mediante una combinación lineal deestos valores:
y(x+ h) = y(x) + h(w1K1 +w2K2).
El objetivo es determinar los valores de α, β,w1,w2 que hacen que laecuación anterior se cumpla de la manera más precisa posible.Reescribiendo la expresión anterior:
y(x+ h) = y(x) +w1hf (x,y) +w2hf (x+ αh, y+ βhf (x,y))
Tenemos que
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 20 / 28
Método de Runge-Kutta de 2o. orden (II)
f (x+ αh, y+ βhf (x,y)) = f (x,y) + αhfx + βhf fy +1
2
�
αh∂
∂x+ βhf
∂
∂y
�2
f
Entonces
y(x+ h) = y+ (w1 +w2)hf + αw2h2fx + βw2h
2f fy +O(h3)
Por otra parte, como y′′ = dy′
dx =df (x,y)dx = fx + fyy′ = fx + f fy, entonces
y(x+ h) = y(x) + hy′(x) +1
2h2y′′(x) +O(h3) = y+ hf +
1
2h2(fx + f fy) +O(h3).
Comparando las expresiones, debemos tener que
w1 +w2 = 1, αw2 =1
2, βw2 =
1
2Una solución puede ser
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 21 / 28
Método de Runge-Kutta de 2o. orden (III)
w1 =1
2, w2 =
1
2, α = 1, β = 1.
Entonces, el método de Runge-Kutta de segundo orden es
yk+1 = yk +h
2f (xk,yk) +
h
2f (xk+1, yk + hf (xk,yk)) = y(x) +
h
2(K1 +K2)
donde
K1 = f (x,y)
K2 = f (x+ h,y+ hK1)
Así, hay que evaluar la función f dos veces en cada paso.
Podemos escoger otros valores para los coeficientes. Por ejemplo, α puedeser arbitrario, y en ese caso
β = α, w1 = 1−1
2α, w2 =
1
2α.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 22 / 28
Método de Runge-Kutta de 2o. orden (IV)
Se puede ver que el error del método de Runge-Kutta de orden 2 es
h3
4
�
2
3− α
��
∂
∂x+ f
∂
∂y
�2
f +h3
6fy
�
∂
∂x+ f
∂
∂y
�
f .
Podemos elegir α = 2/3.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 23 / 28
Método de Runge-Kutta de 4o. orden
En este caso la fórmula es
yk+1 = yk +1
6(K1 + 2K2 + 2K3 +K4)
donde
K1 = hf (x, y)
K2 = hf (x+ h/2, y+K1/2)
K3 = hf (x+ h/2, y+K2/2)
K4 = hf (x+ h, y+K3)
Para obtener esta fórmula, hay que comparar con el desarrollo de Taylor dey(x+ h) que incluye al término h4. Así, se espera que el error sea O(h5).Se consigue mayor precisión pero en cada paso hay que evaluar la función fcuatro veces.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 24 / 28
Ejemplo
Consideremos el PVI
y′ = 2+ (y− x− 1)2, x(1) = 2.
La solución analítica es y(x) = 1+ x+ tan(x− 1). Cada línea muestra ladiferencia entre la solución analítica y la numérica, y(xk)− yk, donde yk escalculado usando R-K de orden 2 y R-K de orden 4. En este caso, n = 8.
1.0 1.1 1.2 1.3 1.4 1.5
−4e
−04
−3e
−04
−2e
−04
−1e
−04
0e+
00
c(a, b)
c(dm
in, d
max
)
R−K 2R−K 4
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 25 / 28
Métodos explícitos de orden 2 (I)
La forma general de estos métodos es
yk+1 = yk + h(w1K1 +w2K2)
donde K1 = f (xk + c1h,yk)
K2 = f (xk + c2h,yk + a21hK1)
Si tomamos w1 = 0 w2 = 1, c2 = 1/2, a21 = 1/2, se tiene el método de Eulermodificado
yk+1 = yk + hK2
K1 = f (xk,yk)
K2 = f (xk + h/2,yk +K1/2)
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 26 / 28
Regiones de estabilidad de métodos explícitos
RK de orden 2 RK de orden 3 RK de orden 4
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 27 / 28
Métodos implícitos tipo Runge-Kutta (I)
yk+1 = yk + h(w1K1 +w2K2)
K1 = f (xk + c1h,yk + h(a11K1 + a12K2))
K2 = f (xk + c2h,yk + h(a21K1 + a22K2))
Para obtener la fórmula hay que calcular el desarrollo de Taylor para Ki,sustituir en el esquema de solución y comparar la expresión resultante conel desarrollo de Taylor de y(xk + h).
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 28 / 28
Recommended