Você está na página 1de 15

Asignatura Datos del alumno Fecha

Métodos Numéricos Apellidos: Pozo Parra


Avanzados en 15/05/2018
Ingeniería Nombre: Fredin Fernando

Actividad 3
Laboratorio #1: Métodos Runge-Kutta

Preparación del laboratorio

Para la ejecución del presente laboratorio es necesario que los alumnos tengan
instalado en sus ordenadores:

» Matlab

Antes de realizar el laboratorio, es necesario recordar las fórmulas de los métodos de


Runge-Kutta de segundo y cuarto orden, así como el resto de métodos numéricos de
resolución de problemas de valor inicial (Tema 3).

Descripción del laboratorio

Objetivos: se trata de cuatro ejercicios en los que deberás programar en Matlab las
funciones necesarias para la resolución, por medio de los métodos numéricos
mencionados, de problemas de valor inicial.

Tiempo estimado: 4 horas:

» 2,5 horas -> programación


» 0,5 horas -> ejecución
» 1 hora -> elaboración del informe
Asignatura Datos del alumno Fecha
Métodos Numéricos Apellidos: Pozo Parra
Avanzados en 15/05/2018
Ingeniería Nombre: Fredin Fernando

Desarrollo

Problema 1
Un sistema resonante de muelles sobre el que se ejerce una fuerza externa periódica se
modela mediante la ecuación
𝑥 ′′ (𝑡) + 25𝑥(𝑡) = 8 sin 5𝑡 , 𝑥(0) = 𝑥 ′ (0) = 0

Para encontrar la solución de esta ecuación diferencial de segundo orden, formaremos


un sistema de ecuaciones diferenciales de primer orden.
𝑑𝑥1
= 𝑥2 ,
𝑑𝑡
𝑑𝑥2
= 8 sin 5𝑡 − 25𝑥1 ,
𝑑𝑡
{ 𝑥1 (0) = 0, 𝑥2 (0) = 0.
Resolveremos este sistema numéricamente con diferentes métodos.

a) Usa el método de Runge-Kutta de orden 2 para resolver el problema de valor inicial


en el intervalo [0,2] con 40 subintervalos.
Resumimos las iteraciones en la siguiente tabla. Además, se muestra la figura con el
gráfico de la solución.

Tabla 1
Aproximación de la solución de la ecuación diferencial en el intervalo [0, 2] usando el método
de Runge-Kutta de orden 2 con 40 subintervalos.
𝒊 ̅𝒊
𝒙 𝒕𝒊 𝒊 ̅𝒊
𝒙 𝒕𝒊
1 0,0000 0,0000 21 1,0256 -0,4439
2 0,0513 0,0000 22 1,0769 -0,6320
3 0,1026 0,0050 23 1,1282 -0,7964
4 0,1538 0,0196 24 1,1795 -0,9227
5 0,2051 0,0471 25 1,2308 -0,9985
6 0,2564 0,0891 26 1,2821 -1,0137
7 0,3077 0,1449 27 1,3333 -0,9622
8 0,3590 0,2121 28 1,3846 -0,8421
9 0,4103 0,2859 29 1,4359 -0,6562
10 0,4615 0,3598 30 1,4872 -0,4127
11 0,5128 0,4262 31 1,5385 -0,1241
Asignatura Datos del alumno Fecha
Métodos Numéricos Apellidos: Pozo Parra
Avanzados en 15/05/2018
Ingeniería Nombre: Fredin Fernando

12 0,5641 0,4769 32 1,5897 0,1928


13 0,6154 0,5040 33 1,6410 0,5181
14 0,6667 0,5006 34 1,6923 0,8302
15 0,7179 0,4617 35 1,7436 1,1067
16 0,7692 0,3848 36 1,7949 1,3267
17 0,8205 0,2702 37 1,8462 1,4718
18 0,8718 0,1217 38 1,8974 1,5276
19 0,9231 -0,0539 39 1,9487 1,4854
20 0,9744 -0,2465 40 2,0000 1,3427

Figura 1: Gráfica de la aproximación de la solución del problema 1 en el intervalo [0, 2] usando


el método de Runge-Kutta de orden 2 con 40 subintervalos.

b) Usa el método de Runge-Kutta de orden 4 para resolver el problema de valor inicial


en el intervalo [0,2] con 40 subintervalos.
Resumimos las iteraciones en la siguiente tabla. Además, se muestra la figura con el
gráfico de la solución.
Asignatura Datos del alumno Fecha
Métodos Numéricos Apellidos: Pozo Parra
Avanzados en 15/05/2018
Ingeniería Nombre: Fredin Fernando

Tabla 2
Aproximación de la solución de la ecuación diferencial en el intervalo [0, 2] usando el método
de Runge-Kutta de orden 4 con 40 subintervalos.
𝒊 ̅𝒊
𝒙 𝒕𝒊 𝒊 ̅𝒊
𝒙 𝒕𝒊
1 0,0000 0,0000 21 1,0256 -0,4210
2 0,0513 0,0008 22 1,0769 -0,6048
3 0,1026 0,0066 23 1,1282 -0,7664
4 0,1538 0,0215 24 1,1795 -0,8923
5 0,2051 0,0489 25 1,2308 -0,9703
6 0,2564 0,0901 26 1,2821 -0,9905
7 0,3077 0,1447 27 1,3333 -0,9467
8 0,3590 0,2100 28 1,3846 -0,8367
9 0,4103 0,2816 29 1,4359 -0,6629
10 0,4615 0,3532 30 1,4872 -0,4325
11 0,5128 0,4176 31 1,5385 -0,1572
12 0,5641 0,4669 32 1,5897 0,1475
13 0,6154 0,4934 33 1,6410 0,4626
14 0,6667 0,4906 34 1,6923 0,7677
15 0,7179 0,4536 35 1,7436 1,0412
16 0,7692 0,3799 36 1,7949 1,2629
17 0,8205 0,2698 37 1,8462 1,4148
18 0,8718 0,1268 38 1,8974 1,4826
19 0,9231 -0,0427 39 1,9487 1,4571
20 0,9744 -0,2292 40 2,0000 1,3348

Figura 2: Gráfica de la aproximación de la solución del problema 1 en el intervalo [0, 2] usando


el método de Runge-Kutta de orden 4 con 40 subintervalos.
Asignatura Datos del alumno Fecha
Métodos Numéricos Apellidos: Pozo Parra
Avanzados en 15/05/2018
Ingeniería Nombre: Fredin Fernando

Problema 2
El modelo matemático de un circuito eléctrico RCL (resistencia, condensador e
inductancia) es
𝑄 ′′ (𝑡) + 20𝑄 ′ (𝑡) + 125𝑄(𝑡) = 9 𝑠𝑒𝑛(5𝑡), 𝑄(0) = 𝑄 ′ (0) = 0.

Para encontrar la solución de esta ecuación diferencial de segundo orden, formaremos


un sistema de ecuaciones diferenciales de primer orden.
𝑑𝑥1
= 𝑥2 ,
𝑑𝑡
𝑑𝑥2
= 9 sin 5𝑡 − 20𝑥2 − 125𝑥1 ,
𝑑𝑡
{ 𝑥1 (0) = 0, 𝑥2 (0) = 0.
Resolveremos este sistema numéricamente con dos diferentes métodos.

a) Usa dos métodos conocidos de resolución de problemas de valor inicial para


aproximar su solución en el intervalo [0,2] utilizando 20, 40 y 80 subintervalos.

Las estimaciones encontradas para la solución de esta ecuación diferencial se presentan


a continuación de forma gráfica usando el método de Runge-Kutta de orden 2 y orden 4.

Figura 3: Gráfica de la aproximación de la solución del problema 2 en el intervalo [0, 2]


usando el método de Runge-Kutta de orden 2 para distintos valores de 𝑛.
Asignatura Datos del alumno Fecha
Métodos Numéricos Apellidos: Pozo Parra
Avanzados en 15/05/2018
Ingeniería Nombre: Fredin Fernando

Figura 4: Gráfica de la aproximación de la solución del problema 2 en el intervalo [0, 2]


usando el método de Runge-Kutta de orden 4 para distintos valores de 𝑛.

b) Proporciona una estimación numérica del orden de los métodos aplicados en el


apartado anterior.

El método de Runge-Kutta de orden 2 tiene un error por paso de 𝑂(ℎ3 ) y un error global
de 𝑂(ℎ4 ). Mientras que el método de Runge-Kutta de orden 4 tiene un error por paso de
𝑂(ℎ5 ) y un error acumulado de 𝑂(ℎ4 ).

Problema 3
En un instante t, un péndulo forma un ángulo 𝑥(𝑡) con el eje vertical. Suponiendo
despreciable la fricción, la ecuación del movimiento del péndulo es
𝑚 𝑙 𝑥 ′′ (𝑡) = −𝑚 𝑔 𝑠𝑒𝑛(𝑥(𝑡)),
donde 𝑚 es la masa y 𝑙 es la longitud de la cuerda.

Para encontrar la solución de esta ecuación diferencial de segundo orden, formaremos


un sistema de ecuaciones diferenciales de primer orden.
𝑑𝑥1
= 𝑥2 ,
𝑑𝑡
𝑑𝑥2 𝑔
= − sin 𝑥1 ,
𝑑𝑡 𝑙
{𝑥1 (0) = 0.3, 𝑥2 (0) = 0.
Resolveremos este sistema numéricamente con diferentes métodos.
Asignatura Datos del alumno Fecha
Métodos Numéricos Apellidos: Pozo Parra
Avanzados en 15/05/2018
Ingeniería Nombre: Fredin Fernando

a) Usa los métodos de Euler, Heun y Runge-Kutta de orden 4 para resolver el problema
de valor inicial en el intervalo [0,2] usando 10, 50 y 500 subintervalos, sabiendo que
𝑔 = 9.8 𝑚/𝑠 2 , para l = 1m, 𝑥(0) = 0.3, 𝑥 ′ (0) = 0.

En las siguientes figuras se resumen las aproximaciones de la solución para el número


de pasos pedidos y diferentes métodos.

Figura 5: Gráfica de la aproximación de la solución del problema 3 en el intervalo [0, 2]


usando el método de Euler para distintos valores de 𝑛.

Figura 6: Gráfica de la aproximación de la solución del problema 3 en el intervalo [0, 2]


usando el método de Heun para distintos valores de 𝑛.
Asignatura Datos del alumno Fecha
Métodos Numéricos Apellidos: Pozo Parra
Avanzados en 15/05/2018
Ingeniería Nombre: Fredin Fernando

Figura 7: Gráfica de la aproximación de la solución del problema 3 en el intervalo [0, 2]


usando el método de Runge-Kutta de orden 4 para distintos valores de 𝑛.
b) Usa los métodos de Euler, Heun y Runge-Kutta de orden 4 para resolver el problema
de valor inicial en el intervalo [0,2] usando 10, 50 y 500 subintervalos, sabiendo que
9.8 𝑚
𝑔= , para l = 0.25m, 𝑥(0) = 0.3, 𝑥 ′ (0) = 0.
𝑠2

En las siguientes figuras se resumen las aproximaciones de la solución para el número


de pasos pedidos y diferentes métodos.

Figura 8: Gráfica de la aproximación de la solución del problema 3 en el intervalo [0, 2]


usando el método de Euler para distintos valores de 𝑛.
Asignatura Datos del alumno Fecha
Métodos Numéricos Apellidos: Pozo Parra
Avanzados en 15/05/2018
Ingeniería Nombre: Fredin Fernando

Figura 9: Gráfica de la aproximación de la solución del problema 3 en el intervalo [0, 2]


usando el método de Heun para distintos valores de 𝑛.

Figura 10: Gráfica de la aproximación de la solución del problema 3 en el intervalo [0, 2]


usando el método de Runge-Kutta de orden 4 para distintos valores de 𝑛.
Asignatura Datos del alumno Fecha
Métodos Numéricos Apellidos: Pozo Parra
Avanzados en 15/05/2018
Ingeniería Nombre: Fredin Fernando

c) Interpreta los resultados.

Fácilmente podemos intuir que con menor número de pasos la solución es menos
inexacta y suave. Esto ocurre en cada método, pero es más notable en el método de Euler.
Las aproximaciones encontradas con los métodos de Runge-Kutta resultan mejores que
las encontradas por el método de Euler. La diferencia entre n = 50 y n = 500 en los
métodos de Runge-Kutta es menos notable.

Problema 4
Modelo predador-presa: en un cierto hábitat conviven conejos y linces, cuyas
poblaciones en un cierto instante t denotaremos por 𝑥(𝑡) e 𝑦(𝑡), respectivamente. El
modelo establece que la relación entre ambas poblaciones como
𝑥 ′ (𝑡) = 𝐴𝑥(𝑡) − 𝐵𝑥(𝑡)𝑦(𝑡)
𝑦 ′ (𝑡) = 𝐶𝑥(𝑡)𝑦(𝑡) − 𝐷𝑦(𝑡)
En la simulación usamos los coeficientes 𝐴 = 2, 𝐵 = 0.02, 𝐶 = 0.0002, 𝐷 = 0.8.

a) Utiliza Heun y RK4 para resolver el sistema en el intervalo [0,5] con 40 y 80 pasos
partiendo de 𝑥(0) = 3000 conejos y 𝑦(0) = 120 linces.

En las siguientes figuras se resumen las aproximaciones de la solución para el número


de pasos pedidos y diferentes métodos.

Figura 11: Gráfica de la aproximación de la solución del problema 4(a) en el intervalo [0, 5]
usando el método de Heun para 𝑛 = 40.
Asignatura Datos del alumno Fecha
Métodos Numéricos Apellidos: Pozo Parra
Avanzados en 15/05/2018
Ingeniería Nombre: Fredin Fernando

Figura 12: Gráfica de la aproximación de la solución del problema 4(a) en el intervalo [0, 5]
usando el método de Heun para 𝑛 = 80.

Figura 13: Gráfica de la aproximación de la solución del problema 4(a) en el intervalo [0, 5]
usando el método de Runga-Kutta de orden 4 para 𝑛 = 40.
Asignatura Datos del alumno Fecha
Métodos Numéricos Apellidos: Pozo Parra
Avanzados en 15/05/2018
Ingeniería Nombre: Fredin Fernando

Figura 14: Gráfica de la aproximación de la solución del problema 4(a) en el intervalo [0, 5]
usando el método de Runga-Kutta de orden 4 para 𝑛 = 80.

b) Utiliza Heun y RK4 para resolver el sistema en el intervalo [0,5] con 40 y 80 pasos
partiendo de 𝑥(0) = 5000 conejos y 𝑦(0) = 100 linces.

Figura 15: Gráfica de la aproximación de la solución del problema 4(b) en el intervalo [0, 5]
usando el método de Heun para 𝑛 = 40.
Asignatura Datos del alumno Fecha
Métodos Numéricos Apellidos: Pozo Parra
Avanzados en 15/05/2018
Ingeniería Nombre: Fredin Fernando

Figura 16: Gráfica de la aproximación de la solución del problema 4(b) en el intervalo [0, 5]
usando el método de Heun para 𝑛 = 80.

Figura 17: Gráfica de la aproximación de la solución del problema 4(b) en el intervalo [0, 5]
usando el método de Runge-Kutta de orden 4 para 𝑛 = 40.
Asignatura Datos del alumno Fecha
Métodos Numéricos Apellidos: Pozo Parra
Avanzados en 15/05/2018
Ingeniería Nombre: Fredin Fernando

Figura 18: Gráfica de la aproximación de la solución del problema 4(b) en el intervalo [0, 5]
usando el método de Runge-Kutta de orden 4 para 𝑛 = 80.

Apéndices
Para la resolución de los problemas anteriores se crearon tres funciones de MATLAB con
la implementación de los métodos de Euler (euler.m), Heun (Runge-Kutta de orden 2)
(RK2.m) y Runge-Kutta de orden 4 (RK4.m).

Los parámetros de entrada son:


 f: la función expresada en forma vectorial que contiene la parte derecha del
sistema de ecuaciones.
 x0: condiciones de entrada en forma vectorial.
 n: número de pasos.
 ti: tiempo inicial.
 tf: tiempo final.
Asignatura Datos del alumno Fecha
Métodos Numéricos Apellidos: Pozo Parra
Avanzados en 15/05/2018
Ingeniería Nombre: Fredin Fernando

function [t, x] = euler(f, x0, n, ti, tf)


h = (tf-ti)/n;
x(:,1) = x0;
t = linspace(ti,tf,n);

for k = 1:n-1
x(:,k+1) = x(:,k) + h*f(t(k), x(:,k));
end
end

Función 1: Método de Euler para sistemas de ecuaciones diferenciales de primer orden.

function [t, x] = RK2(fun, x0, n, ti, tf)


h = (tf-ti)/n;
x(:,1) = x0;
t = linspace(ti,tf,n);

for k = 1:n-1
k1 = h * fun(t(k),x(:,k));
k2 = h * fun(t(k)+h/2, x(:,k) + k1/2);
x(:,k+1) = x(:,k) + k2;
end
end

Función 2: Método de Heun para sistemas de ecuaciones diferenciales de primer orden.

function [t, x] = RK4(f, x0, n, ti, tf)


h = (tf-ti)/n;
x(:,1) = x0;
t = linspace(ti,tf,n);

for k = 1:n-1
k1 = h*f(t(k), x(:,k));
k2 = h*f(t(k)+h/2, x(:,k) + 0.5*k1);
k3 = h*f(t(k)+h/2, x(:,k) + 0.5*k2);
k4 = h*f(t(k)+h, x(:,k) + k3);
x(:,k+1) = x(:,k) + (k1 + 2*k2 + 2*k3 + k4)/6;
end
end

Función 3: Método de Runge-Kutta de orden 4 para sistemas de ecuaciones diferenciales de


primer orden.

Você também pode gostar