Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Análisis Numérico
Interpolación y aproximación polinomial
CNM-425
Departamento de Matemáticas
Facultad de Ciencias Exactas y Naturales
Universidad de Antioquia
Contenido
1 Introducción
2 Interpolación de Lagrange
3 Interpolación de Newton
4 Error en la interpolación
5 Interpolación de Hermite
6 Splines
Introducción Lagrange Newton Análisis de error Hermite Splines
Interpolación
Dado un conjunto de datos conocidos
f (xi ) = yi , i = 0, . . . , N
Restricciones adicionales:
Las derivada del interpolador f en los puntos dados es fija
Suavidad, monoticidad o convexidad del interpolador f
Introducción Lagrange Newton Análisis de error Hermite Splines
Aplicaciones
Interpolación y aproximación
Polinomio interpolador
Observaciones
El teorema (1.2) generaliza:
Por dos puntos distintos del plano cartesiano pasa una y sólo
una lı́nea recta (polinomio de grado 1).
Polinomio interpolador
Construimos una función f (x) que pase por (xi , f (xi )) por medio de la
aproximación
XN
f (x) ≈ pN (x) = ak φk (x) (1)
i=0
pN es el polinomio interpolante
Interpolación de Vandermonde
Consideramos como bases los monomios
φk (x) = xk , k = 0, . . . , N (2)
f (x) = a0 + a1 x + a2 x2 + · · · + aN xN (3)
1 x0 x20 ··· xN
2 32 3 2 3
0 a0 f (x0 )
6 1 x1 x21 ··· xN1 7 6 a1 7 6 f (x1 ) 7
76 . 7=6 .. ⇐⇒ Va = f
6 76 7 6 7
.. .. .. ..
5 4 ..
6 7
4 . . . . 5 4 . 5
1 xN x2N ··· xNN
aN f (xN )
Y
V es la matriz de Vandermonde y det(V) = (xj − xi ) 6= 0.
0≤i≤j≤N
Introducción Lagrange Newton Análisis de error Hermite Splines
Ejemplo
Ejemplo 1.1
Determine el polinomio de grado 2 que interpola los tres datos
Solución
f (x) = a0 + a1 x + a2 x2 (4)
Interpolación de Lagrange
Como base tomamos los polinomios de Lagrange definidos por
N
Y (x − xi )
Lk (x) =
i=0
(x k − xi )
i6=k (6)
(x − x0 ) (x − xk−1 ) (x − xk+1 ) (x − xN )
= ··· · ···
(xk − x0 ) (xk − xk−1 ) (xk − xk+1 ) (xk − xN )
Propiedades
Lk es un polinomio de grado N
1 si k = j
Lk (xj ) = = δkj
0 si k 6= j
pN (x) = f (x0 )L0 (x) + f (x1 )L1 (x) + · · · + f (xN )LN (x) (7)
Ejemplo 2.1
Determine los polinomios de Lagrange para N = 5 y x0 = 0 , x1 = 1 ,
x2 = 2 , x3 = 3 y x4 = 4.
Ejemplo
Ejemplo 2.2
1
Determine el polinomio de interpolación de Lagrange para f (x) = en los
x
puntos x0 = 2 , x1 = 2.5 , x2 = 4 y utilı́celo para aproximar f (3).
Solución
(x − 2,5)(x − 4)
L0 (x) = = (x − 6,5)x + 10
(2 − 2,5)(2 − 4)
(x − 2)(x − 4) (−4x + 24)x − 32
L1 (x) = =
(2,5 − 2)(2,5 − 4) 3
(x − 2)(x − 2,5) (x − 4,5)x + 5
L2 (x) = =
(4 − 2)(4 − 2,5) 3
y
p(x) = f (2)L0 (x) + f (2,5)L1 (x) + f (4)L1 (x)
(−4x + 24)x − 32 (x − 4,5)x + 5
= 0,5 ((x − 6,5)x + 10) + 0,4 + 0,25
3 3
= (0,05x − 0,425)x + 1,15 =⇒ f (3) ≈ p(3) = 0,325
Introducción Lagrange Newton Análisis de error Hermite Splines
polilagrange.m fun.m
function p = polilagrange(f,xpuntos,x) function y = fun(x)
% Argumentos: y = 1./x;
% xpuntos: vector fila con las coordenadas en x
% k: valor entero correspondiente Lk
% x: valor real en el que se evalúa el polinomio octave:#> fun(2)
ans = 0.50000
% Salida:
% L: valor obtenido al evaluar el polinomio de octave:#> xp = [2 2.5 4];
% Lagrange en x octave:#> fun(xp)
ans =
p = 0.0;
n = length(xpuntos); 0.50000 0.40000 0.25000
for i=0:n-1 octave:#> polilagrange(@fun,xp,1)
p = p + f(xpuntos(i+1))*lagrange(xpuntos,i,x);
ans = 0.77500
end octave:#> polilagrange(@fun,xp,2)
ans = 0.50000
end
octave:#> polilagrange(@fun,xp,3)
ans = 0.32500
Introducción Lagrange Newton Análisis de error Hermite Splines
Ejemplo
Ejemplo 2.3
Grafique el polinomio de interpolación del ejemplo anterior 1.2 y compárelo
con la función f .
Solución
ejemplo13.m
clear all;
xp = [2 2.5 4];
x = -0:0.5:10;
n = length(x);
p = zeros(1,n);
y = zeros(1,n);
for i=1:n
p(i) = polilagrange(@fun,xp,x(i));
y(i) = fun(x(i));
end
plot(x,p,’r’); hold on
plot(x,y);
legend(’polinomio’,’función’)
grid on
Introducción Lagrange Newton Análisis de error Hermite Splines
Interpolación de Newton
f (x) = a0 +a1 (x−x0 )+a2 (x−x0 )(x−x1 )+· · ·+aN (x−x0 )(x−x1 ) · · · (x−xN −1 )
a0 = f (x0 )
f (x1 ) − f (x0 )
a1 =
x1 − x0
f (x2 ) − f (x0 ) f (x1 ) − f (x0 )
−
x2 − x0 x1 − x0
a2 =
x2 − x1
..
.
ak = F(x0 , x1 , . . . , xk )
Polinomio de interpolación
Ejemplo 3.1
Ejemplo 3.1
ejemplo21b.m
clear all;
xi = [0.15 2.30 3.15 4.85 6.25 7.95];
yi = [0.15074 2.11620 2.67458 3.19645 ...
2.95641 1.92134];
F = newtoncoef(xi,yi);
x = -0:0.5:10;
n = length(x);
p = zeros(1,n);
y = zeros(1,n);
for i=1:n
p(i) = polinewton(F,xi,x(i));
y(i) = 3.2*sin(pi*x(i)/10);
end
plot(x,p,’r’); hold on
plot(x,y);
legend(’polinomio’,’función’)
grid on
Introducción Lagrange Newton Análisis de error Hermite Splines
Teorema (4.1)
Teorema 4.1
Observaciones
f (n+1) (ξ)
(x − x0 )n+1
(n + 1)!
f (n+1) (ξ)
(x − x0 ) · · · (x − xn )
(n + 1)!
Introducción Lagrange Newton Análisis de error Hermite Splines
Ejemplo 4.1
Solución
La cota de error está dada por (??)
n
1 (10) Y
f (x) − p(x) = f (ξ) (x − xi ) (12)
10! i=0
Luego
1
|f (x) − p(x)| ≤ ≤ 2,8 × 10−7
10!
Introducción Lagrange Newton Análisis de error Hermite Splines
Teorema 4.2
Observaciones
con ξ ∈ [x0 , xn ].
M hn+1
máx |f (x) − p(x)| ≤ (15)
x∈[x0 ,xn ] (n + 1)!
El
˛ error disminuye
˛ a medida que n crece y h disminuye, sólo si
˛ (n+1) ˛
˛f (x)˛ está acotada
Observaciones
Fenómeno Runge
Polinomios interpolantes para la función de Runge
1
f (x) = , x ∈ [−1, 1]
1 + 25x2
sobre puntos igualmente espaciados no converge.
Fenómeno Runge
Los puntos de interpolación se pueden distribuir no uniformemente con
el fin de minimizar el fenómeno de Runge
„ «
2i + 1
xi = cos π , i = 0, . . . , n (16)
2n
Interpolación de Hermite
Polinomio osculante
Proposición 5.1 (Existencia del polinomio osculante)
x0 , x 1 , . . . , x n (17)
dk p(xi ) dk f (xi )
k
= para i = 0, 1, . . . , n y k = 0, 1, . . . , mi (18)
dx dxk
Observaciones
Polinomio osculante
Cuando n = 0 tenemos en (17) sólo un punto de interpolación x0 y la
condición de Hermite
dk p(x0 ) dk f (x0 )
k
= para k = 0, 1, . . . , m0
dx dxk
Teorema (5.1)
Teorema 5.1
donde
Ejemplo (5.1)
Ejemplo 5.1
Utilice el polinomio de Hermite que concuerda con los datos de la tabla para
obtener una aproximación de f (1,5).
k xk f (xk ) f 0 (xk )
0 1,3 0,6200860 −0,5220232
1 1,6 0,4554022 −0,5698959
2 1,9 0,2818186 −0,5811571
Solución
Calculamos los polinomios de Lagrange y sus derivadas
Ejemplo (5.1)
Ejemplo (5.1)
− 100 2 247 2
„ «
320
Ĥ2,1 (x) = (x − 1,6) x + x−
9 9 9
„ «2
50 2 145 104
Ĥ2,2 (x) = (x − 1,9) x − x+
9 9 9
Por el teorema (5.1)
2
X 2
X
H5 (x) = f (xj )Hn,j (x) + f 0 (xj )Ĥn,j (x)
j=0 j=0
y evaluando
H5 (1,5) = 0,5118277
Introducción Lagrange Newton Análisis de error Hermite Splines
f (xi+1 ) − f (xi )
F(xi , xi+1 ) = = f 0 (ξ) , para algún ξ ∈ (xi , xi+1 )
xi+1 − xi
x0 , x1 , . . . , xn
y formamos la sucesión
z0 , z 1 , . . . , z n
definida por
z0 = z1 = x0 , z2 = z3 = x1 , . . . , z2i = z2i+1 = xi , . . .
Introducción Lagrange Newton Análisis de error Hermite Splines
z0 = x0 F (z0 ) = f (x0 )
F (z0 , z1 ) = f 0 (x0 )
F (z1 ,z2 )−F (z0 ,z1 )
z1 = x0 F (z1 ) = f (x0 ) F (z0 , z1 , z2 ) = z2 −z0
F (z2 )−F (z1 )
F (z1 , z2 ) = z2 −z1
··· ··· ··· ···
F (z2 ,z3 )−F (z1 ,z2 )
z2 = x1 F (z2 ) = f (x1 ) F (z1 , z2 , z3 ) = z3 −z1
0
F (z2 , z3 ) = f (x1 )
F (z3 ,z4 )−F (z2 ,z3 )
z3 = x1 F (z3 ) = f (x1 ) F (z2 , z3 , z4 ) = z4 −z2
F (z4 )−F (z3 )
F (z3 , z4 ) = z4 −z3
··· ··· ··· ···
F (z3 ,z4 )−F (z2 ,z3 )
z4 = x2 F (z4 ) = f (x2 ) F (z2 , z3 , z4 ) = z4 −z2
F (z4 , z5 ) = f 0 (x2 )
F (z1 ,z2 )−F (z0 ,z1 )
z5 = x2 F (z4 ) = f (x2 ) F (z0 , z1 , z2 ) = z2 −z0
. . . .
. . . .
. . . .
n
X
H2n+1 (x) = F(z0 ) + F(z0 , . . . , zk )(x − z0 ) · · · (x − zk−1 )
k=1
Introducción Lagrange Newton Análisis de error Hermite Splines
Sj (x) = aj + bj (x − xj ) + cj (x − xj )2 + dj (x − xj )3
Sj0 (x) = bj + 2cj (x − xj ) + 3dj (x − xj )2 (23)
Sj00 (x) = 2cj + 6dj (x − xj )
con j = 0, . . . , n − 1.
De la condición (3),
Al reemplazar dj en (24)
h2j
aj+1 = aj + bj hj + (2cj + cj+1 )
3
(27)
1 hj
bj = (aj+1 − aj ) − (2cj + cj+1 )
hj 3
Introducción Lagrange Newton Análisis de error Hermite Splines
1 hj−1
bj−1 = (aj − aj−1 ) − (2cj−1 + cj ) (28)
hj−1 3
1 hj
bj = (aj+1 − aj ) − (2cj + cj+1 )
hj 3
(30)
1 hj−1
bj−1 = (aj − aj−1 ) − (2cj−1 + cj )
hj−1 3
El sistema es (n − 1) × (n + 1):
h0 c0 + 2 (h0 + h1 ) c1 + h1 c2 + 0 + 0 + · · · · · · · · · · · · · · · + 0 = t1
0 + h1 c1 + 2 (h1 + h2 ) c2 + h2 c3 + 0 + · · · · · · · · · · · · · · · + 0 = t2
..
.
0 + · · · + 0 + hn−2 cn−3 + 2 (hn−2 + hn−1 ) cn−2 + hn−1 cn−1 = tn−1
S 00 (x0 ) = S 00 (xn ) = 0
De (23),
32 c 2 0
1 0 0 ··· 0
2 3 3
0
6 h0 2(h0 + h1 ) h1 ··· 0 7 6 c1 7 6 t1 7
6 0 h1 2(h1 + h2 ) h2 0 76 . 6 .
76 7 6 7
76 . 6 .
6 7 7
6 . 76 . 7=6 .
6 7 7
6 . .. .. .. 7
6 . . . . 0 76 .
76 7
6 .
6 7
54 . 4 .
7 7
4 0 ··· ··· hn−2 2(hn−2 + hn−1 ) hn−1 .
5
.
5
0 ··· ··· 0 0 1 cn 0
Introducción Lagrange Newton Análisis de error Hermite Splines
S 00 (a) = 0 y S 00 (b) = 0
Observaciones
El interpolador S : [a, b] → R está dado por
S(x) = Sj (x) = aj +bj (x−xj )+cj (x−xj )2 +dj (x−xj )3 , x ∈ [xj , xj+1 ]
donde
1 aj = f (xj ), j = 0, . . . , n
2 c0 , c1 , . . . , cn se obtienen de resolver el sistema lineal
3 bj = (aj+1 − aj )/hj − hj (cj+1 + 2cj )/3 (ecuación (30))
4 dj = (cj+1 − cj )/(3 hj ) (ecuación (26))
Introducción Lagrange Newton Análisis de error Hermite Splines
32 c
2 h0 h0 0 ··· 0
2 3
0
6 h0 2(h0 + h1 ) h1 ··· 0 7 6 c1 7
6 0 h1 2(h1 + h2 ) h2 0 76 .
76 7
76 .
6 7
. 76 . 7=b
6 7
6
. .. .. ..
6
. . . . 0 76 .
76 7
54 .
6 7
4 0 ··· ··· hn−2 2(hn−2 + hn−1 ) hn−1 .
5
0 ··· ··· 0 hn−1 2 hn−1 cn
con
3 0
h0 (a1 − a0 ) − 3 f (a)
2 3
3
6
h1 (a2 − a1 ) − h3 (a1 − a0 ) 7
6 0 7
.
6 7
b=6
6 . 7
6 . 7
7
3 3
hn−1 (an − an−1 ) − hn−2 (an−1 − an−2 ) 5
6 7
4
3 f 0 (b) − h 3 (an − an−1 )
n−1
Introducción Lagrange Newton Análisis de error Hermite Splines
Ejemplo
Solución
S(x) = Sj (x) = aj +bj (x−xj )+cj (x−xj )2 +dj (x−xj )3 , x ∈ [xj , xj+1 ]
a0 = 0, a1 = 1, a2 = 0, a3 = 1, a4 = 1
h0 = h1 = h2 = h3 = h4 = 0
1 0 0 0 0 1 0 0 0 0
2 3 2 3
6 h0 2(h0 + h1 ) h1 0 0 7 6 1 4 1 0 0 7
A=6 0 h1 2(h1 + h2 ) h2 0 7=6 0 1 4 1 0
6 7 6 7
7
4 0 0 h2 2(h2 + h3 ) h3 5 4 0 0 1 4 1 5
0 0 0 0 1 0 0 0 0 1
Introducción Lagrange Newton Análisis de error Hermite Splines
Ejemplo
Para b tenemos
2 0 3
6 3 3
0 (a2 − a1 ) − (a1 − a0 ) 0
2 3 7 2 3
6 7
6 h1 h0
t1 7 6 −6
7
6 6 3 3 7 7
A=6 t2 7 = 6 (a − a2 ) − (a2 − a1 ) 7=6 6
6 7 6 7 6 7
6 h2 3
7
4 t3 5 h1 7 4 −6 5
3 3
6 7
0 6
4 (a4 − a3 ) − (a3 − a2 )
7
5 0
h4 h2
0
Ejemplo
Resultados obtenidos
ai bi ci di
0,00000000 1,71428571 0,00000000 −0,71428571
1,00000000 −0,42857143 −2,14285714 1,57142857
0,00000000 0,00000000 2,57142857 −1,57142857
1,00000000 0,42857143 −2,14285714 0,71428571
Referencias
J.W. Eaton
GNU Octave: A high-level interactive language for numerical
computations
Network Theory Ltd., 2002
http://www.network-theory.co.uk/octave/manual/