Dinámica multidimensional · Tema 27

Sistemas de ecuaciones diferenciales

Modelar varias cantidades que evolucionan al mismo tiempo, se influyen mutuamente y forman un único estado dinámico.

01 · Varias cantidades, una evolución

Un sistema describe componentes que cambian juntas

Muchos fenómenos no pueden representarse con una sola variable. Dos poblaciones interactúan, varias sustancias se transfieren entre depósitos o las corrientes de un circuito se condicionan mutuamente. Para dos variables, una forma general es

x′=f(t,x,y),    y′=g(t,x,y)

Las funciones f y g determinan simultáneamente la velocidad de cada componente. El estado completo es el par

X(t)=[x(t),y(t)]

No resolvemos dos problemas aislados: buscamos una trayectoria vectorial cuyas componentes satisfagan todas las ecuaciones al mismo tiempo.

02 · Dependencia entre componentes

Acoplado no significa simplemente “escrito junto”

Un sistema está acoplado cuando la evolución de alguna variable depende de otra. Compare:

Desacoplado

x′=−x
y′=2y

Cada ecuación puede resolverse sin conocer la otra variable.

Acoplado

x′=−x+y
y′=x−2y

Para calcular cualquiera de las derivadas hace falta el estado completo.

El acoplamiento puede ser unilateral: x′ depende solo de x, mientras y′ depende de ambas. En ese caso se resuelve primero x y luego se utiliza su resultado en la ecuación de y.

También puede ser no lineal, como x′=xy. La presencia de varias variables no implica linealidad.

03 · Compactar sin perder información

La forma vectorial reúne todas las ecuaciones

Para n componentes definimos

X=[x₁,x₂,…,xn]T

y agrupamos sus leyes en una función vectorial:

X′=F(t,X)
F(t,X)=[f₁(t,X),f₂(t,X),…,fn(t,X)]T

La igualdad vectorial representa n igualdades escalares. La función F recibe un tiempo y un punto del espacio de estados, y devuelve el vector velocidad en ese punto.

Dimensiones que deben coincidir.
ObjetoDimensiónPapel
tEscalarVariable independiente.
X(t)nEstado actual.
F(t,X)nDerivada del estado.
X₀nCondición inicial completa.

04 · Sistemas lineales

Una matriz codifica las interacciones lineales

Un sistema lineal de primer orden puede escribirse como

X′=A(t)X+b(t)

Si A es constante y b=0, el sistema es lineal homogéneo autónomo:

X′=AX

Para

x′=a₁₁x+a₁₂y,    y′=a₂₁x+a₂₂y

la matriz es

A=[a₁₁ a₁₂; a₂₁ a₂₂]

Las entradas diagonales describen el efecto propio de cada variable. Las entradas fuera de la diagonal describen el acoplamiento. Si ambas son cero, las componentes quedan desacopladas.

05 · Ejemplo de modelado

Intercambio entre dos compartimentos

Sean x(t) e y(t) las cantidades de una sustancia en dos compartimentos. Una fracción α de x pasa por unidad de tiempo al segundo, y una fracción β de y regresa al primero.

x′=−αx+βy
y′=αx−βy

En forma matricial:

X′=[−α β; α −β]X

Cada transferencia aparece dos veces con signos opuestos: lo que sale de un compartimento entra en el otro. Al sumar las ecuaciones:

(x+y)′=0

La cantidad total M=x+y se conserva. Esta comprobación surge del balance físico y debe cumplirse también en una implementación numérica.

06 · Reducir usando una conservación

El total constante permite resolver el sistema

Como y=M−x, sustituimos en la primera ecuación:

x′=−(α+β)x+βM

Esta ecuación lineal de primer orden tiene equilibrio

x*=βM/(α+β)

y la solución

x(t)=x*+(x₀−x*)e−(α+β)t
y(t)=M−x(t),    y*=αM/(α+β)

El total determina sobre qué recta se mueve el estado y las tasas determinan cómo se reparte en el equilibrio. Una tasa mayor de x hacia y aumenta la proporción final almacenada en y.

07 · Condición inicial vectorial

Un sistema necesita todas sus componentes iniciales

El problema de valor inicial adopta la forma

X′=F(t,X),    X(t₀)=X₀

Para dos variables, X₀=[x₀,y₀]. Especificar solo x₀ suele ser insuficiente porque x′(t₀)=f(t₀,x₀,y₀) puede depender de y₀.

Si F es continua y localmente Lipschitz respecto de X, existe una única solución local. La condición de Lipschitz se aplica simultáneamente a todas las componentes.

En un programa, el orden de X₀ debe coincidir con el orden esperado por F. El arreglo [x₀,y₀] no es intercambiable con [y₀,x₀].

08 · Estados que no cambian

Un equilibrio anula todas las derivadas

Para un sistema autónomo X′=F(X), un equilibrio X* satisface

F(X*)=0

Es necesario resolver todas las ecuaciones simultáneamente. Que x′=0 no basta si y′≠0.

En el modelo de intercambio, las condiciones son equivalentes:

αx*=βy*

No hay un único equilibrio aislado: cualquier par no negativo con flujos balanceados lo es. Al fijar el total M, la conservación selecciona exactamente uno.

Equilibrio

F(X*)=0

El vector de estado permanece constante.

Conservación

H(X)=constante

Restringe la trayectoria a una curva o superficie.

09 · Avanzar todas las variables juntas

Un paso numérico debe usar el mismo estado base

Euler aplicado a un sistema es

Xn+1=Xn+hF(tn,Xn)

Primero se calculan todas las derivadas desde el estado viejo y luego se actualizan todas las componentes. Si se modifica x antes de calcular la derivada de y, se mezcla información de dos instantes y el resultado depende del orden de las instrucciones.

Los métodos Runge–Kutta también evalúan vectores completos en estados intermedios. La dimensión aumenta el costo de cada evaluación, pero no cambia la estructura esencial del algoritmo.

10 · Exploración interactiva

Laboratorio: intercambio y conservación

Modificá las tasas y las cantidades iniciales. Las curvas muestran cómo ambas componentes se aproximan a su reparto de equilibrio mientras el total permanece constante.

EXPERIMENTO 27

Dos compartimentos acoplados

x′=−0,60x+0,30y · y′=0,60x−0,30y

Los resultados numéricos aparecen debajo.
Total conservadoM = 100,00
Equilibrio(x*,y*) = (33,33; 66,67)
Estado en t=5(x,y) ≈ (33,85; 66,15)
Escala de relajaciónτ = 1,11

El flujo neto inicial va de x hacia y y el total se conserva.

La línea gris representa el total constante; las líneas discontinuas indican las cantidades de equilibrio.

Preguntas para explorar

  1. Intercambiá α y β. ¿Cómo cambia el reparto final?
  2. Duplicá ambas tasas conservando su cociente. ¿Cambia el equilibrio o solo la rapidez?
  3. Elegí el estado inicial igual al equilibrio. ¿Qué muestran las derivadas?
  4. Cambiá el total inicial manteniendo las tasas. ¿Qué proporciones finales se conservan?

11 · Representación en código

Implementar variables acopladas

Definir el campo vectorial

function crearIntercambio(alpha, beta) {
  if (!(alpha >= 0 && beta >= 0)) {
    throw new RangeError("Las tasas no pueden ser negativas");
  }
  return function derivada(t, [x, y]) {
    const flujoXY = alpha * x;
    const flujoYX = beta * y;
    return [-flujoXY + flujoYX, flujoXY - flujoYX];
  };
}

const sistema = crearIntercambio(0.6, 0.3);
console.log(sistema(0, [80, 20]));

Dar un paso de Euler simultáneo

const sistema = (t, [x, y]) => [
  -0.6 * x + 0.3 * y,
  0.6 * x - 0.3 * y
];

function pasoEuler(f, t, estado, h) {
  const derivada = f(t, estado);
  if (derivada.length !== estado.length) {
    throw new RangeError("Dimensión incompatible");
  }
  return estado.map((valor, i) => valor + h * derivada[i]);
}

const estado0 = [80, 20];
const estado1 = pasoEuler(sistema, 0, estado0, 0.1);
console.log(estado0);
console.log(estado1);

Verificar la conservación durante una simulación

const sistema = (t, [x, y]) => [
  -0.6 * x + 0.3 * y,
  0.6 * x - 0.3 * y
];

function pasoEuler(f, t, estado, h) {
  const derivada = f(t, estado);
  return estado.map((valor, i) => valor + h * derivada[i]);
}

function total([x, y]) {
  return x + y;
}

let t = 0;
let estado = [80, 20];
const totalInicial = total(estado);
let errorMaximo = 0;

for (let i = 0; i < 100; i++) {
  estado = pasoEuler(sistema, t, estado, 0.05);
  t += 0.05;
  errorMaximo = Math.max(errorMaximo, Math.abs(total(estado) - totalInicial));
}

console.log(estado, errorMaximo);

12 · Comprensión

Confusiones frecuentes

«Cada ecuación puede resolverse por separado»

Solo si el sistema está desacoplado o tiene una estructura triangular aprovechable.

«Tener dos variables vuelve no lineal al sistema»

La linealidad depende de cómo aparecen las variables, no de cuántas haya.

«Un equilibrio requiere que una derivada sea cero»

Todas las componentes del vector derivada deben anularse simultáneamente.

«Las entradas de una matriz pueden colocarse en cualquier orden»

Filas, columnas y orden del estado deben respetar la correspondencia definida.

«Actualizar x y después usarlo para actualizar y es Euler»

Euler explícito calcula ambas derivadas desde el mismo estado anterior.

«Una cantidad conservada implica que cada componente es constante»

Las componentes pueden intercambiarse mientras su combinación total permanece fija.

13 · Práctica guiada

Ejercicios de comprensión

Ejercicio 1: detectar acoplamiento

Clasificá x′=2x, y′=x−y como desacoplado, unilateral o mutuamente acoplado.

Ver solución

Es unilateral: x evoluciona sin conocer y, pero y depende de x.

Ejercicio 2: forma matricial

Escribí x′=3x−2y, y′=5x+y como X′=AX.

Ver solución

X=[x,y]T y A=[3 −2; 5 1].

Ejercicio 3: derivada inicial

Para el sistema anterior y X(0)=[2,−1], calculá X′(0).

Ver solución

x′(0)=3·2−2(−1)=8 y y′(0)=5·2+(−1)=9. Entonces X′(0)=[8,9].

Ejercicio 4: equilibrio

Encontrá los equilibrios de x′=x−y, y′=2x−2y.

Ver solución razonada

Ambas ecuaciones se anulan cuando x=y. Por tanto, toda la recta (x,y)=(s,s) está formada por equilibrios.

Ejercicio 5: conservación

Mostrá que x−y se conserva en x′=x+y, y′=x+y.

Ver solución

(x−y)′=x′−y′=(x+y)−(x+y)=0. Por ello, x(t)−y(t)=x₀−y₀.

Ejercicio 6: equilibrio de intercambio

Si α=0,2, β=0,8 y el total es 50, calculá el reparto de equilibrio.

Ver solución razonada

x*=βM/(α+β)=0,8·50=40 y y*=αM/(α+β)=0,2·50=10.

14 · Síntesis

Ideas para recordar

  • Un sistema reúne varias variables que evolucionan simultáneamente.
  • El acoplamiento aparece cuando la derivada de una componente depende de otra.
  • La forma general es X′=F(t,X).
  • Un sistema lineal se escribe X′=A(t)X+b(t).
  • Las entradas fuera de la diagonal de A representan acoplamientos lineales.
  • La condición inicial debe proporcionar el estado vectorial completo.
  • Un equilibrio anula simultáneamente todas las derivadas.
  • Las cantidades conservadas restringen las trayectorias y sirven para validar programas.
  • Los métodos numéricos deben actualizar todas las componentes desde el mismo estado base.

En el siguiente tema aprenderemos a visualizar sistemas autónomos mediante el plano de fase, campos vectoriales, nulclinas y equilibrios.