El método de Runge-Kutta fue desarrollado a finales del siglo XIX y principios del XX por los matemáticos Carl Runge y Martin Wilhelm Kutta. Surgió como una mejora de los métodos de Euler y de los métodos de Taylor para resolver ecuaciones diferenciales ordinarias (EDO) de forma numérica, evitando la necesidad de derivadas de orden superior. Hoy en día, las versiones de Runge-Kutta de segundo, tercero y principalmente cuarto orden (RK4) son de los métodos más utilizados en aplicaciones científicas e ingenieriles.
Se usa para aproximar la solución de:
Resolución numérica de ecuaciones diferenciales ordinarias en ingeniería.
Simulación de trayectorias de satélites, proyectiles y partículas.
Modelado de sistemas dinámicos en física, química y biología.
Procesos de reacción-difusión y cinética química.
Análisis de circuitos eléctricos y sistemas mecánicos vibratorios.
function runge_kutta(f, x0, y0, h, xn)
% f: función derivada dy/dx = f(x, y)
% x0: valor inicial de x
% y0: valor inicial de y
% h: tamaño de paso
% xn: valor final de x
x = x0;
y = y0;
fprintf('x\t\t y\n');
fprintf('%.5f\t %.10f\n', x, y);
while x < xn
k1 = h * f(x, y);
k2 = h * f(x + h/2, y + k1/2);
k3 = h * f(x + h/2, y + k2/2);
k4 = h * f(x + h, y + k3);
y = y + (1/6)*(k1 + 2*k2 + 2*k3 + k4);
x = x + h;
fprintf('%.5f\t %.10f\n', x, y);
end
end