W numeryce bardzo ważna jest umiejętność identyfikowania niestabilnych schematów i poprawy ich stabilności. Jak rozpoznać niestabilne obliczenia zmiennoprzecinkowe?
Pracuję nad bardzo złożoną symulacją, w której współdziała wiele schematów numerycznych i szukam metody pozwalającej zidentyfikować jej słabe części. Pracuję nad modelem fizycznym obejmującym równania różniczkowe. Ogólny proces z lotu ptaka przedstawia:
(Etap wstępny) gromadzenia obserwacje fizycznej P .
Określ początkowe parametry symulacji. Wykorzystuje to algorytm optymalizacyjny, w którym chodzimy w przestrzeni parametrów i szukamy parametrów C, tak że niektóre funkcje błędu E (F (C), P) są zminimalizowane, gdzie F jest pewną pochodną ilością parametrów.
Podłącz C do silnika symulacyjnego. Jest to schemat Eulera EDP, dlatego na każdym etapie obliczamy warunki napędzające dynamikę (każda z nich jest złożoną funkcją, potencjalnie podlegającą niestabilności) i karmimy schemat Eulera tymi dynamicznymi terminami, aby obliczyć następny stan. Trwa to przez tysiące punktów czasowych.
Pod koniec symulacji obliczamy pewną funkcję Dowód (S) stanu końcowego S i porównujemy z pewnymi wielkościami Wymagaj (P) wyprowadzonymi z obserwowanych wielkości. To nie jest formalny dowód wyniku, a bardziej kontrola wiarygodności.
Widzę też wieżę złożonych operacji (obliczanie dynamicznych terminów, w ramach schematu Eulera, w Dowodzie ). I chciałby rozpoznać „złe części” i naprawić je.
Spekuluję, że zastosowanie implementacji liczb zmiennoprzecinkowych ze zmniejszoną precyzją zwiększyłoby niestabilność schematów numerycznych, ułatwiając w ten sposób porównanie różnych implementacji. Czy jest to powszechna technika badania tego pytania? Czy można użyć maszyny wirtualnej, takiej jak Bochs, aby to osiągnąć bez zmiany programu?
Aby odpowiednio poradzić sobie z pytaniem o stabilność, czasami dopuszczalne jest ukierunkowanie na typowe dane wejściowe procedury numerycznej, aby można było dostroić się do tego wejścia, a może gorzej przy innych prawidłowych, ale mało prawdopodobnych danych wejściowych. Biorąc pod uwagę próbę typowych danych wejściowych, można schwytać niektóre wyniki pośrednie i przygotować dla nich profil statystyczny. Ponownie, czy jest to powszechna technika badania problemów ze stabilnością? Czy maszyna wirtualna jest do tego przydatna?