Metody numeryczne
Grzegorz Graczyk, 150875 Paweł Tarasiuk, 151021
Aproksymacja średniokwadratowa funkcji ciągłej w przedziale [a, ∞) z wykorzystaniem ortogonalnych wielomianów Laguerre’a
Informacje o metodzie
Aproksymacja średniokwadratowa polega na dopasowaniu współczynników do pewnego zbio- ru funkcji liniowo niezależnych, w taki sposób, by w każdym miejscu różnica wartości sumy dopasowywanych funkcji oraz badanej funkcji wynosiła 0. W celu odnajdywania rozwiązania przekształca się wzór opisujący taką zależność do postaci układu równań, a następnie rozwiązu- je go.
Wykorzystanie wielomianów ortogonalnych pozwala znacznie przyspieszyć ten proces, gdyż w takim wypadku w każdym z równań pozostaje 1 niewiadoma (ujmując rzecz ściślej, przy przedstawieniu układu w postaci macierzy współczynników, jedynie elementy znajdujące się na przekątnej pozostają niezerowe). Układ o takiej postaci jest trywialny do rozwiązania.
Ponadto w wypadku wielomianów Laguerre’a należało posłużyć się wagą wynoszącą e−x, aby uzyskać odpowiednie właściwości wielomianów ortogonalnych.
Informacje o implementacji
Program został napisany w języku Python z wykorzystaniem narzędzia gnuplot do rysowania wykresów.
Metoda wymaga wielokrotnego posługiwania się całkowaniem. W wypadku naszej implemen- tacji zastosowaliśmy zaimplementowaną wcześniej funkcję całkującą metodą Simpsona (całku- jemy z dokładnością 2 by otrzymać wynik z dokładnością ).
Ponieważ wielomiany Laguerre’a wymagają całkowania na przedziale [0, ∞) modyfikujemy badaną funkcję z wykorzystaniem parametru t = x − a. Dzięki sposobie przechowywania funkcji (w postaci tekstu dla funkcji wejściowej, oraz tablicy współczynników dla funkcji wyjściowej) możemy wykonywać tą modyfikację w bardzo prosty i uniwersalny sposób (chociaż niekoniecznie najwydajniejszy) - dla wejścia poprzez wyszukiwanie i zastępowanie łańcuchów znaków, nato- miast dla wyjścia z wykorzystaniem rozwinięcia wzoru (x + a)n.
Ponadto program posiada jedynie ograniczenie stopnia wielomianu za pomocą zmiennej.
Sam zastosowany algorytm umożliwia stosowanie dowolnego stopnia. Ponadto, ograniczenie na stopień wielomianu sprowadza się do odrzucenia jednomianów o wyższym stopniu, zatem w wynikach założono stałe i zawyżone ograniczenie.
Wyniki
Obliczenia przeprowadzono dla dokładności = 0.001. Przyjęte przez nas ograniczenie na stopień wielomianu to 5.
a Badana funkcja Otrzymany wynik
0 √
2 1.413 + 0.004x − 0.002x2+ 0.001x3
0 √
x 0.217 + 1.093x − 0.364x2+ 0.073x3− 0.006x4 0 12x2− 2x + 1 1.0 − 2.001x + 0.503x2
0 x2 1.004x2− 0.001x3
2 x3+ 3x2+ 6x + 6 6.01 + 6.006x + 2.99x2+ 0.998x3+ 0.002x4
Grzegorz Graczyk i Paweł Tarasiuk, Metody Numeryczne, Zadanie 5: Aproksymacja 1 / 2
Wnioski
• Źródłem największych błędów jest brak informacji o stopniu wielomianu. Wystąpienie choćby najmniejszego współczynnika przy zawyżonym stopniu oznacza, że funkcja będzie zupełnie odbiegała od oczekiwań. Jest to szczególnie widoczne dla funkcji stopnia 0. Źró- dłem tego błędu jest prawdopodobnie całkowanie metodą Simpsona, przeprowadzane jako operacja pomocnicza.
• W wypadku gdy badana funkcja nie jest wielomianem, otrzymywana rozbieżność może być szczególnie duża. Powodem jest oczywiście fakt, iż nie istnieje skończone dopasowanie, dla którego taka rozbieżność by nie istniała i nie dążyła do ±∞.
• Najdokładniejsze wyniki otrzymano dla funkcji będącej wielomianem Laguerre’a. Powo- dem jest właściwość służąca do samych obliczeń - wówczas wszystkie elementy macierzy układu poza jednym wynosiły dokładnie 0, co pozwoliło uniknąć zdecydowanej większości niedokładnych obliczeń.
• Zastosowana metoda, pomimo otrzymanych błędów, jest dość dokładna. W wypadku uzu- pełnienia informacji na temat stopnia badanej funkcji, otrzymane wyniki będą różniły się jedynie nieznacznie od oczekiwanych wartości.
Grzegorz Graczyk i Paweł Tarasiuk, Metody Numeryczne, Zadanie 5: Aproksymacja 2 / 2