Metody numeryczne

Transkrypt

Metody numeryczne
Metody numeryczne
Grzegorz Graczyk, 150875
Paweł Tarasiuk, 151021
Równanie różniczkowe zwyczajne
Informacje o metodzie
Metoda RK4 jest metodą do iteracyjnego rozwiązywania równań różniczkowych zwyczajnych.
Jest to uogólniona wersja metody Eulera. W wypadku metody Eulera kolejna wartość liczona
jest na podstawie wartości policzonej w 1 punkcie - stąd nazywana jest czasami metodą RK1.
W wypadku metody RK4 liczone są 4 punkty z których każdy jest obliczany na podstawie
poprzednich. W ten sposób otrzymujemy metodę podobną w działaniu lecz w pewnym stopniu
bardziej odporną szczególne przypadki.
Informacje o implementacji
Program został napisany w języku Python z wykorzystaniem narzędzia gnuplot do rysowania
wykresów.
Program wykonuje pewne operacje na wektorach, upraszczając znacznie zapis kluczowych
funkcji programu. Język Python co prawda nie oferuje operacji na wektorach, natomiast jego
składnia znacznie ułatwia ich własną implementację.
Znacznym fragmentem kodu jest opis równania różniczkowego z przykładu 5.5. Program
został napisany w sposób, który umożliwia podanie całości danych jako argumenty funkcji funkcja rozwiązująca równanie jest niezależna od podanych danych i traktuje je jako argumenty.
Ze względu na elastyczność funkcji różniczkującej skrypt rysujący wykres nie jest uruchamiany automatycznie - nie można przewidzieć w jakiej postaci dane powinny być zaprezentowane.
Wyniki
Program został przetestowany na przykładzie rzutu. Taki rzut można opisać prostymi wzorami:
d vx (t)
m
= ax = 0 2
dt
s
d vy (t)
m
= ay = −9.81 2
dt
s
d sx (t)
= vx
dt
d sy (t)
= vy
dt
Zapisując to w postaci wzoru matematycznego:
y0 = [0, 0, 100 · cos α, 100 · sin α]
oraz
y0 = f (t, y = [sx , sy , vx , vy ]) = [vx , vy , 0, −9.81]
.
Grzegorz Graczyk i Paweł Tarasiuk, Metody Numeryczne, Zadanie 6
1/2
Do programu zostały również wprowadzone dane z przykładu 5.5. Ze względu na duży stopień
skomplikowania wzorów w nim zawartych zamieszczamy jedynie wynikowe wykresy dla tego
przykładu.
Wykresy do tego przykładu znajdują się na osobnej kartce.
Wnioski
• Nie jesteśmy w stanie ocenić dokładności obliczeń, natomiast na podstawie wykresów możemy się spodziewać poprawności obliczeń. Aby porównać wyniki z przewidywaniami posłużyliśmy się drugim przykładem - takim w którym możemy przewidzieć wyniki.
• Wykresem, z którego najłatwiej ocenić poprawność obliczeń jest wykres różnych zmiennych
w rzucie pod określonym kątem. Wykresy wartości mają kształty zgodne z oczekiwaniami
- podstawowymi własnościami fizycznymi.
• Wykres trajektorii rzutów również pozwala stwierdzić poprawność obliczeń. Zgodnie z przewidywaniami rzut pod kątem 45 stopni posiada największy zasięg, zaś rzuty pod kątami
30 i 60 stopni mają taki sam zasięg.
• Wiedza na temat algorytmu pozwala nam również stwiedzić, że obliczenia nie są dokładne
nawet w sensie matematycznym - użyte wzory są jedynie przybliżeniem.
Grzegorz Graczyk i Paweł Tarasiuk, Metody Numeryczne, Zadanie 6
2/2