Ecuaciones diferenciales · Tema 33

Euler mejorado y punto medio

Dos maneras de reemplazar la pendiente inicial por una pendiente promedio más representativa y alcanzar precisión de segundo orden con solo dos evaluaciones por paso.

01 · Mejorar la información del paso

De una pendiente inicial a una pendiente media

Euler explícito avanza con f(tₙ,yₙ), como si la pendiente no cambiara durante el intervalo. Cuando la trayectoria se curva, esa hipótesis genera un error visible.

La forma integral indica qué necesitamos realmente:

y(tₙ₊₁)=y(tₙ)+h·[pendiente media exacta en el paso]

Heun y el punto medio obtienen una mejor aproximación de esa media mediante dos evaluaciones de f.

02 · Euler mejorado

Método de Heun

Heun calcula una pendiente al inicio y utiliza Euler como predictor para estimar el extremo. Luego evalúa allí una segunda pendiente:

k₁=f(tₙ,yₙ)
ỹₙ₊₁=yₙ+h k₁
k₂=f(tₙ+h,ỹₙ₊₁)
yₙ₊₁=yₙ+h(k₁+k₂)/2

El predictor ỹₙ₊₁ no es el resultado final: solo sirve para conocer aproximadamente la pendiente del otro extremo. El avance aceptado usa el promedio de ambas pendientes.

pendiente inicial→predecir extremo→pendiente final→promediar

03 · Interpretación integral

Un trapecio explícito

En la forma integral del PVI, la regla del trapecio aproximaría el área usando las pendientes de ambos extremos:

∫tₙtₙ₊₁f(t,y(t))dt ≈ h[f(tₙ,yₙ)+f(tₙ₊₁,y(tₙ₊₁))]/2

El valor exacto del extremo es desconocido. Heun lo sustituye por el predictor de Euler y conserva así una fórmula explícita.

04 · Mirar dentro del intervalo

Método del punto medio explícito

Otra estrategia consiste en aproximar el estado a mitad del paso y utilizar la pendiente calculada allí para recorrer el intervalo completo:

k₁=f(tₙ,yₙ)
ymedio=yₙ+(h/2)k₁
k₂=f(tₙ+h/2,ymedio)
yₙ₊₁=yₙ+h k₂

El estado intermedio es auxiliar y no debe confundirse con una solución independiente. La evaluación k₂ representa mejor lo que sucede dentro del paso que la pendiente inicial sola.

En ecuaciones no autónomas es indispensable avanzar también el tiempo hasta tₙ+h/2.

05 · Una misma familia

Condiciones de segundo orden

Consideremos dos etapas con un parámetro a≠0:

k₁=f(tₙ,yₙ)
k₂=f(tₙ+ah,yₙ+ahk₁)
yₙ₊₁=yₙ+h(b₁k₁+b₂k₂)

Al comparar su expansión con Taylor aparecen las condiciones:

b₁+b₂=1,    ab₂=1/2
Dos elecciones dentro de la familia RK2.
Métodoab₁b₂Dónde evalúa k₂
Heun11/21/2Extremo predicho
Punto medio1/201Mitad predicha

Ambos satisfacen las condiciones de orden dos, aunque sus errores de términos superiores pueden ser diferentes.

06 · Cálculo de un paso

Comparación sobre y′=y

Desde t₀=0, y₀=1, con h=0.25:

Primer paso de tres métodos.
MétodoCálculoy₁
Euler1+0.25·11.25
Heun1+0.25(1+1.25)/21.28125
Punto medio1+0.25·1.1251.28125
Exactoe0.251.284025

Para esta ecuación lineal autónoma, Heun y punto medio coinciden: ambos multiplican por 1+h+h²/2. Esa igualdad no se mantiene en general. Por ejemplo, si f depende de forma no lineal de y, las segundas evaluaciones ocurren en estados diferentes.

07 · Implementación

Heun en JavaScript

function pasoHeun(f, t, y, h) {
  const k1 = f(t, y);
  const predictor = y + h * k1;
  const k2 = f(t + h, predictor);
  return y + h * (k1 + k2) / 2;
}

function integrar(f, t0, y0, tFinal, hMaximo, paso) {
  if (!(hMaximo > 0) || tFinal < t0) throw new Error("Intervalo inválido");
  const trayectoria = [{ t: t0, y: y0 }];
  let t = t0;
  let y = y0;
  while (t < tFinal) {
    const h = Math.min(hMaximo, tFinal - t);
    y = paso(f, t, y, h);
    t += h;
    if (!Number.isFinite(y)) throw new Error("Estado no finito");
    trayectoria.push({ t, y });
  }
  return trayectoria;
}

const puntos = integrar((t, y) => y, 0, 1, 1, 0.25, pasoHeun);
console.log("Heun en t=1:", puntos.at(-1).y);
console.log("valor exacto:", Math.E);

Separar la estrategia de paso del bucle permite reutilizar validaciones, almacenamiento y control del último intervalo.

08 · Segunda estrategia

Punto medio en JavaScript

function pasoPuntoMedio(f, t, y, h) {
  const k1 = f(t, y);
  const yMedio = y + h * k1 / 2;
  const k2 = f(t + h / 2, yMedio);
  return y + h * k2;
}

const f = (t, y) => t - y * y;
const t = 0;
const y = 1;
const h = 0.2;

const k1 = f(t, y);
const yMedio = y + h * k1 / 2;
const k2 = f(t + h / 2, yMedio);
const siguiente = pasoPuntoMedio(f, t, y, h);

console.log("k1:", k1);
console.log("estado intermedio:", yMedio);
console.log("k2:", k2);
console.log("nuevo estado:", siguiente);

Calcular k₁ antes de modificar el estado y conservar variables auxiliares hace explícita la dependencia entre etapas.

09 · Precisión teórica

Error local cúbico y global cuadrático

Las condiciones de orden eliminan los términos de error hasta grado dos. Si la solución y la función son suficientemente suaves:

defecto de un paso = O(h³)
error global en un intervalo fijo = O(h²)

Como se necesitan aproximadamente 1/h pasos, los defectos cúbicos acumulados producen un error global cuadrático.

El orden no determina por sí solo el error: Heun y punto medio comparten orden, pero poseen constantes de error distintas.

10 · Verificación computacional

Medir el orden observado

function resolver(paso, pasos) {
  const f = (t, y) => y;
  const h = 1 / pasos;
  let t = 0;
  let y = 1;
  for (let n = 0; n < pasos; n++) {
    y = paso(f, t, y, h);
    t += h;
  }
  return y;
}

const heun = (f, t, y, h) => {
  const k1 = f(t, y);
  const k2 = f(t + h, y + h * k1);
  return y + h * (k1 + k2) / 2;
};

let errorAnterior;
for (const pasos of [4, 8, 16, 32, 64]) {
  const error = Math.abs(Math.E - resolver(heun, pasos));
  const cociente = errorAnterior === undefined ? "—" : errorAnterior / error;
  console.log(pasos, error.toExponential(4), cociente);
  errorAnterior = error;
}

Los cocientes se aproximan a 4. También puede calcularse el orden observado mediante:

p≈log₂(E(h)/E(h/2))

Un estudio serio utiliza varios refinamientos: un único par de pasos puede estar fuera del régimen asintótico.

11 · Trabajo por precisión

Comparar el costo de manera justa

Euler usa una evaluación de f por paso; Heun y punto medio usan dos. Pero contar solamente pasos favorece artificialmente a Euler.

Costo básico de los métodos explícitos.
MétodoEvaluaciones por pasoOrden globalError al usar h/2
Euler11≈ E/2
Heun22≈ E/4
Punto medio22≈ E/4

La comparación relevante fija una tolerancia y mide evaluaciones, tiempo y memoria necesarios para alcanzarla. Un método más costoso por paso puede resultar mucho más económico en total.

12 · La ecuación de prueba

Estabilidad de los métodos RK2

Al aplicar Heun o punto medio a y′=λy, ambos producen:

yₙ₊₁=R(z)yₙ,    R(z)=1+z+z²/2,    z=hλ

La región de estabilidad está formada por los valores complejos de z para los que |R(z)|<1. Sobre el eje real negativo:

−2<hλ<0

El intervalo estable real es el mismo que para Euler explícito. La mejora de orden no implica automáticamente una región de estabilidad mayor.

  • Para λ=−10, se requiere h<0.2.
  • Con h=0.1, R(−1)=0.5.
  • Con h=0.3, R(−3)=2.5 y la aproximación crece.

En problemas rígidos, el límite de estabilidad puede obligar a usar pasos diminutos aunque la precisión admita pasos mayores.

13 · Estados vectoriales

Las etapas en un sistema

Las fórmulas se mantienen, pero cada k es un vector. Las operaciones deben realizarse componente a componente sin modificar el estado original:

const sumarEscalado = (estado, escala, derivada) =>
  estado.map((valor, i) => valor + escala * derivada[i]);

function pasoHeunVector(f, t, estado, h) {
  const k1 = f(t, estado);
  const predictor = sumarEscalado(estado, h, k1);
  const k2 = f(t + h, predictor);
  return estado.map((valor, i) => valor + h * (k1[i] + k2[i]) / 2);
}

const oscilador = (t, [x, v]) => [v, -x];
let estado = [1, 0];
let t = 0;
const h = 0.1;
for (let n = 0; n < 100; n++) {
  estado = pasoHeunVector(oscilador, t, estado, h);
  t += h;
}
const energia = 0.5 * (estado[0] ** 2 + estado[1] ** 2);
console.log("estado:", estado);
console.log("energía inicial:", 0.5, "energía final:", energia);

Heun reduce considerablemente la deriva energética respecto de Euler en este ejemplo, pero no conserva energía exactamente. Orden y preservación geométrica son propiedades diferentes.

14 · Exploración interactiva

Laboratorio: tres aproximaciones frente a la solución exacta

La gráfica superpone Euler, Heun y punto medio usando la misma malla. Cambiá el modelo y refiná los pasos para comparar precisión y costo.

EXPERIMENTO 33

Comparar pendientes por paso

y′=y, y(0)=1

Los resultados numéricos aparecen debajo.
Paso h—
Error Euler—
Error Heun—
Error punto medio—
Valor exacto final—

Heun y punto medio usan dos evaluaciones de f por paso.

Preguntas para explorar

  1. Duplicá la cantidad de pasos. ¿El error de los métodos RK2 cae aproximadamente cuatro veces?
  2. En crecimiento lineal, comprobá que Heun y punto medio coinciden.
  3. En el modelo logístico, observá que las dos curvas de segundo orden ya no son idénticas.
  4. En el modelo forzado, explicá por qué el tiempo usado en la segunda evaluación es importante.

15 · Comprensión

Confusiones frecuentes

«Euler mejorado es Euler con un paso más pequeño»

No. Heun cambia la fórmula: evalúa dos pendientes y utiliza su promedio.

«El predictor de Heun es el nuevo estado definitivo»

Es solamente un valor auxiliar para calcular k₂. El estado aceptado usa el promedio de k₁ y k₂.

«Heun y punto medio siempre producen lo mismo»

Coinciden para algunas ecuaciones, como y′=λy, pero en general evalúan f en tiempos y estados distintos.

«Dos evaluaciones garantizan orden dos»

No. Los tiempos, estados y pesos deben satisfacer las condiciones de orden.

«Orden dos significa el doble de precisión»

El orden describe cómo decrece el error al refinar h. En régimen asintótico, usar h/2 reduce el error aproximadamente cuatro veces.

«Un método de mayor orden siempre es más estable»

No. En el eje real negativo, estos RK2 tienen el mismo intervalo estable que Euler explícito.

16 · Práctica guiada

Ejercicios

Ejercicio 1: un paso de Heun

Aplicá Heun con h=0.2 a y′=t+y desde (0,1).

Ver solución

k₁=1, predictor ỹ₁=1.2, k₂=f(0.2,1.2)=1.4. Entonces y₁=1+0.2(1+1.4)/2=1.24.

Ejercicio 2: un paso de punto medio

Resolvé el mismo paso con el método del punto medio.

Ver solución

k₁=1, ymedio=1.1, k₂=f(0.1,1.1)=1.2. Por tanto, y₁=1+0.2·1.2=1.24.

Ejercicio 3: comprobar condiciones

Para a=2/3, encontrá los pesos b₁ y b₂ que producen orden dos.

Ver solución razonada

De ab₂=1/2 resulta b₂=3/4. Como b₁+b₂=1, queda b₁=1/4.

Ejercicio 4: orden observado

Los errores para h y h/2 son 0.0032 y 0.00081. Estimá el orden.

Ver solución

p≈log₂(0.0032/0.00081)≈1.98, compatible con un método de segundo orden.

Ejercicio 5: estabilidad

Para y′=−20y, determiná el máximo paso estable de Heun sobre el eje real.

Ver solución

Debe cumplirse −2<−20h<0, por lo que 0<h<0.1. En el límite h=0.1, el factor vale uno y no hay decaimiento.

17 · Síntesis

Ideas para recordar

  • Heun promedia las pendientes del inicio y de un extremo predicho.
  • El punto medio avanza con una pendiente evaluada en un estado intermedio predicho.
  • Ambos requieren dos evaluaciones de f por paso.
  • Son miembros de una familia explícita de métodos RK2.
  • Su defecto local es O(h³) y su error global es O(h²).
  • Al dividir h por dos, el error global tiende a reducirse cuatro veces.
  • Para y′=λy comparten R(z)=1+z+z²/2.
  • Mayor orden no implica necesariamente una región estable mayor.
  • La comparación justa considera evaluaciones de f y error alcanzado.

En el próximo tema ampliaremos esta construcción a los métodos de Runge-Kutta, incluyendo el conocido esquema clásico de cuarto orden.