Aproksymacja danej funkcji f(x) w przestrzeni Hilberta

Przybliżanie, metoda najmniejszych kwadratów, wielomiany interpolacyjne i inne.
diabolox
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 14 paź 2017, o 18:44
Płeć: Mężczyzna
Lokalizacja: Gdzieśtam
Podziękował: 1 raz

Aproksymacja danej funkcji f(x) w przestrzeni Hilberta

Post autor: diabolox » 14 paź 2017, o 20:01

Witam serdecznie, mam za zadanie wykonanie aproksymacji w przestrzeni Hilberta funkcji \(\displaystyle{ f(x) = \pi x-0.4 x^{3}}\) określonej w przedziale \(\displaystyle{ [a,b]}\) za pomocą wielomianów Legendre'a \(\displaystyle{ g_{k} (x)}\), wiedząc że:
\(\displaystyle{ a = -1, b = 1,}\)
\(\displaystyle{ k = 0,1,..n,}\)
\(\displaystyle{ n = 3,}\)

\(\displaystyle{ f(x) \approx y(x) = \lambda _{0} g_{0} (x) + ... +\lambda _{n} g_{n} (x),}\),

\(\displaystyle{ \int_{a}^{b} F(x)g_{i} (x) g_{j} (x)dx = 0 , i \neq j,}\)

\(\displaystyle{ \lambda _{k} = \frac{(f, g_{k})}{(g_{k}, g_{k})},}\)

\(\displaystyle{ (f, g_{k}) = \int_{a}^{b} f(x)g_{k} (x) F(x)dx,}\)

\(\displaystyle{ \int_{-1}^{1} P_{n} (x) P_{m} (x) dx = \begin{cases} 0 \text{ dla }n \neq m \\ (n+ \frac{1}{2})^{-1}\text{ dla }n = m \end{cases}}\)

Mój problem z rozwiązaniem tego zadania wynika z tego, iż pomimo przebrnięcia przez masę materiałów nt. aproksymacji, dalej nie jestem w stanie obliczyć poprawnie wartości \(\displaystyle{ \lambda _{k}}\). Problemu nie ma z obliczaniem mianownika (patrząc na powyższe założenie, rozwiązanie samo się nasuwa), problem jest natomiast z obliczaniem \(\displaystyle{ (f, g_{k})}\), gdzie w danej całce oznaczonej należy podstawiać \(\displaystyle{ f(x)}\) oraz \(\displaystyle{ g_{k}}\), (przez co, jak sądzę, otrzymana funkcja aproksymująca nie jest zbieżna z daną funkcją \(\displaystyle{ f(x)}\)) w podanym przedziale.
Z związku z tym mam pytanie, w czym może tkwić problem, co zostało przeze mnie wykonane nieprawidłowo?

Awatar użytkownika
szw1710
Gość Specjalny
Gość Specjalny
Posty: 18811
Rejestracja: 1 cze 2010, o 22:13
Płeć: Mężczyzna
Lokalizacja: Cieszyn
Podziękował: 6 razy
Pomógł: 3746 razy

Re: Aproksymacja danej funkcji f(x) w przestrzeni Hilberta

Post autor: szw1710 » 14 paź 2017, o 20:51

Pierwsze równanie z całką określa wielomiany ortogonalne. Są to wielomiany Legendre'a dla wagi \(\displaystyle{ F(x)=1}\). Wzór na współczynniki Fouriera \(\displaystyle{ \lambda_k}\) jest tym, które masz zastosować licząc odpowiednie całki. Nic więcej. Zwyczajnie to zrób. Wielomiany Legendre'a znajdziesz np. w Wikipedii. Są to \(\displaystyle{ 1,x,x^2-\frac{1}{3}}\). Policz \(\displaystyle{ \lambda_0,\lambda_1,\lambda_2}\).

diabolox
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 14 paź 2017, o 18:44
Płeć: Mężczyzna
Lokalizacja: Gdzieśtam
Podziękował: 1 raz

Re: Aproksymacja danej funkcji f(x) w przestrzeni Hilberta

Post autor: diabolox » 15 paź 2017, o 02:07

Rozumiem, tak właśnie to wykonywałem. Jednakże trochę niezbyt doprecyzowałem swój problem, rozpisałem się tak głównie ze względu na niepokój, które wywołało u mnie wyliczenie \(\displaystyle{ \lambda _{0} = 0, \lambda _{2} = 0}\) i zastanawiałem się, czy przypadkiem po drodze nie popełniłem "błędu rozumowania". Ale z tego co widzę (według wyników uzyskanych w zaimplementowanym algorytmie), moje obliczenia powinny być prawidłowe.

ODPOWIEDZ