Está en la página 1de 20

PRQ404 PROGRAMACION Y METODOS NUMERICOS

TEMA 3.- INTERPOLACION


Ing. M.Sc. Roberto Parra Zeballos
En general:
ALGORITMO INICIO
DATOS: Nmero de pares de datos n+1; vectores x(i), y(i) tal que i =
0, 1, 2, , n+1; valor de xp?
RESULTADOS: Valor de yp.
PASO 1: Leer n+1, x(n+1), y(n+1), xp
PASO 2: Ver si el valor de xp esta en el rango de valores del vector x:
Si x(0) xp Entonces Imprimir y(o) como solucin.
Si x(n+1) xp Entonces Imprimir y(n+1) como solucin.
PASO 3: Bsqueda de intervalo donde se encuentre el valor de xp.
Para i = 0 hasta n+1
If x(i) > xp Entonces
Calcular yp:
Imprimir yp como solucin. Exit
No
Next i
FIN
DIAGRAMA DE FLUJO
POLINOMIO INTERPOLANTE DE LAGRANGE
Cuando se tienen x0, x1, . . . , xn nmeros reales distintos entre s, y valores
arbitrarios correspondientes y0, y1,. . . , yn, existe un nico polinomio P(x) de
grado menor o igual que n tal que P(xi) = yi (i = 0,. . . , n). A dicho polinomio P(x)
se le llama polinomio interpolador de Lagrange.

Entonces, es el polinomio de interpolacin para la funcin en los nodos . Por lo


tanto, la frmula para el polinomio cardinal es:

Desarrollando como el producto de n factores lineales, se tiene:


Ejemplo

La presin de vapor como funcin de la temperatura para el vapor de agua se


muestra en la siguiente tabla:
T, oC T(0) = 5 T(1) = 10 T(2) = 15 T(3) = 20

P, mm Hg P(0) = 6.5449 P(1) =9.2123 P(2) = 12.795 P(3) = 17.546

A partir de estos datos, encontrar el polinomio interpolante de Lagrange y


calcular el valor de P para T= 12.2 C.

Sustituyendo x = 12.2, obtenemos P = 10.66096 mm Hg.


function [C] = lagran(X,Y)
%--------------------------------------------------------------------------
% Este programa realiza la interpolacin de Lagrange a un conjunto de
% puntos (x,y) y muestra la lista de coeficientes del polinmio interpolante
%--------------------------------------------------------------------------
% ENTRADAS
% X : Vector de las absisas
% Y : Vector de las ordenadas
% SALIDAS
% C : Lista de coeficientes del polinmio de Lagrange
%--------------------------------------------------------------------------
n1 = length(X);
n = n1-1;
L = zeros(n1,n1);
for k=1:n+1,
V = 1;
for j=1:n+1,
if k ~= j,
V = conv(V,poly(X(j)))/(X(k)-X(j));
end
end
L(k,:) = V;
end
C = Y*L;
INTERPOLACION ITERADA DE NEVILLE
Usando la notacin como los polinomios de grado cero; es el polinomio
interpolante que pasa por ; es el polinomio interpolante que pase por ; es el
polinomio interpolante que pasa por los puntos ; y as sucesivamente.

Si definimos en y dos nmeros distintos en este conjunto, entonces, es el


polinomio de Lagrange de grado menor o igual a , que interpola a en :

Hagamos y , siendo y polinomios de grado o menor; por lo tanto, debe ser de


grado . Si y , entonces , por lo que:
Polinomios Interpolantes de Lagrange segn Neville

x0 P0
x1 P1 P0,1
x2 P2 P1,2 P0,1,2
x3 P3 P1,3 P1,2,3 P0,1,2,3
x4 P4 P3,4 P2,3,4 P1,2,3,4 P0,1,2,3,4
: : : : : ..
: : : : : ..

: : : : : ..
xn Pn Pn-1,n Pn-2,n-1,n Pn-3,n-2,n-1,n P0,1,,n
EJEMPLO
A partir de la siguiente tabla de datos, para encontrar su valor correspondiente de
utilizando el polinomio interpolante de Neville.

i 0 1 2 3 4
xi 0.5 1.1 1.2 1.3 1.4
f(x) 1.09861 1.92279 2.04898 2.17020 2.28646

SOLUCION
x0 P0
x1 P1 P0,1
x2 P2 P1,2 P0,1,2
x3 P3 P1,3 P1,2,3 P0,1,2,3
x4 P4 P3,4 P2,3,4 P1,2,3,4 P0,1,2,3,4

i xi
0 0.5 1.09861
1 1.1 1.92279 2.08762
2 1.2 2.04898 2.07422 2.07384
3 1.3 2.17020 2.07323 2.07362 2.07365
4 1.4 2.28646 2.07719 2.07362 2.07362 2.07363
Para elegir el mejor valor del polinomio interpolante, se calculan errores que se
muestran en la siguiente tabla:

P TOL
P0,1 0,98901
P0,1,2 -0,01378
P0,1,2,3 -0,00019
Po,1,2,3,4 -1,79E-05
Hagamos , tal que para denotar el polinomio interpolante de grado en los puntos ,
es decir, es el polinomio en la forma de Lagrange. Anlogamente, obtenemos:
y

pasa por , es decir,


pasa por , es decir,
pasa por
pasa por
x0 Q0,0

x1 Q1,0 Q1,0

x2 Q2,0 Q2,1 Q2,2

x3 Q3,0 Q3,1 Q3,2 Q3,3

x4 Q4,0 Q4,1 Q4,2 Q4,3 Q4,4

: : : : : ..

: : : : : ..

: : : : : ..
xn Qn,0 Qn,1 Qn,2 Qn,3 Qn,n
INICIO
DATOS: Nmero de pares de datos n+1; vectores x(i), y(i) tal que i = 0, 1, 2, , n+1;
valor a interpolar xp, TOL.
RESULTADOS: Valor de yp.
PASO 1: Leer n+1, x(n+1), y(n+1), xp
PASO 2: Para i = 0, 1, , n Hacer
Calcular Q(i,0) = y(i)
PASO 3: Para i = 1, 2, , n Hacer
Para j = 1, 2, , i Hacer
Calcular
Si Entonces
Imprimir
Exit Para
Next j
Next i
FIN
POLINOMIO INTERPOLANTE DE NEWTON
Supongamos que es el polinomio de Lagrange de grado a lo ms que coincide con la
funcin en los nmeros distintos , las diferencias divididas de f con respecto a estos
puntos se pueden derivar representando de la siguiente forma:

Donde son constantes, la primera de estas se determina evaluando en , es decir:

Similarmente, cuando se evala en nos da:

En general, la primera diferencia dividida de f con respecto a y est definida :

Entonces, la k-sima diferencia dividida de relativa a esta dada por:


para cada
Entonces, el polinomio se re- escribe como:

x f(x) 1ras. Diferencias 2das. diferencias divididas 3ras. Diferencias divididas


divididas

x0 f[x0]

x1 f[x1]

x2 f[x2]

x3 f[x3]
EJEMPLO
A partir de los siguientes datos de la tabla, encontrar
el polinomio interpolante de Newton.
i 0 1 2 3
x(i) 2 4 6 8
f(x(i)) 4 8 14 16

SOLUCION
Las diferencias divididas (DD) hasta la tercera se muestran en la siguiente
tabla:
y = 1ras. 2das. 3ras.
i x(i) f(x(i)) DD DD DD
0 2 4
2
1 4 8 0.25
3 -0,125
2 6 14 -0.5 Simplificando, finalmente se obtiene el
1 polinomio interpolante:
3 8 16
function [C,D]=difdivaba(X,Y)
% -------------------------------------------------------------------------
% Este programa realiza la interpolacin de un conjunto de puntos (x,y)
% por el metodo de diferencias divididas hacia abajo.
%--------------------------------------------------------------------------
% ENTRADAS
% X : Conjunto de abcisas
% Y : Conjunto de ordenadas
% SALIDAS:
% C : Coeficientes del polinmio interpolante de Newton
% D :Coeficientes de la tabla por el metodo de diferencias
% divididas hacia abajo
%--------------------------------------------------------------------------
n=length(X);
D=zeros(n,n);
D(:,1)=Y'; %todas las filas, pero solo la 1ra. columna
%Formula de la tabla de diferencia divididas hacia abajo.
for j=2:n
for k=j:n
D(k,j)=(D(k,j-1)-D(k-1,j-1))/(X(k)-X(k-j+1));
end
end
%Determinando los coeficientes de los polinmios interpolantes de Newton
C=D(n,n);
for k=(n-1):-1:1
C=conv(C,poly(X(k)));
m=length(C);
C(m)=C(m)+D(k,k);
end
FIN

También podría gustarte