Lagrangeova interpolace

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Příklad užití Lagrangeova polynomu pro interpolaci čtyř bodů

Chceme-li interpolovat funkci, která je dána svými hodnotami v n+1 bodech x_i, i = 0, 1, ..., n (body x_i nazýváme uzly interpolace), a tedy požadujeme, aby hledaná funkce procházela zadanými body, můžeme použít interpolaci Lagrangeovým interpolačním polynomem. Interpolační funkce nám potom poslouží k získání polynomu procházejícím všemi body na intervalu <x_0, x_n>.

Máme-li zadány hodnoty funkce f v n+1 různých bodech, tzn. máme zadáno n+1 tzv. interpolačních podmínek pro polynom, je zřejmé, že stupeň hledaného polynomu bude n. Lze ukázat, že mezi všemi polynomy nejvýše n-tého stupně existuje právě jeden, který je interpolačním polynomem pro zadanou funkci. Pro určení interpolačního polynomu existuje několik postupů, ale je třeba si uvědomit, že pro zadanou funkci všechny postupy určí stejný polynom.

Langrangeův interpolační polynom je jedním ze známějších a také snadných způsobů interpolace funkce zadané pouze v diskrétních bodech. Nechť tedy máme dáno n+1 bodů, přes které funkce prochází. Pak můžeme pomocí rovnice popsané ve Wikiknihách nalézt interpolační funkci, která se původní rovnici snaží co nejvíce přiblížit.

Konstrukce Lagrangeova interpolačního polynomu[1][editovat | editovat zdroj]

Známe-li (n+1) uzlových bodů x_0 \cdots x_n a jim odpovídající funkční hodnoty f(x_0) \cdots f(x_n), sestavíme Lagrangeův interpolační polynom L_n(x) n-tého řádu následovně:

L_n(x) = P_1(x) + \cdots + P_n(x) = f(x_0) \ell_0(x) + \cdots + f(x_n) \ell_n(x),

kde P_i(x) jsou pomocné polynomy a pro \ell_i(x) platí:

\ell_i(x_j) = \begin{cases} 
1 & \text{pro } i=j   \\ 
0 & \text{pro } i \ne j \end{cases}

Tyto podmínky splňuje polynom:

\ell_i(x) = \prod_{\begin{smallmatrix}0\le m\le n\\ m\neq i\end{smallmatrix}} \frac{x-x_m}{x_i-x_m} = \frac{(x-x_0)}{(x_i-x_0)} \cdots \frac{(x-x_{i-1})}{(x_i-x_{i-1})} \frac{(x-x_{i+1})}{(x_i-x_{i+1})} \cdots \frac{(x-x_n)}{(x_i-x_n)}

Ukázka konstrukce interpolačního polynomu[2][editovat | editovat zdroj]

Příklad Lagrangeova polynomu (popis zde)

Obrázek vpravo ukazuje příklad konstrukce interpolačního polynomu L_3(x). Známé body interpolované funkce [x_i,f(x_i)], kde i nabývá celočíselných hodnot od 0 do 3, nazýváme řídící body (barevné kružnice na obrázku). Cílem interpolace je, aby výsledná funkce (polynom) L_3(x) procházela všemi řídícími body.

Pomocné polynomy P_i(x) = f(x_i) \ell_i (x) (barevné křivky na obrázku) prochází svými příslušnými řídícími body a v ostatních řídících bodech [x_j,f(x_j)], (j \ne i) je jejich hodnota nulová. Lze je sestavit podle výše uvedených vzorců. Tedy:

L_3(x) = 
 f(x_0) \frac{(x-x_1)}{(x_0-x_1)} \frac{(x-x_2)}{(x_0-x_2)} \frac{(x-x_3)}{(x_0-x_3)} +
 f(x_1) \frac{(x-x_0)}{(x_1-x_0)} \frac{(x-x_2)}{(x_1-x_2)} \frac{(x-x_3)}{(x_1-x_3)} +


 + f(x_2) \frac{(x-x_0)}{(x_2-x_0)} \frac{(x-x_1)}{(x_2-x_1)} \frac{(x-x_3)}{(x_2-x_3)} +
 f(x_3) \frac{(x-x_0)}{(x_3-x_0)} \frac{(x-x_1)}{(x_3-x_1)} \frac{(x-x_2)}{(x_3-x_2)}

Součtem všech pomocných polynomů tak vzniká polynom procházející všemi řídícími body L_3(x) (černá křivka na obrázku).

U polynomů vyšších řádů je výše popsaný postup časově náročný. Proto se využívá rovnosti L_n(x) = a_0+a_1x^1 + \cdots + a_nx^n = \sum_{i=0}^n a_ix^i = f(x) ke konstrukci matice  \Lambda typu n \times n, jejíž řádky reprezentují lagrangeův polynom n-tého stupně vyčíslený v bodech [x_i,f(x_i)]. Vektor pravých stran je identickým se sloupcovým vektorem \vec{f}(x_i).


 \Lambda = \begin{pmatrix} a_0 & a_1x_1 & a_2x_1^2  &\cdots & a_nx_1^n \\
\vdots & \vdots & \vdots & \ddots & \vdots\\
a_0 & a_1x_i & a_2x_i^2  & \cdots & a_nx_i^n \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
a_0 & a_1x_n & a_2x_n^2  & \cdots & a_nx_n^n \\
\end{pmatrix}
, \vec{f}(x_i) =  \begin{pmatrix} f(x_0) \\
\vdots \\
f(x_i) \\
\vdots \\
f(x_n) \\
\end{pmatrix}


Neznámé konstanty a_0, a_1, \cdots ,a_n pak nalezneme některou z metod řešení matic (např. Gaussovou eliminační metodou, vynásobením inverzní matice  \Lambda^{-1} zprava vektorem pravých stran \vec{f}(x_i), apod.).

Související články[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

  1. RNDr. Břetislav Fajmon, Ph.D.; Mgr. Irena Růžičková. Matematika 3. [s.l.] : [s.n.]. Dostupné online. Kapitola 6.1.2, s. 62.  
  2. Wikipedia: Lagrange polynomial [online]. [cit. 2012-10-05]. Dostupné online. (anglicky) 

Externí odkazy[editovat | editovat zdroj]