Ecuaciones diferenciales · Tema 35

Sistemas, estabilidad y rigidez

Comprender cómo interactúan varias escalas temporales, por qué un método puede ser preciso pero inestable y cuándo los integradores implícitos resultan necesarios.

01 · Más de una variable dinámica

Un estado que evoluciona como vector

Muchos modelos contienen variables acopladas: posición y velocidad, varias especies químicas, poblaciones que interactúan o temperaturas en distintos puntos. Se escriben como:

𝐲′(t)=𝐟(t,𝐲),    𝐲(t₀)=𝐲₀

El vector 𝐲=[y₁,…,yₘ] representa el estado completo. La función 𝐟 devuelve simultáneamente la velocidad de todas sus componentes.

02 · Una representación uniforme

Convertir ecuaciones de orden superior

Toda ecuación de orden m puede transformarse en un sistema de m ecuaciones de primer orden. Para el oscilador amortiguado:

x″+2ζωx′+ω²x=F(t)

definimos y₁=x e y₂=x′:

y₁′=y₂
y₂′=F(t)−2ζωy₂−ω²y₁

Esta conversión permite aplicar Euler, Runge-Kutta y otros integradores sin diseñar un algoritmo distinto para cada orden.

function osciladorAmortiguado(omega, zeta, fuerza) {
  return (t, [posicion, velocidad]) => [
    velocidad,
    fuerza(t) - 2 * zeta * omega * velocidad - omega ** 2 * posicion
  ];
}

const modelo = osciladorAmortiguado(2, 0.15, t => Math.sin(t));
console.log("derivada en t=0:", modelo(0, [1, 0]));
console.log("derivada en t=1:", modelo(1, [0.4, -0.2]));

03 · Modos del sistema

El modelo lineal 𝐲′=𝐀𝐲

En un sistema lineal autónomo, una matriz constante determina la evolución:

𝐲′=𝐀𝐲

Los autovalores λᵢ de 𝐀 describen modos característicos:

  • Re(λᵢ)<0: el modo decae;
  • Re(λᵢ)>0: el modo crece;
  • Im(λᵢ)≠0: aparece oscilación;
  • módulos muy diferentes: coexisten escalas temporales separadas.

Si la matriz puede diagonalizarse, la solución es una combinación de términos eλᵢt. Esta conexión lleva el análisis escalar de estabilidad a sistemas.

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

function pasoRK4Vector(f, t, estado, h) {
  const k1 = f(t, estado);
  const k2 = f(t + h / 2, desplazar(estado, h / 2, k1));
  const k3 = f(t + h / 2, desplazar(estado, h / 2, k2));
  const k4 = f(t + h, desplazar(estado, h, k3));
  return estado.map((valor, i) =>
    valor + h * (k1[i] + 2 * k2[i] + 2 * k3[i] + k4[i]) / 6);
}

const dosEscalas = (t, [u, v]) => [-u, -20 * v];
const siguiente = pasoRK4Vector(dosEscalas, 0, [1, 1], 0.05);
console.log("estado después de un paso:", siguiente);

Los arreglos auxiliares evitan mezclar componentes de etapas diferentes. Cada llamada a f recibe un estado vectorial coherente.

04 · Linealización local

El Jacobiano en problemas no lineales

Para 𝐲′=𝐟(t,𝐲), el Jacobiano respecto del estado es:

J(t,𝐲)=∂𝐟/∂𝐲

Cerca de un estado, una perturbación δ𝐲 evoluciona aproximadamente según:

δ𝐲′≈J(t,𝐲)δ𝐲

Los autovalores del Jacobiano revelan velocidades locales de crecimiento, decaimiento u oscilación. En un problema no lineal cambian con el tiempo y con el estado, por lo que la restricción de paso también puede variar durante la integración.

05 · El método frente al decaimiento

Estabilidad absoluta

Aplicamos un método de un paso a la ecuación de prueba y′=λy. El resultado adopta la forma:

yₙ₊₁=R(z)yₙ,    z=hλ

R(z) es la función de estabilidad. Si la solución exacta decae, queremos que el modo numérico tampoco crezca:

|R(z)|≤1

La región de estabilidad absoluta es el conjunto de valores complejos z que satisfacen esa condición. Un paso estable exige que cada producto hλᵢ relevante quede dentro de la región.

06 · Comparar integradores

Funciones y regiones de estabilidad

Funciones de estabilidad y extensión sobre el eje real negativo.
MétodoR(z)Intervalo estable real
Euler explícito1+z−2≤z≤0
RK2 explícito1+z+z²/2−2≤z≤0
RK4 clásico1+z+z²/2+z³/6+z⁴/24≈−2.785≤z≤0
Euler implícito1/(1−z)todo z≤0

Mayor orden y mayor región estable son propiedades distintas. RK2 mejora la precisión de Euler, pero no amplía su intervalo estable sobre el eje real negativo.

const factores = {
  euler: z => 1 + z,
  rk2: z => 1 + z + z ** 2 / 2,
  rk4: z => 1 + z + z ** 2 / 2 + z ** 3 / 6 + z ** 4 / 24,
  eulerImplicito: z => 1 / (1 - z)
};

for (const z of [-1, -2, -3, -10]) {
  const linea = Object.entries(factores).map(([nombre, R]) =>
    `${nombre}: |R|=${Math.abs(R(z)).toFixed(3)}`);
  console.log(`z=${z} - ${linea.join("; ")}`);
}

07 · Escalas muy separadas

Qué significa que un problema sea rígido

Un problema es rígido cuando la estabilidad obliga a un método explícito a usar pasos mucho menores que los necesarios para representar la parte de la solución que nos interesa.

La rigidez aparece con frecuencia en:

  • cinética química con reacciones rápidas y lentas;
  • circuitos con constantes de tiempo muy diferentes;
  • difusión espacial discretizada en mallas finas;
  • modelos biológicos con transitorios rápidos y evolución prolongada.

No significa simplemente que la solución cambie rápido. Un transitorio puede desaparecer pronto, pero su autovalor muy negativo continúa restringiendo el paso de un método explícito.

08 · Un ejemplo mínimo

Dos modos de decaimiento

Consideremos:

u′=−u,   u(0)=1
v′=−100v,   v(0)=1

Las soluciones son u=e−t y v=e−100t. La componente rápida es prácticamente cero después de un tiempo breve; luego solo interesa seguir el lento decaimiento de u.

Sin embargo, Euler explícito necesita:

h<2/100=0.02

para que el modo rápido no crezca artificialmente. Integrar hasta t=10 requiere más de 500 pasos por estabilidad, aunque la componente visible u cambia en una escala del orden de uno.

09 · Cuando el cálculo contradice al modelo

Oscilaciones y crecimiento artificial

Para el modo rápido v′=−100v, Euler produce:

vₙ₊₁=(1−100h)vₙ
  • con h=0.005, el factor es 0.5: decae sin cambiar de signo;
  • con h=0.015, el factor es −0.5: decae oscilando;
  • con h=0.025, el factor es −1.5: oscila y crece.

La solución exacta es positiva y decreciente en los tres casos. La inestabilidad es un artefacto del discretizador, no una propiedad del sistema físico.

10 · Evaluar en el nuevo estado

Euler implícito

Euler hacia atrás utiliza la pendiente al final del paso:

yₙ₊₁=yₙ+h f(tₙ₊₁,yₙ₊₁)

El nuevo estado aparece en ambos lados. Para y′=λy puede despejarse:

yₙ₊₁=yₙ/(1−hλ)

Si Re(λ)<0, el factor permanece dentro del disco unidad para cualquier h>0. Euler implícito es A-estable y amortigua fuertemente modos muy rápidos.

11 · Sistemas lineales por paso

Euler implícito para 𝐲′=𝐀𝐲

La fórmula vectorial es:

(𝐈−h𝐀)𝐲ₙ₊₁=𝐲ₙ

Por tanto, cada paso resuelve un sistema lineal. Para el ejemplo diagonal de dos escalas el despeje es directo:

function pasoEulerImplicitoDiagonal(estado, lambdas, h) {
  if (estado.length !== lambdas.length) throw new Error("Dimensión incompatible");
  return estado.map((valor, i) => valor / (1 - h * lambdas[i]));
}

let estado = [1, 1];
const lambdas = [-1, -100];
const h = 0.1;
for (let n = 0; n < 10; n++) {
  estado = pasoEulerImplicitoDiagonal(estado, lambdas, h);
}

console.log("aproximación en t=1:", estado);
console.log("solución exacta:", [Math.exp(-1), Math.exp(-100)]);

El paso h=0.1 sería inestable para Euler explícito sobre el modo rápido. Euler implícito lo amortigua, aunque conserva solo precisión de primer orden para el modo lento.

12 · El costo oculto

Problemas implícitos no lineales

Si 𝐟 es no lineal, debemos encontrar 𝐲ₙ₊₁ que anule:

𝐆(𝐲)=𝐲−𝐲ₙ−h𝐟(tₙ₊₁,𝐲)=𝐨

Newton aplica iteraciones:

[𝐈−hJf] Δ𝐲=−𝐆(𝐲),    𝐲←𝐲+Δ𝐲

Cada iteración puede requerir formar o aproximar el Jacobiano y resolver un sistema lineal. En problemas grandes se reutilizan factorizaciones, matrices dispersas y precondicionadores.

El paso debe rechazarse si Newton no converge. Aceptar silenciosamente una iteración incompleta mezcla error algebraico con error de integración.

13 · Diagnóstico y elección práctica

Cómo reconocer y tratar la rigidez

  • Un método explícito reduce el paso repetidamente pese a que la solución visible es suave.
  • Al aumentar levemente h aparecen oscilaciones o explosiones no físicas.
  • El Jacobiano tiene autovalores estables con magnitudes muy separadas.
  • RK4 necesita demasiadas evaluaciones para cubrir un intervalo largo.

Ante estas señales:

  1. confirmá que el modelo y las unidades sean correctos;
  2. estimá escalas o autovalores relevantes;
  3. compará refinamientos y monitoreá invariantes físicos;
  4. considerá métodos implícitos A-estables o especializados;
  5. usá control adaptativo de error y registrá pasos rechazados.

Estabilidad permite calcular; precisión determina si el resultado calculado es útil. Ambas condiciones deben cumplirse.

14 · Exploración interactiva

Laboratorio: dos escalas y cuatro métodos

El sistema combina u′=−u con v′=−μv. Las curvas continuas son numéricas y las discontinuas son exactas. Ajustá μ, el método y la cantidad de pasos.

EXPERIMENTO 35

Estabilidad frente a una escala rápida

u′=−u, v′=−50v

Los resultados numéricos aparecen debajo.
Paso h—
z rápido=−μh—
|R(z rápido)|—
Estabilidad rápida—
Error lento en t=5—

RK4 es estable mientras cada hλ permanezca dentro de su región.

Preguntas para explorar

  1. Con RK4 y μ=50, reducí los pasos hasta cruzar el límite aproximado z=−2.785.
  2. Compará Euler y RK2: ¿por qué tienen el mismo umbral real aunque RK2 sea más preciso?
  3. Elegí Euler implícito y aumentá μ. ¿Qué ocurre con el factor del modo rápido?
  4. Una vez estable, aumentá los pasos y observá la precisión de la componente lenta.

15 · Comprensión

Confusiones frecuentes

«Un sistema se integra componente por componente»

Las derivadas suelen estar acopladas. Todas deben evaluarse desde el mismo estado de cada etapa.

«Rigidez significa que la solución cambia rápido»

La característica decisiva es la restricción de estabilidad desproporcionada respecto de la escala que interesa resolver.

«Si el modo rápido ya desapareció, puedo ignorar su autovalor»

Un método explícito inestable puede reactivar numéricamente ese modo mediante redondeo y defectos locales.

«Un método estable es necesariamente preciso»

Euler implícito puede ser estable con un paso enorme y, aun así, aproximar pobremente la dinámica lenta.

«Mayor orden garantiza mejor estabilidad»

Orden y región estable son propiedades diferentes. RK2 y Euler comparten el mismo intervalo real negativo.

«Implícito significa que no hay límite para el paso»

Puede eliminar una restricción de estabilidad, pero el error, los eventos y la convergencia del solve todavía limitan el paso.

16 · Práctica guiada

Ejercicios

Ejercicio 1: convertir a sistema

Transformá x″+4x′+5x=cos(t) en un sistema de primer orden.

Ver solución

Con y₁=x e y₂=x′: y₁′=y₂ y y₂′=cos(t)−4y₂−5y₁.

Ejercicio 2: paso estable de Euler

Para un sistema con autovalores −2 y −80, determiná el máximo paso estable de Euler explícito.

Ver solución razonada

El modo restrictivo es −80. Debe cumplirse 80h<2, por lo que h<0.025.

Ejercicio 3: factor implícito

Calculá el factor de Euler implícito para λ=−100 y h=0.1.

Ver solución

R=1/(1−hλ)=1/(1+10)=1/11≈0.0909. El modo rápido se amortigua en cada paso.

Ejercicio 4: reconocer rigidez

Un modelo evoluciona suavemente durante 20 segundos, pero RK4 solo funciona con h<10⁻⁴ por un transitorio que desaparece en 0.01 segundos. ¿Qué sugiere?

Ver solución

Sugiere rigidez: una escala rápida ya poco visible impone un paso explícito extremadamente pequeño durante todo el intervalo.

Ejercicio 5: matriz implícita

Para 𝐀=diag(−1,−50) y h=0.2, escribí la matriz que Euler implícito debe resolver.

Ver solución

𝐈−h𝐀=diag(1.2,11). El sistema del paso es diag(1.2,11)𝐲ₙ₊₁=𝐲ₙ.

17 · Síntesis

Ideas para recordar

  • Una EDO de orden superior puede convertirse en un sistema de primer orden.
  • Los autovalores describen modos y escalas de un sistema linealizado.
  • La estabilidad exige que cada hλ relevante pertenezca a la región del método.
  • Orden de precisión y estabilidad son propiedades diferentes.
  • La rigidez impone a métodos explícitos pasos menores que los requeridos por precisión.
  • Un modo rápido puede restringir el paso aun después de volverse invisible.
  • Euler implícito es A-estable y amortigua modos rápidos.
  • Un paso implícito exige resolver ecuaciones algebraicas.
  • La elección práctica equilibra estabilidad, error y costo del solve.

En el próximo tema reuniremos estos conceptos en un proyecto integrador: una biblioteca numérica reutilizable, verificable y extensible.