Métodos numéricos · Tema 32

De una ecuación continua a pasos discretos

Diseñar la malla temporal, representar estados numerados y organizar el bucle que convierte una ley diferencial en una simulación.

01 · Dos representaciones del tiempo

La ecuación habla de todos los instantes; la computadora usa una lista

Un problema de valor inicial

y′=f(t,y),    y(t₀)=y₀

define una función continua, al menos idealmente, para todos los tiempos de un intervalo. Una simulación no puede almacenar infinitos valores. Elige instantes concretos

t₀,t₁,t₂,…,tN

y calcula aproximaciones y₀,y₁,…,yN al estado verdadero en esos puntos.

Modelo continuo

y(t)

Una función definida sobre un intervalo y gobernada por una derivada.

Representación discreta

{(tn,yn)}

Una secuencia finita de muestras calculadas y almacenadas.

02 · La malla temporal

Un paso h separa instantes consecutivos

En una malla uniforme:

tn=t₀+nh,    n=0,1,…,N

El número h>0 es el tamaño de paso. Cada intervalo cumple tn+1−tn=h. Si se integra hacia atrás, puede usarse un paso con signo negativo o una convención explícita para la dirección.

Componentes de una malla uniforme.
SímboloSignificadoEjemplo
t₀Instante inicial.0 s
tfInstante final solicitado.5 s
hSeparación regular.0,5 s
NCantidad de pasos.10
N+1Cantidad de muestras incluyendo ambos extremos.11

Un error común es confundir pasos con puntos: diez intervalos contienen once nodos.

03 · Cuando el intervalo no es múltiplo de h

El último paso puede necesitar una longitud menor

Si (tf−t₀)/h no es entero, repetir ciegamente el paso puede terminar antes o después del instante solicitado. Por ejemplo, desde 0 hasta 5 con h=0,6:

0; 0,6; 1,2; …; 4,8; 5,4

El valor 5 no pertenece a esa malla regular. Una estrategia común es acortar solamente el último paso:

hn=min(h,tf−tn)

Así se avanza de 4,8 a 5 con un paso de 0,2. Otra posibilidad es ajustar N y usar h=(tf−t₀)/N para obtener una malla exactamente uniforme.

04 · Qué significa yn

Una muestra exacta y una aproximación no son lo mismo

La notación yn suele representar una aproximación numérica:

yn≈y(tn)

Si conocemos la solución exacta y solo la evaluamos en la malla, obtenemos muestras exactas en puntos discretos. Todavía no hay error de integración. En cambio, un método numérico construye yn+1 a partir de información disponible en pasos anteriores y acumula error.

Muestreo

yn=y(tn)

La fórmula exacta existe y se evalúa solo en ciertos instantes.

Integración numérica

yn+1=Φ(…)

Los valores se construyen mediante una regla aproximada.

Distinguir ambos procesos es esencial al validar: una curva exacta muestreada puede servir como referencia para medir el error del integrador.

05 · Información para avanzar

La derivada describe el cambio local, no el paso completo

En el nodo (tn,yn), la ecuación proporciona

f(tn,yn)

que tiene unidades de estado dividido por tiempo. Multiplicar por un paso produce una estimación de cambio con las unidades correctas:

h f(tn,yn)

Sin embargo, la pendiente puede variar dentro del intervalo. Los métodos numéricos se diferencian por cómo representan esa variación: una pendiente al inicio, una pendiente corregida, varias evaluaciones ponderadas o aproximaciones implícitas.

El próximo tema derivará el método de Euler, la regla más directa basada en la pendiente inicial.

06 · Resolución temporal

Elegir h es una decisión de precisión, costo y estabilidad

Reducir h aumenta la cantidad de pasos y suele disminuir el error de truncamiento, pero exige más evaluaciones y más almacenamiento si se guardan todos los nodos.

Consecuencias típicas del tamaño de paso.
PasoVentajaRiesgo o costo
GrandePocas evaluaciones y ejecución rápida.Puede perder escalas rápidas, eventos o incluso volverse inestable.
PequeñoMejor resolución y, normalmente, menor error de truncamiento.Mayor costo y acumulación de redondeo.
AdaptativoConcentra trabajo donde la solución cambia más.Requiere estimación de error y lógica adicional.

La escala visible del gráfico no basta para elegir h. Un estado puede parecer suave mientras contiene componentes rápidas o restricciones de estabilidad.

07 · Una interfaz general

Separar modelo, método y recorrido temporal

Una simulación de un paso puede representarse abstractamente como

yn+1=Φ(f,tn,yn,hn)

La función f describe el modelo. La regla Φ describe el método numérico. El bucle decide los tiempos, llama al método y almacena resultados.

ModeloCalcula derivadas MétodoAvanza un paso SimuladorRecorre y registra

Esta separación permite cambiar Euler por Runge–Kutta sin reescribir el modelo, o reutilizar el mismo integrador con crecimiento, osciladores y sistemas epidemiológicos.

08 · El ciclo de simulación

Inicializar, registrar, avanzar y detener

  1. Validar la entrada.

    Comprobar tiempos, paso, estado, parámetros y dimensión.

  2. Inicializar.

    Asignar t=t₀, copiar y=y₀ y registrar la primera muestra.

  3. Elegir hn.

    Usar el paso nominal o acortarlo para no superar el final o un evento.

  4. Calcular el nuevo estado.

    Llamar a la regla de un paso sin modificar prematuramente el estado viejo.

  5. Actualizar y registrar.

    Avanzar el tiempo, guardar una copia del estado y calcular diagnósticos.

  6. Comprobar parada.

    Finalizar por tiempo, evento, error, límite de pasos o estado inválido.

Siempre debe existir un límite máximo de iteraciones. Protege contra pasos inválidos, condiciones de parada imposibles y errores de redondeo que impidan alcanzar exactamente tf.

09 · Saber qué se está midiendo

Modelo, discretización y redondeo son fuentes distintas

Capas de error en una simulación.
FuenteDescripciónDiagnóstico
ModeladoLa ecuación simplifica o representa mal el fenómeno.Comparar con datos y revisar supuestos.
Datos y parámetrosValores iniciales o parámetros inciertos.Análisis de sensibilidad e incertidumbre.
DiscretizaciónLa regla por pasos aproxima la evolución continua.Refinar h y comparar con referencias.
RedondeoLos números se representan con precisión finita.Escalas, condicionamiento y precisión numérica.
ImplementaciónÍndices, signos, mutabilidad o parada incorrectos.Pruebas unitarias e invariantes.

Una simulación con paso muy pequeño puede ser precisa respecto de una ecuación equivocada. La validación numérica y la validación del modelo responden preguntas diferentes.

10 · Exploración interactiva

Laboratorio: muestrear una solución continua

La curva exacta es y(t)=e−λt. Modificá λ, el paso nominal y el final. Los puntos no son todavía una aproximación: son evaluaciones exactas sobre la malla construida.

EXPERIMENTO 32

De la curva a la malla

y′=−0,70y · y(0)=1 · h=0,50 · tf=5,00

Los resultados numéricos aparecen debajo.
IntervalosN = 10 pasos
Muestras11 puntos
Último pasohfinal = 0,50
Valor final exactoy(5) = 0,03

El intervalo es divisible por h: todos los pasos tienen la misma longitud.

El panel superior compara la curva continua con sus muestras. El inferior representa los intervalos temporales y resalta el último paso.

Preguntas para explorar

  1. Reducí h. ¿Qué cambia en la curva exacta y qué cambia en la representación discreta?
  2. Elegí h=0,6 y tf=5. ¿Cuánto mide el último paso?
  3. Aumentá λ conservando h. ¿La malla resuelve igual de bien la zona de cambio rápido?
  4. Comprobá la relación entre cantidad de pasos y cantidad de muestras.

11 · Representación en código

Construir una base segura para los integradores

Generar una malla con extremo exacto

function crearMalla(t0, tf, h) {
  if (![t0, tf, h].every(Number.isFinite) || !(tf >= t0) || !(h > 0)) {
    throw new RangeError("Intervalo o paso inválido");
  }
  const tiempos = [t0];
  const maxPasos = Math.ceil((tf - t0) / h) + 1;

  for (let n = 0; n < maxPasos && tiempos.at(-1) < tf; n++) {
    const siguiente = Math.min(t0 + (n + 1) * h, tf);
    tiempos.push(siguiente);
  }
  return tiempos;
}

console.log(crearMalla(0, 5, 0.6));

Crear muestras exactas con estructura explícita

function crearMalla(t0, tf, h) {
  const tiempos = [t0];
  while (tiempos.at(-1) < tf) {
    tiempos.push(Math.min(tiempos.at(-1) + h, tf));
  }
  return tiempos;
}

const exacta = t => Math.exp(-0.7 * t);
const muestras = crearMalla(0, 5, 0.6).map((t, indice) => ({
  indice,
  t,
  y: exacta(t)
}));

for (const muestra of muestras) {
  console.log(muestra);
}

Separar el bucle de la regla de avance

function simular({ modelo, avanzar, t0, tf, estado0, h }) {
  let t = t0;
  let estado = structuredClone(estado0);
  const trayectoria = [{ t, estado: structuredClone(estado) }];
  const maxPasos = Math.ceil((tf - t0) / h) + 1;

  for (let n = 0; n < maxPasos && t < tf; n++) {
    const pasoActual = Math.min(h, tf - t);
    estado = avanzar(modelo, t, estado, pasoActual);
    t = Math.min(tf, t + pasoActual);
    trayectoria.push({ t, estado: structuredClone(estado) });
  }
  return trayectoria;
}

const modelo = (t, y) => -0.7 * y;
const avanceExacto = (f, t, y, h) => y * Math.exp(-0.7 * h);
console.log(simular({ modelo, avanzar: avanceExacto, t0: 0, tf: 2, estado0: 1, h: 0.6 }));

12 · Comprensión

Confusiones frecuentes

«N pasos producen N muestras»

Si se incluye el estado inicial, N intervalos producen N+1 muestras.

«Discretizar significa redondear los valores de y»

Se eligen instantes discretos; los estados pueden conservar precisión de punto flotante.

«Una malla fina garantiza un modelo correcto»

Solo reduce ciertos errores numéricos. No corrige supuestos ni parámetros inadecuados.

«El último tiempo siempre es t₀+Nh con el h solicitado»

Si el intervalo no es divisible, hay que ajustar el paso o aceptar otro extremo.

«Los puntos exactos muestreados son una solución numérica aproximada»

Son valores exactos evaluados en una malla; el error aparece al construirlos con una regla aproximada.

«Cuanto menor sea h, menor será cualquier error»

El truncamiento suele bajar, pero costo y efectos de redondeo aumentan; además puede persistir error de modelado.

13 · Práctica guiada

Ejercicios de comprensión

Ejercicio 1: construir una malla

Listá los nodos desde t₀=1 hasta tf=3 con h=0,5.

Ver solución

1; 1,5; 2; 2,5; 3. Hay cuatro pasos y cinco muestras.

Ejercicio 2: índice y tiempo

En una malla con t₀=2 y h=0,25, calculá t₇.

Ver solución

t₇=t₀+7h=2+7·0,25=3,75.

Ejercicio 3: contar pasos

¿Cuántos pasos uniformes hay entre 0 y 12 con h=0,2?

Ver solución

N=(12−0)/0,2=60 pasos y 61 nodos.

Ejercicio 4: extremo no divisible

Desde 0 hasta 2 con h=0,3, calculá la longitud del último paso si debe alcanzarse exactamente 2.

Ver solución razonada

Seis pasos regulares llegan a 1,8. El último mide 2−1,8=0,2.

Ejercicio 5: unidades

Si y se mide en metros, t en segundos y f=y′, ¿qué unidades tienen f y hf?

Ver solución

f se mide en m/s. Como h se mide en s, hf se mide en m y puede sumarse al estado.

Ejercicio 6: distinguir errores

Una simulación converge al reducir h, pero no coincide con los datos observados. ¿Qué debería investigarse?

Ver solución razonada

La convergencia sugiere que el error de discretización está controlado. Deben revisarse el modelo, sus supuestos, parámetros, datos iniciales y error de medición.

14 · Síntesis

Ideas para recordar

  • Una simulación representa una solución continua mediante una secuencia finita de estados.
  • En una malla uniforme, tn=t₀+nh.
  • N pasos producen N+1 muestras si se incluye el estado inicial.
  • El último paso puede acortarse para alcanzar exactamente el tiempo final.
  • Muestrear una solución exacta no es lo mismo que integrarla aproximadamente.
  • El tamaño de paso controla resolución, costo y estabilidad.
  • Modelo, regla de avance y bucle temporal deben mantenerse separados.
  • Una simulación necesita validación, límites de iteraciones y criterios de parada.
  • Error de modelado, discretización, redondeo e implementación son problemas diferentes.

En el próximo tema derivaremos e implementaremos la primera regla de avance: el método de Euler.