Fizyka i komputery... Jeżeli zaczniesz bawić się w programowanie fizyki to musisz po pierwsze doskonale poznać model fizyczny zjawiska. Wiele problemów można rozwiązać jeżeli tylko wiesz jak zabrać sie do tego bez komputera. Około 90% problemów z którymi zetknąłem się na studiach, a co by nie było ukończyłem Wydział Fizyki UW - Metody Komputerowe Fizyki, stawało się trywialne o ile rozwiązało się je na kartce. Modelowanie zjawisk jest o tyle problematyczne, że spotykasz się z przeszkodami, których nie można ominąć. Do moich ulubionych i nierozwiązywalnych problemów należą:
Ruch trzech ciał oddziałujących ze sobą grawitacyjnie
Problem nie do rozwiązania metodami analitycznymi. Jedyne rozwiązanie to numeryczne wyliczanie ruchu na jeden krok do przodu. Nie można rozwiązać układu równań różniczkowych reprezentujących wzajemne oddziaływania ciał i wyciągnąć z nich równań ruchu. Siedział nad tym Euler, Newton, Einstein i nie zdziałali nic.
Symulacja oddziaływań sprężystych w sieci krystalicznej
Da się to ruszyć o ile dysponujemy dość dobrym komputerem i sieć nie jest za duża. Do tego typu problemów należą zagadnienia związane z wytrzymałością materiałów czy ruchem bryły sztywnej.
Ogólnie istnieją metodyki pozwalające na symulowanie większości zjawisk. Większość z nich opiera się o obliczenie w miarę dokładnego wyniku dla małej próbki, a następnie wyznaczeniu statystycznego rozwiązania dla N małych próbek. Jeżeli chcemy mieć dokładne wyniki to nasza próbka musi być duża. Obecne superkomputery budowane są z myślą o obliczeniach dla dużych próbek.
Co do "domowych" metod walki z fizyką to jest kilka dobrych praktyk:
- dokładnie poznaj zjawisko. Przyjrzy się mu z kilku stron. Większość można uprościć stosując odpowiednie twierdzenia. Przykład: ruch bryły sztywnej. Tor można policzyć z góry, bo będzie odpowiadał ruchowi środka masy. Zostaną do policzenia tylko kawałki związane z obrotami.
- Optymalizuj co się da. Warto robić pseudo optymalizację, czyli sprawdzanie czy dane odpowiadają jakiemuś prostemu przypadkowi i jak tak to zwracanie wcześniej policzonego wyniku.
- Pamiętaj, ze niektórych problemów nie da się rozwiązać bez wykonania znacznych przybliżeń. Na przykład wahadło matematyczne w ogólnym przypadku ma w sobie całkę cyklometryczną, dlatego też jest przybliżane do małych drgań.