Académique Documents
Professionnel Documents
Culture Documents
En
INTERPOLACIN POLINOMIAL
DE LAGRANGE
Considere
INTERPOLACIN Y POLINOMIO DE
LAGRANGE
x x0 x x1 x xk 1 x xk 1 x xn
x xi
Pn ,k x
xk x0 xk x1 xk xk 1 xk xk 1 xk xn i 0 xk xi
ik
N-simo polinomio
interpolante de Lagrange
Teorema
Si x0, x1, x2, ... xn, son n+1 nmeros distintos y si f es una funcin
cuyos valores estn dados en esos nmeros, entonces existe un
polinomio de grado a lo ms n, con la propiedad de que
f(xk) = P(xk) para cada k = 0, 1, 2, ...n
Este polinomio est dado por
donde
P x f x0 Ln , 0 x f xn Ln ,n x f xk Ln ,k x
k 0
x xi
x x0 x x1 x xk 1 x xk 1 x xn
Ln ,k x
xk x0 xk x1 xk xk 1 xk xk 1 xk xn i 0 xk xi
ik
x 2.5 x 4 x 6.5 x 10
L x
n,0
2 0.5 2 4
x 2 x 4 4 x 24 x 32
L x
n,1
2.5 2 2.5 4
3
x 2 x 2.5 x 4.5 x 5
L x
n,2
4 2 4 2.5
3
P(x) = 0.5*((x6.5)x+10)+0.4*((4x+24)x32)/3+ 0.25*((x + 4.5)x+5)/3
P(x) = (0.05x 0.425)x + 1.15 = 0.05x2 0.425x + 1.15
f(3) = P(3) = 0.325
El error en la interpolacin
de Lagrange
El error en la interpolacin de Lagrange puede calcularse
con
f n 1 x
x x0 x x1 ... x xn
f x0 P x
n 1!
Algoritmo en Matlab
function fi = Lagran_(x, f, xi)
fi=zeros(size(xi));
np1=length(f);
for i=1:np1
z=ones(size(xi));
for j=1:np1
if i~=j, z = z.*(xi - x(j))/(x(i)-x(j));end
end
fi=fi+z*f(i);
end
return
Interpolacin Inversa
Tabla de valores de f (x) = 1/x.
x
f (x)
6
yi 1 yi 6 yi yi 1
hi 1
hi 1
h1 u2
h2
h2
u3
un2
h2
0 z1 v1
0 z 2 v2
0
h2 z n 3 vn 3
u n 1 z n 2 vn 2
donde
hi21
ui 2 hi hi 1
ui 1
bi
6
yi 1 yi
hi
vi bi bi 1
hi 1vi 1
ui 1
Si x yi x xi Ci x xi Bi x xi Ai
Donde
Ai
1
zi 1 zi
6hi
zi
Bi
2
Ci
hi
h
1
zi 1 i zi yi 1 yi
6
3
hi
A
B
zi 1 zi
6hi
zi
2
hi
hi
1
C zi 1 zi yi 1 yi
6
3
hi
D C xi B Axi2
E B 2 xi A
Guin en MatLab
%encuentra los trazadores cbicos para un conjunto
de puntos x,y
% x - vector con los n valores de x
% y - vector con los n valores de y
% w - matriz de n-1 por 4 con los coeficientes de
los polinomios cbicos
function w = spline3(x,y)
[dummy n] = size(x);
for i = 1:n-1
h(i) = x(i+1)-x(i);
b(i) = 6*(y(i+1)-y(i))/h(i);
end
u(2) = 2*(h(1)+h(2));
v(2) = b(2)-b(1);
for i = 3:n-1
u(i) = 2*(h(i)+h(i-1))-h(i-1)^2/u(i-1);
v(i) = b(i)-b(i-1)-h(i-1)*v(i-1)/u(i-1);
end
z(n) = 0;
for i = n-1:-1:2;
z(i) = (v(i)-h(i)*z(i+1))/u(i);
end
z(1) = 0;
for i = 1:n-1
A = (z(i+1)-z(i))/6/h(i);
B = z(i)/2;
C = -h(i)*z(i+1)/6-h(i)*z(i)/3+(y(i+1)-y(i))/h(i);
D = C-x(i)*B+A*x(i)^2;
E = B-2*x(i)*A;
w(i,4) = y(i)-x(i)*D;
w(i,3) = D-x(i)*E;
w(i,2) = E-x(i)*A;
w(i,1) = A;
end
end
Interpolacin polinomial de
Newton
Revisaremos solo algunos casos: lineal, de segundo grado y de
tercer grado.
Interpolacin lineal
Utilizando tringulos semejantes
f1 x f x0 f x1 f x0
x x0
x1 x0
f(x)
Reordenando
f1 x f x0
f x1 f x0
x x0
x1 x0
f(x1)
f1(x)
f(x0)
x0
x1
Ejemplo
Estimar ln 2 mediante interpolacin lineal si ln1 = 0 y ln 6 = 1.791759 y ln 4 = 1.386294
f1 2 ln 1
1.791759 0
2 1 0.3583519
6 1
f1 2 ln 1
f1 x f x0
f x1 f x0
x x0
x1 x0
1.386294 0
2 1 0.4620981
4 1
2.5
f(x) = ln x
2
1.5
Valor verdadero
f1(x)
0.5
0
Estimaciones lineales
-0.5
-1
Interpolacin cuadrtica
Polinomio cuadrtico
f2(x) = b0 + b1(x x0) + b2(x x0)(x x1) (1)
simplificado
f2(x) = b0 + b1x b1x0 + b2x2 + b2x0 x1 b2xx0 b2xx1
Podemos escribirlo como
f2(x) = a0 + a1x + a2x2
Donde
a0 = b0 b1x0 + b2x0 x1, a1 = b1 b2x0 b2x1, a2=b2
Podemos evaluar b0, b1 y b2 sustituyendo x0, x1 y x2 en la ecuacin (1), se obtiene
b0 = f(x0)
b1
f x1 f x0
x1 x0
f x2 f x1 f x1 f x0
x2 x1
x1 x0
b2
x2 x0
ejemplo 2
Calculemos ln 2 con ln 4 y ln 6, los punto que se conocen son:
x0 = 1
f(x0) = 0
x1 = 4
f(x0) = 1.386294
2.5
x0 = 6
f(x0) = 1.791759
Valor verdadero
1.5
b0 = 0
b1 = (1.386294 0)/(4 1) = 0.4620981
1
0.5
b2 = ((1.791759 1.386294)
/(6 4) 0.4620981)/(6 1)
f(x) = ln x
Estimacin cuadrtica
-0.5
= 0.0518731
-1
El polinomio es
Estimacin lineal
0
Forma general
Polinomio general
fn(x) = b0 + b1(x x0) +...+ bn(x x0)(x x1)... (x xn1)
Los coeficientes se calculan con
b0 = f(x0)
b1 = f [x1, x0]
b2 = f [x2, x1, x0]
f xn , xn 1 ,..., x1 , x0
f xn , xn 1 ,..., x1 f xn 1 , xn 2 ,..., x0
xn x0
ejemplo 3
Calculemos ln 2 con ln 0, ln 4, ln 5 y ln 6, los punto que se conocen son:
x0 = 1
f(x0) = 0
x1 = 4
f(x1) = 1.386294
x2 = 6
f(x3) = 1.791759
x3 = 5
f(x2) = 1.609438
primeras diferencias
f [x1, x0] = (1.386294 0)/(4 1) = 0.4602981
f [x2, x1] = (1.791759 1.386294)/(6 4) = 0.2027326
f [x3, x2] = (1.609438 1.791759)/(5 6) = 0.1823216
Segundas diferencias
f [x2, x1, x0] = (0.2027326 0.4602981)/(6 1) = 0.05187311
f [x3, x2, x1] = (0.1823216 0.2027326)/(5 4) = 0.02041100
tercera diferencia
f [x3, x2, x1 , x0] = (0.02041100(0.05187311))/(5 1) = 0.007865529
Polinomio
f3(x) = 0 + 0.4602981(x 1) 0.05187311(x 1) (x 4) + 0.007865529(x 1) (x 4) (x 6)
Valor calculado con el polinomio
Ejemplo 3 (cont.)
f3(x)
2.5
2
Valor verdadero
1.5
1
f(x) = ln x
0.5
0
-0.5
-1
Estimacin cbica
0