Autor

Marcin Wudarczyk, K2, MiNI

Zadanie

Aproksymacja średniokwadratowa na przestrzeń wielomianów z bazą wielomianów ortogonalnych Hermite'a z wagą exp(-x*x) na przedziale (-Ą ,+Ą ). Całkowanie metodą 5-cio punktową Gaussa-Hermite'a.

Metoda

Funkcja interpolacyjna jest postaci

Znalezienie funkcji interpolacyjnej polega na znalezieniu liczb a i z równania macierzowego

; gdzie G - macierz Gramma: G(k, l) = (Hk, Hl); , i 0 dla różnych indeksów. , .

Norma . Ponieważ większość elementów macierzy Gramma jest zerowa, rozwiązanie układu jest trywialne.

Całkę wylicza się jako sumę wartości funkcji w miejscach zerowych 4-go wielomianu Hermite'a z odpowiednimi wagami.

Implementacja

Program wykonano w C++Builder 5.0 pod Windows. Użyto zmiennych podwójnej precyzji, oraz stablicowanych miejsc zerowych i wag z dokładnością do 6 miejsca po przecinku.

Program

W głównej części okna programu znajduje się wykres, zgodnie z opisem pod nim wyświetlane są wykresy funkcji interpolowanej, funckję uzyskaną w wyniku aproksymacji, oraz, ewentualnie, funkcję powstałą przez interpolację Spline. Poniżej można wybrać funkcję, przedział interpolacji i ilość podprzedziałów - dotyczy spline'ów i całkowania złożoną formułą prostokątów, oraz wyświetlone wykresy i wymiar przestrzeni wielomianów interpolacyjnych.

 

Zadania przykładowe

Zadanie 1

f(x) = x4-4x2

Wynik:

 

 

 

Zadanie 2

f(x)= x4-4x2

Wynik:

 

Zadanie 3

f(x)=x5

Wynik:

 

Zadanie 4

f(x) =x6

Wynik: