Uploaded by YTube oficial

Clase 17 - Metodos Numericos - Ecuaciones Diferenciales Ordinarias - PVI

advertisement
Métodos Numéricos:
Ecuaciones
Diferenciales Ordinarias:
Problemas de Valor
Inicial (PVI)
Cristian Castro Pérez
cristian.castro@unsch.edu.pe
"Nos asomamos a veces a lo que fuimos antes de ser esto que
vaya a saber si somos" - Julio Cortázar
Ingeniería Civil
F.I.M.G.C.-U.N.S.C.H.
Métodos Numéricos enIngeniería Civil
Solución (numérica) a Ecuaciones
Diferenciales Ordinarias:
Problemas de Valor Inicial (PVI)
Ecuaciones diferenciales ordinarias
Una ecuación diferencial ordinaria (ODE en inglés) de orden n se puede
escribir de la siguiente manera:
y (n) = f (x, y, y ′ , . . . , y (n−1) )
(1)
con condiciones iniciales
y(a) = α1 ,
y ′ (a) = α2 ,
...
, y (n−1) (a) = αn .
(2)
y describe una gran variedad de sistemas dinámicos.
Métodos Numéricos
2 / 26
Ecuaciones diferenciales ordinarias
Problema de valores iniciales
La ecuación (1) y las condiciones iniciales (2) es conocido como un
“problema de valores iniciales”, puede transformarse en un sistema de n
ecuaciones diferenciales de primer orden.
Usando la notación y1 = y,
Métodos Numéricos
3 / 26
Ecuaciones diferenciales ordinarias
Problema de valores iniciales
La ecuación (1) y las condiciones iniciales (2) es conocido como un
“problema de valores iniciales”, puede transformarse en un sistema de n
ecuaciones diferenciales de primer orden.
Usando la notación y1 = y, y2 = y ′ ,
Métodos Numéricos
3 / 26
Ecuaciones diferenciales ordinarias
Problema de valores iniciales
La ecuación (1) y las condiciones iniciales (2) es conocido como un
“problema de valores iniciales”, puede transformarse en un sistema de n
ecuaciones diferenciales de primer orden.
Usando la notación y1 = y, y2 = y ′ , y3 = y ′′ ,
Métodos Numéricos
3 / 26
Ecuaciones diferenciales ordinarias
Problema de valores iniciales
La ecuación (1) y las condiciones iniciales (2) es conocido como un
“problema de valores iniciales”, puede transformarse en un sistema de n
ecuaciones diferenciales de primer orden.
Usando la notación y1 = y, y2 = y ′ , y3 = y ′′ , ... ,
Métodos Numéricos
3 / 26
Ecuaciones diferenciales ordinarias
Problema de valores iniciales
La ecuación (1) y las condiciones iniciales (2) es conocido como un
“problema de valores iniciales”, puede transformarse en un sistema de n
ecuaciones diferenciales de primer orden.
Usando la notación y1 = y, y2 = y ′ , y3 = y ′′ , ... , yn = y (n−1) , las ODE’s
son
y1′ = y2 ,
y2′ = y3 ,
...
′
, yn−1
= yn ,
Métodos Numéricos
yn′ = f (x, y1 , y2 , . . . , yn ),
3 / 26
Ecuaciones diferenciales ordinarias
Problema de valores iniciales
La ecuación (1) y las condiciones iniciales (2) es conocido como un
“problema de valores iniciales”, puede transformarse en un sistema de n
ecuaciones diferenciales de primer orden.
Usando la notación y1 = y, y2 = y ′ , y3 = y ′′ , ... , yn = y (n−1) , las ODE’s
son
y1′ = y2 ,
y2′ = y3 ,
...
′
, yn−1
= yn ,
yn′ = f (x, y1 , y2 , . . . , yn ),
mientras que las condiciones iniciales se transforman en
y1 (a) = α1 ,
y2 (a) = α2 ,
...
Métodos Numéricos
, yn (a) = αn .
3 / 26
Ecuaciones diferenciales ordinarias
Problema de valores iniciales
En forma matricial, si Y = (y1 , y2 , . . . , yn−1 , yn ) y
F = (y2 , y3 , . . . , yn , f (x, y1, . . . , yn−1 ), entonces
Y ′ = F (x, Y ),
Y (a) = α,
(3)
donde α = (α1 , . . . , αn ).
Métodos Numéricos
4 / 26
Ecuaciones diferenciales ordinarias
Problema de valores iniciales
En forma matricial, si Y = (y1 , y2 , . . . , yn−1 , yn ) y
F = (y2 , y3 , . . . , yn , f (x, y1, . . . , yn−1 ), entonces
Y ′ = F (x, Y ),
Y (a) = α,
(3)
donde α = (α1 , . . . , αn ).
Nota: Si yi se especifica en puntos extremos del dominio, entonces se dice
que el problema es de valores de contorno, o de frontera.
Métodos Numéricos
4 / 26
Ecuaciones diferenciales ordinarias
Problema de valores iniciales
La estrategia comúnmente utilizada consiste en subdividir el intervalo de
integración (dominio de cálculo) I = [x0 , xN ], con xN < ∞ en N
intervalos de largo h = (xN − x0 )/N .
Métodos Numéricos
5 / 26
Ecuaciones diferenciales ordinarias
Problema de valores iniciales
La estrategia comúnmente utilizada consiste en subdividir el intervalo de
integración (dominio de cálculo) I = [x0 , xN ], con xN < ∞ en N
intervalos de largo h = (xN − x0 )/N . Al parámetro h se le llama paso de
discretización.
Métodos Numéricos
5 / 26
Ecuaciones diferenciales ordinarias
Problema de valores iniciales
La estrategia comúnmente utilizada consiste en subdividir el intervalo de
integración (dominio de cálculo) I = [x0 , xN ], con xN < ∞ en N
intervalos de largo h = (xN − x0 )/N . Al parámetro h se le llama paso de
discretización.
Entonces, en cada nodo xi (con 0 ≤ i ≤ N ), buscamos el valor de la
incógnita ui que aproxima a Y en ese punto, es decir
ui ≈ Y (xi ),
∀i = 0, . . . , n.
Métodos Numéricos
5 / 26
Ecuaciones diferenciales ordinarias
Problema de valores iniciales
La estrategia comúnmente utilizada consiste en subdividir el intervalo de
integración (dominio de cálculo) I = [x0 , xN ], con xN < ∞ en N
intervalos de largo h = (xN − x0 )/N . Al parámetro h se le llama paso de
discretización.
Entonces, en cada nodo xi (con 0 ≤ i ≤ N ), buscamos el valor de la
incógnita ui que aproxima a Y en ese punto, es decir
ui ≈ Y (xi ),
∀i = 0, . . . , n.
al conjunto
{u0 , u1 , . . . , uN }
se le llama solución numérica.
Métodos Numéricos
5 / 26
Ecuaciones diferenciales ordinarias
Método de Euler
Un método clásico, el método de Euler hacia adelante (forward), genera
soluciones numéricas a partr de reemplazar la derivada exacta en (3) por la
diferencia finita hacia adelante:
fn ≈ F (xn , Y (xn )) = Y ′ (xn ) ≈
1
1
(Y (xn+1 ) − Y (xn )) = (un+1 − un )
h
h
Métodos Numéricos
6 / 26
Ecuaciones diferenciales ordinarias
Método de Euler
Un método clásico, el método de Euler hacia adelante (forward), genera
soluciones numéricas a partr de reemplazar la derivada exacta en (3) por la
diferencia finita hacia adelante:
fn ≈ F (xn , Y (xn )) = Y ′ (xn ) ≈
1
1
(Y (xn+1 ) − Y (xn )) = (un+1 − un )
h
h
lo que nos lleva a
Euler hacia adelante (explícito)
un+1 = un + hfn ,
n = 0, 1, . . . , N − 1.
Métodos Numéricos
6 / 26
Ecuaciones diferenciales ordinarias
Método de Euler
De manera similar se puede obtener
Euler hacia atrás (implícito)
un+1 = un + hfn+1 ,
n = 0, 1, . . . , N − 1,
donde se ha considerado la aproximación Y ′ (xn ) ≈
Métodos Numéricos
1
h
(un − un−1 )
7 / 26
Ecuaciones diferenciales ordinarias
Método de Euler: Ejemplo
Consideremos el sistema
{
ẍ + ω 2 x = F0 sin(ωt),
x(0) = 0,
ẋ(0) = 1.
Métodos Numéricos
8 / 26
Ecuaciones diferenciales ordinarias
Método de Euler: Ejemplo
Consideremos el sistema
{
ẍ + ω 2 x = F0 sin(ωt),
x(0) = 0,
ẋ(0) = 1.
Este sistema puede escribirse como x1 = x, x2 = ẋ, esto implica que si
X = (x1 , x2 ), entonces
(
) [
](
) (
)
ẋ1
0
1
x1
0
=
+
ẋ2
−ω 2 0
x2
F0 sin(ωt)
|
{z
}
|
{z
}
A
B
Métodos Numéricos
8 / 26
Ecuaciones diferenciales ordinarias
Método de Euler: Ejemplo
Consideremos el sistema
{
ẍ + ω 2 x = F0 sin(ωt),
x(0) = 0,
ẋ(0) = 1.
Este sistema puede escribirse como x1 = x, x2 = ẋ, esto implica que si
X = (x1 , x2 ), entonces
(
) [
](
) (
)
ẋ1
0
1
x1
0
=
+
ẋ2
−ω 2 0
x2
F0 sin(ωt)
|
{z
}
|
{z
}
A
B
y las condiciones iniciales
(
x1
x2
)
(
(0) =
Métodos Numéricos
0
1
)
8 / 26
Ecuaciones diferenciales ordinarias
Método de Euler: Ejemplo
Esto nos lleva al sistema
Ẋ = AX + B
X(0) = X0
Métodos Numéricos
9 / 26
Ecuaciones diferenciales ordinarias
Método de Euler: Ejemplo
Esto nos lleva al sistema
Ẋ = AX + B
X(0) = X0
Si un ≈ X(tn ), entonces la formulación de Euler hacia adelante queda así:
Xn+1 = Xn + h [AXn + B]
Métodos Numéricos
9 / 26
Ecuaciones diferenciales ordinarias
Método de Euler: Ejemplo
Esto nos lleva al sistema
Ẋ = AX + B
X(0) = X0
Si un ≈ X(tn ), entonces la formulación de Euler hacia adelante queda así:
Xn+1 = Xn + h [AXn + B]
o equivalentemente
(
x1
x2
)
(
=
n+1
x1
x2
)
[(
+h
n
0
1
2
−ω 0
)(
Métodos Numéricos
x1
x2
)
(
+
n
0
F0 sin(ωtn )
)]
9 / 26
Ecuaciones diferenciales ordinarias
Método de Euler: Ejemplo
Por otro lado, haciendo Euler hacia atrás:
Xn+1 = Xn + h [AXn+1 + B] ,
Métodos Numéricos
10 / 26
Ecuaciones diferenciales ordinarias
Método de Euler: Ejemplo
Por otro lado, haciendo Euler hacia atrás:
Xn+1 = Xn + h [AXn+1 + B] ,
entonces,
(I − hA) Xn+1 = Xn + B
Métodos Numéricos
10 / 26
Ecuaciones diferenciales ordinarias
Método de Euler: Ejemplo
Por otro lado, haciendo Euler hacia atrás:
Xn+1 = Xn + h [AXn+1 + B] ,
entonces,
(I − hA) Xn+1 = Xn + B
⇒
Xn+1 = (I − hA)−1 [Xn + B] .
Métodos Numéricos
10 / 26
Ecuaciones diferenciales ordinarias
Método de Euler: Ejemplo
Por otro lado, haciendo Euler hacia atrás:
Xn+1 = Xn + h [AXn+1 + B] ,
entonces,
(I − hA) Xn+1 = Xn + B
⇒
Xn+1 = (I − hA)−1 [Xn + B] .
Nota: Se puede demostrar que los dos métodos de Euler son de orden 1
c/r a h.
Métodos Numéricos
10 / 26
Ecuaciones diferenciales ordinarias
Métodos de Crank-Nicolson y θ-esquema
Combinando los métodos de Euler hacia adelante y atrás, encontramos al
método de ...
Crank-Nicolson
un+1 = un +
h
(fn + fn+1 ) ,
2
Métodos Numéricos
n = 0, 1, . . . , N − 1.
11 / 26
Ecuaciones diferenciales ordinarias
Métodos de Crank-Nicolson y θ-esquema
Combinando los métodos de Euler hacia adelante y atrás, encontramos al
método de ...
Crank-Nicolson
un+1 = un +
h
(fn + fn+1 ) ,
2
n = 0, 1, . . . , N − 1.
y también
θ-esquema
un+1 = un + h (θfn + (1 − θ)fn+1 ) ,
n = 0, 1, . . . , N − 1
con 0 ≤ θ ≤ 1.
Métodos Numéricos
11 / 26
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
Ecuaciones diferenciales ordinarias
Métodos de Crank-Nicolson y θ-esquema
% ejemplo con crank-nicolson y oscilador armonico
forzado
t = linspace(0,500,50000);
h = t(2)-t(1);
w = 2*pi/1.25;
% condiciones iniciales
X0 = [0;1];
% amplitud de la fuerza
F0 = 1;
% matrices
A = [0,1;-w^2,0];
I = eye(size(A));
Métodos Numéricos
12 / 26
Ecuaciones diferenciales ordinarias
Métodos de Crank-Nicolson y θ-esquema
1 sol = X0;
2
3 % % solucion numerica en cada paso de tiempo
4 for i=1:length(t)-1,
5
B = [0;F0*sin(0.5*w*t(i))];
6
X1 = (I - h/2*A)\((I + h*A/2)*X0 + h*B);
7
8
% guardamos la solucion (para graficarla despues
)
9
sol = [sol,X1];
0
1
% actualizacion
2
X0 = X1;
3 end
Métodos Numéricos
13 / 26
Ecuaciones diferenciales ordinarias
Estabilidad numérica
Pensemos en métodos que puedan aproximar a la solución exacta durante
un período largo (xN >> x0 ) sin que el error sea importante1 .
1
Este es un tema sensible en métodos numéricos. Nosotros no discutiremos más allá
de este ejemplo. Para el lector curioso:
http://homepage.divms.uiowa.edu/~atkinson/papers/NAODE_Book.pdf
Métodos Numéricos
14 / 26
Ecuaciones diferenciales ordinarias
Estabilidad numérica
Pensemos en métodos que puedan aproximar a la solución exacta durante
un período largo (xN >> x0 ) sin que el error sea importante1 . Para
entender este concepto, consideraremos el siguiente problema modelo:
}
y ′ (t) = λy(t),
t ∈ (0, ∞), λ < 0
(4)
y(0) = 1.
cuya solución exacta es y(t) = eλt −→ 0 cuando t → +∞.
1
Este es un tema sensible en métodos numéricos. Nosotros no discutiremos más allá
de este ejemplo. Para el lector curioso:
http://homepage.divms.uiowa.edu/~atkinson/papers/NAODE_Book.pdf
Métodos Numéricos
14 / 26
Ecuaciones diferenciales ordinarias
Estabilidad numérica
Aplicando Euler hacia atrás al sistema (4) encontramos que
u0 = 1,
Métodos Numéricos
15 / 26
Ecuaciones diferenciales ordinarias
Estabilidad numérica
Aplicando Euler hacia atrás al sistema (4) encontramos que
u0 = 1, un+1 = un (1+λh) = u0 (1+λh)n+1 ⇒ un+1 = (1+λh)n+1 , n ≥ 0.
Métodos Numéricos
15 / 26
Ecuaciones diferenciales ordinarias
Estabilidad numérica
Aplicando Euler hacia atrás al sistema (4) encontramos que
u0 = 1, un+1 = un (1+λh) = u0 (1+λh)n+1 ⇒ un+1 = (1+λh)n+1 , n ≥ 0.
Entonces se tendrá que lı́mn→∞ un = 0 ssi −1 < 1 + hλ < 1, es decir
h<
2
.
|λ|
Métodos Numéricos
(5)
15 / 26
Ecuaciones diferenciales ordinarias
Estabilidad numérica
Aplicando Euler hacia atrás al sistema (4) encontramos que
u0 = 1, un+1 = un (1+λh) = u0 (1+λh)n+1 ⇒ un+1 = (1+λh)n+1 , n ≥ 0.
Entonces se tendrá que lı́mn→∞ un = 0 ssi −1 < 1 + hλ < 1, es decir
h<
2
.
|λ|
(5)
Esta condición expresa el requerimiento de que, para h fijo, la solución
numérica sea capaz de reproducir el comportamiento de la solución exacta
cuando t → ∞. Si h < 2/|λ| se tendrá que lı́mn→∞ |un | = ∞.
Métodos Numéricos
15 / 26
Ecuaciones diferenciales ordinarias
Estabilidad numérica
* De este modo, la ecuación (5) representa una condición de estabilidad.
Métodos Numéricos
16 / 26
Ecuaciones diferenciales ordinarias
Estabilidad numérica
* De este modo, la ecuación (5) representa una condición de estabilidad.
* La propiedad lı́mn→∞ un = 0 se conoce como estabilidad absoluta.
Métodos Numéricos
16 / 26
Ecuaciones diferenciales ordinarias
Estabilidad numérica
* De este modo, la ecuación (5) representa una condición de estabilidad.
* La propiedad lı́mn→∞ un = 0 se conoce como estabilidad absoluta.
En contraste con el método de Euler hacia adelante, ni Euler hacia atrás ni
Crack-Nicolson tienen limitaciones al valor de h para tener estabilidad
absoluta. De hecho, con Euler hacia atrás se tendrá
(
)n+1
1
un+1 =
→0
∀h > 0
1 − λh
y para Crank-Nicolson
[
un+1
1 + hλ/2
=
1 − hλ/2
]n+1
→0
Métodos Numéricos
∀h > 0.
16 / 26
Ecuaciones diferenciales ordinarias
Estabilidad numérica
* De este modo, la ecuación (5) representa una condición de estabilidad.
* La propiedad lı́mn→∞ un = 0 se conoce como estabilidad absoluta.
En contraste con el método de Euler hacia adelante, ni Euler hacia atrás ni
Crack-Nicolson tienen limitaciones al valor de h para tener estabilidad
absoluta. De hecho, con Euler hacia atrás se tendrá
(
)n+1
1
un+1 =
→0
∀h > 0
1 − λh
y para Crank-Nicolson
[
un+1
1 + hλ/2
=
1 − hλ/2
]n+1
→0
∀h > 0.
Podemos concluir que el método de Euler hacia adelante es
condicionalmente estable, mientras que los demás métodos son
incondicionalmente estables.
Métodos Numéricos
16 / 26
Ecuaciones diferenciales ordinarias
Métodos de Runge-Kutta
Los métodos de R-K están orientados a eliminar la necesidad de
diferenciación repetida de las ecs. diferenciales.
Métodos Numéricos
17 / 26
Ecuaciones diferenciales ordinarias
Métodos de Runge-Kutta
Los métodos de R-K están orientados a eliminar la necesidad de
diferenciación repetida de las ecs. diferenciales.
Del problema y ′ (x) = f (x, y) y de la expansión en serie de Taylor a primer
orden se tendrá
y(x + h) ≈ y(x) + y ′ (x)h = y(x) + f (x, y)h.
Métodos Numéricos
17 / 26
Ecuaciones diferenciales ordinarias
Métodos de Runge-Kutta
Los métodos de R-K están orientados a eliminar la necesidad de
diferenciación repetida de las ecs. diferenciales.
Del problema y ′ (x) = f (x, y) y de la expansión en serie de Taylor a primer
orden se tendrá
y(x + h) ≈ y(x) + y ′ (x)h = y(x) + f (x, y)h.
Si un ≈ y(xn )
Métodos Numéricos
17 / 26
Ecuaciones diferenciales ordinarias
Métodos de Runge-Kutta
Los métodos de R-K están orientados a eliminar la necesidad de
diferenciación repetida de las ecs. diferenciales.
Del problema y ′ (x) = f (x, y) y de la expansión en serie de Taylor a primer
orden se tendrá
y(x + h) ≈ y(x) + y ′ (x)h = y(x) + f (x, y)h.
Si un ≈ y(xn ) ⇒ un+1 ≈ y(xn+1 ) = y(xn + h),
Métodos Numéricos
17 / 26
Ecuaciones diferenciales ordinarias
Métodos de Runge-Kutta
Los métodos de R-K están orientados a eliminar la necesidad de
diferenciación repetida de las ecs. diferenciales.
Del problema y ′ (x) = f (x, y) y de la expansión en serie de Taylor a primer
orden se tendrá
y(x + h) ≈ y(x) + y ′ (x)h = y(x) + f (x, y)h.
Si un ≈ y(xn ) ⇒ un+1 ≈ y(xn+1 ) = y(xn + h), es decir,
un+1 = un + hfn (con fn ≈ f (xn , y(xn )).
Métodos Numéricos
17 / 26
Ecuaciones diferenciales ordinarias
Métodos de Runge-Kutta
Los métodos de R-K están orientados a eliminar la necesidad de
diferenciación repetida de las ecs. diferenciales.
Del problema y ′ (x) = f (x, y) y de la expansión en serie de Taylor a primer
orden se tendrá
y(x + h) ≈ y(x) + y ′ (x)h = y(x) + f (x, y)h.
Si un ≈ y(xn ) ⇒ un+1 ≈ y(xn+1 ) = y(xn + h), es decir,
un+1 = un + hfn (con fn ≈ f (xn , y(xn )).
Esta misma idea se puede escribir como
∫
y(x + h) − y(h) =
x+h
y ′ dx =
x
Métodos Numéricos
∫
x+h
f (x, y) dx
(6)
x
17 / 26
Ecuaciones diferenciales ordinarias
Runge-Kutta de orden 2
Para conseguir un método de orden superior, consideremos una fórmula de
integración de la forma
∫ x+h
f (x, y) dx ≈ c0 f (x, y)h + c1 f (x + ph, y + qhf (x, y))h (7)
x
Métodos Numéricos
18 / 26
Ecuaciones diferenciales ordinarias
Runge-Kutta de orden 2
Para conseguir un método de orden superior, consideremos una fórmula de
integración de la forma
∫ x+h
f (x, y) dx ≈ c0 f (x, y)h + c1 f (x + ph, y + qhf (x, y))h (7)
x
donde buscaremos los parámetros c0 , c1 , p y q para que ajusten (6) a
1
1
y(x + h) ≈ y(x) + y ′ (x)h + y ′′ (x)h2 = y(x) + f (x, y)h + f ′ (x, y)h2 (8)
2
2
Métodos Numéricos
18 / 26
Ecuaciones diferenciales ordinarias
Runge-Kutta de orden 2
Para conseguir un método de orden superior, consideremos una fórmula de
integración de la forma
∫ x+h
f (x, y) dx ≈ c0 f (x, y)h + c1 f (x + ph, y + qhf (x, y))h (7)
x
donde buscaremos los parámetros c0 , c1 , p y q para que ajusten (6) a
1
1
y(x + h) ≈ y(x) + y ′ (x)h + y ′′ (x)h2 = y(x) + f (x, y)h + f ′ (x, y)h2 (8)
2
2
∂f ∑ ∂f
+
fi (x, y) se tendrá
∂x
∂yi
n
Notando que f ′ (x, y) =
i=1
∑ ∂f
∂f
ph + qh
fi (x, y) + O(h2 )
∂x
∂yi
n
f (x + ph, y + qhf (x, y)) = f (x, y) +
i=1
Métodos Numéricos
18 / 26
Ecuaciones diferenciales ordinarias
Runge-Kutta de orden 2
y comparando con la unión de las ecuaciones (6) y (8)
[
]
n
∑
∂f
∂f
y(x+h) = y(x)+(c0 +c1 )f (x, y)h+c1
ph + qh
fi (x, y) h+O(h3 )
∂x
∂yi
i=1
Métodos Numéricos
19 / 26
Ecuaciones diferenciales ordinarias
Runge-Kutta de orden 2
y comparando con la unión de las ecuaciones (6) y (8)
[
]
n
∑
∂f
∂f
y(x+h) = y(x)+(c0 +c1 )f (x, y)h+c1
ph + qh
fi (x, y) h+O(h3 )
∂x
∂yi
i=1
obtendremos finalmente las condiciones
c0 + c1 = 1,
1
c1 p = ,
2
Métodos Numéricos
1
c1 q = .
2
19 / 26
Ecuaciones diferenciales ordinarias
Runge-Kutta de orden 2
y comparando con la unión de las ecuaciones (6) y (8)
[
]
n
∑
∂f
∂f
y(x+h) = y(x)+(c0 +c1 )f (x, y)h+c1
ph + qh
fi (x, y) h+O(h3 )
∂x
∂yi
i=1
obtendremos finalmente las condiciones
1
c1 p = ,
2
c0 + c1 = 1,
1
c1 q = .
2
Algunas elecciones de parámetros comúnmente usadas son
c0
0
1/2
1/3
c1
1
1/2
2/3
p
1/2
1
3/4
q
1/2
1
3/4
Método
Euler modificado
Heun
Ralston
Métodos Numéricos
19 / 26
Ecuaciones diferenciales ordinarias
Runge-Kutta de orden 2
Si escogemos, por ejemplo, al métdo de Euler modificado, obtenemos la
fórmula
y(x + h) = y(x) + f (x + h/2, y + h/2 f (x, y))h
Métodos Numéricos
20 / 26
Ecuaciones diferenciales ordinarias
Runge-Kutta de orden 2
Si escogemos, por ejemplo, al métdo de Euler modificado, obtenemos la
fórmula
y(x + h) = y(x) + f (x + h/2, y + h/2 f (x, y))h
Entonces, en el intervalo [xn , xn+1 ], este método de RK2 es
Runge-Kutta de orden 2 (Euler modificado)
K1 = h fn
K2 = h f (xn + h/2, y + K1 /2)
un+1 = un + K2 .
Métodos Numérico
20 / 26
Ecuaciones diferenciales ordinarias
Runge-Kutta de orden 4
Repitiendo el mismo proceso hasta cuarto orden, se obtiene el método
Runge-Kutta de orden 4
K1 = h fn
K2 = h f (xn + h/2, y + K1 /2)
K3 = h f (xn + h/2, y + K2 /2)
K4 = h f (xn + h, y + K3 )
1
un+1 = un + (K1 + 2K2 + 2K3 + K4 ).
6
Métodos Numéricos
21 / 26
Ecuaciones diferenciales ordinarias
Runge-Kutta 2: Ejemplo
Consideremos el problema
y ′ (x) = sin(y),
x ∈ (0, 0.5)
y(0) = 1,
y h = 0.1
Métodos Numéricos
22 / 26
Ecuaciones diferenciales ordinarias
Runge-Kutta 2: Ejemplo
Consideremos el problema
y ′ (x) = sin(y),
x ∈ (0, 0.5)
y(0) = 1,
y h = 0.1
En este ejemplo tenemos que f (x, y) = sin(y), entonces las fórmulas de
RK2 son, para el primer paso de tiempo:
K1 = h f (x, y) = h fn = 0.1 · sin(un )
K2 = h f (x + h/2, y + K1 /2) = 0.1 sin(un + K1 /2).
Métodos Numéricos
22 / 26
Ecuaciones diferenciales ordinarias
Runge-Kutta 2: Ejemplo
Consideremos el problema
y ′ (x) = sin(y),
x ∈ (0, 0.5)
y(0) = 1,
y h = 0.1
En este ejemplo tenemos que f (x, y) = sin(y), entonces las fórmulas de
RK2 son, para el primer paso de tiempo:
K1 = h f (x, y) = h fn = 0.1 · sin(un )
K2 = h f (x + h/2, y + K1 /2) = 0.1 sin(un + K1 /2).
Esto es, un+1 = un + 0.1 sin(un + 0.05 sin(un )).
Métodos Numéricos
22 / 26
Ecuaciones diferenciales ordinarias
Runge-Kutta 2: Ejemplo
Partiendo de u0 = y(0) = 1, procedemos con la integración:
Para x1 = x0 + h = 0.1:
K1 = 0.1 · sin(1) = 0.0841
K2 = 0.1 sin(1 + 0.0841/2) = 0.0863
u1 = y(0.1) = 1 + 0.0863 = 1.0863.
Métodos Numéricos
23 / 26
Ecuaciones diferenciales ordinarias
Runge-Kutta 2: Ejemplo
Partiendo de u0 = y(0) = 1, procedemos con la integración:
Para x1 = x0 + h = 0.1:
K1 = 0.1 · sin(1) = 0.0841
K2 = 0.1 sin(1 + 0.0841/2) = 0.0863
u1 = y(0.1) = 1 + 0.0863 = 1.0863.
Para x2 = x1 + h = 0.2:
K1 = 0.1 · sin(1.0863) = 0.00885
K2 = 0.1 sin(1.0863 + 0.0885/2) = 0.0905
u2 = y(0.2) = 1.0863 + 0.0905 = 1.1768.
Métodos Numéricos
23 / 26
Ecuaciones diferenciales ordinarias
Runge-Kutta 2: Ejemplo
Partiendo de u0 = y(0) = 1, procedemos con la integración:
Para x1 = x0 + h = 0.1:
K1 = 0.1 · sin(1) = 0.0841
K2 = 0.1 sin(1 + 0.0841/2) = 0.0863
u1 = y(0.1) = 1 + 0.0863 = 1.0863.
Para x2 = x1 + h = 0.2:
K1 = 0.1 · sin(1.0863) = 0.00885
K2 = 0.1 sin(1.0863 + 0.0885/2) = 0.0905
u2 = y(0.2) = 1.0863 + 0.0905 = 1.1768.
etc ...
Métodos Numéricos
23 / 26
EDO en Matlab
Existen varias funciones basadas en RK para resolver problemas de
ecuaciones diferenciales ordinarias (EDO, o ODE en inglés), y tienen la
siguiente sintaxis
Funciones odeXX
[T,Y] = solver(odefun,tspan,y0)
[T,Y] = solver(odefun,tspan,y0,options)
sol = solver(odefun,[t0 tf],y0,...)
Donde odefun puede ser ode45 (la más usada), ode23, ode113,
ode15s, ode23s, ode23t, ode23tb.
Métodos Numéricos
24 / 26
EDO en Matlab
Ejemplo 1: Resolver
−t y
y′ = √
,
2 − y2
y(0) = 1,
t ∈ (0, 5)
1 function f=fun1(t,y)
2 f = -t*y/sqrt(2-y^2);
y luego se ejecuta » [t,f] = ode45(’fun1’,[0,5],1);
Métodos Numéricos
25 / 26
1
2
3
4
EDO en Matlab
Ejemplo 2: Resolver para t ∈ (0, π/2)
y1′ = 2y1 + y2 + 5y3 + e−2t
y2′ = −3y1 − 2y2 − 8y3 + 2e−2t − cos(3t)
y3′ = 3y1 + 3y2 + 2y3 + cos(3t)
(y1 , y2 , y3 )(0) = (1, −1, 0)
function Fv=fun2(t,Y);
Fv(1,1)=2*Y(1)+Y(2)+5*Y(3)+exp(-2*t);
Fv(2,1)=-3*Y(1)-2*Y(2)-8*Y(3)+2*exp(-2*t)-cos(3*t);
Fv(3,1)=3*Y(1)+3*Y(2)+2*Y(3)+cos(3*t);
y luego se ejecuta >> [t,f] = ode23(’fun2’,[0,pi/2],[1;-1;0]);
>> plot(tv,Yv(:,1),’+’,tv,Yv(:,2),’x’,tv,Yv(:,3),’o’)
>> hold; grid on; title(’Ejemplo 2’);
>> legend(’y_1’,’y_2’,’y_3’); xlabel(’tiempo’); hold off;
Métodos Numéricos
26 / 26
Download