Métodos numéricos · Tema 35

Runge–Kutta de cuarto orden

Combinar cuatro pendientes dentro de cada paso para alcanzar gran precisión sin calcular derivadas simbólicas de orden superior.

01 · Una mejora sistemática

Observar varios puntos del intervalo permite representar mejor la curva

Euler usa la pendiente inicial. Los métodos de segundo orden agregan una evaluación en el centro o en el extremo. El método clásico de Runge–Kutta de cuarto orden, abreviado RK4, realiza cuatro evaluaciones coordinadas:

inicio → centro → centro corregido → extremo

Esas pendientes se combinan para reproducir los términos de Taylor hasta cuarto orden, pero sin calcular explícitamente y″, y‴ ni y⁽⁴⁾. Solo necesita evaluar repetidamente el modelo f(t,y).

02 · Las cuatro pendientes

Cada etapa utiliza la información producida por la anterior

Para y′=f(t,y), desde (tn,yn) y con paso h:

k₁=f(tn,yn)
k₂=f(tn+h/2, yn+(h/2)k₁)
k₃=f(tn+h/2, yn+(h/2)k₂)
k₄=f(tn+h, yn+hk₃)

El avance definitivo es

yn+1=yn+(h/6)(k₁+2k₂+2k₃+k₄)

En esta convención, cada kᵢ es una pendiente y el factor h aparece al construir estados y en la combinación final. Algunos textos incorporan h dentro de los kᵢ; ambas notaciones son válidas si se usan consistentemente.

03 · Geometría y pesos

Las pendientes centrales reciben el doble de peso

k₁Inicio k₂ y k₃Dos estimaciones centrales k₄Extremo

Los pesos normalizados son 1/6, 1/3, 1/3 y 1/6. Se parecen a los pesos de una regla de cuadratura, pero las alturas se calculan sobre estados auxiliares que dependen unas de otras.

Función de cada etapa.
EtapaTiempoEstado evaluadoPeso final
k₁tnEstado inicial.1/6
k₂tn+h/2Centro estimado con k₁.1/3
k₃tn+h/2Centro corregido con k₂.1/3
k₄tn+hExtremo estimado con k₃.1/6

k₂ y k₃ se evalúan en el mismo tiempo, pero generalmente en estados distintos. El segundo centro corrige la estimación construida con la pendiente inicial.

04 · Cálculo paso a paso

Un paso de RK4 sobre una ecuación no lineal

Usemos y′=−y², y(0)=1 y h=0,5. La solución exacta es y(t)=1/(1+t).

Etapas del primer paso.
EtapaEstado auxiliarPendiente
k₁1−1
k₂1+0,25k₁=0,75−0,5625
k₃1+0,25k₂=0,859375−0,738525
k₄1+0,5k₃=0,630737−0,397830
y₁=1+(0,5/6)(k₁+2k₂+2k₃+k₄)≈0,666677

El valor exacto en t=0,5 es 2/3≈0,666667. El error absoluto del paso es aproximadamente 0,000010, frente a 0,166667 para Euler con el mismo paso.

05 · Flujo de datos

Las etapas son temporales y deben calcularse en el orden correcto

  1. Evaluar k₁.

    Usar exclusivamente el tiempo y el estado iniciales del paso.

  2. Construir el primer centro.

    Crear un estado auxiliar con k₁ y evaluar k₂.

  3. Reconstruir el centro.

    Partir otra vez de yn, ahora usando k₂, para obtener k₃.

  4. Estimar el extremo.

    Partir de yn y avanzar h con k₃ para evaluar k₄.

  5. Combinar.

    Aplicar los pesos 1,2,2,1 sin confundir estados auxiliares con el resultado.

No se avanza sucesivamente desde el primer centro al segundo y luego al extremo. Cada estado auxiliar se construye desde yn con la etapa indicada por la fórmula.

06 · Precisión de cuarto orden

El error global disminuye aproximadamente dieciséis veces al dividir h por dos

Para una solución suficientemente suave, el defecto de un solo paso iniciado desde el valor exacto es

error local=O(h⁵)

Al acumular aproximadamente 1/h pasos sobre un intervalo fijo, resulta

error global=O(h⁴)

Si E(h) es el error final y se está en el régimen asintótico:

E(h)/E(h/2)≈2⁴=16,    p≈log₂(E(h)/E(h/2))≈4

La relación puede alejarse de 16 con pasos grandes, soluciones poco regulares, eventos, errores de redondeo o una referencia insuficientemente precisa.

07 · Precisión frente a costo

Comparar métodos exige contar evaluaciones y medir errores

Características por paso de los métodos estudiados.
MétodoEvaluaciones de fOrden globalReducción esperada al usar h/2
Euler11Error ÷ 2
Heun / punto medio22Error ÷ 4
RK4 clásico44Error ÷ 16

Cuatro evaluaciones no garantizan que RK4 sea siempre la opción más rápida. El costo total depende del paso necesario para alcanzar la tolerancia, del costo de f, de la dimensión y de si hay eventos o rigidez.

El RK4 clásico usa paso fijo y no incluye por sí mismo una estimación del error. Los solucionadores adaptativos suelen emplear pares encajados, como Runge–Kutta–Fehlberg o Dormand–Prince.

08 · Estabilidad

La alta precisión no impide que un paso grande produzca una solución falsa

Para la ecuación de prueba y′=λy, con z=hλ, RK4 tiene el factor de amplificación

R(z)=1+z+z²/2+z³/6+z⁴/24

La aproximación es estable cuando |R(z)|<1. Sobre el eje real negativo, el límite está aproximadamente en z=−2,785. Así, para λ<0 se necesita aproximadamente

h<2,785/|λ|

Dentro de la región

|R(hλ)|<1

El modo de prueba se amortigua numéricamente.

Fuera de la región

|R(hλ)|>1

Los errores y la solución numérica pueden crecer.

RK4 posee una región de estabilidad mayor que Euler en varias direcciones del plano complejo, pero sigue siendo explícito. En problemas rígidos, la estabilidad puede imponer pasos diminutos aun cuando la solución parezca suave.

09 · Forma vectorial

Las cuatro etapas pueden ser vectores de cualquier dimensión

Para Y′=F(t,Y), las fórmulas se conservan reemplazando sumas y productos escalares por operaciones componente a componente:

K₂=F(tn+h/2, Yn+(h/2)K₁)
Yn+1=Yn+(h/6)(K₁+2K₂+2K₃+K₄)

En un oscilador, un modelo SIR o un sistema depredador–presa, cada llamada a F debe recibir un vector auxiliar completo. Mutar el estado mientras se calculan sus componentes mezcla etapas y cambia el método.

Objetos que conviene mantener separados.
ObjetoDuraciónUso
YnTodo el pasoBase común para los estados auxiliares.
K₁…K₄Una etapaVectores de derivadas.
Estados auxiliaresUna evaluaciónPuntos donde se calcula cada Kᵢ.
Yn+1Próximo pasoÚnico estado aceptado y registrado.

10 · Exploración interactiva

Laboratorio: precisión e inestabilidad con el mismo control de paso

El modelo es y′=−λy, y(0)=1, cuya solución exacta es e−λt. Compará Euler, punto medio y RK4. Con pasos grandes, observá que incluso RK4 puede abandonar el comportamiento decreciente exacto.

EXPERIMENTO 35

Orden, costo y estabilidad

y′=−0,70y · y(0)=1 · h=0,50 · tf=5,00

Los errores y factores de amplificación aparecen debajo.
Error Euler0,00
Error punto medio0,00
Error RK40,00
Evaluaciones RK44N = 40

RK4 estable para el paso nominal: |R(−0,35)| = 0,70.

El gráfico ajusta su escala vertical para mostrar tanto aproximaciones estables como oscilaciones crecientes. El último paso puede ser menor que el paso nominal.

Preguntas para explorar

  1. Con pasos pequeños, reducí h a la mitad. ¿Cómo cambia el error de cada método?
  2. Aumentá λh por encima de 2. ¿Qué métodos permanecen estables?
  3. Buscá una configuración con λh>2,785. ¿Qué indica el factor de RK4?
  4. ¿Por qué el error final puede ser pequeño por casualidad aunque existan oscilaciones intermedias?

11 · Implementación en JavaScript

Traducir las etapas manteniendo explícitas sus dependencias

Un paso escalar de RK4

function pasoRK4(f, t, y, h) {
  const k1 = f(t, y);
  const k2 = f(t + h / 2, y + h * k1 / 2);
  const k3 = f(t + h / 2, y + h * k2 / 2);
  const k4 = f(t + h, y + h * k3);
  return y + h * (k1 + 2 * k2 + 2 * k3 + k4) / 6;
}

const modelo = (t, y) => -y * y;
console.log(pasoRK4(modelo, 0, 1, 0.5));
// 0.6666766392687957

Integrar con un último paso acortado

function resolverRK4({ f, t0, tf, y0, h }) {
  if (![t0, tf, y0, h].every(Number.isFinite) || tf < t0 || h <= 0) {
    throw new RangeError("Datos inválidos");
  }
  let t = t0;
  let y = y0;
  const trayectoria = [{ t, y }];
  const maxPasos = Math.ceil((tf - t0) / h) + 1;

  for (let n = 0; n < maxPasos && t < tf; n++) {
    const hn = Math.min(h, tf - t);
    y = pasoRK4(f, t, y, hn);
    t = Math.min(tf, t + hn);
    if (!Number.isFinite(y)) throw new RangeError("Estado no finito");
    trayectoria.push({ t, y });
  }
  return trayectoria;
}

const puntos = resolverRK4({
  f: (t, y) => -0.7 * y, t0: 0, tf: 5, y0: 1, h: 0.5
});
console.log(puntos);

RK4 para estados vectoriales

function combinar(base, derivada, factor) {
  return base.map((valor, i) => valor + factor * derivada[i]);
}

function pasoRK4Vectorial(f, t, estado, h) {
  const k1 = f(t, estado);
  const k2 = f(t + h / 2, combinar(estado, k1, h / 2));
  const k3 = f(t + h / 2, combinar(estado, k2, h / 2));
  const k4 = f(t + h, combinar(estado, k3, h));

  return estado.map((valor, i) => valor + h * (
    k1[i] + 2 * k2[i] + 2 * k3[i] + k4[i]
  ) / 6);
}

const oscilador = (t, [x, v]) => [v, -x];
console.log(pasoRK4Vectorial(oscilador, 0, [1, 0], 0.1));
// Aproximadamente [0.99500417, -0.09983333]

12 · Comprensión

Confusiones frecuentes

«k₂ y k₃ son iguales porque usan el mismo tiempo»

Usan tn+h/2, pero estados auxiliares diferentes: uno construido con k₁ y otro con k₂.

«Las etapas se encadenan avanzando desde el estado auxiliar anterior»

Cada estado auxiliar se reconstruye desde yn según la fórmula correspondiente.

«Cuarto orden significa cuatro veces más preciso que Euler»

El orden describe cómo escala el error con h; no es un multiplicador fijo de precisión.

«RK4 siempre es estable por ser de orden alto»

Su región de estabilidad es finita. Un paso grande puede generar crecimiento artificial.

«El error siempre cae exactamente dieciséis veces al reducir h»

La razón 16 es asintótica y requiere una solución suave, una referencia adecuada y errores de redondeo no dominantes.

«RK4 clásico controla automáticamente el tamaño de paso»

No incluye una estimación de error ni adaptación. Esas capacidades requieren lógica adicional o un par de métodos encajados.

13 · Práctica guiada

Ejercicios de comprensión

Ejercicio 1: identificar las etapas

¿En qué tiempos se evalúan las cuatro pendientes de un paso que comienza en t=2 con h=0,4?

Ver solución

k₁ en 2; k₂ y k₃ en 2,2; k₄ en 2,4.

Ejercicio 2: derivada constante

Aplicá RK4 a y′=3, y(0)=2, con h=0,5.

Ver solución

Todas las etapas valen 3. Entonces y₁=2+(0,5/6)(3+6+6+3)=3,5, que coincide con la solución exacta.

Ejercicio 3: combinación ponderada

Si h=0,2 y las pendientes son k₁=1, k₂=1,1, k₃=1,12, k₄=1,25, calculá el incremento.

Ver solución

Δy=(0,2/6)(1+2·1,1+2·1,12+1,25)=0,223.

Ejercicio 4: orden observado

Una prueba produce E(0,2)=1,60·10−5 y E(0,1)=1,02·10−6. Estimá el orden.

Ver solución razonada

p≈log₂(1,60·10−5/1,02·10−6)≈3,97, compatible con orden cuatro.

Ejercicio 5: estabilidad

Para y′=−10y, estimá el mayor paso estable de RK4 sobre el eje real negativo.

Ver solución

h<2,785/10≈0,2785. Esta condición se refiere a estabilidad, no a la precisión requerida.

Ejercicio 6: presupuesto de evaluaciones

Con un presupuesto de 4000 evaluaciones de f, ¿cuántos pasos completos pueden realizar Euler, punto medio y RK4?

Ver solución

Euler: 4000 pasos; punto medio: 2000; RK4: 1000. La comparación de calidad necesita además medir el error obtenido.

14 · Síntesis

Ideas para recordar

  • RK4 clásico evalúa pendientes al inicio, dos veces en el centro y una vez en el extremo.
  • Las etapas se combinan con pesos proporcionales a 1,2,2,1.
  • Los estados auxiliares siempre se construyen desde el estado inicial del paso.
  • El error local es O(h⁵) y el error global es O(h⁴).
  • Reducir h a la mitad reduce aproximadamente dieciséis veces el error global.
  • RK4 requiere cuatro evaluaciones del modelo por paso.
  • La comparación entre métodos debe considerar error y costo total.
  • RK4 tiene una región de estabilidad finita y no resuelve por sí solo la rigidez.
  • El RK4 clásico de paso fijo no posee control automático de error.

En el próximo tema integraremos modelos, métodos, visualización y validación en un simulador reutilizable de sistemas dinámicos.