Vés al contingut

Interpolació baricèntrica

De la Viquipèdia, l'enciclopèdia lliure

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]