Kiedy mamy model numeryczny, który reprezentuje prawdziwy układ fizyczny i który wykazuje chaos (np. Modele dynamiki płynów, modele klimatu), skąd możemy wiedzieć, że model działa tak, jak powinien? Nie możemy bezpośrednio porównać dwóch zestawów danych wyjściowych modelu, ponieważ nawet niewielkie zmiany warunków początkowych radykalnie zmienią wyniki poszczególnych symulacji. Nie możemy porównywać wyników modelu bezpośrednio z obserwacjami, ponieważ nigdy nie możemy z wystarczającą szczegółowością poznać początkowych warunków obserwacji, a przybliżenie numeryczne i tak spowodowałoby niewielkie różnice, które rozprzestrzeniłyby się w systemie.
To pytanie jest częściowo zainspirowane pytaniem Davida Ketchesona dotyczącym testowania jednostkowego kodu naukowego : Jestem szczególnie zainteresowany tym, jak można przeprowadzić testy regresji dla takich modeli. Jeśli niewielka zmiana warunków początkowych może prowadzić do poważnych zmian wyników (które mogą być nadal odpowiednimi reprezentacjami rzeczywistości), to jak możemy oddzielić te zmiany od zmian spowodowanych modyfikacją parametrów lub wdrożeniem nowych procedur numerycznych?
Jeśli Twój kod może działać w nie chaotycznych reżimach leżących u podstaw problemu, szczególnie w nie chaotycznych reżimach, w których możesz użyć metody wytworzonych rozwiązań, powinieneś napisać testy regresji, które działają w tych reżimach, nawet jeśli nie są dla ciebie interesujące . Jeśli te testy zakończą się niepowodzeniem, od razu wiesz, że coś poszło nie tak w najnowszych zmianach kodu. Następnie możesz przejść do bardziej istotnych problemów fizycznych.
źródło
Po pierwsze, skupię się na twoim ostatnim zdaniu, kiedy dotkniesz kilku różnych rzeczy w twoim pytaniu, ale czuję, że odpowiednio oddaje to, o co pytasz. Jeśli zmieniasz procedury numeryczne, nie powinieneś zmieniać warunków początkowych ani parametrów systemowych, dopóki nie zweryfikujesz nowej procedury ze starej. Na najsłabszym poziomie postrzegam to jako porównywanie wartości uśrednionych w czasie z twoim rozwiązaniem, i są one zgodne (nawet jeśli przejściowe zachowania rozchodzą się w chaosie). Na najsilniejszym poziomie można oczekiwać, że te dwie procedury odtworzą pełne zachowanie przejściowe. Które z nich chcesz, a które jest do przyjęcia, zależy od tego, jakie pytania zadajesz i jakie wnioski wyciągasz z rozwiązań.
Jeśli chodzi o stwierdzenie, czy model „działa tak, jak powinien”, jest to zupełnie inne pytanie. Nie ma to nic wspólnego z wybranymi procedurami numerycznymi. Jak budujesz swój model, od upraszczających założeń po pomiary / obliczenia parametrów, powinieneś opierać wszystkie swoje decyzje na fizyce problemu, i mam nadzieję, że wcześniejsze prace zostały wykonane na podobnych przypadkach. Możesz być w stanie zweryfikować model z prostą kopertą odtworzoną w warunkach laboratoryjnych, ale są chwile, kiedy nawet to nie jest trywialne. Jeśli nie możesz określić ważnego parametru systemowego z dokładnością do rzędu wielkości, nie możesz oczekiwać od nikogo zaufania do drobnych szczegółów, które obliczasz w przejściowym zachowaniu lokalnym.
źródło