Interpolació baricèntrica

De testwiki
Salta a la navegació Salta a la cerca

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

Plantilla:Article principal Donat un conjunt de n+1 nodes: Plantilla:Equació i els valors de la funció en aquests mateixos punts: Plantilla:Equació Llavors el polinomi interpolador p(x)n[x] serà: Plantilla:Equació on i(x) representa el cardinal de Lagrange i-èsim: Plantilla:Equació

Polinomi nodal i pesos baricèntrics

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

Primera fórmula baricèntrica

Amb els conceptes que acabem de mostrar, és senzill veure que es compleix: Plantilla:Equació Que si ho substituïm a la forma inicial de Lagrange: Plantilla:Equació Veiem que es pot treure el polinomi nodal fora del sumatori, de manera que obtenim la primera fórmula baricèntrica: Plantilla:Equació

Segona fórmula baricèntrica

Anem a trobar una manera més elegant de presentar l'anterior fórmula. Partim del fet que: Plantilla:Equació Per tant, també veiem que: Plantilla:Equació Dividint la primera fórmula baricèntrica per l'anterior terme i simplificant els polinomis nodals obtenim: Plantilla:Equació 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 {xj}0jn que compleixen: Plantilla:Equació Llavors el pes baricèntric j-èsim serà: Plantilla:Equació De manera que si substituïm a la segona fórmula baricèntrica i simplifiquem trobem que: Plantilla:Equació

Nodes de Txebixev

Plantilla:Article principal 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: Plantilla:Equació Per tant, la segona fórmula baricèntrica es transforma en: Plantilla:Equació

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

% 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

Vegeu també