Está en la página 1de 8

Método de interpolación de Newton

Introducción

Con frecuencia se encontrará con que tiene que estimar valores intermedios entre
datos definidos por puntos. El método más común que se usa para este propósito
es la interpolación polinomial. Existe una gran variedad de formas alternativas
para expresar una interpolación polinomial. El polinomio de interpolación de
Newton en diferencias divididas es una de las formas más populares y útiles.

El método de interpolación polinomial de Newton es una técnica utilizada en


matemáticas y análisis numérico para construir un polinomio que pase a través de
un conjunto de puntos dados. Es una forma de aproximación de una función
desconocida a partir de datos discretos conocidos.

Este método se basa en el polinomio de interpolación de Newton, que se


construye utilizando diferencias divididas. Las diferencias divididas son una forma
sistemática de calcular las diferencias entre los valores de la función en los puntos
de datos.

Una vez que se han calculado las diferencias divididas, se puede construir el
polinomio de interpolación de Newton y utilizarlo para aproximar el valor de la
función en cualquier punto dentro del rango de datos dados.

El método de interpolación polinomial de Newton tiene la ventaja de ser eficiente y


relativamente fácil de implementar. Sin embargo, a medida que se agregan más
puntos de datos, el número de cálculos requeridos aumenta y puede llevar a
errores de redondeo. Además, este método solo proporciona una buena
aproximación dentro del rango de datos utilizados para la interpolación y puede
producir resultados inexactos fuera de ese rango.

Marco teórico

La fórmula general para un polinomio de n-ésimo grado es:

2 n
f ( x )=a0 +a 1 x +a2 x + …+an x … (1 )
Dados n+1 puntos, hay uno y sólo un polinomio de grado n que pasa a través de
todos los puntos. Por ejemplo, hay sólo una línea recta (es decir, un polinomio de
primer grado) que une dos puntos (figura 1a). De manera similar, únicamente una
parábola une un conjunto de tres puntos (figura 1b). La interpolación polinomial
consiste en determinar el
polinomio único de n-ésimo
grado que se ajuste a n+1
puntos. Este polinomio,
entonces, proporciona una
Figura 1: Figura 1: Ejemplos de interpolación polinomial: a) de primer grado fórmula para calcular
(lineal) que une dos puntos, b) de segundo grado (cuadrática o parabólica)
que une tres puntos y c) de tercer grado (cúbica) que une cuatro puntos. valores intermedios.

Interpolación lineal
La forma más simple de interpolación consiste en unir dos puntos con una línea
recta. Dicha técnica, llamada interpolación lineal, se ilustra de manera gráfica en la
figura 2. Utilizando triángulos semejantes:

f 1 ( x )−f ( x 0 ) f ( x 1 )−f ( x 0 )
=
x −x 0 x 1−x 0
reordenando se obtiene

f ( x 1) −f ( x 0 )
f 1 ( x )=f ( x 0 ) + ( x−x 0 ) … ( 2 )
x 1−x 0
que es una fórmula de interpolación lineal. La
notación f 1 ( x) designa que éste es un polinomio de
interpolación de primer grado. En general, cuanto
menor sea el intervalo entre los datos, mejor será
la aproximación. Esto se debe al hecho de que,
Figura 2: Esquema gráfico de la conforme el intervalo disminuye, una función
interpolación lineal. Las áreas sombreadas
indican los triángulos semejantes usados continua estará mejor aproximada por una línea
para obtener la fórmula de la interpolación recta.
lineal

Interpolación cuadrática
Una estrategia para mejorar la estimación consiste en introducir alguna curvatura
a la línea que une los puntos. Si se tienen tres puntos como datos, éstos pueden
ajustarse en un polinomio de segundo grado (también conocido como polinomio
cuadrático o parábola). Una forma particularmente conveniente para ello es
f 2 ( x )=b 0 +b1 ( x−x 0 ) +b 2 ( x−x 0 ) ( x−x 1 ) … ( 3 )

Aunque la ecuación 3 parece diferir del polinomio general [ecuación 1], las dos
ecuaciones son equivalentes. Lo anterior se demuestra al multiplicar los términos
de la ecuación 3:
2
f 2 ( x )=b 0 +b1 x−b1 x 0+ b2 x +b 2 x 0 x1−b2 x x 0−b 2 x x 1

agrupando términos
2
f 2 ( x )=a0 +a1 x+ a2 x

donde
a 0=b 0 – b1 x 0 +b 2 x 0 x1

a 1=b1 – b 2 x 0−b 2 x 1

a 2=b2

Un procedimiento simple puede usarse para determinar los valores de los


coeficientes. Para encontrar b 0, en la ecuación 3 se evalúa con x=x 0 para obtener:
b 0=f ( x 0 ) … ( 4 )

La ecuación 4 se sustituye en la 3, después se evalúa en x=x 1 para obtener


f ( x 1) −f ( x 0 )
b 1= … ( 5)
x 1−x 0

Por último, las ecuaciones 4 y 5 se sustituyen en la 3, después se evalúa en x=x 2


y se resuelve para
f ( x 2 )−f ( x 1 ) f ( x 1) −f (x 0)

x2− x1 x 1−x 0
b 2= … (6 )
x 2−x 0

Observe que, como en el caso de la interpolación lineal, b 1 todavía representa la


pendiente de la línea que une los puntos x 0 y x 1. Así, los primeros dos términos de
la ecuación 3 son equivalentes a la interpolación lineal de x 0 a x 1, como se
especificó antes en la ecuación 2. El último término, b 2( x – x 0 )(x – x 1), determina la
curvatura de segundo grado en la fórmula.
Fórmula general de los polinomios de interpolación de Newton
El análisis anterior puede generalizarse para ajustar un polinomio de n-ésimo
grado a n+1 datos. El polinomio de n-ésimo grado es
f n ( x )=b0 +b 1 ( x−x 0 ) +…+ bn ( x−x 0 ) ( x−x 1 ) … ( x−x n−1) … ( 7 )

Como se hizo antes con las interpolaciones lineales y cuadráticas, los puntos
asociados con datos se utilizan para evaluar los coeficientes b 0 , b 1 , ... ,b n. Para un
polinomio de n-ésimo grado se requieren n+1 puntos:

[ x 0 , f ( x 0 ) ] , [ x1 , f ( x 1 ) ] , … ,[ x n , f (x n)]
Usamos estos datos y las siguientes ecuaciones para evaluar los coeficientes:
b 0=f ( x 0 ) 8
b 1=f [ x 1 , x 0 ] 9
b 2=f [ x 2 , x 1 , x 0 ] 10
.
.
.
11
b n=f [ x n , x n−1 , … , x 1 , x 0 ]

donde las evaluaciones de la función colocadas entre paréntesis son diferencias


divididas finitas. Por ejemplo, la primera diferencia dividida finita en forma general
se representa como:
f ( x i )−f (x j )
f [ x i , x j ]= …(12)
xi −x j

La segunda diferencia dividida finita, que representa la diferencia de las dos


primeras diferencias divididas, se expresa en forma general como:
f [ x i , x j ]−f ( x j , x k )
f [ x i , x j , x k ]= … ( 13 )
x i−x k

En forma similar, la n-ésima diferencia dividida finita es:


f [ x n , x n−1 , … , x 1 ]−f [ x n−1 , x n−2 ,… , x 1 , x 0 ]
f [ x n , xn −1 , … , x1 , x0 ] = … (14)
x n−x 0

Estas diferencias sirven para evaluar los coeficientes en las ecuaciones 8 a 11, los
cuales se sustituirán en la ecuación 7 para obtener el polinomio de interpolación
f n ( x )=f ( x 0 ) + ( x−x 0 ) f [ x 1 , x 0 ] + ( x−x 0 ) ( x−x 1 ) f [ x 2 , x 1 , x 0 ]

+…+ ( x−x 0 ) ( x−x 1) … ( x −x n−1 ) f [ x n , xn −1 , … , x 1 , x0 ] … ( 15 )

que se conoce como polinomio de interpolación de Newton en diferencias


divididas. Advierta cómo las ecuaciones 12 a 14 son recursivas (es decir, las
diferencias de orden superior se calculan tomando diferencias de orden inferior
(figura 3).

Figura 3: Representación gráfica de la naturaleza recursiva de las diferencias divididas finitas.

Algoritmo en seudocódigo

Ejemplo

Dado los puntos (1 , 2),(3 , 3) ,(4 ,2) y (8 ,10):

a) hallar por medio de diferencias divididas el polinomio de interpolación.


b) el valor de f ( x ) en x=6 .

1.-Cálculo de las diferencias divididas.

xi f ( xi ) Primera Segunda Tercera

1 2 3−2 1 1 3 1
f [3 , 1 ]= = −1− +
3−1 2 2 −1 5 2 11
f [ 4 , 3 ,1 ]= = f [ 8 , 4 ,3 ,1 ] = =
4−1 2 8−1 70
3 3 2−3 2−(−1) 3
f [ 4 , 3 ]= =−1 f [ 8 , 4 ,3 ] = =
4−3 8−3 5
4 2 10−2 Escriba aquí la ecuación.
f [8 , 4 ]= =2
8−4
8 10
2.- Cálculo del polinomio de interpolación.

1 1 11
f 3 ( x )=2+ ( x−1 )− ( x−1 ) ( x −3 ) + ( x−1 ) ( x −3 ) (x−4)
2 2 70

11 3 123 2 192 66
¿ x− x+ x−
70 70 35 35

3.- Cálculo cuando x=6 .

11 3 123 2 192 66 1188 2214 1152 66 24 12


f 3 ( 6 )= 6− 6+ 6− = − + − = =
70 70 35 35 35 35 35 35 25 7

¿ 1.714285714

Ejemplo usando MATLAB


Código en MATLAB

function [NewtonPol]=intNewton(x,y,X)
ddf=zeros(length(x),length(y)); %Crea una matriz de nxn
ddf(:,1)=y; %Pasa los valores de y a la primer columna

n=length(x)-1;
for j=2:n+1 %Calculo de las diferencias divididas
for i=1:(n+1)-(j-1)
ddf(i,j)=(ddf(i+1,j-1)-ddf(i,j-1))/(x(i+j-1)-x(i));
end
end

xterm=1; %Interpolación de Newton


yint=ddf(1,1);

for i=2:n+1
xterm=xterm*(X-x(i-1));
yint(i)=ddf(1,i)*xterm;
end
Y=sum(yint)

%Construcción del polinomio de Newton


pol{1,1} = num2str(ddf(1,1));
if n == 0
NewtonPol = cell2mat(pol);
else
for i = 2:n+1
if sign(x(i)) == 1
xr{1,i} = ['*(x - ',num2str(x(i-1)),')'];
elseif sign(x(i)) == -1
xr{1,i} = ['*(x + ',num2str(x(i-1)),')'];
end
if sign(ddf(1,i)) == 1
pol{1,i} = cell2mat([' +',num2str(ddf(1,i)),xr(2:end)]);
elseif sign(ddf(1,i)) == -1
pol{1,i} = cell2mat([' ',num2str(ddf(1,i)),xr(2:end)]);
end
end
NewtonPol = cell2mat(pol);
end

%Gráfica
fs = str2sym(NewtonPol); %Convierte el string a función simbólica.
fplot(fs,[min(x)-1,max(x)+1],'k-','LineWidth',2); %Grafica la función de color
negro y grosor 2
title(['P(x) = ',NewtonPol]); hold on
x2 = sort(x); y2 = sort(y);
plot(x2,y2,'m--','LineWidth',1.5); hold on
scatter(x,y,'LineWidth',2,'MarkerEdgeColor','b'); hold on
plot(X,Y,'ro','MarkerFaceColor','r'); grid on
h = gcf; h.Position(1:2) = [750,90];
end

Referencias bibliográficas

Chapra, S. C., y Canale, R. P. (2011). Métodos numéricos para ingenieros (Sexta edición).
McGraw-Hill.
Ruso, R. (sf). Diferencias divididas (Interpolación de Newton)
http://www3.fi.mdp.edu.ar/metodos/apuntes/diferencias%20divididas.pdf
Valdez, R. [Tutoingeniero]. (20 de febrero de 2023). Interpolación polinomial de Newton

en Matlab: Tutorial paso a paso + código. [Archivo de video]. YouTube.

https://www.youtube.com/watch?v=CMz6efYPq2E

También podría gustarte