Lagrangeov polynóm

**Lagrangeov polynóm**, pomenovaný podľa Josepha Louisa Lagrangea, je v numerickej matematike interpolujúci polynóm pre danú množinu bodov v **Lagrangeovom tvare**. V roku 1779 ho objavil Edward Waring a v roku 1783 ho znovuobjavil Leonhard Euler.

Je povšimnutia hodné, že pre danú množinu bodov existuje len jeden polynóm (najmenšieho možného stupňa), ktorý interpoluje dané body. Preto je správnejšie o Lagrangeovom polynóme hovoriť ako o *Lagrangeovom tvare interpolujúceho polynómu,* než o *Lagrangeovom interpolujúcom polynóme*.

thumb| Na obrázku je kubický Lagrangeov interpolujúci polynóm <span style="color:#000000">''L''(''x'')</span> (zobrazený čiernou farbou) pre body <span style="color:#b30000">(−9,&nbsp;5)</span>, <span style="color:#0000b3">(−4,&nbsp;2)</span>, <span style="color:#00b300">(−1,&nbsp;−2)</span> a <span style="color:#b3b300">(7,&nbsp;9)</span>. Tento polynóm je súčtom konštantných faktorov bázických polynómov <span style="color:#b30000">y<sub>0</sub>''ℓ''<sub>0</sub>(''x'')</span>, <span style="color:#0000b3">y<sub>1</sub>''ℓ''<sub>1</sub>(''x'')</span>, <span style="color:#00b300">y<sub>2</sub>''ℓ''<sub>2</sub>(''x'')</span> a <span style="color:#b3b300">y<sub>3</sub>''ℓ''<sub>3</sub>(''x'')</span>. Interpolujúci polynóm prechádza cez všetky štyri body, každý z bázických polynómov prechádza jedným z daných bodov a na ''x''-ových súradniciach daných ostatnými bodmi má hodnotu 0.

## Definícia
Nech je daná množina *k*&nbsp;+&nbsp;1 bodov

:(x_0, y_0),\ldots,(x_j, y_j),\ldots,(x_k, y_k)

kde žiadne dve hodnoty x_j nie sú rovnaké. Potom **interpolujúci polynóm v Lagrangeovom tvare** pre túto množinu bodov je lineárna kombinácia

:L(x) := \sum_{j=0}^{k} y_j \ell_j(x)

Lagrangeových bázických polynómov

:\ell_j(x) := \prod_{f=0,\, f\neq j}^{k} \frac{x-x_f}{x_j-x_f} = \frac{(x-x_0)}{(x_j-x_0)} \cdots \frac{(x-x_{j-1})}{(x_j-x_{j-1})} \frac{(x-x_{j+1})}{(x_j-x_{j+1})} \cdots \frac{(x-x_{k})}{(x_j-x_{k})}.

Je povšimnutia hodné, že za predpokladu, že žiadne dve hodnoty x_i nie sú rovnaké (a to ani nemôžu byť, keďže by daná úloha nedávala zmysel), platí x_j - x_f \neq 0, čiže daný výraz je vždy dobre definovaný.

## Dôkaz

Aby funkcia *L*(*x*) naozaj bola hľadaným interpolujúcim polynómom, musí platiť, že je to polynóm najviac *k* teho stupňa, pričom pre každé 0 \leq j \leq k  musí platiť L(x_j) = y_j.

Ak toto tvrdenie platí pre všetky *j*, hovoríme, že daný polynóm je riešením interpolačného problému. 

Dokážeme teda dané tvrdenie:
# Vo výraze \ell_j(x) je *k* členov súčinu, pričom každý člen obsahuje práve *x* práve raz, teda *L*(*x*) (ktorý je tým pádom súčtom polynómov *k*-teho stupňa) musí byť tiež polynóm *k*-teho stupňa.
# \ell_j(x_i)= \prod_{f=0,\, f\neq j}^{k} \frac{x_i-x_f}{x_j-x_f}
Skúmajme teraz, čo sa stane, ak rozvinime tento súčin. Keďže súčin vynecháva hodnotu f = j, ak i = j, tak všetky členy sú rovné \frac{x_j-x_f}{x_j-x_f} = 1 (lebo stále platí x_j \neq x_f). Ak i \neq j, jeden z členov súčinu, konkrétne ten, pre ktorý platí f=i, bude mať hodnotu \frac{x_i-x_i}{x_j-x_i} = 0, a teda vynuluje celý súčin. Čiže platí
: \ell_j(x_i)
 = \left\{\begin{matrix} 
1, & \mbox{ak } j=i   \\ 
0, & \mbox{ak } j \ne i   \end{matrix}\right.
= \delta_{ji}


kde \delta_{ij} je Kroneckerov symbol. Teda:

:L(x_i) = \sum_{j=0}^{k} y_j \ell_j(x_i) = \sum_{j=0}^{k} y_j \delta_{ji} = y_i.

To ale znamená, že *L*(*x*) je polynóm stupňa najviac *k*, pričom platí L(x_i) = y_i.
Navyše, takýto interpolujúci polynóm je určený jednoznačne.

## Zdroj

## Externé odkazy
* Článok na ALGLIB o polynomiálnej interpolácii s implementáciami metódy v jazykoch C++, C#, VBA a Pascal .
* Článok o Lagrangeových polynómoch na Wolfram MathWorld .
* Rôzne materiály  k Lagrangeovej interpolácii .

Kategória:Numerická matematika
Kategória:Matematická analýza