Sunteți pe pagina 1din 8

INTERPOLACIÓN POLINOMIAL

F. VADILLO

Resumen. Uno de los problemas clásicos del Análisis Matemático es el de


construir polinomios que aproximen a una función f (x) en el entorno de un
punto x0 . En estas notas se explica la interpolación de Taylor y Lagrange
pasando después a comentar la interpolación a trozos con especial dedicación
a la interpolación cúbica a trozos y los splines cúbicos.

Índice

1. Interpolación de Taylor 1
2. Interpolación de Lagrange 2
3. Interpolación a trozos 4
4. Interpolación cúbica a trozos 6
Referencias 7

1. Interpolación de Taylor

En el problema de interpolación de Taylor (1685-1731) se supone conocidas las


N primera derivadas de la función f (x) en el punto x0 y se trata de encontrar un
polinomio p(x) de grado menor o igual que N tal que
(1.1) p(x0 ) = f (x0 ), p0 (x0 ) = f 0 (x0 ), . . . . . . , p(N ) (x0 ) = f (N ) (x0 ).
Cualquier texto elemental de Análisis Matemático demuestra que el problema
de interpolación de Taylor tiene una única solución que se denomina N-ésimo
polinomio de Taylor de la función f (x) en el punto x0 que es
(x − x0 )2
pN (x) = f (x0 ) + f 0 (x0 )(x − x0 ) + f 00 (x0 ) +
2!
(x − x0 )N
(1.2) · · · + f (N ) (x0 )
,
N!
y la expresión de Lagrange (1736-1813) para el error resulta
(x − x0 )N +1
(1.3) f (x) − pN (x) = f (N +1) (ξ) ,
(N + 1)!
donde ξ es un punto comprendido estrictamente entre x y x0 .

Received by the editors 16 de enero de 2006.


1
2 F. VADILLO

La pregunta que ahora se plantea es si al aumentando N podemos acercar el


valor de pN (x) tanto como queramos al valor de la función f (x), es decir, si es
cierto o no que
N
X (x − x0 )n
(1.4) f (x) = lı́m pN (x) = lı́m f (n) (x0 ) .
N →∞ N →∞
n=0
n!
Si la función tiene derivadas de todos los ordenes en el punto x0 , se puede construir
su serie de Taylor que es
X∞
(x − x0 )n
(1.5) f (n) (x0 ) ,
n=0
n!
otra problema es si esta serie es convergente o divergente para un valor de x, y en
caso de convergencia si la suma es el valor de la función en el punto. Por ejemplo,
las derivadas de la función
(
exp(− x12 ) x 6= 0,
(1.6) f (x) =
0 x = 0,
en x0 = 0 son todas cero por lo que la serie suma cero en todos los punto x que
evidentemente no coincide con su valor exp(−1/x2 ).
En Matemática Aplicada es muy frecuente la necesidad de calcular los polinomios
de Taylor de una función dada, aunque la forma de obtener dichos polinomios no
sea calculando las derivadas sino utilizando desarrollos conocidos de otras funciones.
La tabla siguiente da algunos ejemplos de polinomios de Taylor en x0 = 0 de las
funciones que se indican con los correspondientes intervalos de convergencia

f (x) pn (x) intervalo

(1 + x)−1 1 − x + · · · + (−1)n xn (−1, 1)

x2 n
ln(1 + x) x− 2! + · · · + (−1)n+1 xn! (−1, 1)

xn
ex 1 + x + ··· + n! (−∞, ∞)

x3 x5
sin x x− 3! + 5! − ... (−∞, ∞)

x2 x4
cos x 1− 2! + 4! − ... (−∞, ∞)

Por otra parte, el manipulador simbólico de matlab tiene un comando llamado


taylortool que abre una ventana gráca como la de la gura 1 donde además
de calcular el polinomio de Taylor lo compara grácamente con la función en el
intervalo que decida el usuario.

2. Interpolación de Lagrange

En el problema de interpolación de Lagrange se supone dadas N puntos x0 , . . . , xN


distintos dos a dos y los correspondientes valores f (x0 ), . . . , f (xN ) de una función.
Entonces se trata entonces de encontrar un polinomio p(x) de grado ≤ N tal que:
(2.1) p(x0 ) = f (x0 ), p(x1 ) = f (x1 ), . . . , p(xN ) = f (xN ),
INTERPOLACIÓN POLINOMIAL 3

Taylor Series Approximation


20
15
10
5
0
−5
−10
−15
−20
−1.5 −1 −0.5 0 0.5 1 1.5 2 2.5 3

TN(x) = x2+x3+1/2 x4+1/6 x5−1/8 x6

Figura 1. Desarrollo de Taylor de ex sin x2 .

donde los xi son los denominados nodos de la interpolación.


Es muy fácil demostrar que el problema de interpolación de Lagrange tiene una
única solución, solución que se puede expresar básicamente de dos maneras: forma
de Lagrange que se verá a continuación, y forma de Newton utilizando diferencias
dividas que se puede consultar en la mayoría de los textos de Análisis Numérico
como por ejemplo [5], [3], [2], [4], [10], [8], [7], [6] y [9].

25

20

15

10

−5

−10
−0.5 0 0.5 1 1.5 2 2.5 3 3.5

Figura 2. Ejemplo interpolador.


4 F. VADILLO

La expresión más compacta es la forma de Lagrange. Deniendo los polinomios


de Lagrange de la forma
(x − x0 ) . . . (x − xi−1 )(x − xi+1 ) . . . (x − xN )
(2.2) li (x) = ,
(xi − x0 ) . . . (xi − xi−1 )(xi − xi+1 ) . . . (xi − xN )
para i = 0, ..., N , resulta evidente que li (xj ) = δij , es decir, vale uno cuando i = j
y cero cuando i 6= j , de donde se deduce que el polinomio de interpolación es
(2.3) pN (x) = f (x0 )l0 (x) + f (x1 )l1 (x) + · · · + f (xN )lN (x),
llamada forma de Lagrange del polinomio interpolador.
Usando el program polyinterp.m de [1] en la gura 2 se ha representa el poli-
nomio interpolador por los nodos 0, 1, 2, 3 con los valores −5, −6, −1, 16.
En cuanto al error de interpolación el resultado se recoge en el siguiente teorema
Teorema 2.1. Suponiendo de f (x) tiene N ≥ 1 derivadas continuas en un in-
tervalo [a, b] que contiene a los nodos de interpolación y existe f N +1 (x) en (a, b).
Entonces para cada x ∈ [a, b] existe un punto ξ con
mı́n{x0 , · · · , xN , x} < ξ < máx{x0 , . . . , xN , x}
para el cual
(x − x0 ) . . . (x − xN ) N +1
(2.4) f (x) − PN (x) = f (ξ).
(N + 1)!
Como se hizo para el problema de Taylor, ahora se pregunta si el error de in-
terpolación f (x) − pN (x) puede hacerse arbitrariamente pequeño incrementando
el grado N . Más concretamente, si f (x) es una función denida en un intervalo
(0)
[a, b], eligiendo un punto x0 interpolamos por un polinomio constante p0 , después
(1) (2) (2) (2)
elegimos dos nodos x1O , x1 calculamos p1 (x), más tarde con x0 , x1 , x2 puntos
distintos calculamos el interpolador de segundo orden p2 (x) etc. La cuestión ahora
es si será cierto que lı́mN →∞ pN (x) = f (x). La respuesta en general es negativa,
es decir, aumentar el número de nodos y el grado del polinomio de interpolación
no da siempre buenos resultados. El program rungeinterp.m de [1] implementa
un famoso problema de interpolación de Runge(1856-1927). La gura 3 compara la
función
1
(2.5) f (x) = ,
1 + 25x2
y su polinomio de interpolación de orden 9 donde se puede claramente apreciar los
grandes errores en los extremos del intervalo.

3. Interpolación a trozos

Como resultado de la divergencia del polinomio de interpolación, para conseguir


mejores aproximaciones polinomiales lo habitual es interpolar a trozos. La idea
básicamente consiste en tomar una partición del intervalo:
(3.1) ∆ : a = x0 < x1 < x2 < . . . < xN = b,
y después interpolar en cada uno de los trozos [xk , xk+1 ] para cada k = 0, . . . , N −1.
INTERPOLACIÓN POLINOMIAL 5

1./(1+25*x.^2)

0.8

0.6

0.4

0.2

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1

Figura 3. Fenómeno de Runge.

El caso más simple tomaría las líneas recta que unes los puntos de interpolación
(xk , f (xk )) y (xk+1 , f (xk+1 )), así para xk ≤ x < xk+1
f (xk+1 ) − f (xk )
(3.2) s(x) = f (xk ) + (x − xk ) .
xk+1 − xk
s(x) sería entonces el interpolador lineal a trozos de la función f (x) para la partición
∆. Además, por construcción la linea quebrada s(x) es continua en todo el intervalo,
esto se indica diciendo que s ∈ M01 (∆).
Para estimar el error de interpolación resulta que si f (x) tiene derivada segunda
en [a, b] acotada en valor absoluto por una constante K2 , usando el teorema 2.1 se
tiene que para xk ≤ x < xk+1
1
(3.3) |f (x) − s(x)| ≤ (xk+1 − xk )2 K2 .
8
Llamando ahora hk = xk+1 − xk y h = máxk hk el diámetro de la partición, se tiene
1 2
(3.4) |f (x) − s(x)| ≤ h K2 , ∀x ∈ [a, b],
8
de donde se concluye que cuando h → 0 , s(x) → f (x) con convergencia cuadrática,
es decir, cuando se reduce el diámetro de la partición a la mitad, la cota de error
se divide por cuatro.
Además de la interpolación lineal a trozos se pueden considerar funciones cuadrá-
ticas a trozos, es decir, funciones que en cada sub-intervalo [xk , xk+1 ] son polinomios
de segundo grado. El resultado q(x) es una función cuadrática a trozos y continua
que se escribe q ∈ M02 (∆).
Para determinar q(x) en cada sub-intervalo [xk , xk+1 ] además de imponer las
dos condiciones q(xk ) = f (xk ) y q(xk+1 ) = f (xk+1 ) se necesita q coincide con f
en algún otro punto, por ejemplo el punto medio xk+12+xk , de esta forma se puede
6 F. VADILLO

también obtener una cota de error:



3 3
(3.5) |f (x) − q(x)| ≤
h K3 , ∀x ∈ [a, b],
216
donde K3 es una cota para el valor absoluto de la tercera derivada en [a, b]. Ahora
la convergencia es cúbica.

4. Interpolación cúbica a trozos

Una de las técnicas de interpolación más ecaces está basada en la interpolación


cúbica a trozos. Como ahora los polinomios son de tercer orden tienen cuatro coe-
cientes y pueden satisfacer cuatro condiciones de interpolación en cada sub-intervalo
[xk , xk+1 ] que podrían ser los siguientes
p(xk ) = f (xk ), p(xk+1 ) = f (xk+1 ),
(4.1)
p0 (xk ) = dk , p0 (xk+1 ) = dk+1 ,
donde los dk son parámetros que se pueden de diferentes maneras, esto dependerá
del algoritmo que se elija.
El algoritmo pchip (piecewise cubic Hermite interpolating polynomial) dene
f (xk+1 )−f (xk )
los δk = hk y elige los parámetros libres dk de la siguiente manera:
1. Si δk y δk−1 tiene signos opuestos o uno de ellos es cero, entonces dk = 0.
2. Si δk y δk−1 tienen el mismo signo, se denen w1 = 2hk + hk−1 y w2 =
hk + 2hk−1 y se calcula dk de la ecuación:
w1 + w2 w1 w2
(4.2) = + .
dk δk−1 δk
Los detalles del algoritmo se pueden consultar en el programa pchitx.m de la
referencia [1].
Sin duda la interpolación cúbica más importante utiliza los llamados splines cú-
bicos que brevemente se exponen a continuación. En el algoritmo pchip es evidente,
por construcción, que la aproximación cúbica a trozos tiene la derivada p0 (x) con-
tinua porque el valor dk es único. En los splines cúbicos se pretende que la segunda
derivada sea también continua lo que implica que en los nodos p00 (xk +) = p00 (xk −).
En el k -ésimo sub-intervalo la segunda derivada es una función lineal que en la
variable s = x − xk toma la expresión
(6hk − 12s)δk + (6s − 2hk )dk+1 + (6s − 4hk )dk
(4.3) p00 (s) = .
h2k
Para x = xk , s = 0 por lo cual
6δk − 2dk+1 − 4dk
(4.4) p00 (xk +) = ,
hk
mientras que para x = xk+1 , s = hk por lo que
6δk + 4dk+1 + 2dk
(4.5) p00 (xk+1 −) = .
hk
Haciendo lo mismo para el anterior sub-intervalo se obtiene
−6δk−1 + 4dk + 2dk−1
(4.6) p00 (xk −) = ,
hk−1
INTERPOLACIÓN POLINOMIAL 7

que igualada a (4.4) resulta la ecuación


(4.7) hk dk−1 + 2(hk−1 + hk )dk + hk−1 dk+1 = 3(hk δk−1 + hk−1δk ),
para k = 1, . . . , N − 1. En conclusión tenemos N − 1 ecuaciones para determinar
los parámetros libres d0 , · · · , dN y faltaría considera dos nuevas ecuaciones para
los dos extremos, por ejemplo en los splines naturales se toma p00 (a) = p00 (b) = 0
aunque existen otras opciones que puede consulta en la página 350 de [8].
El programa interpgui.m de Moler en [1] dibuja los cuatro interpoladores:
Lagrange, lineal a trozos y los dos cúbicos a trozos para distintos nodos y diferentes
valores, un ejemplo sencillo es la gura 4.

Interpolation
0.5

0.4

0.3

0.2

0.1

−0.1

−0.2

−0.3

−0.4

−0.5
0 1 2 3 4 5 6 7 8

Figura 4. Ventana del programa interpgui.

Referencias
1. C.B.Moler, Numerical computing with matlab, SIAM, 2004.
2. H.Keller E.Isaacson, Analysis of numerical methods, Wiley, 1966.
3. J.D.Faires and R.L.Burden, Análisis numérico, Grupo Editorial Iberoamericana, 1985.
4. J.M.Sanz-Serna, Diez lecciones de cálculo numérico, Universidad de Valladolid, 1998.
5. K.E.Atkinson, An introduction to numerical analysis, Wiley, 1978.
6. C.F.Van Loan, Introduction to scientic computing, Prentice-Hall, 2000.
7. R.Bulirsch and J.Stoer, Introduction to numerical analysis, Springer, 1980.
8. A.Quarteroni R.Sacco, F.Saleri, Numerical mathematics, Springer, 2000.
9. T.S.Chung W.Y.Yang, W.Cao and J.Morris, Applied numerical methods using matlab, Wiley
Interscience, 2005.
8 F. VADILLO

10. J.F.Mathews y K.D.Fink, Métodos numéricos con matlab.tercera edición, Prentice Hall,
1999.

Dep. Matemática Aplicada y Estadística de la Universidad del Pais Vasco


E-mail address : fernando.vadillo@ehu.es

S-ar putea să vă placă și