Vous êtes sur la page 1sur 28

Captulo III

Interpolaci on Polinomica
III.1. Problema
Dados n + 1 puntos (x
0
, y
0
), (x
1
, y
1
), . . . , (x
n
, y
n
), con abscisas diferentes, se trata de determinar
un polinomio p
n
(x) tal que p
n
(x
i
) = y
i
para i = 0, . . . , n.
Teorema III.1 Existen un unico polinomio interpolante de grado a lo mas n.
Prueba: La existencia se va a establecer por medio de diferentes metodos en este captulo. La unicidad
se puede concluir del siguiente argumento: si p(x) y q(x) son dos polinomios interpoladores de grado
a lo m as n, entonces r(x) = p(x) q(x) es un polinomio de grado a lo m as n tal que r(x
i
) = 0 para
i = 0, 1, . . . , n. Pero un polinomio de grado a lo m as n que no es identicamente cero s olo puede tener
a lo m as n races, de lo que se concluye que r(x) = 0 y por lo tanto p(x) = q(x). .
Note que se habla de grado a lo mas n. Esto es porque es posible que n + 1 puntos sean inter-
polados por un polinomio de grado menor que n: por ejemplo, tres puntos colineales son interpolados
por una lnea.
Antes de ocuparnos con los metodos de Lagrange y Newton, veamos que en principio el problema
de interpolaci on se puede resolver a traves de un sistema de ecuaciones lineales (esto tambien muestra
la unicidad). Sea p
n
(x) = c
0
+c
1
x+c
2
x
2
+c
3
x
3
+ +c
n
x
n
, entonces las igualdades p
n
(x
i
) = y
i
, para
i = 0, . . . , x
n
son equivalentes al siguiente sistema de ecuaciones en forma matricial
_

_
1 x
1
0
x
2
0
x
n1
0
x
n
0
1 x
1
1
x
2
1
x
n1
1
x
n
1
1 x
1
2
x
2
2
x
n1
2
x
n
2
1 x
1
3
x
2
3
x
n1
3
x
n
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1 x
1
n1
x
2
n1
x
n1
n1
x
n
n1
1 x
1
n
x
2
n
x
n1
n
x
n
n
_

_
c
0
c
1
c
2
c
3
.
.
.
c
n1
c
n
_

_
=
_

_
y
0
y
1
y
2
y
3
.
.
.
y
n1
y
n
_

_
La matrix de coecientes de este sistema lineal de igualdades es bien conocida y se le llama matrix
de Vandermonde y se denota por V (x
0
, x
1
, x
2
, . . . , x
n
). Su determinante es
det V (x
0
, x
1
, . . . , x
n
) =

i>j
(x
i
x
j
)
III.1
III.2 CAP

ITULO III. INTERPOLACI

ON POLIN

OMICA
donde el producto es sobre todos los pares i, j con valores en 1, . . . , n y tal que i > j (por ejemplo
det V (x
0
, x
1
) = x
1
x
0
, lo cual se puede vericar directamente). El determinante es diferente de zero
porque los x
i
son diferentes. Entonces V (x
0
, x
1
, . . . , x
n
) es invertible y existen un vector unico de
soluciones [c
0
c
1
c
n
]
T
dado por
_

_
c
0
c
1
c
2
c
3
.
.
.
c
n1
c
n
_

_
=
_

_
1 x
1
0
x
2
0
x
n1
0
x
n
0
1 x
1
1
x
2
1
x
n1
1
x
n
1
1 x
1
2
x
2
2
x
n1
2
x
n
2
1 x
1
3
x
2
3
x
n1
3
x
n
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1 x
1
n1
x
2
n1
x
n1
n1
x
n
n1
1 x
1
n
x
2
n
x
n1
n
x
n
n
_

_
1

_
y
0
y
1
y
2
y
3
.
.
.
y
n1
y
n
_

_
Ejemplo. Queremos encontrar el polinomio de interpolacion para los puntos (1, 3), (0, 5), (2, 2), (3, 1), (5, 1).
MATLAB provee la operaci on vander(x) la cual crea una matriz de Vandermode para los valores en
el vector x. Tambien provee la operacion V\y que multiplica el inverso de la matriz V por el vector
columna y. El siguiente segmento de Matlab resuelve nuestro problema. Pero note que Matlab tiene
un orden diferente para la matriz, y como resultado los coecientes resultan en orden inverso tambien
(primero el de m as alto orden). Esto es cierto en general de como maneja Matlab los polinomios.
>> x = [-1 0 2 3 5];
>> y = [3 5 2 -1 1];
>> V=vander(x);
>> c=V\y;
>> figure, grid on, hold on;
>> fplot(@(x) polyval(c,x),[-1.5, 5.5]);
>> plot(x,y,ro);
>> c,V
ans =
1/30 1/30 -13/10 7/10 5
V =
1 -1 1 -1 1
0 0 0 0 1
16 8 4 2 1
81 27 9 3 1
625 125 25 5 1
El polinomio de interpolaci on es entonces
p
4
(x) =
1
30
x
4
+
1
30
x
3

13
10
x
2
+
7
10
x + 5.
III.2. Metodo de Lagrange
Dados dos puntos (x
0
, y
0
), (x
1
, y
1
), su lnea interpolante est a dada por
p
1
(x) =
y
1
y
0
x
1
x
0
x +
x
1
y
0
y
1
x
0
x
1
x
0
= y
0
x x
1
x
0
x
1
+y
1
x x
0
x
1
x
0
III.2. M

ETODO DE LAGRANGE III.3


Figura III.1: Interpolaci on de los puntos (1, 3), (0, 5), (2, 2), (3, 1), (5, 1).
Es conveniente introducir los polinomios (lneas)
L
1,0
(x) =
x x
1
x
0
x
1
L
1,1
(x) =
x x
0
x
1
x
0
.
Note que L
1,0
(x) es una lnea que pasa por los puntos (x
0
, 1) y (x
1
, 0) y L
1,1
(x) es una lnea que pasa
por los puntos (x
0
, 0) y (x
1
, 1). Con esto, p
1
(x) se puede escribir como
p
1
(x) = y
0
L
1,0
(x) +y
1
L
1,1
(x).
Esto es, el polinomio (lnea) p
1
(x) es la combinacion lineal de L
1,0
(x) y L
1,1
(x) con coecientes que
son simplemente y
0
y y
1
.
Esto se puede generalizar facilmente a la interpolacion de n + 1 puntos (x
0
, y
0
), . . . , (x
n
, y
n
) de la
siguiente manera. El polinomio interpolante p
n
(x) de grado a lo m as n est a dado por
p
n
(x) =
n

i=0
y
i
L
n,i
(x),
donde
L
n,i
=

j=i
x x
j
x
i
x
j
.
El polinomio L
n,i
(x) tiene la propiedad
L
n,i
(x
j
) =
i,j
donde

i,j
=
_
0 si i = j
1 si i = j
la cual se puede vericar facilmente. Haciendo las multiplicaciones y sumas hasta expresar el polinomio
en la base usual (1, x, x
2
, x
3
, . . .) resulta obviamente el mismo polinomio que se puede obtener por
cualquier otro medio.
III.4 CAP

ITULO III. INTERPOLACI

ON POLIN

OMICA
Ejemplo. Consideramos de nuevo los puntos (1, 3), (0, 5), (2, 2), (3, 1), (5, 1). Los polinomios de
Lagrange son
L
4,0
(x) =
(x 0)(x 2)(x 3)(x 5)
(1 0)(1 2)(1 3)(1 5)
=
1
72
x(x 2)(x 3)(x 5)
L
4,1
(x) =
(x + 1)(x 2)(x 3)(x 5)
(0 + 1)(0 2)(0 3)(0 5)
=
1
30
(x + 1)(x 2)(x 3)(x 5)
L
4,2
(x) =
(x + 1)(x 0)(x 3)(x 5)
(2 + 1)(2 0)(2 3)(2 5)
=
1
18
(x + 1)x(x 3)(x 5)
L
4,3
(x) =
(x + 1)(x 0)(x 2)(x 5)
(3 + 1)(3 0)(3 2)(3 5)
=
1
24
(x + 1)x(x 2)(x 5)
L
4,4
(x) =
(x + 1)(x 0)(x 2)(x 3)
(5 + 1)(5 0)(5 2)(5 3)
=
1
180
(x + 1)x(x 2)(x 3)
Simplicar esto es tedioso; los siguientes resultados fueron obtenidos con Matlab. Los polinomios de
Lagrange son
L
4,0
(x) =
1
72
x
4

5
36
x
3
+
31
72
x
2

5
12
x
L
4,1
(x) =
1
30
x
4
+
3
10
x
3

7
10
x
2

1
30
x + 1
L
4,2
(x) =
1
18
x
4

7
18
x
3
+
7
18
x
2
+
5
6
x
L
4,3
(x) =
1
24
x
4
+
1
4
x
3

1
8
x
2

5
12
x
L
4,4
(x) =
1
180
x
4

1
45
x
3
+
1
180
x
2
+
1
30
x
y el polinomio de interpolacion es
p
4
(x) = 3 L
4,0
(x) + 5 L
4,1
(x) + 2 L
4,2
(x) 1 L
4,3
(x) + 1 L
4,4
(x)
=
3
72
x(x 2)(x 3)(x 5)
5
30
(x + 1)(x 2)(x 3)(x 5)
+
2
18
(x + 1)x(x 3)(x 5) +
1
24
(x + 1)x(x 2)(x 5) +
1
180
(x + 1)x(x 2)(x 3)
=
1
30
x
4
+
1
30
x
3

13
10
x
2
+
7
10
x + 5
La siguiente gura muestra los polinomios de Lagrange y el polinomio de interpolacion.
Implementaci on en MATLAB
function [C, L] = lagran (X, Y)
% Entrada - X es un vector que contiene una lista de las abscisas
% - Y es un vector que contiene una lista de las ordenadas
% Salida - C es una matriz que contiene los coeficientes del
% polinomio interpolante de Lagrange
% - L es una matriz que contiene los coeficientes de los
% polinomios de Lagrange
w = length(X);
n = w - 1;
L = zeros(w, w);
III.2. M

ETODO DE LAGRANGE III.5


Figura III.2: Polinomios L
4,i
(x) para el ejemplo y polinomio de interpolacion (a rayas)
% Formar los polinomios coeficientes de Lagrange
for i = 1:n+1
V = 1;
for i = 1:n+1
if i ~= j
V = conv(V, poly(X(j))) / (X(i) - X(j));
end
end
L(i, :) = V;
end
% Determinar los coeficientes del polinomio interpolador de Lagrange
C = Y * L;
La funci on poly(C) donde C es un vector regresa un vector con los coecientes del polinomio cuyas
races son las componentes de C. En otras palabras, si C es [r
0
r
1
r
N1
], entonces poly(C) regresa
el vector [c
N
c
N1
c
0
] tal que
(X r
0
)(X r
1
) (X r
N1
) =

k
c
k
X
k
.
Note que en MATLAB, los coecientes de un polinomio aparecen en el vector correspondiente en
orden decreciente (el de mayor orden primero y el de menor orden de ultimo).
La funcion conv(A,B) regresa la convolucion de los vectores A y B. Dados vectores [a
m1
a
m2
a
1
a
0
]
y [b
n1
b
n2
b
1
b
0
] su convolucion es un vector [c
m+n
c
m+n1
c
1
c
0
] donde
c
k
=

i+j=k
a
i
b
j
donde la suma es sobre los i, j con i + j = k. Note que si se tienen dos polinomios P(X) =

i
a
i
X
i
y Q(x) =

j
b
j
X
j
entonces el producto R(X) = P(X)Q(X) es precisamente

k
c
k
X
k
. Con estas
aclaraciones, no es difcil ver como funciona la implementaci on.
III.6 CAP

ITULO III. INTERPOLACI

ON POLIN

OMICA
Representaci on Baricentrica (opcional)
Obviamente simplicar hasta obtener la representacion usual del polinomio de interpolaci on es
bastante tedioso. Y a un con el computador es cuestionable usar el metodo de Lagrange s olo para
luego simplicarlo. El metodo de Lagrange es m as util cuando esto no se hace y m as bien se escribe
p
n
(x) = Q
n
(x)
n

i=0
w
i
x x
i
y
i
donde
w
i
=
1

j=i
(x
i
x
j
)
.
Usando ademas que (interpolando en los mismos nodos pero con valor 1)
1 = Q
n
(x)
n

i=0
w
i
x x
i
se obtiene la llamada representaci on baricentrica
p
n
(x) =
n

i=0
w
i
x x
i
y
i
n

i=0
w
i
x x
i
.
Esta expresi on se puede usar para calcular valores de p
n
(x) con x = x
i
, sin necesidad de simplicar
el polinomio.
III.3. Metodo de Newton
El polinomio p
n
(x) se puede construir recursivamente de la siguiente manera: Primero, para i = 0,
tenemos
p
0
(x) = y
0
,
el cual ciertamente satisface p
0
(x
0
) = y
0
. Ahora, en la construccion recursiva asumimos que p
k1
(X)
es tal que p
k1
(x
j
) = y
j
para j k 1. Entonces
p
k
(x) = p
k1
(x) +c
k
(x x
0
)(x x
1
) (x x
k1
),
satisface similarmente p
k
(x
j
) = y
j
para j k 1 y la constante c
k
se determina de tal forma que
p
k
(x
k
) = y
k
. Esto es
c
k
=
f(x
k
) p
k1
(x
k
)
(x
k
x
0
)(x
k
x
1
) (x
k
x
k1
)
.
Expandiendo la recurrencia de p
k
(x) tenemos
p
k
(x) = c
0
+c
1
(x x
0
) +c
2
(x x
0
)(x x
1
) +c
3
(x x
0
)(x x
1
)(x x
2
) +
+c
n
(x x
0
)(x x
1
) (x x
n1
).
III.3. M

ETODO DE NEWTON III.7


Ejemplo. Consideramos de nuevo los puntos (1, 3), (0, 5), (2, 2), (3, 1), (5, 1). Tomando los puntos
en este orden (pero note que el metodo no requiere que las abscisas esten ordenadas de menor a mayor).
El primer polinomio es
p
0
(x) = 3.
El siguiente polinomio es
p
1
(x) = p
0
(x) +c
1
(x + 1) = 3 +c
1
(x + 1)
con c
1
tal que p
1
(0) = 5. Esto es 3 +c
1
(0 + 1) = 5, entonces c
1
= 2 y se obtiene
p
1
(x) = 3 + 2(x + 1)
El siguiente polinomio es
p
2
(x) = p
1
(x) +c
2
(x + 1)(x 0) = 3 + 2(x + 1) +c
2
(x + 1)x
con c
2
tal que p
2
(2) = 2. Se tiene 3 + 2(2 + 1) +c
2
(2 + 1)2 = 2, por lo tanto c
2
= 7/6 y
p
2
(x) = 3 + 2(x + 1)
7
6
(x + 1)x
El siguiente polinomio es
p
3
(x) = p
2
(x) +c
3
(x + 1)(x 0)(x 2) = 3 + 2(x + 1)
7
6
(x + 1)x +c
3
(x + 1)x(x 2)
con c
3
tal que p
3
(3) = 1. Se obtiene que c
3
= 1/6 y
p
3
(x) = 3 + 2(x + 1)
7
6
(x + 1)x +
1
6
(x + 1)x(x 2)
Finalmente, el ultimo polinomio es
p
4
(x) = p
3
(x) +c
4
(x + 1)(x 0)(x 2)(x 3)
= 3 + 2(x + 1)
7
6
(x + 1)x +
1
6
(x + 1)x(x 2) +c
4
(x + 1)x(x 2)(x 3)
con p
4
(5) = 1. Se obtiene c
4
= 1/30 y
p
4
(x) = 3 + 2(x + 1)
7
6
(x + 1)x +
1
6
(x + 1)x(x 2) +
1
30
(x + 1)x(x 2)(x 3).
Diferencias Divididas
Ahora discutimos un metodo m as sistem atico para calcular los coecientes c
k
en el la forma de
Newton del polinomio de interpolacion. Primero, aunque no es esencial que sea as, si los puntos (x
i
, y
i
)
est an determinados por una funci on f, la cual estamos tratando de aproximar por el polinomio p
n
(x),
denotamos el coeciente c
k
como
c
k
= f[x
0
, x
1
, . . . , x
k
]
el cual se llama la k-esima diferencia dividida de f en las abscisas x
0
, x
1
, . . . , x
n
. Es claro que realmente
c
k
depende solo de x
0
, x
1
, . . . , x
k
, y no de x
k+1
, . . . , x
n
. Como se puede ver en el siguiente teorema es
conveniente hablar de las diferencias divididas
f[x
kj
, x
kj+1
, . . . , x
k
. .
j + 1 nodos
]
III.8 CAP

ITULO III. INTERPOLACI

ON POLIN

OMICA
que es el coeciente de x
j
en el polinomio interpolante de (x
kj
, y
kj
), . . . , (x
k
, y
k
).
Veamos que valores toman los c
k
: Primero f[x
0
] c
0
= y
0
y entonces p
0
(x) = y
0
. Entonces
f[x
0
, x
1
] c
1
=
f(x
1
) p
0
(x
1
)
x
1
x
0
=
y
1
y
0
x
1
x
0
=
f[x
1
] f[x
0
]
x
1
x
0
y
p
1
(x) = y
0
+
y
1
y
0
x
1
x
0
(x x
0
).
El siguiente f[x
0
, x
1
, x
2
]
c
2
=
f(x
2
) p
1
(x
2
)
(x
2
x
0
)(x
2
x
1
)
=
y
2

_
y
0
+
y
1
y
0
x
1
x
0
(x
2
x
0
)
_
(x
2
x
0
)(x
2
x
1
)
=
y
2
y
1
x
2
x
1

y
1
y
0
x
1
x
0
x
2
x
0
=
f[x
1
, x
2
] f[x
0
, x
1
]
x
2
x
0
.
El siguiente teorema generaliza estos calculos y as da un algoritmo para calcular todas las diferencias
divididas f[x
kj
, x
kj+1
, . . . , x
k
]. En particular, se obtienen las diferencias f[x
0
, x
1
, . . . , x
k
] que son los
coecientes en el polinomio interpolante en la forma dada por el metodo de Newton. Denotamos por
p
kj,kj+1,...,k
(x)
al polinomio de interpolaci on para los nodos x
kj
, x
kj+1
, . . . , x
k
. As que, por denici on,
p
kj,kj+1,...,k
(x) = f[x
kj
, x
kj+1
, . . . , x
k
] x
j
+{terminos de orden j 1}
Teorema III.2 f[x
k
] = f(x
k
) y para j = 1, 2, 3, . . .
f[x
kj
, x
kj+1
, . . . , x
k
] =
f[x
kj+1
, x
kj+2
, . . . , x
k
] f[x
kj
, x
kj+1
, . . . , x
k1
]
x
k
x
kj
Prueba: Sea
q(x) =
x x
k
x
kj
x
k
p
kj,kj+1,...,k1
(x) +
x x
kj
x
k
x
kj
p
kj+1,kj+1,...,k
(x).
Veamos que
p
kj,kj+1,...,k1,k
(x) = q(x).
Para esto es suciente ver que q(x) interpola en los nodos x
kj
, x
kj+1
, . . . , x
k1
, x
k
correctamente:
- en x
kj
:
q(x
kj
) = p
kj,kj+1,...,k1
(x
kj
) = y
kj
porque p
kj,kj+1,...,k1
interpola en x
kj
correctamente;
- en x
k
:
q(x
k
) = p
kj+1,kj+1,...,k
(x
k
) = y
k
porque p
kj+1,kj+1,...,k
interpola en x
k
correctamente;
III.3. M

ETODO DE NEWTON III.9


- en x
i
con k j < i < k:
q(x
i
) =
x
i
x
k
x
kj
x
k
p
kj,kj+1,...,k1
(x
i
) +
x
i
x
kj
x
k
x
kj
p
kj+1,kj+1,...,k
(x
i
)
=
x
i
x
k
x
kj
x
k
y
i
+
x
i
x
kj
x
k
x
kj
y
i
=
x
k
x
i
x
k
x
kj
y
i
+
x
i
x
kj
x
k
x
kj
y
i
=
x
k
x
i
+x
i
x
kj
x
k
x
kj
y
i
= y
i
porque ambos polinomios interpolan en p
i
correctamente.
Pero el coeciente de x
j
en p
kj,...,k
(x) es f[x
kj
, x
kj+1
, . . . , x
k
] y el mismo coeciente en q(x) es
f[x
kj
, x
kj+1
, . . . , x
k1
]
x
kj
x
k
+
f[x
kj+1
, x
kj+1
, . . . , x
k
]
x
k
x
kj
;
entonces
f[x
kj
, x
kj+1
, . . . , x
k
] =
f[x
kj
, x
kj+1
, . . . , x
k1
]
x
kj
x
k
+
f[x
kj+1
, x
kj+1
, . . . , x
k
]
x
k
x
kj
=
f[x
kj+1
, x
kj+1
, . . . , x
k
] f[x
kj
, x
kj+1
, . . . , x
k1
]
x
k
x
kj
.
Tabla de diferencias divididas. El teorema anterior nos da un algoritmo para calcular los c
k
=
f[x
0
, x
1
, . . . , x
k
], el cual consiste en completar la siguiente tabla de diferencias divididas
x
0
f[x
0
]

x
1
f[x
1
] f[x
0
, x
1
]

x
2
f[x
2
] f[x
1
, x
2
] f[x
0
, x
1
, x
2
]

x
3
f[x
3
] f[x
2
, x
3
] f[x
1
, x
2
, x
3
] f[x
0
, x
1
, x
2
, x
3
]

x
4
f[x
4
] f[x
3
, x
4
] f[x
2
, x
3
, x
4
] f[x
1
, x
2
, x
3
, x
4
] f[x
0
, x
1
, x
2
, x
3
, x
4
]
.
.
.
en la cual las echas indican la dependencia: un elemento se c alcula en terminos de los dos que
est a apuntando con ellas por medio de la ecuaci on del teorema anterior. Los terminos de la diagonal
son los coecientes del polinomio interpolante.
Ejemplo. Consideramos de nuevo los puntos (1, 3), (0, 5), (2, 2), (3, 1), (5, 1). La tabla de dife-
rencias divididas es
III.10 CAP

ITULO III. INTERPOLACI

ON POLIN

OMICA
x
0
= 1 f
0
= 3

x
1
= 0 f
1
= 5 f
0,1
= 2

x
2
= 2 f
2
= 2 f
1,2
= 3/2 f
0,1,2
= 7/6

x
3
= 3 f
3
= 1 f
2,3
= 3 f
1,2,3
= 1/2 f
0,1,2,3
= 1/6

x
4
= 5 f
4
= 1 f
3,4
= 1 f
2,3,4
= 4/3 f
1,2,3,4
= 11/30 f
0,1,2,3,4
= 1/30
Por ejemplo
f
0,1
=
f
1
f
0
x
1
x
0
=
5 3
0 (1)
= 2
f
1,2,3
=
f
2,3
f
1,2
x
3
x
1
=
3 (3/2)
3 0
= 1/2.
Escribiendo la tabla sin las ayudas:
x
k
y
k
1 3
0 5 2
2 2 3/2 7/6
3 1 3 1/2 1/6
5 1 1 4/3 11/30 1/30
De los elementos en la diagonal se puede entonces construir el polinomio de interpolaci on:
p
4
(x) = 3 + 2(x + 1)
7
6
(x + 1)x +
1
6
(x + 1)x(x 2) +
1
30
(x + 1)x(x 2)(x 3).
Implementaci on MATLAB En la funcion MATLAB newpoly a continuacion, D[k,j] es la di-
ferencia dividida f[x
kj
, x
kj+1
, . . . , x
k
]. Note que el vector C que la funci on regresa es el vector de
coecientes en la base usual x
n
, x
n1
, . . . , x, 1, y no las diferencias divididas en la diagonal las cuales
son los coecientes en la base con desplazamientos (en el ejemplo anterior, (x + 1)x(x 2)(x 3),
(x + 1)x(x 2), (x + 1)x, x + 1, 1). Pero esas diferencias divididas se encuentran en la tabla de
diferencias divididas D que tambien regresa la funcion.
III.4. ERROR III.11
function [C, D] = newpoly (X, Y)
% Entrada - X es un vector que contiene la lista de abscisas
% - Y es un vector que contiene la lista de ordenadas
% Saldia - C es un vector que contiene los coeficientes del
% polinomio interpolante de Newton
% - D es la tabla de diferencias divididas
n = length(X);
D = zeros(n, n);
D(:, 1) = Y;
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
% Determinar los coeficientes del polinomio interpolante 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
En este programa Matlab, conv(A, B) determina la convolucion de los vectores A y B; esto es, si
A = [a
m
a
m1
a
1
a
0
] y B = [b
n
b
n1
b
1
b
0
] entonces su convoluci on es el vector C = [c
mn
c
mn1
c
1
c
0
]
donde
c
k
=

i+j=k
a
i
b
j
donde la suma es sobre todos los pares de ndices i, j tal que i +j = k. Por ejemplo, si m = 4, n = 5
y k = 3 entonces
c
3
= a
3
b
0
+a
2
b
1
+a
1
b
2
+a
0
b
3
.
Es f acil ver que si A y B son los vectores de coecientes de polinomios (de grados m y n) entonces
conv(A, B) es el vector de coecientes del producto de polinomios correspondiente.
III.4. Error
El analisis del error de interpolaci on es similar al de la aproximaci on de Taylor. Es valido cuando
los n + 1 valores interpolados provienen de una funcion con derivadas hasta de orden n + 1 en [a, b].
Teorema III.3 Consideremos f C
n+1
[a, b] y sea p
n
(x) el polinomio interpolante de f con nodos
de interpolacion x
0
, x
1
, . . . , x
n
. Entonces existe c = c(x) [a, b] tal que
f(x) = p
n
(x) +E
n
(x).
donde
E
n
(x) =
f
(n+1)
(c)
(n + 1)!
Q(x)
y
Q
n
(x) =
n

i=0
(x x
i
) = (x x
0
)(x x
1
) (x x
n
).
III.12 CAP

ITULO III. INTERPOLACI

ON POLIN

OMICA
Prueba: Primero, tenemos la funci on de error denida como
E
n
(x) = f(x) p
n
(x).
Obviamente E
n
(x
i
) = 0 para i = 0, 1, . . . , n, puesto que p
n
(x) interpola f(x) con base en esos nodos.
Igualmente, Q
n
(x
i
) = 0 para i = 0, 1, . . . , n. Ahora para x [a, b], x = x
i
, denimos
K(x) =
E
n
(x)
Q
n
(x)
de tal forma que E
n
(x) = K(x)Q
n
(x). As que queremos vericar que K(x) = f
(n+1)
(c)/(n +1)! para
alg un c [a, b]. Para esto, denimos la funcion g : R R como
g(t) = E
n
(t) K(x)Q
n
(t).
Se observa que g(t) tiene al menos n +2 ceros en [a, b], a saber: x
0
, x
1
, . . . , x
n
y x. Por el teorema del
valor intermedio, se tiene que la derivada g

(t) tiene al menos n + 1 ceros en [a, b] (uno en cada uno


de los intervalos determinados por los n +2 ceros). De nuevo usando el teorema del valor intermedio,
se tiene que g

(t) tiene al menos n ceros in [a, b]. Continuando el argumento se llega a que g
(n+1)
(t)
tiene al menos un cero c = c(x) (c depende de x) en [a, b].
Ahora calculemos g
(n+1)
(t): Note que p
(n+1)
n
(t) = 0, porque p
n
(t) es de grado n y por lo tanto
E
(n+1)
n
(t) = f
(n+1)
(t). Tambien que Q
(n+1)
n
(t) = (n + 1)! porque Q
n
(t) = t
n+1
+ q(t) donde q(t) es un
polinomio de grado n. Entonces
g
(n+1)
(t) = f
(n+1)
(t) K(x)(n + 1)!
Reemplazando t = c se tiene que
g
(n+1)
(c) = f
(n+1)
(c) K(x)(n + 1)! = 0.
De aqu que K(x) =
f
(n+1)
(c)
(n + 1)!
y por lo tanto
E
n
(x) = K(x)Q
n
(x) =
f
(n+1)
(c)
(n + 1)!
Q
n
(x).
Estamos interesados en el m aximo error en valor absoluto en el intervalo:
E
n
(f; a, b) = m ax
x[a,b]
|E
n
(x)|,
donde por simplicidad no hacemos explcita la dependencia de x
0
, x
1
, . . . , x
n
. As que tenemos la cota
E
n
(f; a, b)
1
(n + 1)!
m ax
x[a,b]
|f
(n+1)
(x)| m ax
x[a,b]
|Q
n
(x)|.
III.4. ERROR III.13
Ejemplo. Consideramos la funcion f(x) = sin(x) en el intervalo [0, ]. Se quiere hacer interpolaci on
lineal en cada uno de M subintervalos de [0, ], de tal forma que la precision sea 10
6
; es decir, tal
que en cada subintervalo |E
1
(x)| 5 10
7
. Cual debe ser el valor de M ?
Se tiene n = 1 y f

(x) = sin(x). Entonces


m ax
x[0,]
|f

(x)| = 1.
Los subintervalos son de la forma I
i
= [u
i
, u
i+1
] donde u
i
= ih, h = 1/M. En I
i
tenemos
Q
1
(x) = (x u
i
)(x u
i+1
).
Para determinar el max de |Q
1
(x)| en I
i
determinamos los extremos de Q
1
(x): derivando
Q

1
(x) = (x u
i+1
) + (x u
i
) = 2x (u
i
+u
i+1
)
e igualando a cero
Q

1
(x) = 0 x = x

=
1
2
(u
i
+u
i+1
).
Puesto que
Q
1
(x

) =
h
2

h
2
=
h
2
4
y Q
1
(x) = 0 en los extremos de I
i
, entonces
m ax
xI
i
|Q
1
(x)| =
h
2
4
.
(Lo cual podra haberse obtenido directamente ya que el extremo de la par abola descrita por Q
1
(x)
debe estar en el punto medio de sus cruces con cero u
i
, u
i+1
.) Finalmente, se tiene la cota para el error
en cualquier I
i
,
|E
1
(x)|
1
2
1
1
4M
2
=
1
8M
2
.
Si
1
8M
2
5 10
7
entonces se puede garantizar |E
1
(x) 10
7
. As que se tiene
1
8M
2
5 10
7
M
2

2 10
6
8
M
1
2
10
3
= 500.
Ejemplo. Consideramos ahora interpolaci on de orden 2 en el intervalo [a, b] con nodos en x
0
= a,
x
1
= (a +b)/2, x
2
= b. Que cota de error se puede dar para max
x[a,b]
|Q
2
(x)| ? Y para orden n ?
Del an alisis anterior debe ser claro que la posici on de los x
i
no es importante, sino las distancias
entre ellos. As que en este caso es suciente analizar los extremos de la funcion
g(x) = (x +h)x(x h) = x(x
2
h
2
)
III.14 CAP

ITULO III. INTERPOLACI

ON POLIN

OMICA
donde h = (b a)/3. Derivando se tiene g

(x) = 3x
2
h
2
e igualando a cero se encuentra que los
puntos crticos est an en
x

= h/

3 y |g(x

)| =
2

3
9
h
3
y entonces
m ax
x[a,b]
|Q
2
(x)| =
2

3
9
h
3
La dependencia h
2
y h
3
que se ha observado para n = 1, 2 se extiende a h
n+1
en general, pero no es
f acil determinar el extremo y la constante.
III.5. Interpolacion Polinomial a Trazos
Dados n+1 puntos (x
0
, y
0
), (x
1
, y
1
), . . . , (x
n
, y
n
), el problema es determinar un funcion interpolante
P(x) que consiste de un polinomio en cada intervalo [x
k
, x
k+1
] de tal forma que ciertas condiciones de
continuidad se satisfacen en los puntos frontera x
k
, Si los polinomios son lineales, solo la continuidad de
la funcion puede garantizarse. Si los polinomios son cuadraticos, la continuidad de la primera derivada
tambien puede garantizarse. En la practica se usan polinomios c ubicos porque pueden garantizar la
continuidad de la segunda derivada tambien lo que garantiza la continuidad de la curvatura. En lo
que sigue, como primer ejemplo discutimos el caso cuadratico.
III.5.1. Interpolacion Cuadratica a Trazos
Denotamos con Q(x) la funcion interpolante en todo el intervalo [x
0
, x
n
] y con Q
k
(x) el polinomio
cuadr atico interpolante
Q
k
(x) = q
k,2
(x x
k
)
2
+q
k,1
(x x
k
) +q
k,0
en el intervalo
I
k
= [x
k
, x
k+1
] para k = 0, 1, . . . , n 1.
Es decir
Q(x) = Q
k
(x) para x I
k
.
Tenemos entonces el conjunto de ecuaciones
Q(x

k
) = y
k
para k = 1, 2, . . . , n
Q(x
+
k
) = y
k
para k = 0, 1, . . . , n 1
Q

(x

k
) = Q

(x
+
k
) para k = 1, 2, . . . , n 1
que establecen la interpolacion de los valores y
k
y la continuidad de la primera derivada. En terminos
de los Q
k
(x), estas ecuaciones son equivalentes a
Q
k1
(x
k
) = y
k
para k = 1, 2, . . . , n
Q
k
(x
k
) = y
k
para k = 0, 1, . . . , n 1
Q

k1
(x
k
) = Q

k
(x
k
) para k = 1, 2, . . . , n 1.
As que en total tenemos 3n1 ecuaciones y 3n inc ognitas (los q
k,i
). Aunque no es un valor conocido
inicialmente, en general, introducimos la notaci on s
k
para Q

(x
k
), k = 0, 1, . . . , n:
s
k
Q

(x
k
).
III.5. INTERPOLACI

ON POLINOMIAL A TRAZOS III.15


Note que las s
k
no estan especicadas por el problema sino que resultan de la condici on de continuidad.
Usando los s
k
se tiene
Q

k1
(x
k
) = Q

k
(x
k
) = s
k
para k = 1, 2, . . . , n 1
y
Q

0
(x
0
) = s
0
y Q

n1
(x
n
) = s
n
.
En I
k
, k = 0, . . . , n 1, Q

k
(x) es lineal y por lo tanto se puede escribir de la siguiente manera
(interpolando los valores s
k
y s
k+1
linealmente (recuerde el metodo de Lagrange), con la notacion
h
k
= x
k+1
x
k
,
tenemos
Q

k
(x) = s
k
x x
k+1
x
k
x
k+1
+s
k+1
x x
k
x
k+1
x
k
=
s
k
h
k
(x
k+1
x) +
s
k+1
h
k
(x x
k
).
Integrando esta funcion tenemos
Q
k
(x) =
1
2
s
k
h
k
(x
k+1
x)
2
+
1
2
s
k+1
h
k
(x x
k
)
2
+C
k
donde C
k
es una constante tal que Q
k
(x) toma los valores requeridos en los extremos de I
k
. Esto es,
Q
k
(x
k
) = y
k
y Q
k
(x
k+1
) = y
k+1
.
Entonces, usando la expresi on para Q
k
(x) se tiene

1
2
s
k
h
k
+C
k
= y
k
y
1
2
s
k+1
h
k
+C
k
= y
k+1
,
y por lo tanto
C
k
= y
k
+
1
2
s
k
h
k
y C
k
= y
k+1

1
2
s
k+1
h
k
. ()
Substrayendo estas ecuaciones y reescribiendo el resultado se obtiene, para k = 0, 1, . . . , n 1,
s
k
+s
k+1
= 2d
k
donde d
k
= (y
k+1
y
k
)/h
k
(lo cual dice que el promedio de las derivadas en x
k
y x
k+1
debe ser d
k
). Tenemos entonces n + 1
incognitas (los s
k
) y n ecuaciones, lo cual quiere decir que existe un grado de libertad que puede ser
jado por alguna otra restriccion. En forma matricial el sistema a resolver es
_

_
1 1 0 0 0 0 0
0 1 1 0 0 0 0
0 0 1 1 0 0 0
.
.
.
.
.
.
.
.
.
0 0 0 0 1 1 0
0 0 0 0 0 1 1
_

_
_

_
s
0
s
1
s
2
.
.
.
s
n1
s
n
_

_
=
_

_
2d
0
2d
1
2d
2
.
.
.
2d
n1
2d
n
_

_
Una opcion simple es jar la derivada en el extremo derecho, es decir s
0
. Con esto el sistema se resuelve
f acilmente: s
k+1
= 2d
k
s
k
. Una vez se han encontrado los s
k
se pueden determinar los polinomios
Q
k
(x). Sumando las ecuaciones (), se tiene
C
k
=
1
2
(y
k
+y
k+1
) +
1
4
(s
k
s
k+1
)h
k
.
III.16 CAP

ITULO III. INTERPOLACI

ON POLIN

OMICA
Reemplazando en la ecuaci on para Q
k
(x) obtenemos, despues de un poco de manipulaci on,
Q
k
(x) =
1
2
s
k+1
s
k
h
k
(x x
k
)
2
+s
k
(x x
k
) +y
k
en I
k
= [x
k
, x
k+1
].
Implementaci on MATLAB La siguiente funci on MATLAB implementa la interpolacion cuadr ati-
ca a trazos con la derivada en el extremo izquierdo especicada.
function C= quadratic2(X,Y,d)
% X,Y datos de entrada, derivada en X0
% coeficientes de salida
N=length(X);
h=X(2:N)-X(1:N-1);
D=2*((Y(2:N)-Y(1:N-1))./h);
S=zeros(1,N);
S(1)=d;
C=zeros(N-1,3);
for i=2:N
S(i) = D(i-1)-S(i-1);
end;
for i=1:N-1
C(i,1)=(S(i+1)-S(i))/(2*h(i));
C(i,2)=S(i);
C(i,3)=Y(i);
end
Figura III.3: Interpolaciones lineal y cuadr atica a trazos para los puntos
(1, 3), (0, 5), (2, 2), (3, 1), (5, 1)
La funci on MATLAB que se ha usado para gracar cada interpolacion es GraficaCercha que es
parte de las funciones en la librera del curso.
III.5.2. Interpolacion C ubica a Trazos
Sea S(x) la funcion interpolante en todo el intervalo [x
0
, x
n
] y sea S
k
(x) el polinomio cuadr atico
interpolante (con coecientes a ser determinados)
S
k
(x) = s
k,3
(x x
k
)
3
+s
k,2
(x x
k
)
2
+s
k,1
(x x
k
) +s
k,0
III.5. INTERPOLACI

ON POLINOMIAL A TRAZOS III.17


en el intervalo
I
k
= [x
k
, x
k+1
] para k = 0, 1, . . . , n 1.
Es decir
S(x) = S
k
(x) para x I
k
.
Tenemos entonces el conjunto de ecuaciones
S(x

k
) = y
k
para k = 1, 2, . . . , n
S(x
+
k
) = y
k
para k = 0, 1, . . . , n 1
S

(x

k
) = S

(x
+
k
) para k = 1, 2, . . . , n 1
S

(x

k
) = S

(x
+
k
) para k = 1, 2, . . . , n 1
que establecen la interpolaci on de los valores y
k
y la continuidad de la primera y segunda derivadas.
En terminos de los S
k
(x), estas ecuaciones son equivalentes a
S
k1
(x
k
) = y
k
para k = 1, 2, . . . , n
S
k
(x
k
) = y
k
para k = 0, 1, . . . , n 1
S

k1
(x
k
) = S

k
(x
k
) para k = 1, 2, . . . , n 1
S

k1
(x
k
) = S

k
(x
k
) para k = 1, 2, . . . , n 1
As que en total tenemos 4n2 ecuaciones y 4n inc ognitas (los q
k,i
). Esto signica que dos par ametros
puden ser especicados.
Vamos a denotar la primera y segunda derivada del interpolante en x
k
por t
k
y m
k
respectivamente,
con k = 0, 1, . . . , n. Note que las t
k
, m
k
no est an especicadas (en general) por el problema sino que
resultan de la condici on de continuidad.
Podemos utilizar para S

k
la expresi on obtenida para interpolaci on cuadratica (la expresi on Q
k
).
As que se tiene para k = 0, 1, . . . , n 1,
S

k
(x) =
1
2
m
k+1
m
k
h
k
(x x
k
)
2
+m
k
(x x
k
) +t
k
con la condici on
m
k
+m
k+1
= 2
t
k+1
t
k
h
k
o equivalentemente
(m
k
+m
k+1
)h
k
= 2(t
k+1
t
k
) ()
As que con esta expresi on y condici on se ha enforzado ya la continuidad de la primera y segunda
derivadas. Integrando S

k
(x) se obtiene, para k = 0, 1, . . . , n 1,
S
k
(x) =
1
6
m
k+1
m
k
h
k
(x x
k
)
3
+
m
k
2
(x x
k
)
2
+t
k
(x x
k
) +y
k
,
donde la constante de integracion se ha determinado de tal forma que S
k
(x
k
) = y
k
. S olo falta garantizar
la continuidad del valor de la funci on, es decir S
k
(x
k+1
) = y
k+1
. Esta condici on es
S
k
(x
k+1
) =
1
6
m
k+1
m
k
h
k
(x
k+1
x
k
)
3
+
m
k
2
(x
k+1
x
k
)
2
+t
k
(x
k+1
x
k
) +y
k
= y
k+1
.
III.18 CAP

ITULO III. INTERPOLACI

ON POLIN

OMICA
Despues de algo de manipulaci on, usando h
k
= x
k+1
x
k
, se obtiene, para k = 0, 1, . . . , n 1,
(m
k+1
+ 2m
k
)h
k
+ 6t
k
= 6d
k
, donde d
k
= (y
k+1
y
k
)/h
k
()
Restando la misma expresi on con ndice uno menos se obtiene
(m
k+1
+ 2m
k
)h
k
(m
k
+ 2m
k1
)h
k1
+ 6(t
k
t
k1
) = 6(d
k
d
k1
).
Reemplazando () y simplicando, se obtiene la condici on
m
k1
h
k1
+ 2m
k
(h
k1
+h
k
) +m
k+1
h
k
= u
k
donde u
k
= 6(d
k
d
k1
), ( )
para k = 1, 2, . . . , n 2, n 1. Note que los h
k
y u
k
son valores conocidos, mientras que los m
k
est an
por determinarse. As que este es un sistema (tridiagonal) con n1 ecuaciones con n+1 incognitas y
se requieren dos ecuaciones adicionales para determinar una soluci on. Existen varias alternativas que
dan origen a diferentes tipos de cerchas c ubicas que se discuten a continuaci on. En cada caso, una vez
se han determinado los m
k
, entonces los coecientes de las cerchas S
k
(x) estan dados por
s
k,0
= y
k
s
k,1
= t
k
= d
k

1
6
(m
k+1
+ 2m
k
)h
k
s
k,2
=
1
2
m
k
s
k,3
=
1
6
m
k+1
m
k
h
k
.
Tipos de Cerchas (Splines)
Cercha c ubica sujeta. Se especican las derivadas en los extremos: t
0
= D
0
y t
n
= D
n
. Con k = 0
en la ecuaci on () se obtiene
(m
1
+ 2m
0
)h
0
+ 6D
0
= 6d
0
y m
0
h
0
= 3(d
0
D
0
)
1
2
m
1
h
0
.
y con k = 1 en ( ) se obtiene
m
2
h
1
+ 2m
1
(h
0
+h
1
) +m
0
h
0
= u
1
.
Reemplazando la primera en la segunda se obtiene
_
3
2
h
0
+ 2h
1
_
m
1
+h
1
m
2
= u
1
3(d
0
D
0
).
Ahora, con k + 1 = n en la ecuaci on (), se tiene que
(m
n1
+m
n
)h
n1
= 2(D
n
t
n1
)
y con k = n 1 en (), se obtiene
(m
n
+ 2m
n1
)h
n1
+ 6t
n1
= 6d
n1
,
III.5. INTERPOLACI

ON POLINOMIAL A TRAZOS III.19


Eliminando t
n1
de estas dos ultimas y despejando m
n
h
n1
se obtiene
m
n
h
n1
= 3(D
n
d
n1
)
1
2
m
n1
h
n1
.
Reemplazando esta expresion para m
n
h
n1
en ( ) con k = N 1, se obtiene
h
n2
m
n2
+
_
2h
n2
+
3
2
h
n1
_
m
n1
= u
n1
3(D
n
d
n1
).
En resumen, se tienen las siguientes n 1 ecuaciones con n 1 incognitas m
1
, m
2
, . . . , m
n1
:
_
3
2
h
0
+ 2h
1
_
m
1
+h
1
m
2
= u
1
3(d
0
D
0
).
h
k1
m
k1
+ 2(h
k1
+h
k
)m
k
+h
k
m
k+1
= u
k
para k = 2, 3, . . . , n 2
h
n2
m
n2
+
_
2h
n2
+
3
2
h
n1
_
m
n1
= u
n1
3(D
n
d
n1
)
Una vez determinadas m
1
, m
2
, . . . , m
n1
, m
0
y m
n
se pueden determinar por medio de
m
0
= 3
d
0
D
0
h
0

1
2
m
1
m
n
= 3
D
n
d
n1
h
n1

1
2
m
n1
.
Ejemplo. Consideramos los puntos (0, 1), (1, 0), (2, 2), (3, 1) con D
0
= 0 y D
3
= 1. Calculamos
primero las constantes involucradas en las ecuaciones:
h
0
= h
1
= h
2
= 1
d
0
= (y
1
y
0
)/h
0
= (0 1)/1 = 1
d
1
= (y
2
y
1
)/h
1
= (2 0)/1 = 2
d
2
= (y
3
y
1
)/h
2
= (1 2)/1 = 1
u
1
= 6(d
1
d
0
) = 6(2 (1)) = 18
u
2
= 6(d
2
d
1
) = 6(1 2) = 18
Reemplazando en el sistema de ecuaciones arriba (para n = 3 la ecuacion del medio no aparece) se
tiene
_
3
2
+ 2
_
m
1
+m
2
= 18 3(1 0) = 21
m
1
+
_
2 +
3
2
_
m
2
= 18 3(1 (1)) = 24
y
7
3
m
1
+m
2
= 21
m
1
+
7
3
m
2
= 24
III.20 CAP

ITULO III. INTERPOLACI

ON POLIN

OMICA
La solucion de este sistema es
m
1
=
26
3
, m
2
=
28
3
.
De aqu que
m
0
= 3
d
0
D
0
h
0

1
2
m
1
= 3(1 0)
1
2
26
3
=
22
3
m
3
= 3
D
3
d
2
h
2

1
2
m
2
= 3(1 (1))
1
2
(
28
3
) =
32
3
Reemplazando en las expresiones para los s
k,i
se obtienen las ecuaciones de la cercha:
S
0
(x) =
8
3
x
3

11
3
x
2
+ 1 para 0 x 1
S
1
(x) = 3(x 1)
3
+
13
3
(x 1)
2
+
2
3
(x 1) para 1 x 2
S
2
(x) =
10
3
(x 2)
3

14
3
(x 2)
2
+
1
3
(x 2) + 2 para 2 x 3
Como comparaci on, con Matlab:
>> x=[0 1 2 3];
>> y=[1 0 2 1];
>> Sf=csfit(x,y,0,1)
Sf =
8/3 -11/3 0 1
-3 13/3 2/3 0
10/3 -14/3 1/3 2
>> figure
>> grid on, hold on
>> GraficaCercha(x,y,Sf)
function S = csfit (X, Y, dx0, dxn)
% Entrada - X es el vector de abscisas 1 x n
% - Y es el vector de ordenadas 1 x n
% - dxo = S(x0) primera derivada condicion frontera (inicial)
% - dxn = S(xn) primera derivada condicion frontera (final)
% Salida - S: las filas de S son los coeficientes
% para los interpolantes (trazadores) cubicos
Cercha c ubica natural. Las segundas derivadas en los extremos se hacen iguales a cero:
m
0
= m
n
= 0.
III.5. INTERPOLACI

ON POLINOMIAL A TRAZOS III.21


En este caso, simplemente en ( ) hacemos m
0
= 0 y m
n
= 0. Se obtiene el siguiente sistema de
n 1 ecuaciones con las n 1 incognitas m
1
, m
2
, . . . , m
n1
:
2(h
0
+h
k
)m
1
+h
1
m
2
= u
1
h
k1
m
k1
+ 2(h
k1
+h
k
)m
k
+h
k
m
k+1
= u
k
para k = 2, 3, . . . , n 2
h
n2
m
n2
+ 2(h
n2
+h
n1
)m
n1
= u
n1
Ejemplo. Consideramos de nuevo los puntos (0, 1), (1, 0), (2, 2), (3, 1). Usando Matlab:
>> x=[0 1 2 3];
>> y=[1 0 2 1];
>> Sn=csnatural(x,y)
Sn =
1 0 -2 1
-2 3 1 0
1 -3 1 2
>> figure, grid on, hold on;
>> GraficaCercha(x,y,Sn);
Las ecuaciones de la cercha son:
S
0
(x) = x
3
2x + 1 para 0 x 1
S
1
(x) = 2(x 1)
3
+ 3(x 1)
2
+ (x 1) para 1 x 2
S
2
(x) = (x 2)
3
3(x 2)
3
+ (x 2) + 2 para 2 x 3
function S=csnatural(X,Y)
% Entrada - X es el vector de abscisas 1 x n
% - Y es el vector de ordenadas 1 x n
% Salida - S: las filas de S son los coeficientes
% para los interpolantes (trazadores) cubicos
Cercha c ubica extrapolada. Se extrapola S

(x) en el primero y ultimos subintervalos a partir


del segundo y pen ultimo subintervalos respectivamente. Se tienen las ecuaciones adicionales
m
0
= m
1

h
0
(m
2
m
1
)
h
1
m
n
= m
n1
+
h
n1
(m
n1
m
n2
)
h
n2
.
Esto corresponde a tener una misma c ubica en todo [x
0
, x
2
], e igualmente una misma c ubica en
[x
n2
, x
n
].
III.22 CAP

ITULO III. INTERPOLACI

ON POLIN

OMICA
function S=csextrapolado(X,Y)
% S extrapola en los extremos
%
% Entrada - X es el vector de abscisas 1 x n
% - Y es el vector de ordenadas 1 x n
% Salida - S: las filas de S son los coeficientes
% para los interpolantes (trazadores) cubicos
Cercha c ubica con terminacion parab olica. Se tiene S

(x) = 0 en el primero y ultimo subin-


tervalos. Esto implica que S

(x) es constante en estos intervalos y por lo tanto


m
0
= m
1
m
n
= m
n1
.
Equivalentemente, los polinomio de interpolacion en [x
0
, x
1
] e [x
n1
, x
n
] son cuadr aticos.
function S=csconstante(X,Y)
% S constante en los extremos
%
% Entrada - X es el vector de abscisas 1 x n
% - Y es el vector de ordenadas 1 x n
% Salida - S: las filas de S son los coeficientes
% para los interpolantes (trazadores) cubicos
Cercha c ubica con curvatura dada en los extremos. Se especica S

(x) en los puntos ex-


tremos x
0
y x
n
:
m
0
= S

(x
0
)
m
n
= S

(x
n
).
function S=csconocido(X,Y,a,b)
% S toma valores fijos en los extremos
%
% Entrada - X es el vector de abscisas 1 x n
% - Y es el vector de ordenadas 1 x n
% - a es el valor de S(x0)
% - b es el valor de S(xn)
% Salida - S: las filas de S son los coeficientes
% para los interpolantes (trazadores) cubicos
III.6. Aproximacion por Mnimos Cuadrados
Ahora consideramos el problema en el cual se busca una curva que no necesariamente pasa por
los puntos dados, pero que la aproxima sucientemente bien.
III.6. APROXIMACI

ON POR M

INIMOS CUADRADOS III.23


III.6.1. Ajuste de Una Lnea
Dados n puntos {(x
k
, y
k
)}
n
k=1
(abscisas distintas), la lnea de minmos cuadrados y = Ax + B es
la que minimiza
n

i=1
(Ax
i
+B y
i
)
2
.
Para determinar el mnimo, se igualan a cero las derivadas parciales con respecto a A y a B:

A
_
n

i=1
(Ax
i
+B y
i
)
2
_
=
n

i=1
2(Ax
i
+B y
i
) x
i
= 0

B
_
n

i=1
(Ax
i
+B y
i
)
2
_
=
n

i=1
2(Ax
i
+B y
i
) = 0
De aqu se obtiene que los coecientes A, B satisfacen las siguientes ecuaciones normales:
(

n
i=1
x
2
i
) A + (

n
i=1
x
i
) B =

n
i=1
x
i
y
i
(

n
i=1
x
i
) A + n B =

n
i=1
y
i
Despejando, se obtiene que
A =
n

n
i=1
x
i
y
i
(

n
i=1
x
i
) (

n
i=1
y
i
)
n (

n
i=1
x
2
i
) (

n
i=1
x
i
)
2
B =
1
n

_
n

i=1
y
i

i=1
x
i
A
_
A y B se pueden escribir en terminos de promedios como
A =

i
(x
i
(x
i
))(y
i
(y
i
))

i
(x
i
(x
i
))
2
B = (y
i
) A(x
i
)
donde
(x
i
) =
1
n

i
x
i
, (y
i
) =
1
n

i
y
i
,
Estas ultimas son las ecuaciones que implementa la rutina Matlab para este problema:
function [A, B] = lsline (X, Y)
% Entrada - X es el vector de abscisas 1 x n
% - Y es el vector de ordenadas 1 x n
% Salida - A es el coeficiente de x en Ax + B
% - B es el coeficiente constante en Ax + B
xmean = mean(X);
ymean = mean(Y);
sumx2 = (X - xmean) * (X - xmean);
sumxy = (Y - ymean) * (X - xmean);
A = sumxy / sumx2;
B = ymean - A * xmean;
III.24 CAP

ITULO III. INTERPOLACI

ON POLIN

OMICA
III.6.2. Ajuste de un Polinomio
El ajuste de una lnea se puede generalizar facilmente al ajuste de un polinomio de grado n:
P
n
(x) = a
n
x
n
+a
n1
x
n1
+ +a
1
x +a
0
.
Entonces el error cuadr atico es
E(a
0
, a
1
, . . . , a
n
) =
n

i=0
(y
i
P
n
(x
i
))
2
.
Para determinar el valor optimo se igualan las derivadas parciales a cero: para j = 0, 1, . . . , n,

x
j
E(a
0
, a
1
, . . . , a
n
) = 0.
Reemplazando, obtenemos
n

i=0
2(y
i
(a
n
x
n
i
+a
n1
x
n1
i
+ +a
1
x
i
+a
0
))x
j
i
= 0,
y de aqu, para j = 0, 1, . . . , n,
a
n

i=0
x
n+j
i
+a
n1

i=0
x
n1+j
i
+ +a
1

i=0
x
1+j
i
+a
0

i=0
x
j
i
=
n

i=0
y
i
x
j
i
Esto es un sistema de n + 1 ecuaciones cuyas n + 1 inc ognitas son los coecientes a
n
, a
n1
, . . . , a
1
, a
0
de P
n
.
III.6.3. Ajuste de otras Curvas
Se pueden manejar otras funciones no lineales usando linealizacion.
Por ejemplo, dados n puntos {(x
k
, y
k
)}
n
k=1
, se quiere ajustar una curva exponencial
y = ce
ax
.
Tomando logaritmos se tiene ln y = ln c + ax. Con el cambio de varibles Y = ln y, X = x, y de
constantes A = a y B = ln c, entonces se obtiene la ecuacion de una lnea
Y = AX +B
Aqu se puede usar entonces ajuste por una lnea de mnimos cuadrados. Se aplican entonces las
ecuaciones normales a los pares (X
k
, Y
k
) = (x
k
, ln y
k
), k = 1, . . . , n para obtener los parametros A y
B. A partir de estos, se obtienen entonces los parametros a = A y c = exp(B) de la curva exponencial
original.
Otros ejemplos de transformaci on al modelo lineal Y = AX +B:
Modelo Transf. ecuacion Transformacion vars. and pars.
y = bx
a
ln y = ln b +a ln x Y = ln y, X = ln x, A = a, B = ln b
y =
1
ax +b
1
y
= ax +b Y =
1
y
, X = x, A = a, B = b
y =

1 +ce
ax
ln
_

y
1
_
= ln c +ax Y = ln
_

y
1
_
, X = x, A = a, B = ln c
En el ultimo caso, el par ametro se debe jar para entonces determinar a y c.
III.7. M

ETODO DE CHEBYSHEV (OPCIONAL) III.25


III.7. Metodo de Chebyshev (Opcional)
Este tema se omiti o este semestre.
Como ya hemos visto el error E
n
(f; a, b) de la interpolaci on polin omica de f en los nodos x
0
, x
1
, . . . , x
n

[a, b] puede ser acotado por
E
n
(f; a, b)
1
(n + 1)!
m ax
c[a,b]
|f
(n+1)
(c)| m ax
x[a,b]
|Q
n
(x)|
donde c = c(x) [a, b] depende de x y
Q
n
(x) =
n

k=0
(x x
k
).
Observando que Q
n
(x) depende de los nodos de interpolacion x
0
, x
1
, . . . , x
N
, se busca determinar los
valores optimos de estos de tal forma que m ax
x[a,b]
|Q
n
(x)| es minimizado. Es decir, se quiere resolver
el siguiente problema de optimizaci on:
mn
x
0
,x
1
,...,xn[a,b]
_
m ax
x[a,b]
|Q
n
(x)|
_
.
La restriccion [a, b] = [1, 1] es sin perdida de generalidad porque dados nodos de interpolaci on z
k
en
[1, 1] los nodos correspondientes en [a, b] se pueden determinar por medio de
x
k
=
b a
2
z
k
+
b +a
2
.
Note que lo que queremos obtener es un polinomio monico

T
n
(x) de grado n (es decir, en el cual el
coeciente de x
n
es 1) y con ceros en [0, 1] de tal forma que para todo conjunto de nodos x
0
, . . . , x
n
m ax
x[1,1]
|

T
n
(x)| m ax
x[1,1]
|Q
n
(x)|
Vamos a ver a continuaci on que (para [a, b] = [1, 1]), la solucion a este pregunta est a dada por
los llamados polinomions de Chebyshev (as que la posici on optima de los nodos son los ceros de un
polinomio de Chebyshev).
Polinomios de Chebyshev
Los polynomios de Chebyshev son una secuencia de polinomios T
n
(x), n = 0, 1, 2, . . . , donde el
grado de T
n
(x) es n. Los primeros polinomios en la secuencia son:
T
0
(x) = 1
T
1
(x) = x
T
2
(x) = 2x
2
1
T
3
(x) = 4x
3
3x
T
4
(x) = 8x
4
8x
2
+ 1
T
5
(x) = 16x
5
20x
3
+ 5x
T
6
(x) = 32x
6
48x
4
+ 18x
2
1
T
7
(x) = 64x
7
112x
5
+ 56x
3
7x
III.26 CAP

ITULO III. INTERPOLACI

ON POLIN

OMICA
Propiedades Los polinomios de Chebyshev tienen las siguientes propiedades
1. Relacion de recurrencia: T
0
(x) = 1, T
1
(x) = x y para k = 2, 3, 4, . . ., se satisface la recurrencia
T
k
(x) = 2xT
k1
(x) T
k2
(x).
Se puede vericar que los polinomios arriba se puden obtener usando esta formula de recurrencia.
MATLAB El codigo a continuaci on hace uso de esta relaci on de recurrencia para calcular los
polinomios de Chebyshev (note que aqu tambien se usa convoluci on para calcular el producto
de polinomios):
function [T] = cheby_poly_2 (k)
T=zeros(k+1,k+1);
T(1,:) = [zeros(1,k) 1];
T(2,:) = [zeros(1,k-1) 1 0];
for i = 3:k+1
T(i,:)= conv([2 0], T(i-1,2:k+1)) - T(i-2,:);
end;
figure;
hold on; grid on;
for i=1:k+1
fplot(@(x) polyval(T(i,:),x), [-1 1])
end
>> cheby_poly_2(6)
ans =
0 0 0 0 0 0 1
0 0 0 0 0 1 0
0 0 0 0 2 0 -1
0 0 0 4 0 -3 0
0 0 8 0 -8 0 1
0 16 0 -20 0 5 0
32 0 -48 0 18 0 -1
Figura III.4: T
0
(x) a T
6
(x)
2. Coecientes del termino de mayor orden: el coeciente de x
n
en T
n
(x) es 2
n1
, para n 1.
3. Simetra y antisimetra: Para n = 2m (par) y n = 2m+1 (impar) se tiene respectivamente que
T
2m
(x) = T
2m
(x); T
2m+1
(x) = T
2m+1
(x)
III.7. M

ETODO DE CHEBYSHEV (OPCIONAL) III.27


4. Representacion geometrica en [1, 1]:
T
n
(x) = cos(narc cos(x)).
5. Ceros: T
n
(x) tiene n ceros en [1, 1]: De la representacion geometrica se observa que T
n
(x) = 0
para
x = z
k
cos
_
(2k + 1)
2n
_
con k = 0, 1, 2, . . . , n 1
x=1
4 3 5 2 1 6 7 0
x=1
x=0
Figura III.5: Ceros de T
8
(x): se divide la semicircunferencia unidad en 8 intervalos iguales, y se
proyectan los puntos medios de estos sobre el eje x.
Note que otros valores (enteros) de k resultan en los mismos ceros.
MATLAB El codigo a continuacion hace uso de estos ceros para obtener un metodo alter-
nativo para calcular los polinomios de Chebyshev. Un polinomio es el producto de los factores
(xz
k
) donde los z
k
son los ceros (races). Se necesita en este caso el factor 2
i1
para transformar
el polinomio m onico obtenido en el deseado T
i
(x).
function [T] = cheby_poly_1 (n)
figure; hold on; grid on;
for i=1:n
roots= cos((2*(0:1:i-1)+1)*(pi/(2*i)));
T(i,:) = [zeros(1,n-i) (2^(i-1))*poly(roots)];
fplot(@(x) polyval(T(i,:),x), [-1 1]);
end
>> cheby_poly_1(6)
ans =
0 0 0 0 0 1.0000 -0.0000
0 0 0 0 2.0000 -0.0000 -1.0000
0 0 0 4.0000 -0.0000 -3.0000 0.0000
0 0 8.0000 -0.0000 -8.0000 0.0000 1.0000
0 16.0000 0 -20.0000 0.0000 5.0000 -0.0000
32.0000 -0.0000 -48.0000 0.0000 18.0000 -0.0000 -1.0000
En la tabla y graca resultantes es aparente que por el manejo numerico de las races, los
polinomios resultantes no tienen valores extremos exactamente 1 (Matlab automaticamente
aumenta la escala vertical hasta valor absoluto 1,5, y da 4 cifras decimales para los coecientes).
III.28 CAP

ITULO III. INTERPOLACI

ON POLIN

OMICA
Figura III.6: T
1
(x) a T
6
(x)
6. Valores extremos: |T
n
(x)| 1 para 1 x 1 y el valor extremo 1 se tiene en n + 1 puntos
x = z

k
cos
_
2k
2n
_
= cos
_
k
n
_
donde T
n
(z

k
) = (1)
k
con k = 0, 1, 2, . . . , n.
Recordemos que
Q
n
(x) = (x x
0
)(x x
1
) . . . (x x
n
)
donde los x
i
son los nodos de interpolaci on. As que el coeciente de x
n+1
en Q
n
(x) es 1, por lo cual
se dice que Q
n
(x) es monico. Sea

T
n+1
(x) =
1
2
n
T
n+1
(x).
Esta normalizacion es tal que

T
n+1
(x) tambien es m onico. Note que los valores extremos de

T
n+1
son
entonces 1/2
n
y 1/2
n
.
Teorema III.4 Para cualquier conjunto de nodos x
0
, x
1
, . . . , x
n
[1, 1] y
Q
n
(x) =
n

i=0
(x x
i
)
se tiene que
m ax
x[1,1]
|

T
n+1
(x)| m ax
x[1,1]
|Q
n
(x)|.
Es decir, el polinomio monico

T
n+1
(x) minimiza m ax
x[1,1]
|Q
n
(x)| sobre todas las posibles elecciones
de x
0
, x
1
, . . . , x
n
[1, 1].

Vous aimerez peut-être aussi