Siru en Simusol · Documentación · Manual
Actualización 2026-10-04: además de RK, funcionan GLM 1 (Euler explícito), 20 (BDF2 efectivo), 21 (BDF2 directo) y 30 (Adams–Bashforth 2). Véanse GLM_CONTRATO.md y BDF2_VARIANTES.md. Las exigencias generales siguientes no deben confundirse con funciones todas pendientes ni todas implementadas.
En el camino RK, libdin (C) genera un .din ampliado con las ecuaciones de las etapas y del estado siguiente a partir de una tabla de Butcher. Siru::Integrador (Perl) conduce la corrida y Calcula resuelve ese sistema en cada paso. Estos métodos RK son de un paso: para avanzar necesitan el estado actual, pero no una historia de estados anteriores. bc da una segunda estimación para controlar el error; sin bc puede compararse un paso completo con dos medios. Los archivos -EDNRO.din usan la numeración histórica de esos métodos RK. El motor GLM es independiente y su representación actual BDF2 sí conserva historia.
Adams y BDF/Gear usan información de varios instantes anteriores. Por eso no se describen, en general, con la única tabla de Butcher que siru utiliza para sus métodos RK. Su diferencia fundamental no es cuántas veces se llama a Calcula dentro del paso, sino que el integrador debe conservar y actualizar una historia.
| Familia | Ejemplo con paso fijo h |
Rasgo principal |
|---|---|---|
| Adams–Bashforth, explícita | y[n+1] = y[n] + h*(3*f[n] - f[n-1])/2 (AB2) |
Usa derivadas ya calculadas; no resuelve una ecuación implícita para el estado siguiente. |
| Adams–Moulton, implícita | y[n+1] = y[n] + h*(5*f[n+1] + 8*f[n] - f[n-1])/12 (AM de orden 3) |
Incluye la derivada futura; puede combinarse con una predicción Adams–Bashforth. |
| BDF, también llamada Gear | 3*y[n+1] - 4*y[n] + y[n-1] = 2*h*f[n+1] (BDF2) |
Aproxima la derivada mediante estados pasados y resuelve implícitamente el nuevo estado; es especialmente interesante para sistemas rígidos. |
Aquí f[n] = f(t[n], y[n]). Las fórmulas mostradas suponen paso constante. Si el paso cambia, cambian los coeficientes: no basta sustituir otro h. La regla trapezoidal, que puede verse como Adams–Moulton de un paso, también tiene una representación RK; la distinción anterior se refiere a los métodos que efectivamente requieren historia.
.din los estados o derivadas históricos que Calcula recibirá como datos del paso. Un .din ampliado podría seguir conteniendo las ecuaciones del método y ser cargado una sola vez, pero el protocolo debería suministrar esos valores adicionales en cada consulta.h; los coeficientes de paso variable y el reinicio tras discontinuidades requieren tratamiento propio.No corresponde asignarles sin más un número EDNRO: esa numeración identifica las tablas RK existentes. BDF2 tiene los selectores 20 y 21, y AB2 el 30, con las convenciones de GLM_CONTRATO.md.
Simpléctico describe una propiedad geométrica de un integrador, no una familia excluida de Runge–Kutta. El punto medio implícito que aparece en slex/d2datdinc/biblioteca/rk.siru (a = [[1/2]], b = [1]) es un RK simpléctico expresado con una tabla ordinaria de Butcher.
El trabajo de ASADES SIMUSOL: Simulación de diagramas de enlace o Bond-Graphs menciona además Euler–Cromer. Para un circuito oscilante sin pérdidas, describe actualizar primero las corrientes de los inductores, volver a resolver el circuito y después actualizar las tensiones de los capacitores. Esa variante trata de modo diferente dos grupos de variables y puede expresarse como un RK particionado, con dos tablas de Butcher, o mediante la secuencia de actualización correspondiente; la única tabla a, b, c aplicada por igual a todo el estado no la expresa directamente. El archivo rk.siru actual no contiene una entrada llamada Euler–Cromer. Un método simpléctico no garantiza conservar exactamente la energía en cada paso; su interés aquí es evitar una deriva secular artificial en simulaciones largas de sistemas conservativos.
Los simplécticos y los multipaso responden, por tanto, a preguntas distintas: Adams/BDF añaden memoria entre pasos y extienden la clasificación RK original, con BDF2 ya iniciado en GLM; Euler–Cromer motiva representar estados particionados, aunque también se relaciona con tablas de Butcher.