Está en la página 1de 54

Introduccin

Lagrange

Newton

Anlisis de error
a

Hermite

Anlisis Numrico
a
e
Interpolacin y aproximacin polinomial
o
o
CNM-425
Departamento de Matemticas
a
Facultad de Ciencias Exactas y Naturales
Universidad de Antioquia

Copyleft
2010. Reproduccin permitida bajo los
o
trminos de la licencia de documentacin libre GNU.
e
o

Splines

Introduccin
o

Lagrange

Newton

Contenido

Introduccin
o

Interpolacin de Lagrange
o

Interpolacin de Newton
o

Error en la interpolacin
o

Interpolacin de Hermite
o

Splines

Anlisis de error
a

Hermite

Splines

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Interpolacin
o
Dado un conjunto de datos conocidos
(x0 , y0 ) , (x1 , y1 ) , (x2 , y2 ) , . . . , (xN , yN )
buscamos una funcin f : R R que satisfaga
o
f (xi ) = yi ,

i = 0, . . . , N

f es la funcin interpolante o interpolador


o
El interpolador f puede ser:
polinomio
spline
fraccin continuada
o

Restricciones adicionales:
Las derivada del interpolador f en los puntos dados es ja
Suavidad, monoticidad o convexidad del interpolador f

Splines

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Aplicaciones
Trazado de curvas atraves de un conjunto discreto de datos

Determinar valores intermedios de una tabla de datos

Derivar e integrar a partir de una tabla de datos.

Evaluar de manera fcil una funcin


a
o

Reemplazar una funcin complicada por una simple


o

Splines

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Interpolacin y aproximacin
o
o
Funciones utilizadas como interpoladores
Polinomios
Funciones trigonomtricas
e
Funciones exponenciales
Funciones racionales

Los interpoladores se ajustan a los datos de manera exacta (f (xi ) = yi )


Interpolacin presenta problemas cuando los datos estn sujetos a
o
a
errores signiativos
Cuando hay incertidumbre en los datos resulta util suavizarlos por

medio de una aproximacin de m


o
nimos cuadrados
Aproximaciones espectrales o aproximaciones con polinomios de
Chebyshev representan de manera efectiva soluciones numricas de
e
ecuaciones diferenciales parciales

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Teorema de aproximacin de Weierstrass


o
Teorema 1.1 (Weierstrass)
Sea f : [a, b] C continua. Entonces para todo > 0, existe un polinomio p
sobre C tal que para todo x [a, b],
|f (x) p(x)| <

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Polinomio interpolador
Teorema 1.2 (Existencia y unicidad del polinomio interpolante)
Si x0 , x1 , . . . , xn son nmeros reales distintos, entonces para N + 1 valores
u
arbitrarios y0 , y1 , . . . , yn existe un unico polinomio PN de grado a lo sumo

N tal que
pN (xi ) = yi
Observaciones
El teorema (1.2) generaliza:
Por dos puntos distintos del plano cartesiano pasa una y slo
o
una l
nea recta (polinomio de grado 1).
Dada una tabla de datos
x0
y0

x1
y1

xN
yN

existe uno y slo un polinomio pN de grado N tal que pN (xi ) = yi


o
Aunque el polinomio es unico, existen diversas formas de expresarlo y

diferentes algoritmos para determinarlo

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Polinomio interpolador
Asumimos un conjunto de puntos discretos {x0 , x1 , , xN } con los
valores correspondientes {f (x0), f (x1), , f (xN )}
Construimos una funcin f (x) que pase por (xi , f (xi )) por medio de la
o
aproximacin
o
N
X
f (x) pN (x) =
ak k (x)
(1)
i=0

pN es el polinomio interpolante

k son polinomios conocidos a priori y forman una base


ak son coecientes por determinar
(1) expresa a pN como una combinacin lineal de funciones base k
o

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Interpolacin de Vandermonde
o
Consideramos como bases los monomios
k (x) = xk ,

k = 0, . . . , N

(2)

Para la base (8) obtenemos la representacin


o
f (x) = a0 + a1 x + a2 x2 + + aN xN

(3)

donde a0 , a1 , . . . , aN son constantes a determinar.


Las N + 1 ecuaciones que surgen al evaluar xi en (3) se pueden
expresar matricialmente como
2
6
6
6
4

1
1
.
.
.
1

x0
x1
.
.
.
xN

x2
0
x2
1
.
.
.
x2
N

xN
0
xN
1
.
.
.
xN
N

32

a0
7 6 a1
76
76 .
54 .
.
aN

2
f (x0 )
7 6 f (x1 )
7 6
7=6
.
.
5 4
.
f (xN )

V es la matriz de Vandermonde y det(V) =

3
7
7
7
5

Y
0ijN

Va = f

(xj xi ) = 0.

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Ejemplo
Ejemplo 1.1
Determine el polinomio de grado 2 que interpola los tres datos
(2, 27), (0, 1), (1, 0)
Solucin
o
El polinomio est dado por
a
f (x) = a0 + a1 x + a2 x2

(4)

Para este caso el sistema est dado por


a
2

1
4 1
1

2
0
1

3 2
3
32
27
a0
4
0 5 4 a1 5 = 4 1 5
0
a2
1

La solucin est dada por [1 5 4]T y


o
a
f (x) = 1 + 5x 4x2

(5)

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Interpolacin de Lagrange
o
Como base tomamos los polinomios de Lagrange denidos por
Lk (x) =

N
Y (x xi )
(xk xi )
i=0
i=k

(6)

(x x0 )
(x xk1 )
(x xk+1 )
(x xN )
=

(xk x0 )
(xk xk1 ) (xk xk+1 )
(xk xN )
Propiedades
Lk es un polinomio de grado N

1 si k = j
Lk (xj ) =
= kj
0 si k = j

El polinomio de interpolacin de Lagrange est dado por


o
a
pN (x) = f (x0 )L0 (x) + f (x1 )L1 (x) + + f (xN )LN (x)

(7)

El polinomio de interpolacin de Lagrange es de grado N y pasa por


o
los N + 1 puntos (x0 , f (x0 )), . . . , (xN , f (xN ))

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Ejemplo 2.1
Determine los polinomios de Lagrange para N = 5 y x0 = 0 , x1 = 1 ,
x2 = 2 , x3 = 3 y x4 = 4.
L0 (x)

L1 (x)

L2 (x)

L3 (x)

L4 (x)

(x 1)(x 2)(x 3)(x 4)


(0 1)(0 2)(0 3)(0 4)
(x 0)(x 2)(x 3)(x 4)
(1 0)(1 2)(1 3)(1 4)
(x 0)(x 1)(x 3)(x 4)
(2 0)(2 1)(2 3)(2 4)
(x 0)(x 1)(x 2)(x 4)
(3 0)(3 1)(3 2)(3 4)
(x 0)(x 1)(x 2)(x 3)
(4 0)(4 1)(4 2)(4 3)

1 ` 4
x 10x3 + 35x2 50x + 24

24

1` 4
x 9x3 + 26x2 24x
6

1` 4
x 8x3 + 19x2 12x
4

1` 4
x 7x3 + 14x2 8x
6

1 ` 4
x 6x3 + 11x2 6x

24

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Polinomios de Lagrange (programa)


Lk (x) =

N
Y (x xi )
(x x0 )
(x xk1 )
(x xk+1 )
(x xN )
=

(xk xi )
(xk x0 )
(xk xk1 ) (xk xk+1 )
(xk xN )
i=0
i=k

lagrange.m

function L = lagrange(xpuntos,k,x)
% Argumentos:
% xpuntos: vector fila con las coordenadas en x
% k: valor entero correspondiente Lk
% x: valor real en el que se evala el polinomio
u
% Salida:
% L: valor obtenido al evaluar el polinomio de
%
Lagrange en x
L = 1.0;
n = length(xpuntos);
for i=1:k
L = L * (x - xpuntos(i))/(xpuntos(k+1)-xpuntos(i));
end
for i=k+2:n
L = L * (x - xpuntos(i))/(xpuntos(k+1)-xpuntos(i));
end
end

octave:#> xx = 0:4
xx =
0 1 2 3 4
octave:#> lagrange(xx,1,0)
ans = 0
octave:#> lagrange(xx,1,1)
ans = 0
octave:#> lagrange(xx,1,2)
ans = 0
octave:#> lagrange(xx,1,3)
ans = 0
octave:#> lagrange(xx,1,4)
ans = -560
octave:#> lagrange(xx,2,10)
ans = 945

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Ejemplo
Ejemplo 2.2
Determine el polinomio de interpolacin de Lagrange para f (x) =
o
puntos x0 = 2 , x1 = 2.5 , x2 = 4 y util
celo para aproximar f (3).

1
en los
x

Solucin
o
L0 (x)

(x 2,5)(x 4)
(2 2,5)(2 4)

(x 6,5)x + 10

L1 (x)

(x 2)(x 4)
(2,5 2)(2,5 4)

(4x + 24)x 32
3

L2 (x)

(x 2)(x 2,5)
(4 2)(4 2,5)

(x 4,5)x + 5
3

y
p(x)

f (2)L0 (x) + f (2,5)L1 (x) + f (4)L1 (x)

0,5 ((x 6,5)x + 10) + 0,4

(0,05x 0,425)x + 1,15

(4x + 24)x 32
(x 4,5)x + 5
+ 0,25
3
3
= f (3) p(3) = 0,325

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Polinomio de interpolacin de Lagrange (programa)


o
pN (x) =

N
X

f (xi )Li (x) = f (x0 )L0 (x) + f (x1 )L1 (x) + + f (xN )LN (x)

i=0

polilagrange.m

function p = polilagrange(f,xpuntos,x)
% Argumentos:
% xpuntos: vector fila con las coordenadas en x
% k: valor entero correspondiente Lk
% x: valor real en el que se evala el polinomio
u
% Salida:
% L: valor obtenido al evaluar el polinomio de
%
Lagrange en x
p = 0.0;
n = length(xpuntos);
for i=0:n-1
p = p + f(xpuntos(i+1))*lagrange(xpuntos,i,x);
end
end

fun.m

function y = fun(x)
y = 1./x;

octave:#> fun(2)
ans = 0.50000
octave:#> xp = [2 2.5 4];
octave:#> fun(xp)
ans =
0.50000 0.40000 0.25000
octave:#> polilagrange(@fun,xp,1)
ans = 0.77500
octave:#> polilagrange(@fun,xp,2)
ans = 0.50000
octave:#> polilagrange(@fun,xp,3)
ans = 0.32500

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Ejemplo
Ejemplo 2.3
Graque el polinomio de interpolacin del ejemplo anterior 1.2 y comprelo
o
a
con la funcin f .
o
Solucin
o
ejemplo13.m

clear all;
xp = [2
x
n
p
y

=
=
=
=

2.5

4];

-0:0.5:10;
length(x);
zeros(1,n);
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,funcin)
o
grid on

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Interpolacin de Newton
o
Con el n de reducir la complejidad computacional hacemos el
siguiente cambio de base
k (x) =

k1
Y

(x xi )

(8)

i=0

Ahora f (x) es aproximada por


f (x) = a0 +a1 (xx0 )+a2 (xx0 )(xx1 )+ +aN (xx0 )(xx1 ) (xxN 1 )
Las N + 1 ecuaciones que surgen al evaluar xi se pueden expresar
matricialmente como
1
6 1
6
6 .
4 .
.
1
2

0
(x1 x0 )
.
.
.
(xN x0 )

(xN x0 )(xN x1 )

0
0

(xN

a0
7 6 a1
76
76 .
54 .
.
x0 )
aN
32

2
f (x0 )
7
6 f (x1 )
7
6
7=6
.
.
5
4
.
f (xN )
3

3
7
7
7
5

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Frmula de diferencias dividas


o
La matriz del sistema anterior es triangular inferior
`
O N 2 operaciones necesarias para resolver el sistema
Las soluciones vienen dadas por
a0 = f (x0 )
f (x1 ) f (x0 )
x1 x0
f (x2 ) f (x0 ) f (x1 ) f (x0 )

x2 x0
x1 x0
a2 =
x2 x1
.
.
.
a1 =

ak = F(x0 , x1 , . . . , xk )
La funcin F puede determinarse de manera recursiva
o

Splines

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Frmula de diferencias dividas


o
Frmula de diferencias dividas
o
F(x0 , x1 , . . . , xk ) =

F(x0 , x1 , . . . , xk1 ) F (x1 , x2 , . . . , xk )


(x0 xk )

(9)

El polinomio de interpolacin est dado por


o
a
f (x) = F(x0 ) + F(x0 , x1 )(x x0 ) + F(x0 , x1 , x2 )(x x0 )(x x1 )
+ + F(x0 , , xN )(x x0 ) (x xN 1 )
(10)
La frmula de recursividad (9) aplicada a los puntos G2 = {x0 , x1 , x2 }
o
0
x0

k=0
F (x0 ) = f (x)

x1

k=1

F (x1 ) = f (x1 )

F (x0 , x1 ) =
F (x1 , x2 ) =
x2

F (x2 ) = f (x2 )

F (x0 )F (x1 )
x0 x1
F (x1 )F (x2 )
x1 x2

k=2

F (x0 , x1 , x2 ) =

F (x0 ,x1 )F (x1 ,x2 )


x0 x2

f (x) = F(x0 ) + F(x0 , x1 )(x x0 ) + F(x0 , x1 , x2 )(x x0 )(x x1 )

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Frmula de diferencias divididas (Newton)


o
F(x0 , x1 , . . . , xk ) =

F(x0 , x1 , . . . , xk1 ) F (x1 , x2 , . . . , xk )


(x0 xk )

newtoncoef.m

function F = newtoncoef(xpuntos,ypuntos)
% Argumentos:
% xpuntos: vector fila con las coordenadas
%
en x
% ypuntos: vector fila con las coordenadas
%
en y
% Salida:
% F: vector fila con los coeficientes del
%
polinomio de interpolacin
o
n = length(xpuntos);
F = ypuntos;
for i=2:n
for j=n:-1:i
F(j) = (F(j)- F(j-1))/...
(xpuntos(j)-xpuntos(j-i+1));
end
end
end

octave:#> xi = [1 2 3 4];
octave:#> yi = [1 8 27 64];
octave:#> F = newtoncoef(x,y)
F =
1

p(x) = F (x0 ) + F (x0 , x1 )(x x0 )


+ F (x0 , x1 , x2 )(x x0 )(x x1 )
+ F (x0 , x1 , x2 , x3 )(x x0 )(x x1 )(x x2 )
p(x) = 1 + 7(x 1) + 6(x 1)(x 2)
+ 1(x 1)(x 2)(x 3)
= x3

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Polinomio de interpolacin
o
p(x) = F(x0 ) + F(x0 , x1 )(x x0 ) + F(x0 , x1 , x2 )(x x0 )(x x1 )
+ + F(x0 , , xN )(x x0 ) (x xN 1 )
polinewton.m

function p = polinewton(F,xpuntos,x)
% Argumentos:
% F: vector fila con coeficientes
% xpuntos: vector fila con coordendas en x
% x: nmero en el que se evalua el
u
%
polinomio de interpolacin
o
% Salida:
% p: el valor obtenido al evaluar el
%
polinomio de interpolacin en x
o
n = length(xpuntos);
p = F(n);
for i=1:n-1
p = F(n-i) + (x - xpuntos(n-i))*p;
end
end

octave:#> polinewton(F,xi,3)
ans = 27
octave:#> polinewton(F,xi,-5)
ans = -125
ejemplo.m

clear all;
xi = [1 2 3 4];
yi = [1 8 27 64];
F = newtoncoef(xi,yi);
x = -2:0.05:2;
n = length(x);
y = zeros(1,n);
for i=1:n
y(i) = polinewton(F,xi,x(i));
end
plot(x,y); hold on
grid on

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Ejemplo 3.1

Ejemplo 3.1
Los datos consignados en la tabla pertenecen a la grca de la funcin
a
o
f (x) = 3.2 sin(x/10)
x
y

0.15
0.15074

2.30
2.1162

3.15
3.1964

4.85
3.1964

6.25
2.9564

7.95
1.9213

Determine el polinomio de interpolacin por medio de diferencias divididas


o
de Newton.
1

Realice una tabla con los valores del polinomio interpolante en


x = 0 , 0.5 , 1.0 , . . . , 8.0
y comprelos con los valores exactos dados por y = f (x).
a

Realice las grcas del polinomio de interpolacin y la funcin.


a
o
o

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Ejemplo 3.1 (solucin parte 1)


o
f (x) = 3.2 sen(x/10)
x
y

0.15
0.15074

2.30
2.1162

3.15
3.1964

ejemplo21a.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
n
p
y

=
=
=
=

-0:0.5:10;
length(x);
zeros(1,n);
zeros(1,n);

printf("

y \n");

for i=1:n
p(i) = polinewton(F,xi,x(i));
y(i) = 3.2*sin(pi*x(i)/10);
printf(" %10.5g %10.5g %10.5g \n",...
x(i), p(i), y(i));
end

4.85
3.1964

6.25
2.9564

7.95
1.9213

octave:#> ejemplo21a
x
p
0 0.00094347
0.5
0.49945
1
0.98762
1.5
1.4521
2
1.8807
2.5
2.2628
3
2.5889
3.5
2.8511
4
3.0432
4.5
3.1605
5
3.2001
5.5
3.1608
6
3.0435
6.5
2.851
7
2.5881
7.5
2.2617
8
1.8812

y
0
0.50059
0.98885
1.4528
1.8809
2.2627
2.5889
2.8512
3.0434
3.1606
3.2
3.1606
3.0434
2.8512
2.5889
2.2627
1.8809

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Ejemplo 3.1 (solucin parte 2)


o
f (x) = 3.2 sen(x/10)
x
y

0.15
0.15074

2.30
2.1162

3.15
3.1964

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
n
p
y

=
=
=
=

-0:0.5:10;
length(x);
zeros(1,n);
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,funcin)
o
grid on

4.85
3.1964

6.25
2.9564

7.95
1.9213

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Teorema (4.1)
Teorema 4.1
Sea f C n+1 [a, b] y p el polinomio de grado n que interpola a f en los
n + 1 puntos x0 , x1 , . . . , xn del intervalo [a, b]. Para todo x [a, b] existe un
= (x) (a, b) tal que
n
Y
1
f (x) p(x) =
f (n+1) ()
(x xi )
(11)
(n + 1)!
i=0
Observaciones
La cota de error para el polinomio de Taylor de grado n alrededor de
x0 concentra toda la informacin entorno a x0 :
o
f (n+1) ()
(x x0 )n+1
(n + 1)!
La cota de error (??) utiliza los n + 1 puntos x0 , x1 , . . . , xn :
f (n+1) ()
(x x0 ) (x xn )
(n + 1)!

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Ejemplo 4.1
Estime el error cometido al aproximar la funcin f (x) = sen x por medio
o
del polinomio de grado nueve que interpola a f en diez puntos del intervalo
[0, 1].
Solucin
o
La cota de error est dada por (??)
a
f (x) p(x) =

n
Y
1 (10)
f
()
(x xi )
10!
i=0

Por otra parte


f (10) () = sen

(10)
() 1
f

y
x [0, 1]

n
Y

|x xi | 1

i=0

Luego
|f (x) p(x)|

1
2,8 107
10!

(12)

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Cota de error para el polinomio de Newton

Teorema 4.2
Sea f C n+1 [a, b] y p el polinomio de grado n que interpola a f en los
n + 1 puntos x0 , x1 , . . . , xn del intervalo [a, b]. Entonces
n
Y
f (x) p(x) = F(x0 , x1 , . . . , xn , x)
(x xi )
(13)
i=0

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Observaciones
Si pn interpola a f en los n + 1 puntos x0 , x1 , . . . , xn ,
f (x) p(x) =

n
Y
1
f (n+1) ()
(x xi )
(n + 1)!
i=0

(14)

con [x0 , xn ].
es desconocido y (14) slo es util si la derivada est acotada
o

Si f (n+1) (x) < M y h = mx{xi+1 xi : i = 0, . . . , n},


a
mx
a
x[x0 ,xn ]

|f (x) p(x)|

M hn+1
(n + 1)!

(15)

El error disminuye a medida que n crece y h disminuye, slo si


o

(n+1)
(x) est acotada
a
f
Aumentar el grado del polinomio no garantiza una mejor aproximacin
o
(pueden aparecer oscilaciones entre los puntos de interpolacin)
o

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Observaciones
Por fuera del intervalo que contiene a los puntos de interpolacin,
o
n
Y

(x xi )

i=0

puede crecer rpido (extrapolacin)


a
o
En el interior del intervalo aumentar los puntos de interpolacin no
o
implica mejorar la aproximacin
o
Al aumentar el grado del polinomio, aumentan las oscilaciones
Hasta ahora las aproximaciones de los polinomios de interpolacin no
o
dependen de la distribucin de los puntos x0 , . . . , xn de interpolacin
o
o
Puntos de interpolacin igualmente espaciados a menudo conducen a
o
resultados errneos en los extremos
o

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Fenmeno Runge
o
Polinomios interpolantes para la funcin de Runge
o
f (x) =

1
,
1 + 25x2

x [1, 1]

sobre puntos igualmente espaciados no converge.

Figura: utiliza 10 puntos equidistantes (); utiliza 20 puntos


equidistantes ( ).

Splines

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Fenmeno Runge
o
Los puntos de interpolacin se pueden distribuir no uniformemente con
o
el n de minimizar el fenmeno de Runge
o

2i + 1
xi = cos
, i = 0, . . . , n
(16)
2n

Figura: utiliza 10 puntos equidistantes (); utiliza 20 puntos dados


por (16) ( ).

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Interpolacin de Hermite
o
Vimos que al aumentar los puntos de interpolacin, aumenta el grado
o
del polinomio de aproximacin y las oscilaciones
o
Una solucin consiste en utilizar varios polinomios de interpolacin de
o
o
grado bajo en lugar de un polinomio de grado alto
La interpolacin de Hermite utiliza no slo los valores de la funcin a
o
o
o
interpolar sino tambin sus derivadas. Por ejemplo
e
x0
f (x0 )
f (x0 )

x1
f (x1 )
f (x1 )

xN
f (xN )
f (xN )

Al incluir las derivadas, aumenta el nmero de ecuaciones del sistema


u
que determina los parmetros del polinomio interpolante
a
Los polinomios de Hermite se generan cuando se consideran slo los
o
valores de la primera derivada de la funcin
o

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Polinomio osculante
Proposicin 5.1 (Existencia del polinomio osculante)
o
Considere n + 1 puntos distintos en [a, b]
x0 , x 1 , . . . , x n

(17)

y mi un entero no negativo asociado a xi para i = 0, 1, . . . , n. Para


f C m [a, b] con m = mx0in mi existe un unico polinomio p de grado
a

m
nimo tal que
dk p(xi )
dk f (xi )
=
k
dx
dxk

para

i = 0, 1, . . . , n

k = 0, 1, . . . , mi

(18)

Observaciones
El polinomio p que satisface la condicin de interpolacin de Hermite
o
o
(18) es llamado polinomio osculante que aproxima a f
P
El nmero de condiciones a satisfacer en (18) es n mi + (n + 1) y
u
i=0
por tanto el grado del polinomio osculante p es a lo sumo
M =

n
X

mi + n

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Polinomio osculante
Cuando n = 0 tenemos en (17) slo un punto de interpolacin x0 y la
o
o
condicin de Hermite
o
dk p(x0 )
dk f (x0 )
=
k
dx
dxk

para

k = 0, 1, . . . , m0

conduce al m0 -simo polinomio de Taylor en torno a x0


e
p(x) = f (x0 ) + f (x0 )(xx0 ) +

f (x0 )
f (m0 ) (x0 )
(xx0 )2 + +
(xx0 )m0
2!
m0 !

Cuando mi = 0 para i = 0, 1 . . . , n la condicin de Hermite (18) queda


o
p(xi ) = f (xi )

para

i = 0, 1 . . . , n

y el polinomio resultante es el polinomio de interpolacin de Lagrange


o
Cuando mi = 1 para i = 0, 1 . . . , n la condicin de Hermite (18) queda
o
p(xi ) = f (xi )

p (xi ) = f (xi )

para

i = 0, 1 . . . , n

y el polinomio resultante se denomina polinomio de Hermite

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Teorema (5.1)
Teorema 5.1
Si f C 1 [a, b] y x0 , x1 , . . . , xn son puntos distintos en [a, b], el polinomio
osculante que interpola a f y f en x0 , x1 , . . . , xn es el polinomio de
Hermite de grado 2n + 1 y est dado por
a
H2n+1 (x) =

n
X

f (xj )Hn,j (x) +

j=0

n
X

f (xj )Hn,j (x)

(19)

j=0

donde

Hn,j (x) = 1 2(x xj )Ln,j (xj ) L2 (x) ,


n,j

(20)

Hn,j (x) = (x xj )L2 (x)


n,j

(21)

y Ln,j es el j-simo polinomio de Lagrange de grado n


e
Ln,j =

n
Y (x xi )
xj xi
i=0
i=j

(22)

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Ejemplo (5.1)
Ejemplo 5.1
Utilice el polinomio de Hermite que concuerda con los datos de la tabla para
obtener una aproximacin de f (1,5).
o
k
0
1
2

xk
1,3
1,6
1,9

f (xk )
0,6200860
0,4554022
0,2818186

f (xk )
0,5220232
0,5698959
0,5811571

Solucin
o
Calculamos los polinomios de Lagrange y sus derivadas
L2,0 (x)

(x x1 )(x x2 )
(x0 x1 )(x0 x2 )

50 2 175
152
x +
x+
9
9
9

L2,1 (x)

(x x0 )(x x2 )
(x1 x0 )(x1 x2 )

L2,2 (x)

(x x0 )(x x1 )
(x2 x0 )(x2 x1 )

50 2 145
104
x
x+
9
9
9

100 2 320
247
x +
x+
9
9
9

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Ejemplo (5.1)
Para las derivadas tenemos
L2,0 (x)

L2,1 (x)

L2,1 (x)

175
100
x
9
9
320
200
x+

9
9
145
100
x
9
9

Para los polinomios H2,j (x) tenemos

50 2
175
152 2
x
x+
9
9
9

2
50 2
175
152
(10x 12)
x
x+
9
9
9

320
247 2
100 2
x +
x
1
9
9
9

50 2
145
104 2
10(2 x)
x
x+
9
9
9

H2,0 (x)

=
=

H2,1 (x)

H2,2 (x)

[1 2(x 1,3)(5)]

Splines

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Ejemplo (5.1)

Para los polinomios H2,j (x) tenemos

H2,0 (x)

H2,1 (x)

H2,2 (x)

(x 1,3)

175
152 2
50 2
x
x+
9
9
9

100 2
320
247 2
x +
x
9
9
9

2
50 2
145
104
(x 1,9)
x
x+
9
9
9

(x 1,6)

Por el teorema (5.1)


H5 (x)

2
X
j=0

f (xj )Hn,j (x) +

2
X

f (xj )Hn,j (x)

j=0

0,6200860H2,0 (x) + 04554022H2,1 (x) + 0,281886H2,2 (x)

0,5220232H2,0 (x) 0,5698959H2,1 (x) 0,5811571H2,2 (x)

y evaluando
H5 (1,5) = 0,5118277

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Polinomio de Hermite con diferencias divididas


Los clculos requeridos para evaluar el polinomio de Hermite de
a
acuerdo al teorema (5.1) son tediosos. Otro mtodo consiste en utilizar
e
la frmula de diferencias divididas
o
pn (x) = f (x0 ) +

n
X

F(x0 , . . . , xk )(x x0 ) (x xk1 )

k=1

y el teorema del valor medio


F(xi , xi+1 ) =

f (xi+1 ) f (xi )
= f () ,
xi+1 xi

para algn
u

(xi , xi+1 )

Consideramos los puntos de interpolacin


o
x0 , x1 , . . . , xn
y formamos la sucesin
o
z0 , z 1 , . . . , z n
denida por
z0 = z1 = x0 , z2 = z3 = x1 , . . . , z2i = z2i+1 = xi , . . .

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Polinomio de Hermite con diferencias divididas


z

f (z)

z0 = x0

Primeras diferencias

Segundas diferencias

F (z0 ) = f (x0 )
F (z0 , z1 ) = f (x0 )

z1 = x0

F (z1 ) = f (x0 )

z2 = x1

F (z2 ) = f (x1 )

z3 = x1

F (z0 , z1 , z2 ) =
F (z1 , z2 ) =

F (z2 )F (z1 )
z2 z1

F (z3 ) = f (x1 )

F (z1 , z2 , z3 ) =

F (z2 ,z3 )F (z1 ,z2 )


z3 z1

F (z2 , z3 , z4 ) =

F (z3 ,z4 )F (z2 ,z3 )


z4 z2

F (z2 , z3 ) = f (x1 )

z4 = x2

F (z4 ) = f (x2 )

F (z3 , z4 ) =

F (z4 )F (z3 )
z4 z3

F (z2 , z3 , z4 ) =

F (z3 ,z4 )F (z2 ,z3 )


z4 z2

F (z0 , z1 , z2 ) =

F (z1 ,z2 )F (z0 ,z1 )


z2 z0

F (z4 , z5 ) = f (x2 )
z5 = x2

F (z4 ) = f (x2 )

.
.
.

F (z1 ,z2 )F (z0 ,z1 )


z2 z0

.
.
.

H2n+1 (x) = F(z0 ) +

.
.
.

n
X
k=1

.
.
.

F(z0 , . . . , zk )(x z0 ) (x zk1 )

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Aproximacin polinmica fragmentaria


o
o
Al aumentar los puntos de interpolacin, aumenta el grado del
o
polinomio de aproximacin y las oscilaciones
o
Otro enfoque consiste en dividir el intervalo en una serie de
subintervalos y en cada uno de esos subintervarlos construir un
polinomio de interpolacin de grado bajo
o
La interpolacin lineal une los puntos mediante rectas
o
{(x0 , f (x0 )), (x1 , f (x1 )), . . . , (xn , f (xn ))}

Otra posibilidad es usar polinomios cuadrticos entre [xi , xi+1 ]


a

Splines

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Spline (trazador) cbico


u
Denicin 6.1 (Spline cbico)
o
u
Considere f : [a, b] R y un conjunto de nodos
a = x0 < x1 < < xn = b
Un spline cbico para f es una funcin S : [a, b] R tal que:
u
o
1

S |[xj ,xj+1 ] = Sj donde Sj es un polinomio cbico en [xj , xj+1 ]


u

S(xj ) = f (xj ) para j = 0, 1, . . . , n

Sj+1 (xj+1 ) = Sj (xj+1 ) para j = 0, 1, . . . , n 2

Sj+1 (xj+1 ) = Sj (xj+1 ) para j = 0, 1, . . . , n 2

Sj+1 (xj+1 ) = Sj (xj+1 ) para j = 0, 1, . . . , n 2

Una de las siguientes condiciones de frontera se satisfacen


1

S (x0 ) = S (xn ) = 0

(frontera libre)

S (x0 ) = f (x0 ) y S (xn ) = f (xn )

(frontera sujeta)

Splines

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Construccin del spline cbico


o
u
En cada intervalo [xj , xj+1 ] consideramos el polinomio cbico
u
Sj (x)

aj + bj (x xj ) + cj (x xj )2 + dj (x xj )3

Sj (x)

bj + 2cj (x xj ) + 3dj (x xj )2

Sj (x)

2cj + 6dj (x xj )

(23)

con j = 0, . . . , n 1.
Por la condicin de interpolacin (2),
o
o
S(xj ) = f (xj )

aj = f (xj )

De la condicin (3),
o
Sj+1 (xj+1 )

Sj (xj+1 )

aj+1

aj + bj (xj+1 xj ) + cj (xj+1 xj )2 + dj (xj+1 xj )3

aj+1

aj + bj hj + cj h2 + dj h3
j
j
(24)

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Construccin del spline cbico


o
u
De la condicin (4) para la primera derivada,
o
Sj+1 (xj+1 )

Sj (xj+1 )

bj+1

bj + 2cj (xj+1 xj ) + 3dj (xj+1 xj )2

bj+1

bj + 2cj hj +

(25)

3dj h2
j

De la condicin (5) para la segunda derivada,


o
Sj+1 (xj+1 )

Sj (xj+1 )

2cj+1

2cj + 6dj (xj+1 xj )

cj+1

dj

cj + 3dj hj
cj+1 cj
3hj

(26)

Al reemplazar dj en (24)
aj+1
bj

=
=

h2
j
(2cj + cj+1 )
3
1
hj
(aj+1 aj ) (2cj + cj+1 )
hj
3

aj + bj hj +

(27)

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Construccin del spline cbico


o
u
De la ultima ecuacin

o
bj1 =

1
hj1
(aj aj1 )
(2cj1 + cj )
hj1
3

(28)

De nuevo, al reemplazar dj (26) en (25),


bj+1 = bj + hj (cj + cj+1 )

(29)

Resumiendo: tenemos las ecuaciones (27) y (28)


bj
bj1

=
=

hj
1
(aj+1 aj )
(2cj + cj+1 )
hj
3

(30)

hj1
(aj aj1 )
(2cj1 + cj )
hj1
3

La ecuacin (29) se puede expresar como


o
bj = bj1 + hj1 (cj1 + cj )

(31)

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Construccin del spline cbico


o
u
Finalmente reemplazamos (30) en (31)
bj = bj1 + hj1 (cj1 + cj )

1
hj
1
hj1
(aj+1 aj )
(2cj + cj+1 ) =
(aj aj1 )
(2cj1 + cj ) + hj1 (cj1 + cj )
hj
3
hj1
3
1
1
hj
hj1
(aj+1 aj )
(aj aj1 ) =
(2cj + cj+1 )
(2cj1 + cj ) + hj1 (cj1 + cj )
hj
hj1
3
3
3
3
(aj+1 aj )
(aj aj1 ) = hj (2cj + cj+1 ) hj1 (2cj1 + cj ) + 3hj1 (cj1 + cj )
hj
hj1

El lado derecho se puede escribir como


hj (2cj + cj+1 ) hj1 (2cj1 + cj ) + 3hj1 (cj1 + cj )
=

2hj cj + hj cj+1 2hj1 2cj1 hj1 cj + 3hj1 cj1 + 3hj1 cj

2hj cj + hj cj+1 + hj1 cj1 + 2hj1 cj

hj1 cj1 + 2(hj + hj1 )cj + hj cj+1

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Construccin del spline cbico


o
u
Obtenemos para los coecientes cj el sistema de ecuaciones
hj1 cj1 + 2(hj + hj1 )cj + hj cj+1

3
3
(aj+1 aj )
(aj aj1 )
hj
hj1
{z
}
|
tj

con j = 1, 2, . . . , n 1

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 + hn2 cn3 + 2 (hn2 + hn1 ) cn2 + hn1 cn1

tn1

Se requieren dos ecuaciones ms para cerrar el sistema (condiciones


a
de frontera (61), (62))

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Construccin del spline cbico


o
u
Para la condicin de frontera (61)
o
S (x0 ) = S (xn ) = 0
De (23),
Sj (x) = 2cj + 6dj (x xj )

S0 (x0 ) = 2c0 + 6dj (x0 x0 ) = 0

c0 = 0

Las ecuaciones c0 = 0 y cn = 0 generan el sistema (n + 1) (n + 1):


1
6 h0
6 0
6
6
6 .
6 .
6 .
4 0
0
2

0
2(h0 + h1 )
h1

0
h1
2(h1 + h2 )
..
.

h2
..
.
hn2
0

0
0
0
..

.
2(hn2 + hn1 )
0

0
hn1
1

32 c
0
7 6 c1
76
76 .
76 .
76 .
76
76 .
54 .
.
cn

2 0
6 t1
7
7
6
7
6 .
6 .
7
7=6 .
7
6
6 .
7
5
4 .
.
0
3

3
7
7
7
7
7
7
7
5

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Existencia del spline cbico


u
Teorema 6.1 (Spline cbico con frontera libre)
u
Sea f : [a, b] R. Entonces existe un unico spline cbico S que interpola a

u
f en
a = x0 < x1 < < xn = b
y que satisface la condicin de frontera
o
S (a) = 0

S (b) = 0

Observaciones
El interpolador S : [a, b] R est dado por
a
S(x) = Sj (x) = aj +bj (xxj )+cj (xxj )2 +dj (xxj )3 ,
donde
1

aj = f (xj ),

j = 0, . . . , n

c0 , c1 , . . . , cn se obtienen de resolver el sistema lineal

bj = (aj+1 aj )/hj hj (cj+1 + 2cj )/3

dj = (cj+1 cj )/(3 hj )

(ecuacin (26))
o

(ecuacin (30))
o

x [xj , xj+1 ]

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Construccin del spline cbico


o
u
Para la condicin de frontera (62)
o
S (x0 ) = f (x0 )

S (xn ) = f (xn )

el sistema de ecuaciones queda


2
6
6
6
6
6
6
6
4

2 h0
h0
0
.
.
.
0
0

h0
2(h0 + h1 )
h1

0
h1
2(h1 + h2 )
..
.

h2
..
.
hn2
0

0
0
0
..
.
2(hn2 + hn1 )
hn1

0
hn1
2 hn1

con
2
6
6
6
6
b=6
6
6
4

3
h1

3
h0 (a1 a0 ) 3 f (a)
3
(a2 a1 ) h (a1 a0 )

7
7
7
7
7
7
7
3
3
hn1 (an an1 ) hn2 (an1 an2 ) 5
3 f (b) h 3 (an an1 )
0

.
.
.

n1

32 c
0
7 6 c1
76
76 .
76 .
76 .
76
76 .
54 .
.
cn

3
7
7
7
7
7=b
7
7
5

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Ejemplo
Ejemplo 6.1 (Spline cbico con frontera libre)
u
Encuentre el spline cbico de frontera libre que interpola
u
x
y

1
0

2
1

3
0

4
1

5
0

y determine el valor de y en x = 1,5.


Solucin
o
El interpolador S : [a, b] R est dado por
a
S(x) = Sj (x) = aj +bj (xxj )+cj (xxj )2 +dj (xxj )3 ,

x [xj , xj+1 ]

a0 = 0, a1 = 1, a2 = 0, a3 = 1, a4 = 1
h0 = h1 = h2 = h3 = h4 = 0
1
6 h0
6
A=6 0
4 0
0
2

0
2(h0 + h1 )
h1
0
0

0
h1
2(h1 + h2 )
h2
0

0
0
h2
2(h2 + h3 )
0

0
0
0
h3
1

2
1
7
6 1
7
6
7=6 0
5
4 0
0
3

0
4
1
0
0

0
1
4
1
0

0
0
1
4
0

0
0
0
1
1

3
7
7
7
5

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Ejemplo
Para b tenemos
0
3
6 3
(a2 a1 )
(a1 a0 )
6
0
6 h1
h0
t1 7
6 3
3
6
7
t2 7 = 6
(a a2 )
(a2 a1 )
6 h2 3
h1
t3 5
6
3
6 3
0
4
(a4 a3 )
(a3 a2 )
h4
h2
0
2

2
6
6
A=6
4

3
7
2
7
0
7
7
6 6
7
6
6
7=6
7
4 6
7
7
0
5

3
7
7
7
5

La solucin del sistema


o
Ax = b

viene dada por


x = [ 0,00000000

2,14285714

2,57142857 2,14285714 ]T

Para el resto de coecientes podemos usar las frmulas vistas


o
bj

dj

aj+1 aj
cj+1 + 2cj
hj
hj
3
cj+1 cj
3 hj

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Splines

Ejemplo
Para el resto de coecientes del spline
S(x) = Sj (x) = aj + bj (x xj ) + cj (x xj )2 + dj (x xj )3
podemos usar tambin el programa SplineLibre.c
e
Resultados obtenidos
ai
0,00000000
1,00000000
0,00000000
1,00000000

bi
1,71428571
0,42857143
0,00000000
0,42857143

ci
0,00000000
2,14285714
2,57142857
2,14285714

di
0,71428571
1,57142857
1,57142857
0,71428571

El valor solicitado es en x = 1,5 [x0 , x1 ]


S(x) = S0 (x) = 1,71428571(x 1) 0,71428571(x 1)3
y
S(1,5) = S0 (1,5) = 0,767857141

Introduccin
o

Lagrange

Newton

Anlisis de error
a

Hermite

Referencias

R.L. Burden, J.D. Faires.


Anlisis numrico
a
e
Sptima Edicin. Editorial Thomson. 2002.
e
o
http://www.as.ysu.edu/faires/Numerical-Analysis/

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/

Splines

También podría gustarte