0% encontró este documento útil (0 votos)
1 vistas

clase6-rungekutta

Cargado por

eia
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
1 vistas

clase6-rungekutta

Cargado por

eia
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 42

Problemas de valor inicial 2

25 de marzo de 2023

1
Contenidos

Limitaciones del método de Euler


Inestabilidad
Modelos oscilatorios
Euler Mejorado

Métodos de Taylor de orden superior


Taylor de orden 2

Métodos de Runge Kutta

2
Limitaciones del método de Euler
Problemas con el método de Euler

El método de Euler tiene dos problemas.

1. Lenta convergencia.
2. No es siempre estable.

Nos concentramos en el segundo problema. Que no sea


numericamente estable significa que el método puede crecer aun
cuando la solución no crece. Para no tener ese problema hay que
tomar h muy pequeño.

3
Ejemplo

Tomemos la ecuación y ′ = −2.3y , y (0) = 1. La solución es


y (t) = e −2.3t .

1
correcta
0
h=1
−1 h=0.5
−2

−3

−4
0 1 2 3 4 5

4
Modelos oscilatorios

Los modelos oscilatorios están descriptos por la ecuación

u ′′ (t) + ω 2 u(t) = 0

Ejemplo
Por ejemplo sea x (t) una función que modela la posición de un
cuerpo de masa m atado a un resorte. Supongamos que x = 0 es
la posición de equilibrio del cuerpo. Si estiramos o comprimimos
el resorte a una posición x (t) la ley de Hooke dice que la fuerza
es F (t) = −kx (t) donde k es una constante. Por la ley de
Newton la función x (t) es solución de

mx ′′ (t) = F (t) = −kx (t)


5
Continuación

Tomando ω = (k/m) se obtiene un modelo oscilatorio.
Tenemos que dar dos condiciones iniciales. Tomemos

x (0) = X0 , X ′ (0) = 0

En este caso la solución exacta es x (t) = X0 cos(ωt)

Solución Numérica
Para la solución numérica definimos dos nuevas funciones
u(t) = x (t), v (t) = x ′ (t). Tenemos entonces el sistema

u ′ (t) = v (t)
v ′ (t) = −ω 2 u(t)

6
Método de Euler
En el método de Euler se usa

un+1 = un + hvn
vn+1 = vn − hω 2 un

Vamos a tomar ω = 2 y X0 = 2. La verdadera solución de la


ecuación es x (t) = 2 cos(2t). Esta solución tiene período P = π.
Vamos a aproximar la solución durante K períodos dividiendo
cada período en N partes.

7
K = 3, N = 20

numerica
30 exacto

20

10

−10

−20

0 2 4 6 8
t
8
K = 3, N = 60

numerica
exacto
4

−2

−4

0 2 4 6 8
t
9
K = 3, N = 120

numerica
exacto
3

−1

−2

−3

0 2 4 6 8
t
10
Idea

Un pequeño cambio en el método de Euler produce una mejor


solución numérica del problema. La idea es:

11
Idea

Un pequeño cambio en el método de Euler produce una mejor


solución numérica del problema. La idea es:

1. Calcular un+1 como antes. Es decir

un+1 = un + hvn

11
Idea

Un pequeño cambio en el método de Euler produce una mejor


solución numérica del problema. La idea es:

1. Calcular un+1 como antes. Es decir

un+1 = un + hvn

2. Usar este valor de un+1 para calcular en nuevo vn+1 . Es decir

vn+1 = vn − hω 2 un+1

11
K = 3 y N = 20

numerica
2.0 exacto
1.5

1.0

0.5

0.0

−0.5

−1.0

−1.5

−2.0

0 2 4 6 8
t
12
K = 100 y N = 20

Mostramos los últimos períodos

numerica
2.0 exacto
1.5

1.0

0.5

0.0

−0.5

−1.0

−1.5

−2.0

306 308 310 312 314


t 13
Métodos de Taylor de orden superior
Métodos de Taylor de orden superior

Idea
La idea del método de Euler es usar la fórmula de Taylor de
orden 1
y (t + h) ≈ y (t) + hy ′ (t)

No hay razón para limitarse a este caso.

Teorema de Taylor
Sea y de clase C n entonces


n
y (k) (t)
y (t + h) = y (t) + hk + O(h)n+1
k!
k=1

14
Teorema
Si la solución verdadera del sistema es de clase C n+1 , entonces

|ek | = O(hn )
|ϵk | = O(hn+1 )

El error final E = y (b) − yM cumple

|E | = O(hn )

15
Orden 2

Dado un problema y ′ = f (t, y ), a ≤ t ≤ b, y (a) = y0 . Para


resolverlo con el método de Taylor de orden 2 hay que hacer:

1. Calcular
( )
′ d ∂ ∂ d ∂ ∂
f = f (t, y (t)) = f + f y= f + f f
dt ∂t ∂y dt ∂t ∂y

16
Orden 2

Dado un problema y ′ = f (t, y ), a ≤ t ≤ b, y (a) = y0 . Para


resolverlo con el método de Taylor de orden 2 hay que hacer:

1. Calcular
( )
′ d ∂ ∂ d ∂ ∂
f = f (t, y (t)) = f + f y= f + f f
dt ∂t ∂y dt ∂t ∂y

2. Dividimos [a, b] en M pedazos iguales.

16
Orden 2

Dado un problema y ′ = f (t, y ), a ≤ t ≤ b, y (a) = y0 . Para


resolverlo con el método de Taylor de orden 2 hay que hacer:

1. Calcular
( )
′ d ∂ ∂ d ∂ ∂
f = f (t, y (t)) = f + f y= f + f f
dt ∂t ∂y dt ∂t ∂y

2. Dividimos [a, b] en M pedazos iguales.


3. Definir puntos

tk = a + kh, donde h = (b − a)/M

entonces tk+1 = tk + h.

16
4. Definir recursivamente
h2 ′
yk+1 = yk + hf (tk , yk ) + f (tk , yk )
2

17
4. Definir recursivamente
h2 ′
yk+1 = yk + hf (tk , yk ) + f (tk , yk )
2
5. Tomar la poligonal que pasa por puntos (tk , yk ).

17
4. Definir recursivamente
h2 ′
yk+1 = yk + hf (tk , yk ) + f (tk , yk )
2
5. Tomar la poligonal que pasa por puntos (tk , yk ).
6. Esta poligonal está definida por una función ỹ (t) que es la
solución aproximada.

17
Oscilador

Vamos a estudiar la ecuación anterior usando el método de Taylor


de orden 2. Recordemos que tenemos las ecuaciones:

u′ = v
v ′ = −ω 2 u

Derivando obtenemos

u ′′ = v ′ = −ω 2 u
v ′′ = −ω 2 u ′ = −ω 2 v

18
Esto lleva a la aproximación

h2 2
u(t + h) = u(t) + hv (t) − ω u(t)
2
h2
v (t + h) = v (t) − hω 2 u(t) − v (t)
2
Discretizamos y obtenemos

h2 2
un+1 = un + hvn − ω un
2
h2
vn+1 = vn − h2 ω 2 un − ω 2 vn
2

19
K = 3, N = 20

numerica
exacto
2

−1

−2

0 2 4 6 8
t
20
K = 3, N = 60

numerica
2.0 exacto
1.5

1.0

0.5

0.0

−0.5

−1.0

−1.5

−2.0

0 2 4 6 8
t
21
K = 3, N = 120

numerica
2.0 exacto
1.5

1.0

0.5

0.0

−0.5

−1.0

−1.5

−2.0

0 2 4 6 8
t
22
Comparación K = 3 N = 60

numerica numerica
exacto 2.0 exacto
4 1.5

1.0
2
0.5

0.0
0
−0.5
−2 −1.0

−1.5
−4
−2.0

0 2 4 6 8 0 2 4 6 8
t t

Figura 1: Euler Figura 2: Taylor

23
Limitaciones del método

Corremos la solución por 100 períodos con N = 120. Se observan


los últimos tres períodos. Se ve que hay una diferencia de fase.

numerica
2.0 exacto
1.5

1.0

0.5

0.0

−0.5

−1.0

−1.5

−2.0

306 308 310 312 314 24


Métodos de Runge Kutta
Idea

1. El problema con los métodos de Taylor es que hay que


calcular derivadas.

25
Idea

1. El problema con los métodos de Taylor es que hay que


calcular derivadas.
2. La idea de los métodos de Runge Kutta es usar la primer
derivada y calcularla en puntos escogidos de un modo muy
particular.

25
Idea

1. El problema con los métodos de Taylor es que hay que


calcular derivadas.
2. La idea de los métodos de Runge Kutta es usar la primer
derivada y calcularla en puntos escogidos de un modo muy
particular.
3. La cantidad de puntos elegidos se llama el orden. Un método
de Runge Kutta de orden n tiene la misma convergencia que
un método de Taylor de orden n

25
Métodos de orden 2

Idea básica
El método de Runge Kutta de orden 2 sale de tomar yn = y (tn )

k1 = hf (tn , yn )
k2 = hf (tn + ph, yn + qk1 )

y
yn+1 = yn + ak1 + bk2

donde p, q, a, b son coeficientes a determinar.

26
Determinación de los coeficientes

Los coeficientes salen de comparar este desarrollo con el polinomio


de Taylor de orden 2 de y

h2 ′′
y (t + h) = y (t) + hy ′ (t) + y (t)
2
h2 d
= y (t) + hf (t, y (t)) + f (t, y (t))
2 dt
h2 ∂
= y (t) + hf (t, y (t)) + ( f (t, y (t))
2 ∂t

+ f (t, y (t))f (t, y (t)))
∂y

27
Por la fórmula de Taylor en varias variables (con y = y (t)) vale que

∂ ∂
f (t + ph, y + qk1 ) = f (t, y ) + f (t, y)ph + f (t, y)qk1
∂t ∂y
Juntando todo sale que se debe cumplir

a + b = 1, aq = 0.5, bq = 0.5

Como hay 4 incognitas hay libertad para elegir valores.

28
Elecciones usuales

Métodos usuales
Hay tres métodos usuales.

Método de Heun a = b = 1/2, p = q = 1


Método de Euler modificado a = 0, b = 1, p = q = 1/2
Método de Ralston a = 1/3, b = 2/3, p = q = 3/4

29
K = 10 y N = 20

Con el método de Heun

numerical
exact
2

−1

−2

0 5 10 15 20 25 30
t
30
K = 10 y N = 60

Con el método de Heun

numerical
2.0 exact

1.5

1.0

0.5

0.0

−0.5

−1.0

−1.5

−2.0

0 5 10 15 20 25 30
t
31

También podría gustarte