Representación de estado · Tema 26

De orden superior a un sistema de primer orden

Convertir derivadas sucesivas en componentes de estado para analizar y simular cualquier ecuación ordinaria de orden superior.

01 · Una forma común

Los integradores trabajan con estados de primer orden

Una ecuación escalar de orden n puede escribirse en forma explícita como

y(n)=f(t,y,y′,…,y(n−1))

Aunque contiene una derivada de orden alto, puede reorganizarse como n ecuaciones de primer orden. La idea es tratar cada derivada necesaria para predecir la siguiente evolución como una componente del estado.

Y=[y,y′,y″,…,y(n−1)]

Esta conversión no aproxima ni cambia la ecuación: conserva exactamente sus soluciones mientras estén suficientemente derivables.

02 · La receta general

Cada componente desplaza la cadena de derivadas

Definimos

y₁=y,   y₂=y′,   y₃=y″,   …,   yn=y(n−1)

Al derivar cada definición:

y₁′=y₂
y₂′=y₃
⋮
yn−1′=yn
yn′=f(t,y₁,y₂,…,yn)

Las primeras n−1 ecuaciones solo desplazan información. La última contiene toda la ley dinámica original.

EntradaEDO de orden n Estadon derivadas almacenadas Salidan EDO de orden 1

03 · Ejemplo paso a paso

Convertir una ecuación de tercer orden

Consideremos

y‴+2y″+2y′+y=sin(t)

Primero despejamos la derivada de mayor orden:

y‴=sin(t)−2y″−2y′−y

Definimos y₁=y, y₂=y′ y y₃=y″. El sistema equivalente es

y₁′=y₂
y₂′=y₃
y₃′=sin(t)−2y₃−2y₂−y₁

En forma vectorial:

Y′=[y₂, y₃, sin(t)−2y₃−2y₂−y₁]

El orden de las componentes debe mantenerse de manera consistente. Intercambiar y′ y y″ cambia el modelo.

04 · Estado inicial completo

Los datos iniciales se convierten en un vector

Una ecuación de orden n necesita normalmente los valores de y y sus primeras n−1 derivadas en un mismo instante:

y(t₀)=a₀, y′(t₀)=a₁, …, y(n−1)(t₀)=an−1

Después de la conversión, todos esos datos forman una sola condición vectorial:

Y(t₀)=[a₀,a₁,…,an−1]

Para el ejemplo anterior, si y(0)=1, y′(0)=0 y y″(0)=−1, entonces Y(0)=[1,0,−1]. La derivada inicial del estado se obtiene evaluando el sistema:

Y′(0)=[0,−1,1]

La tercera componente es sin(0)−2(−1)−2(0)−1=1.

05 · Dos direcciones de la correspondencia

Por qué ambas formulaciones son equivalentes

Si y(t) resuelve la ecuación escalar, entonces el vector formado por sus derivadas satisface todas las ecuaciones del sistema por construcción.

En la dirección inversa, si Y(t)=[y₁,…,yn] resuelve el sistema, las relaciones y₁′=y₂, y₂′=y₃, etc. implican

y₂=y₁′, y₃=y₁″, …, yn=y₁(n−1)

La última ecuación garantiza que y₁ satisface la EDO original. Así, recuperar la solución escalar consiste simplemente en tomar la primera componente.

Forma escalar

Una incógnita

Una función y varias derivadas sucesivas.

Forma de estado

Varias componentes

Un vector y solamente primeras derivadas.

06 · Matriz compañera

Las ecuaciones lineales producen un sistema matricial

Para la ecuación monómica

y(n)+an−1y(n−1)+…+a₁y′+a₀y=g(t)

la forma de estado es Y′=AY+B g(t), con

A = [ 0 1 0 … 0 ; 0 0 1 … 0 ; … ; −a₀ −a₁ −a₂ … −an−1 ]
B=[0,0,…,1]T

Esta estructura se llama forma compañera. Los unos de la superdiagonal desplazan la cadena de derivadas y la última fila contiene los coeficientes de la ecuación con signo opuesto.

Para y‴+2y″+2y′+y=sin(t):

A=[0 1 0; 0 0 1; −1 −2 −2],   B=[0,0,1]T

07 · Antes de convertir

Hay que despejar la derivada de mayor orden

Si el coeficiente principal no es uno, se divide primero. Por ejemplo:

2y‴−y″+4y=cos(t)
y‴=y″/2−2y+cos(t)/2

Con Y=[y,y′,y″],

Y′=[y′,y″,y″/2−2y+cos(t)/2]

Olvidar dividir todos los términos cambia las escalas y genera un sistema incorrecto. En una forma implícita donde no puede despejarse la derivada superior, puede ser necesario trabajar con una ecuación diferencial algebraica, que excede la conversión directa de este tema.

Comprobaciones antes de construir el estado.
PreguntaMotivo
¿Cuál es el orden real?Determina la dimensión mínima del estado.
¿La derivada superior está despejada?La última ecuación necesita una regla explícita.
¿Todas las condiciones están en el mismo instante?Se requiere un único vector inicial.
¿Las componentes conservan sus unidades?Ayuda a detectar intercambios y factores omitidos.

08 · Un algoritmo para todos los órdenes

Los métodos vectoriales solo ven Y′=F(t,Y)

Una vez realizada la conversión, Euler, punto medio o Runge–Kutta operan componente por componente. Para Euler:

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

En el ejemplo de tercer orden, un paso actualiza simultáneamente y, y′ y y″. Usar valores ya actualizados para calcular otras componentes dentro del mismo paso produciría un método diferente y dependiente del orden del código.

La interfaz del integrador no necesita conocer el orden original. Solo recibe una función que devuelve un vector con la misma dimensión que el estado.

09 · Representar el modelo con claridad

Índices, nombres y metadatos evitan errores silenciosos

En un arreglo como [y,dy,d2y], la posición de cada elemento forma parte del contrato. Para sistemas grandes conviene documentar o centralizar ese esquema.

Correspondencia para una ecuación de tercer orden.
ÍndiceNombreSignificadoDerivada devuelta
0yVariable original.dy
1dyPrimera derivada.d2y
2d2ySegunda derivada.d3y=f(t,y,dy,d2y)

Al almacenar una trayectoria, cada muestra debería incluir el tiempo y una copia del estado. Guardar repetidamente la misma referencia mutable haría que todas las muestras terminaran mostrando el último valor.

También es útil conservar unidades, nombres de componentes y parámetros junto al modelo para graficar y validar los resultados correctamente.

10 · Exploración interactiva

Laboratorio: una ecuación de tercer orden como estado

Simulá y‴+2y″+2y′+y=F sin(t). Los tres paneles muestran las componentes del estado calculadas juntas con Runge–Kutta de cuarto orden.

EXPERIMENTO 26

Estado de tres componentes

y‴ + 2y″ + 2y′ + y = 1,00 sin(t) · Y(0)=[1,00; 0,00; −1,00]

Los resultados numéricos aparecen debajo.
Estado inicialY(0) = [1,00; 0,00; −1,00]
Derivada inicialY′(0) = [0,00; −1,00; 1,00]
Estado en t=4Calculando…
Dimensión3 componentes

Una sola llamada al integrador actualiza las tres componentes del estado.

Cada panel usa su propia escala vertical porque y, y′ e y″ tienen unidades y rangos diferentes.

Preguntas para explorar

  1. Cambiá solo y″(0). ¿Cómo afecta inicialmente a y′ y luego a y?
  2. Fijá los tres datos iniciales en cero y usá F>0. ¿Qué componente comienza cambiando primero?
  3. Fijá F=0. ¿Cómo decae la respuesta libre?
  4. Compará las escalas de los tres paneles. ¿Por qué no conviene superponerlos sin ejes separados?

11 · Representación en código

Construir y resolver el sistema vectorial

Crear la función de estado de tercer orden

function crearSistemaTercerOrden(forzamiento) {
  return function sistema(t, estado) {
    if (estado.length !== 3) throw new RangeError("Se esperaban 3 componentes");
    const [y, dy, d2y] = estado;
    const d3y = forzamiento(t) - 2 * d2y - 2 * dy - y;
    return [dy, d2y, d3y];
  };
}

const sistema = crearSistemaTercerOrden(t => Math.sin(t));
console.log(sistema(0, [1, 0, -1]));

Un paso RK4 para cualquier dimensión

const combinar = (a, b, factor) =>
  a.map((valor, i) => valor + factor * b[i]);

function pasoRK4(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
  );
}

console.log(pasoRK4(sistema, 0, [1, 0, -1], 0.1));

Guardar una trayectoria sin compartir referencias

function integrar(f, t0, estado0, h, pasos) {
  let t = t0;
  let estado = [...estado0];
  const trayectoria = [{ t, estado: [...estado] }];

  for (let i = 0; i < pasos; i++) {
    estado = pasoRK4(f, t, estado, h);
    t += h;
    trayectoria.push({ t, estado: [...estado] });
  }
  return trayectoria;
}

const trayectoria = integrar(sistema, 0, [1, 0, -1], 0.05, 200);
console.log(trayectoria.at(-1));

12 · Comprensión

Confusiones frecuentes

«Convertir agrega nuevas soluciones»

No: existe una correspondencia entre las soluciones escalares y las vectoriales compatibles.

«Una ecuación de orden n produce n+1 variables»

El estado llega hasta y(n−1), por lo que contiene exactamente n componentes.

«La última componente es y(n)»

y(n) es la derivada de la última componente, calculada por la ley.

«No hace falta despejar la derivada superior»

Un sistema explícito necesita una fórmula para la última derivada.

«Todas las componentes tienen las mismas unidades»

Cada derivación introduce una división por la unidad de la variable independiente.

«El integrador debe conocer el orden original»

Solo necesita Y′=F(t,Y), un estado inicial y parámetros de integración.

13 · Práctica guiada

Ejercicios de comprensión

Ejercicio 1: segundo orden

Convertí y″+4y′+3y=0 en un sistema de primer orden.

Ver solución

Con y₁=y, y₂=y′: y₁′=y₂ y y₂′=−3y₁−4y₂.

Ejercicio 2: cuarto orden

Convertí y⁽⁴⁾=t−y″.

Ver solución

Con Y=[y,y′,y″,y‴]: Y′=[y′,y″,y‴,t−y″], o [y₂,y₃,y₄,t−y₃].

Ejercicio 3: condiciones iniciales

Escribí el vector inicial para y⁽⁴⁾+y=0 si y(2)=1, y′(2)=−1, y″(2)=0, y‴(2)=3.

Ver solución

Y(2)=[1,−1,0,3].

Ejercicio 4: normalizar

Convertí 3y‴+6y′=9et.

Ver solución razonada

Primero, y‴=3et−2y′. Con Y=[y,y′,y″], Y′=[y′,y″,3et−2y′].

Ejercicio 5: matriz compañera

Escribí la matriz A para y‴+4y″+5y′+2y=0.

Ver solución

A=[0 1 0; 0 0 1; −2 −5 −4].

Ejercicio 6: recuperar la ecuación

¿Qué ecuación escalar representa Y′=[y₂,y₃,−6y₁−11y₂−6y₃]?

Ver solución razonada

Como y₁=y, y₂=y′ y y₃=y″, la última ecuación es y‴=−6y−11y′−6y″. Entonces y‴+6y″+11y′+6y=0.

14 · Síntesis

Ideas para recordar

  • Una EDO explícita de orden n equivale a un sistema de n ecuaciones de primer orden.
  • El estado estándar es [y,y′,…,y(n−1)].
  • Las primeras ecuaciones desplazan derivadas y la última contiene la dinámica original.
  • Los datos iniciales forman un vector con n componentes.
  • La derivada de mayor orden debe despejarse antes de convertir.
  • Una ecuación lineal produce una matriz compañera.
  • Las raíces características coinciden con los autovalores de esa matriz.
  • Los integradores vectoriales no necesitan conocer el orden escalar original.
  • La dimensión, el orden y las unidades de las componentes forman parte del contrato del modelo.

En el siguiente tema ampliaremos la mirada hacia sistemas que nacen con varias variables acopladas, sin proceder necesariamente de una sola ecuación escalar.