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
Las funciones f y g determinan simultáneamente la velocidad de cada componente. El estado completo es el par
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
y agrupamos sus leyes en una función vectorial:
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.
| Objeto | Dimensión | Papel |
|---|---|---|
t | Escalar | Variable independiente. |
X(t) | n | Estado actual. |
F(t,X) | n | Derivada del estado. |
X₀ | n | Condición inicial completa. |
04 · Sistemas lineales
Una matriz codifica las interacciones lineales
Un sistema lineal de primer orden puede escribirse como
Si A es constante y b=0, el sistema es lineal homogéneo autónomo:
Para
la matriz es
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.
En forma matricial:
Cada transferencia aparece dos veces con signos opuestos: lo que sale de un compartimento entra en el otro. Al sumar las ecuaciones:
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:
Esta ecuación lineal de primer orden tiene equilibrio
y la solución
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
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
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:
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
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.
Dos compartimentos acoplados
x′=−0,60x+0,30y · y′=0,60x−0,30y
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
- Intercambiá
αyβ. ¿Cómo cambia el reparto final? - Duplicá ambas tasas conservando su cociente. ¿Cambia el equilibrio o solo la rapidez?
- Elegí el estado inicial igual al equilibrio. ¿Qué muestran las derivadas?
- 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
Arepresentan 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.