29. Verificar diagramas, unidades, resultados y casos límite

Un resultado numérico no es evidencia suficiente. Verificar significa buscar errores de manera sistemática y obtener controles independientes del mismo modelo.

29.1 Resolver y verificar son tareas diferentes

Resolver produce un resultado a partir de un modelo. Verificar pregunta si el modelo fue bien traducido, si los cálculos respetan sus reglas y si el resultado se comporta como debería.

Que un programa se ejecute sin errores no significa que represente correctamente la física.

Una fórmula equivocada puede devolver números razonables. Por eso necesitamos controles que no repitan exactamente el mismo razonamiento o la misma implementación.

29.2 Verificación por capas

ModeloSupuestos y límites
DiagramaInteracciones y vectores
CálculoUnidades, signos y álgebra
CódigoPruebas y convergencia

Conviene revisar en ese orden. Corregir decimales no ayuda si falta una fuerza; mejorar el integrador no ayuda si la dirección del rozamiento es incorrecta.

29.3 Verificar el sistema y sus límites

Antes del diagrama debe estar claro qué cuerpos forman el sistema y qué pertenece al entorno. La clasificación determina qué fuerzas son externas y cuáles son internas.

  • ¿El sistema coincide con el usado en las ecuaciones?
  • ¿Se declararon aproximaciones como cuerda ideal, campo uniforme o partícula?
  • ¿El fenómeno permanece dentro del dominio del modelo?
  • ¿Cambió el sistema entre dos etapas sin actualizar las fuerzas?

Una conclusión solo es válida bajo los supuestos que la originaron.

29.4 Auditar el diagrama de cuerpo libre

Para cada fuerza del diagrama podemos exigir cuatro respuestas:

Agente¿Qué cuerpo ejerce la fuerza?
Receptor¿Actúa sobre el sistema elegido?
Tipo¿Qué interacción representa?
Dirección¿La geometría y el estado justifican el vector?

Después se comprueba que no falte ninguna interacción externa, que no se hayan incluido reacciones sobre otros cuerpos y que una misma fuerza no aparezca dos veces.

29.5 Comprobar unidades y dimensiones

Todos los términos sumados deben tener la misma dimensión. En la segunda ley:

[F] = N = kg·m/s²
[ma] = kg·m/s²

Ejemplos de controles útiles:

  • μN tiene unidades de fuerza porque μ es adimensional.
  • bv es fuerza si [b] = N·s/m.
  • F/m tiene unidades de aceleración.
  • vΔt tiene unidades de posición.

Un análisis dimensional correcto no demuestra que la fórmula sea correcta, pero uno incorrecto demuestra que hay un error.

29.6 Signos, ejes y componentes

Los signos dependen de la base elegida. Para verificarlos:

  1. Dibujá los ejes con sentidos positivos.
  2. Proyectá cada vector y asigná el signo según su orientación.
  3. Reconstruí el vector desde las componentes.
  4. Comprobá que su módulo y cuadrante sean los originales.
F ≈ √(Fx² + Fy²)

Un resultado negativo para una incógnita puede indicar un sentido opuesto al supuesto, pero también puede revelar que una cuerda tendría que empujar o una superficie tirar.

29.7 Orden de magnitud

Comparar con valores conocidos permite detectar factores de diez, unidades mal convertidas o masas omitidas.

Una masa de 1 kg cerca de la Tierra pesa aproximadamente 10 N. Una fuerza resultante de 10 N sobre 1 kg produce cerca de 10 m/s²; sobre 1000 kg produce cerca de 0,01 m/s².

Si una respuesta contradice estas escalas, no debe descartarse automáticamente, pero sí investigarse antes de aceptarla.

29.8 Casos límite

Un caso límite modifica un parámetro hasta una situación cuyo comportamiento conocemos:

CambioResultado esperado
μ → 0Desaparece el rozamiento del modelo.
θ → 0 en un planoLa componente tangencial del peso tiende a cero.
Masas iguales en AtwoodLa aceleración tiende a cero.
Fuerza resultante ceroLa aceleración debe ser cero.
Δt → 0La solución numérica debería converger bajo condiciones adecuadas.

Una fórmula que falla en un límite sencillo probablemente contiene un signo, término o denominador incorrecto.

29.9 Comparar con una solución analítica

Cuando existe una solución exacta bajo los mismos supuestos, ofrece una referencia independiente. Para aceleración constante en una dimensión:

v(t) = v0 + at
x(t) = x0 + v0t + ½at²

La simulación se ejecuta hasta el mismo tiempo y se comparan posición y velocidad. La diferencia mide el error combinado del método y del paso.

No es válida una comparación si la solución analítica ignora una fuerza que la simulación sí incluye.

29.10 Residuos de ecuaciones y restricciones

Un residuo mide cuánto se aparta un resultado de una ecuación que debería cumplir. Para la segunda ley:

rNewton = ΣF − ma

Idealmente es cero. En cómputo aceptamos un módulo pequeño respecto de una tolerancia justificada.

También pueden medirse residuos de restricciones:

rcuerda = distancia entre extremos − longitud ideal
rcontacto = penetración no permitida

Registrar estos valores a lo largo del tiempo permite detectar deriva antes de que sea visible.

29.11 Estudio de convergencia temporal

Para comprobar el efecto del paso se repite la misma simulación con Δt, Δt/2 y Δt/4, manteniendo iguales el modelo, las condiciones iniciales y el tiempo final.

Si el método converge, las soluciones deberían acercarse entre sí y, cuando existe, a la solución analítica. Para Euler, el error global suele reducirse aproximadamente a la mitad al dividir el paso por dos en un problema regular.

Un único resultado con un único Δt no demuestra convergencia.

Si reducir el paso no mejora el resultado, puede haber un error de modelo, implementación, discontinuidad o comparación.

29.12 Tolerancias absoluta y relativa

Comparar números de punto flotante mediante igualdad exacta suele ser inadecuado. Una condición combinada es:

|calculado − esperado| ≤ toleranciaAbsoluta + toleranciaRelativa·|esperado|

La tolerancia absoluta protege las comparaciones cerca de cero. La relativa escala con el tamaño del valor esperado.

Las tolerancias deben relacionarse con el método, el paso, las unidades y la precisión requerida. Una tolerancia enorme puede ocultar fallos; una demasiado pequeña puede rechazar redondeos inevitables.

29.13 Pruebas automáticas complementarias

Prueba unitariaComprueba una función pequeña con entradas conocidas.
Prueba de integraciónComprueba que fuerzas, acumulador e integrador trabajen juntos.
Prueba de regresiónConserva un caso que antes reveló un error.
PropiedadComprueba invariantes para muchas entradas válidas.

Ejemplos de propiedades: intercambiar las masas de Atwood invierte el signo de la aceleración; duplicar todas las fuerzas y la masa conserva la aceleración; una interacción interna aporta fuerzas opuestas al conjunto.

29.14 Actividad interactiva: observar la convergencia

Compará Euler explícito y semimplícito con la solución analítica de un movimiento con aceleración constante. El último subpaso se acorta para alcanzar exactamente el tiempo final.

Laboratorio de error numérico

Condiciones iniciales: x₀ = 0 m y v₀ = 2 m/s.

xexacta(2 s) = 10,00 m
Posición exacta10,0000 m
Posición numérica9,4000 m
Error absoluto0,6000 m
Pasos / error relativo10 / 6,00 %

29.15 Implementar comparaciones y convergencia

Una aserción combinada evita depender de igualdad exacta:

function aproximadamenteIgual(actual, esperado, absTol = 1e-9, relTol = 1e-6) {
  const diferencia = Math.abs(actual - esperado);
  const limite = absTol + relTol * Math.abs(esperado);
  return diferencia <= limite;
}

console.log(aproximadamenteIgual(0.1 + 0.2, 0.3)); // true
console.log(aproximadamenteIgual(9.99, 10, 1e-6, 1e-4)); // false

Un ensayo de convergencia puede ejecutar el mismo caso con pasos sucesivamente menores:

function eulerExplicito(dt, tiempoFinal, aceleracion, v0 = 2) {
  let x = 0;
  let v = v0;
  let t = 0;

  while (t < tiempoFinal - 1e-12) {
    const h = Math.min(dt, tiempoFinal - t);
    x += v * h;
    v += aceleracion * h;
    t += h;
  }
  return x;
}

const exacta = 2 * 2 + 0.5 * 3 * 2 ** 2;
for (const dt of [0.4, 0.2, 0.1, 0.05]) {
  const error = Math.abs(eulerExplicito(dt, 2, 3) - exacta);
  console.log(dt, error.toFixed(4));
}

29.16 Protocolo de diagnóstico

  1. Reducir el problema al caso más pequeño que conserva el fallo.
  2. Guardar condiciones iniciales, parámetros, paso y método.
  3. Auditar sistema, supuestos y diagrama de cuerpo libre.
  4. Registrar cada contribución del acumulador.
  5. Comprobar unidades, signos, resultante y residuo de Newton.
  6. Comparar con un caso límite o solución analítica.
  7. Repetir con pasos menores.
  8. Convertir el caso corregido en una prueba de regresión.

Cambiar varias partes del programa a la vez dificulta identificar la causa. Una hipótesis por prueba produce evidencia más clara.

29.17 Errores frecuentes y ejercicios

Errores frecuentes

  • Confiar en que una animación visualmente suave es físicamente correcta.
  • Usar la misma fórmula como implementación y como única verificación.
  • Comparar punto flotante con igualdad exacta.
  • Cambiar Δt y el tiempo final simultáneamente.
  • Ajustar una tolerancia hasta que una prueba incorrecta pase.
  • Corregir síntomas numéricos sin revisar primero el modelo físico.

Ejercicios propuestos

  1. Comprobá dimensionalmente a = (F − μmg)/m.
  2. Calculá el residuo de Newton para ΣF = (10; −4) N, m = 2 kg y a = (4,9; −2) m/s².
  3. Una simulación devuelve aceleración no nula para masas iguales en Atwood. Indicá tres capas que revisarías.
  4. Evaluá si 100,002 y 100 son aproximadamente iguales con tolerancias absoluta 0,001 y relativa 0,00002.
  5. Euler explícito produce errores de posición 0,8 m con Δt = 0,2 s y 0,4 m con Δt = 0,1 s. ¿Qué sugiere?
  6. Proponé dos pruebas automáticas para una función que calcula rozamiento cinético.
Ver soluciones
  1. F y μmg tienen unidades de N; al dividir su diferencia por kg se obtiene m/s².
  2. ma = (9,8; −4) N; el residuo es (0,2; 0) N.
  3. Revisar el modelo y la simetría de masas, los signos del diagrama y la implementación de resultante/aceleración.
  4. La diferencia es 0,002; el límite es 0,001 + 0,00002·100 = 0,003. Sí, cumplen el criterio.
  5. El error se reduce a la mitad al reducir el paso a la mitad, comportamiento compatible con convergencia de primer orden.
  6. Con velocidad hacia la derecha debe apuntar a la izquierda y tener módulo μkN; con velocidad invertida debe conservar el módulo e invertir la dirección.

29.18 Ideas para recordar

  • La verificación comienza en el modelo y el diagrama, no en los decimales.
  • Un control independiente es más valioso que repetir el mismo cálculo.
  • Unidades, signos, órdenes de magnitud y casos límite detectan clases distintas de errores.
  • Los residuos cuantifican el incumplimiento de ecuaciones y restricciones.
  • La convergencia se estudia repitiendo el mismo caso con pasos menores.
  • Todo error corregido debería convertirse en una prueba de regresión.

En el próximo tema integraremos el curso en un simulador de bloques, cuerdas y rozamiento con controles y verificaciones automáticas.