Você está na página 1de 8

MTODO DE DIFERENCIAS DIVIDIDAS DE NEWTON

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],

bn(x) = f[xn, , x0],


y el polinomio queda de la siguiente manera
f x b0 b1 x x0 b2 x x0 x x1 bn x x0 x x1 x xn 1
Para calcular los coeficientes

b0 , b1 ,, bn , es conveniente construir una

tabla de diferencias divididas como la siguiente:

Diagrama de flujo

EJEMPLO NUMERICO
Calcular la tabla de diferencias divididas finitas con los siguientes datos:

Y utilizar la informacin de dicha tabla, para construir el polinomio de


interpolacin de Newton.
Solucin.
Procedemos como sigue:

Por lo tanto el polinomio de interpolacin de Newton es:


f ( x) 4 2( x 2) 0.25( x 2)( x 1) 0.3( x 2)( x 1)( x 2)

Ejemplo de aplicacin
El pentxido de dinitrgeno gaseoso puro reacciona en un reactor intermitente
segn

la

reaccin

estequiomtrica

N2O5

2N2O4+O2

Calculamos

la

concentracinde pentxido de dinitrgeno existente en ciertos instantes,


obteniendo los siguientes datos

Si lo tenemos en el reactor un tiempo mximo de 35 minutos ( 2100


segundos), cul es la concentracin de pentxido de dinitrgeno que queda
sin reaccionar?

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

Corrida del programa

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.

Você também pode gostar