Metody numeryczne

Transkrypt

Metody numeryczne
Metody numeryczne
Grzegorz Graczyk, 150875
Paweł Tarasiuk, 151021
Całkowanie funkcji e−x ·f (x) na przedziale od a do nieskończoności
metodą Simpsona z zadaną dokładnością oraz metodą kwadratury Gaussa na 3 oraz 4 węzłach
Informacje o metodzie
Metoda Simpsona jest metodą przeznaczoną do całkowania numerycznego całek oznaczonych
właściwych. Z tego powodu musimy nałożyć górną granicę całkowania, która nie zniekształci obliczeń. Dobór górnej granicy odbywa się poprzez ograniczenie naszej funkcji od góry funkcją wykładniczą z odpowiednio dobranymi współczynnikami i przesunięciem. Musimy również dobrać
liczbę węzłów n oraz odległość między węzłami h tak, by dokładność była nie mniejsza niż zada1
na dokładność. Dokonujemy tego poprzez przekształcenie wzoru R = 180
(b − a)h4 max|f (4) (x)|,
przy czym otrzymane n jest zaokrąglane w górę do liczby naturalnej nieparzystej.
Po takich przygotowaniach możemy zastosować metodę Simpsona, którą w całości można
opisać wzorem:
Z b
f (x)dx =
a
n
X
h
i=0
3
(f (x + 2hi) + 4f (x + 2hi + h) + f (x + 2hi + 2h))
Kwadratura Gaussa jest metodą znacznie prostszą - w szczególności dla stałej ilości węzłów.
Bazuje ona na podobieństwie wszystkich funkcji określonej postaci. W wypadku rozważanej
postaci funkcji posługujemy się kwadraturami Gaussa-Laguerre’a. Ze względu na stałą i ograniczoną ilość węzłów wartości wag oraz pierwiastków Laguerre’a nie muszą być liczone w czasie
działania programu zaś mogły być stablicowane. Metodę można opisać wzorem:
Z inf
e−x · f (x)dx =
0
n
X
wi · f (ti )
i=i
, gdzie ti to wartość odpowiedniego pierwiastka, zaś wi to waga odpowiadająca temu pierwiastkowi. W zadaniu dolną granicą całkowania nie zawsze jest 0, dlatego podczas obliczeń konieczna
jest modyfikacja funkcji tak, by przesunąć granicę całkowania:
Z inf
Z inf
f (x)dx =
x0
f (x) · e−x0 dx
0
Informacje o implementacji
W wypadku tego zadania implementacja stanowiła jedynie zapisanie wzorów matematycznych w języku programowania ( Python ). Potrzebne były jedynie przekształcenia wzorów, które
zostały omówione w opisie metody.
Można wspomnieć jedynie o metodzie wczytywania danych - program posiada wbudowaną
tablicę zawierającą odpowiednio: funkcję, dolną granicę całkowania, pochodną 8 rzędu funkcji
f (x), pochodną 10 rzędu f (x) oraz maksymalną wartość pochodnej 4 rzędu funkcji e−x f (x).
Ponadto program stara się wypisać wynik w poprawnej formie fizycznej - odpowiednio zaokrąglając błąd oraz wyświetlaną wartość.
Grzegorz Graczyk i Paweł Tarasiuk, Metody Numeryczne, Zadanie 4: Całkowanie
1/2
Wyniki
f (x)
a
Metoda Simpsona
Kwadratury Gaussa( 3 węzyły )
Kwadratury Gaussa( 4 węzły )
1
−1
2.7182 ± 0.0010
2.71828182846 ± 0
2.71828182846 ± 0
sin(x)
0
0.4999 ± 0.0010
0.496 ± 0.025
0.504 ± 0.008
x2 + sin(x) + cos(x)
3
0.797 ± 0.0010
0.79 ± 0.05
0.796 ± 0.015
Wnioski
• W wypadku części badanych funkcji błąd kwadratury Gaussa wynosił 0. Jest to spowodowane zależnością błędu od pochodnych funkcji, które w tych przypadkach wynoszą 0.
Wartość błędu nie oznacza jednak, że otrzymaliśmy dokładną wartość. Oznacza jedynie,
że algorytm był matematycznie dokładny, co jednak nie daje gwarancji braku błędu pochodzącego z dokładności obliczeń komputerowych.
• W wypadku metody Simpsona zastosowano pewną heurystykę w wypadku ograniczania
funkcji od góry. Choć ograniczenie sprawdza się w znacznej części przypadków( dzięki
wykładniczej pochodnej oraz dużej wartości w punkcie 0 ) to nie jest prawidłowe dla
wszystkich funkcji. Zostało jednak tak dobrane, by próba całkowania funkcji większej była
już obarczona znacznym błędem wynikającym z dokładności obliczeń.
• Zastosowane metody są dość wydajnymi, a zarazem niezbyt skomplikowanymi metodami
całkowania, posiadają jednak drobne wady. W obu metodach musimy znać maksimum
wartości odpowiednich pochodnych badanej funkcji by uzyskać wynik z informacją o błędzie. Ponadto w wypadku kwadratury Gaussa jesteśmy ograniczeni do określonych postaci
funkcji. Te wady powodują, że znacznie łatwiej zastosować inne metody, jak na przykład
metoda Monte Carlo, która choć znacznie mniej wydajna nie wymaga żadnych dodatkowych danych ani nie posiada żadnych założeń.
• Jak dowodzi program, kwadratura Gaussa na 4 węzłach jest widocznie lepsza niż na 3
węzłach. Obie metody dają jednak błąd zależy od badanej funkcji. W wypadku metody
Simpsona sami wybieramy dokładność - możemy zatem dostać znacznie dokładniejszą
metodę. Warto jednak zauważyć, że dla bardzo małych dokładności metoda ta działa
niemal identycznie z metodą Monte Carlo.
Grzegorz Graczyk i Paweł Tarasiuk, Metody Numeryczne, Zadanie 4: Całkowanie
2/2