Interpolare polinomială

În analiză numerică,interpolarea polinomială este o tehnică de interpolare a unui set de date sau a unei funcții printr-un polinom. Cu alte cuvinte, dat un set de puncte (obținut, de exemplu, ca urmare a unui experiment), vom căuta un polinom care trece prin toate aceste puncte, și, eventual, verificați pentru alte condiții, dacă este posibil, gradul cel mai mic.

Definiție

  • Având un set de n +1 puncte, (xi,yi) (xi diferite între ele), găsim un polinom P (cu coeficienți reali) de grad cel mult n, care satisface:
p ( x i ) = y i  ,  i = 0 , , n {\displaystyle p(x_{i})=y_{i}{\mbox{ , }}i=0,\ldots ,n}

Se demonstrează că există un singur polinom de grad cel mult n care trece prin cele n puncte.

Construcția polinomului de interpolare

Punctele roșii corespund punctelor (xk,yk), iar curba albastră reprezintă polinomului de interpolare.
Punctele roșii indică punctele de date (xk,yk), în timp ce curba albastră arată polinomul de interpolare.

Să presupunem că polinomul de interpolare este dat de:

p ( x ) = a n x n + a n 1 x n 1 + + a 2 x 2 + a 1 x + a 0 . ( 1 ) {\displaystyle p(x)=a_{n}x^{n}+a_{n-1}x^{n-1}+\cdots +a_{2}x^{2}+a_{1}x+a_{0}.\qquad (1)}

unde p trebuie să verifice:

p ( x i ) = y i , i { 0 , 1 , , n } . {\displaystyle p(x_{i})=y_{i},\qquad \forall i\in \left\{0,1,\dots ,n\right\}.}

astfel încât să treacă prin setul de puncte de interpolat. Afirmația că p interpolează punctele de date înseamnă că

p ( x i ) = y i for all  i { 0 , 1 , , n } . {\displaystyle p(x_{i})=y_{i}\qquad {\mbox{for all }}i\in \left\{0,1,\dots ,n\right\}.}

Dacă înlocuim ecuația (1), în aici, avem un sistem de ecuații liniare din coeficienții a k {\displaystyle a_{k}} .

Sistemul în forma matrice-vector este

[ x 0 n x 0 n 1 x 0 n 2 x 0 1 x 1 n x 1 n 1 x 1 n 2 x 1 1 x n n x n n 1 x n n 2 x n 1 ] [ a n a n 1 a 0 ] = [ y 0 y 1 y n ] . {\displaystyle {\begin{bmatrix}x_{0}^{n}&x_{0}^{n-1}&x_{0}^{n-2}&\ldots &x_{0}&1\\x_{1}^{n}&x_{1}^{n-1}&x_{1}^{n-2}&\ldots &x_{1}&1\\\vdots &\vdots &\vdots &&\vdots &\vdots \\x_{n}^{n}&x_{n}^{n-1}&x_{n}^{n-2}&\ldots &x_{n}&1\end{bmatrix}}{\begin{bmatrix}a_{n}\\a_{n-1}\\\vdots \\a_{0}\end{bmatrix}}={\begin{bmatrix}y_{0}\\y_{1}\\\vdots \\y_{n}\end{bmatrix}}.}

Trebuie să rezolvăm acest sistem pentru a k {\displaystyle a_{k}} pentru a construi interpolant p ( x ) . {\displaystyle p(x).} Matricea a k {\displaystyle a_{k}} este o matrice Vandermonde.

Determinantul său este diferit de zero, ceea ce demonstrează că polinomul de interpolare există și este unic.

Rangul matricii Vandermonde poate fi mare [1], ceea ce cauzează erori mari la calculul coeficienților a i {\displaystyle a_{i}} în cazul în care sistemul de ecuații este rezolvat cu ajutorul metodei de eliminare Gauss.

Unicitatea polinomului de interpolare

Având în vedere matricea Vandermonde folosit de mai sus pentru a construi interpolant, putem scrie sistemul sub forma

V a = y {\displaystyle Va=y\,}

Pentru a dovedi că V este matrice inversabilă, vom folosi formula determinantului Vandermonde:

det ( V ) = i , j = 0 , i < j n ( x i x j ) {\displaystyle \det(V)=\prod _{i,j=0,i<j}^{n}(x_{i}-x_{j})}

Deoarece cele n + 1 puncte sunt distincte, determinantul nu poate fi zero, deoarece x i x j {\displaystyle x_{i}-x_{j}} nu este niciodată la zero, prin urmare V este nesingulară și sistemul are o soluție unică.

Eroarea de interpolare

Dacă f {\displaystyle f} este de n + 1 {\displaystyle n+1} ori derivabilă pe intervalul I = [ min ( x 0 , . . . x n , x ) , max ( x 0 , . . . x n , x ) ] {\displaystyle I=[\min(x_{0},...x_{n},x),\max(x_{0},...x_{n},x)]\,} , iar p n ( x ) {\displaystyle p_{n}(x)} este un polinom de grad cel mult n care interpolează f în n + 1 puncte distincte {xi} (i=0,1,...,n) în acel interval, atunci

f ( x ) p n ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! i = 0 n ( x x i ) {\displaystyle f(x)-p_{n}(x)={\frac {f^{(n+1)}(\xi )}{(n+1)!}}\prod _{i=0}^{n}(x-x_{i})} cu ξ {\displaystyle \xi } în I.

Această formulă este demonstrată prin aplicarea iterativă a teoremei lui Rolle pe subintervalele [ x i 1 , x i ] {\displaystyle [x_{i-1},x_{i}]\,} .

Pentru fiecare x în intervalul de definiție există ξ {\displaystyle \xi } în acel interval astfel încât

f ( x ) p n ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! i = 0 n ( x x i ) {\displaystyle f(x)-p_{n}(x)={\frac {f^{(n+1)}(\xi )}{(n+1)!}}\prod _{i=0}^{n}(x-x_{i})}

Să notăm termenul de eroare cu R n ( x ) = f ( x ) p n ( x ) {\displaystyle R_{n}(x)=f(x)-p_{n}(x)} și considerăm o funcție auxiliară Y ( t ) = R n ( t ) R n ( x ) W ( x )   W ( t ) {\displaystyle Y(t)=R_{n}(t)-{\frac {R_{n}(x)}{W(x)}}\ W(t)} unde W ( t ) = i = 0 n ( t x i ) {\displaystyle W(t)=\prod _{i=0}^{n}(t-x_{i})} și W ( x ) = i = 0 n ( x x i ) {\displaystyle W(x)=\prod _{i=0}^{n}(x-x_{i})} Deoarece x i {\displaystyle x_{i}} sunt rădăcinile funcției f p n {\displaystyle f-p_{n}} , vom avea Y ( x ) = R n ( x ) R n ( x ) W ( x )   W ( x ) = 0 {\displaystyle Y(x)=R_{n}(x)-{\frac {R_{n}(x)}{W(x)}}\ W(x)=0} și Y ( x i ) = R n ( x i ) R n ( x ) W ( x )   W ( x i ) = 0 {\displaystyle Y(x_{i})=R_{n}(x_{i})-{\frac {R_{n}(x)}{W(x)}}\ W(x_{i})=0} Atunci Y ( t ) {\displaystyle Y(t)} are n +2 rădăcini. Din teorema lui Rolle, Y ( t ) {\displaystyle Y^{\prime }(t)} are n +1 rădăcini, apoi Y ( n + 1 ) ( t ) {\displaystyle Y^{(n+1)}(t)} are o rădăcină ξ {\displaystyle \xi } , unde ξ {\displaystyle \xi } este în intervalul I. Astfel încât să putem obține Y ( n + 1 ) ( t ) = R n ( n + 1 ) ( t ) R n ( x ) W ( x )   ( n + 1 ) ! {\displaystyle Y^{(n+1)}(t)=R_{n}^{(n+1)}(t)-{\frac {R_{n}(x)}{W(x)}}\ (n+1)!}

Deoarece p n ( x ) {\displaystyle p_{n}(x)} este un polinom de grad cel mult n, atunci R n ( n + 1 ) ( t ) = f ( n + 1 ) ( t ) {\displaystyle R_{n}^{(n+1)}(t)=f^{(n+1)}(t)} Astfel Y ( n + 1 ) ( t ) = f ( n + 1 ) ( t ) R n ( x ) W ( x )   ( n + 1 ) ! {\displaystyle Y^{(n+1)}(t)=f^{(n+1)}(t)-{\frac {R_{n}(x)}{W(x)}}\ (n+1)!}

Deoarece ξ {\displaystyle \xi } este rădăcina lui Y ( n + 1 ) ( t ) {\displaystyle Y^{(n+1)}(t)} , atunci Y ( n + 1 ) ( ξ ) = f ( n + 1 ) ( ξ ) R n ( x ) W ( x )   ( n + 1 ) ! = 0 {\displaystyle Y^{(n+1)}(\xi )=f^{(n+1)}(\xi )-{\frac {R_{n}(x)}{W(x)}}\ (n+1)!=0}

Prin urmare: R n ( x ) = f ( x ) p n ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! i = 0 n ( x x i ) {\displaystyle R_{n}(x)=f(x)-p_{n}(x)={\frac {f^{(n+1)}(\xi )}{(n+1)!}}\prod _{i=0}^{n}(x-x_{i})} .

În cazul nodurilor de interpolare la distanțe egale x i = x 0 + i h {\displaystyle x_{i}=x_{0}+ih} , rezultă că eroarea de interpolare este O ( h n + 1 ) {\displaystyle (h^{n+1})} .

În cazul particular x i = x 0 + i h {\displaystyle x_{i}=x_{0}+ih\,} (puncte distribuite uniform), apare de obicei o eroare foarte mare de interpolare, cunoscută sub numele de fenomenul Runge, atunci când crește numărul de puncte pentru un interval [ x 0 , x n ] {\displaystyle [x_{0},x_{n}]\,} dat.

Note

  1. ^ Gautschi, Walter (). „Norm Estimates for Inverses of Vandermonde Matrices”. Numerische Mathematik. 23 (4): 337–347. doi:10.1007/BF01438260. 

Bibliografie

  • Constantin Ilioi, Probleme de optimizare și algoritmi de aproximare a soluțiilor, Editura Academiei Republicii Socialiste România, București, 1980.
  • www.utgjiu.ro/math/mbuneci/book/mn2009.pdf/ Metode numerice - Aspecte teoretice și practice, Mădălina Roxana Buneci, Editura Academică Brâncuși, Târgu Jiu, 2009
  • http://cs.upm.ro/~bela.finta/.files/carti/Numerika.pdf Arhivat în , la Wayback Machine.
  • www.vpetrehus.home.ro/Lectii_AN.pdf/ Lecții de analiză numerică, Viorel Petrehus, Universitatea Tehnică de Construcții București, 2010

Legături externe

Portal icon Portal Matematică
  • www.utgjiu.ro/math/mbuneci/book/mn2009.pdf
  • http://cs.upm.ro/~bela.finta/.files/carti/Numerika.pdf Arhivat în , la Wayback Machine.