clase no. 22: diferenciación numérica: método de euler...

29
Clase No. 22: Diferenciación numérica: Método de Euler implícito Métodos tipo Runge-Kutta MAT–251 Dr. Alonso Ramírez Manzanares Depto. de Matemáticas Univ. de Guanajuato e-mail: alram@ cimat.mx web: http://www.cimat.mx/salram/met_num/ Dr. Joaquín Peña Acevedo CIMAT A.C. e-mail: joaquin@ cimat.mx Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 04.11.2013 1 / 28

Upload: others

Post on 03-Apr-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

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: [email protected]: http://www.cimat.mx/salram/met_num/

Dr. Joaquín Peña AcevedoCIMAT A.C.e-mail: [email protected]

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

yk+1 =

1+h

yk

yk+1 =

1−h

�−1�

1+h

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

�−1�

1+h

≤ 1

1+h

≤�

1−h

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