Escolar Documentos
Profissional Documentos
Cultura Documentos
OBJETIVO.
Se realizar a travs de Matlab un programa para la interpolacin a travs
del mtodo diferencias divididas de Newton.
INTRODUCCIN.
Esta es una manera diferente de hacer los clculos para la interpolacin
polinmica. En la interpolacin de Lagrange se construye explcitamente p, es
decir, se conocen sus coeficientes. Por medio de las diferencias divididas no se
tiene explcitamente el polinomio, pero se puede obtener fcilmente el valor p(x)
para cualquier x.
Para poder construir el polinomio se necesitan los siguientes coeficientes
b0(x) = f(x0),
b1(x) = f[x1, x0],
b2(x) = f[x2, x1, x0],
b3(x) = f[x3, x2, x1, x0],
Diagrama de flujo
EJEMPLO NUMERICO
Calcular la tabla de diferencias divididas finitas con los siguientes datos:
Ejemplo de aplicacin
El pentxido de dinitrgeno gaseoso puro reacciona en un reactor intermitente
segn
la
reaccin
estequiomtrica
N2O5
2N2O4+O2
Calculamos
la
Polinomio de interpolacin
5.5-0.0023*(x-0)-2.75e-06*(x-0).*(x-200)+3.4103e-09*(x-0).*(x-200).*(x-400)7.7219e-13*(x-0).*(x-200).*(x-400).*(x-650)-5.6215e-16*(x-0).*(x-200).*(x400).*(x-650).*(x-1100)+6.045e-19*(x-0).*(x-200).*(x-400).*(x-650).*(x1100).*(x-1900)
X interpolado en s=2100
Y (2100)= 0.894958
CODIGO.
% Polinomio de Interpolacin de Newton por Diferencias Divididas
clear
clc
% Entrada de Datos
x=[ 0.3 0.6 0.9 1.2 1.5];
y=[-3
0
6
9 -12 ];
%Cuerpo del programa
xa=x;
ya=y;
% Formacion de las Diferencias Divididas
d=zeros(length(y));
d(:,1)=y';
for k=2:length(x)
for j=1:length(x)+1-k
d(j,k)=(d(j+1,k-1)-d(j,k-1))/(x(j+k-1)-x(j))
end
end
% Formacin del Polinomio
for w=1:length(x)
ds=num2str(abs(d(1,w)));
if w>1
if x(w-1)<0
sg1='+';
else
sg1='-';
end
end
if d(1,w)<0
sg2='-';
else
sg2='+';
end
if w==1
acum=num2str(d(1,1));
elseif w==2
polact=['(x' sg1 num2str(abs(x(w-1))) ')' ];
actual=[ds '*' polact];
acum=[acum sg2 actual];
else
polact=[polact '.*' '(x' sg1 num2str(abs(x(w-1))) ')' ];
actual=[ds '*' polact];
acum=[acum sg2 actual];
end
end
% Presentacion de Resultados
fprintf('Valores de X y Y \n');
datos=[xa' ya']
fprintf('\n Polinomio interpolacin Newton : %s \n',acum);
x=input(' X interp = ');
if x>max(xa)|x<min(xa)
fprintf('t Punto fuera de rango. El resultado puede ser equivocado
n');
end
xinterp=x;
yinterp=eval(acum);
fprintf(' Y(%g) = %g n',x,yinterp);
% Grafica de los Puntos
fprintf(' Pulse cualquier tecla para ver la grafica de los puntos n');
pause
xg=linspace(min(xa),max(xa));
x=xg;yg=eval(acum);
plot(xg,yg,xa,ya,'.r',xinterp,yinterp,'or');
grid
CONCLUSIN.
El mtodo de interpolacin por diferencias divididas de Newton es el que
ms me parece apropiado para la hacer una interpolacin ya que es ms exacto
que el de Lagrange.