En numérica, es muy importante poder identificar esquemas inestables y mejorar su estabilidad. ¿Cómo identificar los cálculos de punto flotante inestables?
Estoy trabajando en una simulación muy compleja donde muchos esquemas numéricos trabajan juntos y estoy buscando un método para identificar sus partes débiles. Estoy trabajando en un modelo físico que involucra ecuaciones diferenciales. Una vista panorámica del proceso general es:
(Etapa preliminar) Reunir las observaciones físicas P .
Determinar los parámetros iniciales de la simulación. Esto utiliza un algoritmo de optimización, donde caminamos en un espacio de parámetros y buscamos los parámetros C de manera que se minimice alguna función de error E (F (C), P) , donde F es una cantidad derivada de los parámetros.
Enchufe C en el motor de simulación. Este es un esquema de Euler del EDP, por lo que en cada paso de tiempo, calculamos los términos que impulsan la dinámica (cada uno de ellos es una función compleja, potencialmente sujeta a inestabilidad) y alimentamos el esquema de Euler con estos términos dinámicos para calcular el siguiente estado. Esto continúa por miles de puntos de tiempo.
Al final de la simulación, calculamos alguna función Prueba (S) del estado final S y la comparamos con algunas cantidades Requerir (P) deducidas de las cantidades observadas. Esto no es una prueba formal del resultado, más una verificación de plausibilidad.
Además, veo una torre de operaciones complejas (cálculo de términos dinámicos, dentro del esquema de Euler, dentro de la Prueba ). Y me gustaría reconocer las "partes malas" y arreglarlas.
Especulo que el uso de una implementación de software de números de coma flotante con precisión reducida aumentaría la inestabilidad de los esquemas numéricos, facilitando así la comparación entre diferentes implementaciones. ¿Es esta una técnica común para investigar esta pregunta? ¿Es posible usar una máquina virtual, como Bochs, para lograr esto sin alterar el programa?
Para abordar adecuadamente la cuestión de la estabilidad, a veces es aceptable apuntar a la entrada típica del procedimiento numérico, de modo que se pueda ajustar para que funcione bien en esa entrada y tal vez menos en otra entrada válida, aunque poco probable. Dada una muestra de entradas típicas, es posible espiar algunos resultados intermedios y preparar un perfil estadístico para ellos. Nuevamente, ¿es esta una técnica común para estudiar problemas de estabilidad? ¿Es útil una máquina virtual para esto?