Cuando tenemos un modelo numérico que representa un sistema físico real, y que exhibe caos (por ejemplo, modelos de dinámica de fluidos, modelos climáticos), ¿cómo podemos saber que el modelo está funcionando como debería? No podemos comparar dos conjuntos de resultados del modelo directamente, porque incluso pequeños cambios en las condiciones iniciales cambiarán drásticamente los resultados de las simulaciones individuales. No podemos comparar el resultado del modelo directamente con las observaciones, ya que nunca podemos conocer con suficiente detalle las condiciones iniciales de las observaciones, y la aproximación numérica de todos modos causaría pequeñas diferencias que se propagarían a través del sistema.
Esta pregunta está inspirada en parte por la pregunta de David Ketcheson sobre el código científico de pruebas unitarias : estoy particularmente interesado en cómo podrían implementarse las pruebas de regresión para tales modelos. Si un cambio menor en las condiciones iniciales puede conducir a cambios importantes en la producción (que bien pueden ser representaciones adecuadas de la realidad), entonces, ¿cómo podemos separar esos cambios de los cambios causados por la modificación de parámetros o la implementación de nuevas rutinas numéricas?
Si su código puede ejecutarse en regímenes no caóticos de su problema subyacente, especialmente en regímenes no caóticos en los que puede utilizar el método de soluciones fabricadas, debe escribir pruebas de regresión que se ejecuten en estos regímenes incluso si no le resultan interesantes. . Si estas pruebas fallan, inmediatamente sabrá que algo salió mal en sus últimos cambios de código. Entonces puede pasar a problemas más relevantes físicamente.
fuente
Primero, me enfocaré en tu última oración, mientras tocas algunas cosas diferentes en tu pregunta, pero siento que captura adecuadamente lo que estás preguntando. Si está cambiando las rutinas numéricas, no debería cambiar las condiciones iniciales o los parámetros del sistema hasta que haya validado la nueva rutina de la anterior. En el nivel más débil, veo que esto compara algunos valores promediados en el tiempo sobre su solución, y que están de acuerdo (incluso si los comportamientos transitorios divergieron entre sí dentro del caos). En el nivel más fuerte, esperaría que las dos rutinas reproduzcan el comportamiento transitorio completo. Cuál de estos desea y cuál es aceptable depende de las preguntas que haga y de las conclusiones que extraiga de las soluciones.
En cuanto a saber si un modelo está "funcionando como debería", esa es una pregunta completamente diferente. Esto no tiene nada que ver con las rutinas numéricas que elija. Cómo construye su modelo, desde sus supuestos simplificadores hasta sus mediciones / cálculos de parámetros, debe basar todas sus decisiones en la física del problema y, con suerte, realizar un trabajo previo en casos similares. Es posible que pueda validar un modelo con un caso simple reproducido en un entorno de laboratorio, pero hay momentos en que incluso eso no es trivial. Si no puede determinar un parámetro importante del sistema dentro de un orden de magnitud, no puede esperar que nadie confíe en los pequeños detalles que está calculando en el comportamiento local transitorio.
fuente