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) 29.10.2012 1 / 28

Upload: others

Post on 02-Aug-2022

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 1 / 28

Page 2: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 2 / 28

Page 3: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 2 / 28

Page 4: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 3 / 28

Page 5: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 4 / 28

Page 6: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 5 / 28

Page 7: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 6 / 28

Page 8: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 7 / 28

Page 9: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 8 / 28

Page 10: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 9 / 28

Page 11: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 10 / 28

Page 12: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 11 / 28

Page 13: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 12 / 28

Page 14: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 13 / 28

Page 15: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 14 / 28

Page 16: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 15 / 28

Page 17: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 16 / 28

Page 18: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 17 / 28

Page 19: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 18 / 28

Page 20: Clase No. 22: Diferenciación numérica: Método de Euler

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 son 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) 29.10.2012 19 / 28

Page 21: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 20 / 28

Page 22: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 21 / 28

Page 23: Clase No. 22: Diferenciación numérica: Método de Euler

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 funcó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) 29.10.2012 22 / 28

Page 24: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 23 / 28

Page 25: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 24 / 28

Page 26: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 25 / 28

Page 27: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 26 / 28

Page 28: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 27 / 28

Page 29: Clase No. 22: Diferenciación numérica: Método de Euler

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) 29.10.2012 28 / 28