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 modifica

Donat un conjunt de n+1 nodes:

 

i els valors de la funció en aquests mateixos punts:

 

Llavors el polinomi interpolador   serà:

 

on   representa el cardinal de Lagrange i-èsim:

 

Polinomi nodal i pesos baricèntrics modifica

Definim el polinomi nodal com:

 

Per altra banda, definim el pes baricèntric j-èsim d'una interpolació com:

 

Primera fórmula baricèntrica modifica

Amb els conceptes que acabem de mostrar, és senzill veure que es compleix:

 

Que si ho substituïm a la forma inicial de Lagrange:

 

Veiem que es pot treure el polinomi nodal fora del sumatori, de manera que obtenim la primera fórmula baricèntrica:

 

Segona fórmula baricèntrica modifica

Anem a trobar una manera més elegant de presentar l'anterior fórmula. Partim del fet que:

 

Per tant també veiem que:

 

Dividint la primera fórmula baricèntrica per l'anterior terme i simplificant els polinomis nodals obtenim:

 

Que és l'anomenada segona fórmula baricèntrica.

Avantatges del mètode modifica

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   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 modifica

Nodes equiespaiats modifica

En aquest cas volem interpolar una funció en un interval   i tenim un conjunt de n+1 nodes   que compleixen:

 

Llavors el pes baricèntric j-èsim serà:

 

De manera que si substituïm a la segona fórmula baricèntrica i simplifiquem trobem que:

 

Nodes de Txebixev modifica

Ara volem interpolar la funció en l'interval   (fent un canvi de variable en la funció si fa falta). Si seguim la mateixa notació que en l'apartat anterior, tenim que:

 

Per tant la segona fórmula baricèntrica es transforma en:

 

Codi Matlab modifica

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').

% Interpolació baricèntrica

function ff = inter_bar(x,f,xx)

N = length(x); % Nodes
M = length(xx); % Malla

% Iniciem variables
w = zeros(1,N); % Pesos baricèntrics
ff = zeros(1,M); % Funció interpolada

% Calculem els pesos baricèntrics
for ii = 1:N
 w(ii) = 1./prod(x(ii) - x([1:ii-1 ii+1:end]));
end

% Trobem la funció interpolada en la malla
for ii = 1:M
 aux = w./(xx(ii)-x);
 ff(ii) = sum(f.*aux)/sum(aux);
end
end

Referències modifica

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

Vegeu també modifica