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