# Interpolació baricèntrica

En anàlisi numèrica, la interpolació baricèntrica és una forma d'interpolació que, a partir de la interpolació polinòmica de Lagrange, crea un mètode que permet trobar el polinomi interpolador amb menys operacions que aquest.

## Interpolació polinòmica en forma de Lagrange

Donat un conjunt de n+1 nodes:
   $\{x_{0},x_{1},\ldots ,x_{n}\}$
i els valors de la funció en aquests mateixos punts:
   $\{f_{0},f_{1},\ldots ,f_{n}\}$
Llavors el polinomi interpolador $\,p(x)\in \mathbb {R} _{n}[x]$ serà:
   $p(x)=\sum _{i=0}^{n}f_{i}\ell _{i}(x)$
on $\ell _{i}(x)$ representa el cardinal de Lagrange i-èsim:
   $\ell _{i}(x)=\prod _{\begin{smallmatrix}j=0\\j\neq i\end{smallmatrix}}^{n}{\frac {(x-x_{j})}{(x_{i}-x_{j})}}$

## Polinomi nodal i pesos baricèntrics

Definim el polinomi nodal com:
   $\ell (x)=(x-x_{0})\cdot (x-x_{1})\cdot \ldots \cdot (x-x_{n})=\prod _{i=0}^{n}(x-x_{i})$
Per altra banda, definim el pes baricèntric j-èsim d'una interpolació com:
   $w_{j}=\prod _{i\neq j}{\frac {1}{x_{j}-x_{i}}}={\frac {1}{(x_{j}-x_{1})}}\ldots {\frac {1}{(x_{j}-x_{j-1})}}{\frac {1}{(x_{j}-x_{j+1})}}\ldots {\frac {1}{(x_{j}-x_{n})}}$

## Primera fórmula baricèntrica

Amb els conceptes que acabem de mostrar, és senzill veure que es compleix:
   $\ell _{j}(x)=\ell (x){\frac {w_{j}}{x-x_{j}}}$
Que si ho substituïm a la forma inicial de Lagrange:
   $p(x)=\sum _{j=0}^{n}\ell (x){\frac {w_{j}}{x-x_{j}}}f_{j}$
Veiem que es pot treure el polinomi nodal fora del sumatori, de manera que obtenim la primera fórmula baricèntrica:
   $p(x)=\ell (x)\sum _{j=0}^{n}{\frac {w_{j}}{x-x_{j}}}f_{j}$

## Segona fórmula baricèntrica

Anem a trobar una manera més elegant de presentar l'anterior fórmula. Partim del fet que:
   $\sum \ell _{j}(x)=1$
Per tant, també veiem que:
   $\ell (x)\sum {\frac {w_{j}}{x-x_{j}}}=1$
Dividint la primera fórmula baricèntrica per l'anterior terme i simplificant els polinomis nodals obtenim:
   $p(x)={\frac {\sum _{j=0}^{n}w_{j}f_{j}(x-x_{j})^{-1}}{\sum _{j=0}^{n}w_{j}(x-x_{j})^{-1}}}$
Que és l'anomenada segona fórmula baricèntrica.

## Avantatges del mètode

A vegades la interpolació baricèntrica és també anomenada forma millorada de Lagrange. Això és degut al fet que un cop coneguts els pesos baricèntrics, és possible interpolar qualsevol funció en $\,O(n)$ operacions. A més a més, és possible trobar analíticament fórmules explícites per als nodes distribuïts de maneres molt determinades, com els equiespaiats o els nodes de Chebyshev.
Si el comparem amb la interpolació de Newton, la baricèntrica té l'avantatge que els pesos no depenen de la funció, sinó únicament dels nodes. Això fa que mentre que amb Newton cal començar de nou per cada nova funció, amb la baricèntrica podem interpolar qualsevol funció amb els pesos prèviament calculats.

## Nodes equiespaiats i de Txebixev
### Nodes equiespaiats

En aquest cas volem interpolar una funció en un interval $\,[a,b]$ i tenim un conjunt de n+1 nodes $\,\{x_{j}\}_{0\leq j\leq n}$ que compleixen:
   $x_{j}=a+{\frac {j(b-a)}{n}}$
Llavors el pes baricèntric j-èsim serà:
   $w_{j}=\left({\frac {n}{b-a}}\right)^{n}{\frac {(-1)^{n-j}}{n!}}{n \choose j}$
De manera que si substituïm a la segona fórmula baricèntrica i simplifiquem trobem que:
   $p(x)={\frac {\sum _{j=0}^{n}(-1)^{n-j}f_{j}(x-x_{j})^{-1}{n \choose j}}{\sum _{j=0}^{n}(-1)^{n-j}(x-x_{j})^{-1}{n \choose j}}}$

### Nodes de Txebixev

Ara volem interpolar la funció en l'interval $\,[-1,1]$ (fent un canvi de variable en la funció si fa falta). Si seguim la mateixa notació que en l'apartat anterior, tenim que:
   $w_{j}={\frac {(-1)^{j}2^{n-1}}{n}}\delta _{j},\quad \mathrm {on} \quad \delta _{j}={\begin{cases}1,&{\mbox{si }}j\neq 0,n\\{\frac {1}{2}},&{\mbox{si }}i=0,n\end{cases}}$
Per tant, la segona fórmula baricèntrica es transforma en:
   $p(x)={\frac {\sum _{j=0}^{n}(-1)^{j}\delta _{j}f_{j}(x-x_{j})^{-1}}{\sum _{j=0}^{n}(-1)^{j}\delta _{j}(x-x_{j})^{-1}}}$

## Codi Matlab

Un possible codi Matlab de la interpolació baricèntrica és el següent, que a partir d'uns nodes ('x'), el valor de la funció en els nodes ('f') i una malla fina on volem interpolar la funció ('xx') retorna els valors de la funció interpolada ('ff').

## Referències

* Berrut, Jean-Paul; Lloyd «Barycentric Lagrange Interpolation». Siam Review, 46, 2004 [Consulta: 1r desembre 2011].

## Vegeu també

* Interpolació polinòmica de Lagrange