Aproksymacja wielomianowa

Przykładowe wielomiany różnych stopni

Aproksymacja wielomianowa – metoda aproksymacji polegająca na przybliżeniu funkcji za pomocą wielomianu.

Sformułowanie problemu

Wiemy, że dla pewnego zbioru punktów x 0 , x 1 , , x n {\displaystyle x_{0},x_{1},\dots ,x_{n}} funkcja przyjmuje wartości y 0 , y 1 , , y n . {\displaystyle y_{0},y_{1},\dots ,y_{n}.} Naszym celem jest znalezienie wielomianu w postaci[1]:

F ( x ) = a 0 + a 1 x + a 2 x 2 + + a m x m , {\displaystyle F(x)=a_{0}+a_{1}x+a_{2}x^{2}+\dots +a_{m}x^{m},}
F ( x ) = i = 0 m a i x i {\displaystyle F(x)=\sum \limits _{i=0}^{m}a_{i}x^{i}}

takiego, aby przybliżenie funkcji w punktach x 0 , x 1 , , x n {\displaystyle x_{0},x_{1},\dots ,x_{n}} było jak najlepsze. Funkcję oceny jakości wielomianu można zdefiniować w różny sposób, często stosowane kryteria to[2]:

  • maksymalna różnica ( | F ( x ) y | ) {\displaystyle (|F(x)-y|)} powinna być jak najmniejsza (aproksymacja jednostajna),
  • suma wartości bezwzględnych różnic powinna być jak najmniejsza,
  • suma kwadratów różnic powinna być jak najmniejsza (aproksymacja średniokwadratowa).

Aproksymacja wielomianowa średniokwadratowa

W aproksymacji średniokwadratowej wielomianowej funkcja błędu jest zdefiniowana następująco:

H ( a 0 , a 1 , , a m ) = j = 0 n w ( x j ) ( y j i = 0 m a i x j i ) 2 . {\displaystyle H(a_{0},a_{1},\dots ,a_{m})=\sum \limits _{j=0}^{n}w(x_{j})(y_{j}-\sum \limits _{i=0}^{m}a_{i}x_{j}^{i})^{2}.}

Współczynnik w ( x j ) {\displaystyle w(x_{j})} jest ustaloną funkcją wagową. Najczęściej przyjmuje się, że funkcja wagowa zawsze przyjmuje wartość 1 – wówczas możemy ten czynnik pominąć[3].

Funkcja ta osiąga minimum w punkcie, w którym pochodne cząstkowe względem współczynników a 0 , a 1 , , a m {\displaystyle a_{0},a_{1},\dots ,a_{m}} są równe zero. W celu znalezienia tego minimum należy rozwiązać zatem układ równań[3]:

H a 0 = 0 H a 1 = 0 H a m = 0 {\displaystyle {\begin{matrix}{\frac {\partial H}{\partial a_{0}}}=0\\{\frac {\partial H}{\partial a_{1}}}=0\\\dots \\{\frac {\partial H}{\partial a_{m}}}=0\end{matrix}}}

Po przekształceniach układ ten można sprowadzić do postaci[4]:

a 0 ( n + 1 ) + a 1 j = 0 n x j + + a m j = 0 n x j m = j = 0 n y j a 0 j = 0 n x j + a 1 j = 0 n x j 2 + + a m j = 0 n x j m + 1 = j = 0 n y j x j a 0 j = 0 n x j m + a 1 j = 0 n x j m + 1 + + a m j = 0 n x j 2 m = j = 0 n y j x j m {\displaystyle {\begin{matrix}a_{0}(n+1)&+&a_{1}\sum \limits _{j=0}^{n}x_{j}&+&\dots &+&a_{m}\sum \limits _{j=0}^{n}x_{j}^{m}&=&\sum \limits _{j=0}^{n}y_{j}\\a_{0}\sum \limits _{j=0}^{n}x_{j}&+&a_{1}\sum \limits _{j=0}^{n}x_{j}^{2}&+&\dots &+&a_{m}\sum \limits _{j=0}^{n}x_{j}^{m+1}&=&\sum \limits _{j=0}^{n}y_{j}x_{j}\\\dots &&\dots &&\dots &&\dots &&\dots \\a_{0}\sum \limits _{j=0}^{n}x_{j}^{m}&+&a_{1}\sum \limits _{j=0}^{n}x_{j}^{m+1}&+&\dots &+&a_{m}\sum \limits _{j=0}^{n}x_{j}^{2m}&=&\sum \limits _{j=0}^{n}y_{j}x_{j}^{m}\end{matrix}}}

Układ ten można rozwiązać, stosując np. wzory Cramera lub metodę Gaussa-Seidla.

Stopień wielomianu

Liczba współczynników wielomianu powinna być mniejsza od liczby punktów, które ma przybliżać funkcja ( m < n ) . {\displaystyle (m<n).} Dla m = n {\displaystyle m=n} zawsze jest możliwe wyznaczenie wielomianu przechodzącego dokładnie przez podane punkty – wówczas problem sprowadza się do interpolacji wielomianowej[4].

Przypisy

Bibliografia

  • Beata Pańczyk, Edyta Łukasik, Jan Sikora, Teresa Guziak: Metody numeryczne w przykładach. Lublin: Politechnika Lubelska, 2012. ISBN 978-83-63569-14-3.