to get the file - OCW UPM - Universidad Politécnica de Madrid

Anuncio
UNIVERSIDAD POLITÉCNICA DE MADRID
ESCUELA TÉCNICA SUPERIOR DE
INGENIEROS DE MINAS
DEPARTAMENTO DE MATEMÁTICA APLICADA Y
MÉTODOS INFORMÁTICOS
Asignatura:
PROGRAMACIÓN Y MÉTODOS NUMÉRICOS
Tema: INTERPOLACIÓN POLINÓMICA
Prof. Carlos Conde Lázaro
Prof. Arturo Hidalgo López
Prof. Alfredo López Benito
Marzo, 2007
ÍNDICE
Pág.
1. INTRODUCCIÓN HISTÓRICA. ……………………………………..
1
2. INTERPOLACIÓN POLINÓMICA DE LAGRANGE. ………………
2.1. La fórmula de interpolación de Lagrange. ……………….
2.2. La fórmula del error en la interpolación de Lagrange. … .
2.3. La fórmula de interpolación de Newton. …………………
2.4. Interpolación con soportes equidistantes: fórmulas con
diferencias finitas. ……………………………………….
13
17
25
43
3. INTERPOLACIÓN POLINÓMICA DE HERMITE. ………………..
3.1. Interpolación de Hermite de primer orden: la fórmula de
interpolación de Hermite. ……………………………….
3.2. Interpolación polinómica de Hermite: caso general. …...
3.3. Análisis del error en la interpolación de Hermite. ……….
3.4. Interpolación de Hermite: la fórmula de Newton. ………..
3.4.1. Planteamiento. ……………………………………
80
84
92
106
112
112
3.4.2. Generalización del concepto de diferencia
dividida. …………………………………………….
117
3.4.3. La fórmula de Newton para el cálculo del polinomio interpolador de Hermite. …………………….
3.4.4. ANEXO: Otra forma de definir las diferencias
divididas con puntos repetidos. ………………….
BIBLIOGRAFÍA SOBRE EL TEMA. ……………………………………..
i
62
129
135
143
Programación y Métodos Numéricos
Interpolación polinómica
1. Introducción histórica
En numerosos procesos físicos y técnicos debe trabajarse con funciones de las
que tan sólo se conoce su valor (o el de sus derivadas) en un número finito de
puntos –llamado soporte- pero de las que es desconocida la expresión a la
que responden. Una de las maneras más extendidas para operar con dichas
funciones consiste en aproximarlas por otras funciones, de expresión conocida
(y, en la medida de lo posible, fácil de manipular). Una de las formas en que se
puede buscar esta función aproximada consiste en obligar a que la función
aproximadora (o sus derivadas) tome en los puntos del soporte los mismos
valores que la función que se quiere aproximar. En tal caso se dice que se ha
interpolado la función original siendo la función interpoladora aquella que la
aproxima.
Las técnicas de interpolación pueden clasificarse, en una primera subdivisión,
según el tipo de expresiones con las que se busque la función interpoladora.
Así existe la interpolación polinomial o polinómica (en la que las funciones
interpoladoras son polinomios), la interpolación trigonométrica (cuando la
función interpoladora es una combinación de funciones trigonométricas), la
interpolación exponencial (si las funciones interpoladoras son una combinación
de exponenciales), etc.... De entre todas ellas, las más frecuentemente
utilizadas son la interpolación polinómica y, en menor medida, la
trigonométrica. Al estudio de la primera de ellas dedicaremos este tema.
Aun sin el desarrollo de una teoría rigurosa, el uso de la interpolación
polinómica se pierde en la historia de los tiempos. Recordemos por ejemplo
1
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
que numerosos matemáticos griegos calcularon aproximaciones del número π
interpolando el área del círculo entre los valores de las áreas de dos polígonos
regulares de n lados, uno inscrito en la circunferencia perimetral del círculo y el
otro circunscrito a dicha circunferencia. O que en el siglo IX los matemáticos
árabes del califato de Bagdad, sabían resolver ciertas ecuaciones no lineales
mediante el método de regula falsi. En cada iteración de dicho método11,
conocidos dos valores de una función f(xi) y f(xi+1) (tales que f(xi)·f(xi+1) < 0 )
se debe buscar la recta que interpola a f(x) en los puntos (xi, f(xi)) y (xi+1, f(xi+1))
para determinar a continuación el punto en que corta al eje de abscisas,
reduciéndose así el intervalo de incertidumbre en el que se buscará una raíz de
la función f(x).
Pero fue en la misma época en que se fraguó y nació el cálculo infinitesimal en
la que se puede considerar que se consolidaron las técnicas de interpolación
polinómica y, junto a ellas, las de derivación e integración numérica.
Numerosos problemas prácticos, fundamentalmente vinculados al comercio, a
la cartografía y a la navegación, exigían en los siglos XVI y XVII el cálculo de
áreas encerradas bajo curvas o la determinación de tangentes a una curva en
un punto. El primero de dichos problemas, el cálculo de áreas encerradas bajo
tramos de curvas, sólo se sabía resolver en casos de curvas muy concretas12.
Del segundo, que antes de esta época se consideraba sin relación con el
primero, hubo que esperar a que el matemático francés Pierre de Fermat
(Beaumont de Lomagne ,17 de agosto de 1601 – Castres, 12 de enero de 1665)
ideara los primeros métodos suficientemente generales para el cálculo de la
tangente a una curva en un punto.
Y puesto que sí se sabía calcular el área existente bajo líneas poligonales
resulta fácil comprender que el cálculo de las áreas encerradas por otras
curvas más generales se comenzase a realizar aproximando aquellas –
interpolándolas – mediante líneas poligonales compuestas por segmentos
rectilíneos o, a lo sumo, parabólicos.
Como podrá comprobar el lector de los apartados siguientes, las fórmulas y
métodos de interpolación, así como los de integración numérica, llevan en
11
Consúltense los apuntes sobre los métodos de resolución de ecuaciones no lineales.
12
Así por ejemplo, Arquímedes de Siracusa (287 a.C – 212 a.C) encontró una fórmula que
permitía calcular el área encerrada bajo un tramo de parábola.
2
Programación y Métodos Numéricos
Interpolación polinómica
muchos casos el nombre de insignes matemáticos de esta época. Aunque no
está muy claro quien fue el primero en utilizar cada una de tales fórmulas (y
revisiones históricas modifican a menudo el papel que cada uno de aquellos
matemáticos jugó en la determinación de cada fórmula) intentaremos en las
líneas siguientes realizar un pequeño esbozo de las contribuciones de los
principales matemáticos que dan nombre a las fórmulas más usuales que se
encuentran en estos temas.
En terminología actual, el problema de interpolación que entonces se abordaba
puede formularse en la forma siguiente:
Dadas (n+1) abscisas x0 < x1 < ....< xn y conocidos los valores f0, f1,
...., fn que en ellas toma una cierta función f(x), determinar un
polinomio pn(x) de grado menor o igual que n cuyo grafo pase por los
(n+1) puntos (x0, f0), (x1, f1), ...., (xn, fn).
Como veremos en apartados posteriores sólo existe un único polinomio pn(x)
que sea solución del problema anterior. Si se denota a tal polinomio por:
pn(x) = α0 + α1·x + α2·x2 + ..... + αn·xn
los (n+1) coeficientes {α0, α1, ...., αn} son la solución del sistema de (n+1)
ecuaciones:
1.α0 + x0·α1 + (x0)2·α2 + ...... + (x0)n·αn = f0
1.α0 + x1·α1 + (x1)2·α2 + ...... + (x1)n·αn = f1
………………………………..
....
2
n
1.α0 + xn·α1 + (xn) ·α2 + ...... + (xn) ·αn = fn
Pero existen otras formas más cómodas de calcular este polinomio. Una de
ellas es la desarrollada por los matemáticos ingleses del siglo XVII y a la cual
nos referiremos a continuación.
A pesar de no ser cronológicamente el primero, parece obligado comenzar por
el más grande de todos ellos: Sir Isaac Newton (4 de enero de 1643, Woolsthorpe
(Lincolnshire, Inglaterra) - 20 de marzo de 1727, Londres (Inglaterra)).
La
descripción de las numerosas aportaciones científicas de este gran matemático
y físico desbordarían con mucho los objetivos de esta breve introducción
histórica. Baste recordar que los trabajos de Newton en mecánica, con la
3
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
formulación de sus tres leyes, proporcionaron un marco físico que continuó
siendo plenamente vigente hasta la aparición de las teorías relativistas a
comienzos del siglo XX (y que el marco newtoniano continúa siendo en el que
se plantean los problemas para las escalas de velocidades pequeñas en
comparación con las de la luz). Recordemos también que los trabajos de
Newton sobre óptica revolucionaron los conocimientos de dicha disciplina. O
que el telescopio diseñado por él permitió ampliar el horizonte de observación
astronómica realizando mediciones mucho más precisas.
En un terreno más puramente matemático, debe comenzarse señalando que
Newton y Leibniz son considerados los creadores, de forma independiente, del
Cálculo Infinitesimal. Junto a ello, son debidos a Newton muchos otros avances
matemáticos: fue el primero en demostrar la fórmula del cálculo de la potencia
n-ésima de un binomio (el teorema binomial), el primero en hacer notar la
relación existente entre la derivación (cálculo de tangentes) y la integración
(cálculo de áreas), ....
Junto a estos méritos, el citar a Newton como el artífice de una fórmula de
interpolación polinómica puede parecer algo bastante insignificante. Pero sin
embargo debe resaltarse que Newton fue un hábil calculista y que en
numerosos desarrollos por él realizados se utilizan técnicas de interpolación.
La idea que subyace en el procedimiento de Newton para calcular el polinomio
interpolador pn(x) que pasa por los puntos (x0, f0), (x1, f1), ...., (xn, fn) consiste en
expresarlo en la forma:
pn(x) = a0 + a1·(x-x0) + a2·(x-x0)·(x-x1) + ..... + an·(x-x0)·(x-x1)····(x-xn-1)
con lo que se pueden calcular los coeficientes {a0 , a1, a2, ..., an} mediante:
pn(x0) = f0 ⇔ a0 = f0 (= f[x0] )
pn(x1) = f1 ⇔ a0 + a1·(x1-x0) = f1 ⇒ a1 =
f1 − f0
x1 − x 0
(= f[x0 , x1])
pn(x2) = f2 ⇔ a0 + a1·(x2-x0) + a2·(x2-x0)·(x2-x1) = f2 ⇒
f2 − f1
f −f
− 1 0
x − x1 x1 − x 0
⇒ a2 = 2
x2 − x0
……..
4
(= f[x0, x1, x2] )
Programación y Métodos Numéricos
Interpolación polinómica
Los coeficientes así calculados son llamados diferencias divididas y se suelen
representar como ai = f[x0, x1, ..., xi]. Como se verá en apartados posteriores, su
cálculo puede realizarse de forma recursiva de manera muy simple mediante la
fórmula:
f [ xi ,xi+1,....,xi+k −1,xi+k ] =
f [ xi+1,....,xi+k −1,xi+k ] − f [ xi ,xi+1,....,xi+k −1 ]
xk − xi
con lo que el polinomio interpolador buscado responde a la fórmula:
n
(i−1)
i=1
j= 0
pn (x) = f [ x 0 ] + ∑ f [ x 0 ,..,xi ]·∏ (x − x j )
Esta forma de proceder (aplicada a ejemplos concretos y obviamente descrita
con una terminología diferente a como se ha realizado anteriormente) fue
publicada en la obra de Newton Methodus differentialis aparecida en 1712, si
bien era utilizada por Newton y otros matemáticos desde años antes. Debido a
ello la fórmula anterior se conoce con el nombre de fórmula de Newton para el
cálculo del polinomio interpolador.
•
Nótese que, a fin de cuentas, la fluxión f de una función –terminología con la
que Newton introdujo el cálculo infinitesimal- no deja de ser más que la
diferencia dividida de primer orden:
f [ x,x + h] =
f(x + h) − f(x) f(x + h) − f(x)
=
(x + h) − x
h
cuando h se hace tender hacia cero.
Incluso métodos diseñados para otros fines en esa época pueden interpretarse
de alguna forma como métodos basados en interpolación. Así, de forma
independiente, Sir Isaac Newton y Joseph Raphson utilizaban un método de
resolución de ecuaciones no lineales de la forma f(x) = 0 que hoy es conocido
con el nombre de ambos. En cada iteración del método de Newton-Raphson13,
se determina una aproximación xi+1 de la raíz a partir de la aproximación
precedente xi mediante la fórmula:
13
Consúltense los apuntes sobre los métodos de resolución de ecuaciones no lineales
5
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
xi+1 = xi – f(xi) / f’(xi)
por lo que x+1 puede considerarse el punto de corte con el eje de abscisas de la
recta (polinomio de primer grado) que en xi tiene el mismo valor que la función
f(x) y cuya primera derivada tiene el valor f’(xi). Ello constituye uno de los
primeros ejemplos de lo que después sería conocido con el nombre de
interpolación de Hermite.
f(x)
xi
Precursor de algunos trabajos de Newton fue el matemático escocés James
Gregory (1638, Drumaoak (Escocia) – 1675, Edimburgo (Escocia)). Este
matemático se anticipó en muchos aspectos a Isaac Newton y otros
matemáticos posteriores. Escritos suyos, no publicados aunque recogidos en la
correspondencia que mantuvo con otros científicos de su época, parecen
indicar que utilizaba técnicas de cálculo infinitesimal en los años en que
Newton aún estaba diseñando estas herramientas. Una de sus obras – Optica
promota publicada en 1663- fue la base en la que se basó Newton para
construir su telescopio de refracción. No obstante una agria disputa que
mantuvo con el holandés Christian Huygens le hizo muy retraído a la hora de
publicar sus resultados. Gran parte de sus hallazgos son hoy conocidos por la
aparición de su correspondencia científica. Entre las cartas encontradas puede
resaltarse la que en 1671 dirige a un miembro de la Royal Society y que indica
que James Gregory conocía la expresión de los desarrollos en serie de Taylor
muchos años antes de que estos fuesen publicados por Brook Taylor en 1715.
Asimismo, la correspondencia hallada de él confirman que había demostrado
antes de 1670, anticipándose al propio Newton, la fórmula de cálculo de las
6
Programación y Métodos Numéricos
Interpolación polinómica
potencias de un binomio así como la misma fórmula de interpolación de
Newton. Hoy, reconociendo parcialmente ese hecho, se conoce con el nombre
de fórmulas de Newton-Gregory a los casos particulares de la fórmula de
Newton en la que el soporte de interpolación está formado por puntos en los
que cada uno de ellos dista la misma magnitud del que le precede y le sigue
(llamados soportes equidistantes) y las diferencias divididas son sustituidas por
diferencias finitas progresivas o regresivas. También se debe a Gregory una de
las primeras fórmulas de integración numérica hallada por él en 1670.
Contemporáneo de Newton fue otro matemático inglés con una producción de
resultados mucho menor: Roger Cotes (10 de julio de 1683, Burbage (Inglaterra) –
5 de junio de 1716, Cambridge (Inglaterra) ). Este matemático, que sólo publicó un
artículo en vida, trabajó en cálculo integral y fue el encargado de coordinar la
publicación de la segunda edición de la principal obra de Newton, Philosophie
Naturalis Principia Matemática (abreviadamente conocida como Principia). Por
publicaciones posteriores que recogían algunos de sus trabajos, editadas por
Thomas Simpson, se pudo conocer el gran trabajo que desarrolló en el cálculo
de tablas de diferencias divididas y su aplicación al cálculo de integrales.
Reconociéndole este esfuerzo hoy se conocen como fórmulas de NewtonCotes a aquellas fórmulas de integración numérica que utilizan soportes
equidistantes.
De la misma época y también inglés, es el matemático James Stirling (nacido
en mayo de1692 en Garden (Escocia) y fallecido en Edimburgo (Escocia) el 5 de
Diciembe de 1770). Este matemático es fundamentalmente recordado por la
fórmula de Stirling que proporciona una expresión de n! utilizando el número e.
En el año 1730 publicó una obra, también titulada Methodus Differentialis, en
la que aborda el estudio de métodos de interpolación y de cuadratura. Por sus
aportes en este campo y el uso de los factoriales que en ella aparecen, una de
las fórmula de interpolación en la que se utilizan deferencias finitas centradas
con un soporte equidistante se conoce hoy en día con el nombre de fórmula de
Stirling.
Ligeramente posterior a los anteriores y entusiasta seguidor de las ideas
introducidas por Newton, es el matemático inglés Thomas Simpson (20 de
agosto de 1710 Market Bosworth (Inglaterra) – 14 de mayo de 1761, Bosworth
(Inglaterra)). Simpson, que ejerció como profesor particular de matemáticas y
logró ser miembro de la Royal Society, trabajó fundamentalmente en teoría de
7
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
probabilidades, en interpolación y en integración numérica. Él es el que da
nombre a una de las fórmulas más populares de integración numérica en la que
el área bajo un tramo de curva es aproximada por el área bajo un tramo
parabólico que coincide con la función a integrar al menos en los extremos del
intervalo de integración así como en el punto medio de dicho intervalo.
Antes de abandonar la Inglaterra de comienzos del siglo XVIII debemos
mencionar a otro matemático de esa época: Brook Taylor (18 de agosto de 1685,
Edmonton (Inglaterra) – 29 de diciembre de 1731, Londres (Inglaterra)). En el año
1715 Taylor publicó su obra Methodus incrementorum directa e inversa en la
que usa profusamente las diferencias finitas y proporciona, sin demostrar su
convergencia, el desarrollo en serie de una función en un punto que hoy se
conoce con el nombre de desarrollo en serie de Taylor y que es una de las
herramientas más utilizadas en el análisis que involucra funciones
diferenciables. Recordemos que la fórmula de Taylor es:
(x − x*)i (i
·f (x*)
i!
i=1
n
f(x) ≈ pn (x) = f(x*) + ∑
El uso de este desarrollo en serie permite aproximar una función por un
polinomio de grado n en el que tanto la función como sus n primeras derivadas
coinciden en un punto dado con el valor del polinomio y los de sus n primeras
derivadas. En su honor se denomina interpolación de Taylor al proceso
mediante el que, conocidos los valores f(x0), f’(x0) , ...., f(n(x0), se determina una
función p(x) verificando que p(x0) = f(x0), p’(x0) = f’(x0), ...., p(n(x0) = f(n(x0).
Muchos otros matemáticos continuaron ocupándose de temas relativos a la
interpolación. Pero hubo que esperar hasta finales del siglo XVIII para que
Joseph Louis Lagrange (25 de enero de 1736, Turín (Italia) – 10 de abril de 1813,
París (Francia)) dedicase algunos de sus trabajos a la interpolación polinómica
de funciones y diseñara un método diferente al basado en las tablas de
diferencias finitas para construir el polinomio interpolador de una función. Al
igual que en el caso de Newton, los trabajos de Lagrange sobre interpolación
son considerados como trabajos menores dentro de su magna obra. En efecto,
Lagrange fue, al igual que muchos de los científicos de su época, un
matemático y físico muy polifacético. A él se le deben, en el campo
matemático, métodos de resolución de ecuaciones diferenciales, técnicas de
optimización con restricciones, la introducción del cálculo simbólico en el
8
Programación y Métodos Numéricos
Interpolación polinómica
cálculo infinitesimal, la revalorización de la fórmula de Taylor, ... Pero sin duda
su obra mayor es la Mécanique Analitique en la que introduce un enfoque
entonces novedoso y riguroso en el estudio de la mecánica: el cálculo de
variaciones y los sistemas de coordenadas generalizadas.
En uno de sus tratados sobre astronomía, publicado en 1792, Lagrange
desarrolla su método de interpolación para obtener polinomios de grado n que
tomen en (n+1) puntos diferentes valores prefijados. El enfoque novedoso que
adopta Lagrange para diseñar su método puede describirse diciendo que él
busca el polinomio interpolador pn(x) que pasa por los puntos (x0, f0), (x1, f1), ....,
(xn, fn) expresándolo en la forma:
pn(x) = a0·(x-x1)·(x-x2)· ..... ·(x-xn) + a1·(x-x0)·(x-x2)· ..... ·(x-xn) + ...... +
+an·(x-x0)·(x-x1)· ..... ·(x-xn-1) =
n
n
i=0
j= 0
j≠ i
∑ ai·∏ (x − x j )
De esta forma, de las igualdades pn(xk) = fk (k = 0, 1, ..., n) obtiene que:
n
p(x0) = f0 ⇔ a0 ·∏ (x 0 − x j ) = f0 ⇒ a0 = f0 ·
j=1
1
n
∏ (x
0
− xj )
j=1
n
p(x1) = f1 ⇔ a1·∏ (x1 − x j ) = f1 ⇒ a1 = f1·
j=0
j≠1
1
n
∏ (x
1
− xj)
j=0
j≠1
…….
…………………………………..
n −1
p(xn) = fn ⇔ an ·∏ (xn − x j ) = fn ⇒ an = fn · n−1
1
∏ (x
j= 0
n
− xj )
j=0
Con ello Lagrange proporciona como expresión del polinomio interpolador:
⎛ n
⎞
(x − x j ) ⎟
⎜
pn (x) = ∑ fi ·∏
⎜ j=0 (xi − x j ) ⎟⎟
i= 0 ⎜
⎝ j≠ i
⎠
n
9
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Esta fórmula es conocida desde entonces con el nombre de fórmula de
interpolación de Lagrange. En ella se expresa el polinomio interpolador pn(x)
como una combinación lineal de los polinomios:
n (x − x )
j
Li (x) = ∏
j=0 (x i − x j )
j≠i
que son denominados polinomios de base de Lagrange (ya que constituyen
una base del espacio vectorial formado por todos los polinomios de grado
menor o igual que n).
La fórmula de Lagrange fue ganándole terreno poco a poco a la fórmula de
Newton y su uso se mostró más adecuado para el análisis de problemas de
interpolación con funciones de varias variables. Técnicas numéricas
posteriores, como la de elementos finitos, se apoyaron en la fórmula de
Lagrange.
Por todo ello, en honor a este matemático, hoy se denomina interpolación
lagrangiana al proceso de obtención de funciones que en un conjunto de
puntos tomen valores dados.
La interpolación sería objeto de atención de otro de los grandes matemáticos
que vivieron en el siglo XIX, llamado a menudo El Príncipe de los Matemáticos.
Nos referimos a Johan Carl Friedrich Gauss (30 de abril de 1777, Brunswick
(Alemania) – 23 de febrero de 1855, Göttingen (Alemania)) que también tuvo una
producción científica excepcional no escapándose a su influjo prácticamente
ninguna de las áreas de la Matemática entonces existentes: estadística, teoría
de números, análisis complejo, series, análisis de funciones reales, cálculo
integral y diferencial, ecuaciones diferenciales, álgebra, geometría, .... A él se
le debe el estudio de la mejor manera para tomar los (n+1) puntos de un
soporte de forma que se minimice el error de las fórmulas de integración
numérica. Y en su honor a tales fórmulas se las denomina hoy en día fórmulas
de cuadratura gaussiana (o fórmulas de integración de Gauss).
El último de los matemáticos del siglo XIX en quien nos detendremos es el
francés Charles Hermite (24 de diciembre de 1822, Dieuze, Lorena (Francia) – 14
de enero de 1901, París (Francia)). Hermite fue un matemático muy creativo,
continuador en buena medida de los trabajos de Abel, Galois y Liouville sobre
estructuras algebraicas vinculadas a la resolución de ecuaciones. Fue Hermite
10
Programación y Métodos Numéricos
Interpolación polinómica
el primero en demostrar que el número e no era un número algebraico y el que
allanó el camino para que poco después Lindemann demostrase que π
tampoco lo era (poniendo, de esta forma, el broche final al problema de la
cuadratura del círculo que desde la época de los griegos ocupó a numerosos
matemáticos). Junto a ello Hermite destacó notablemente en áreas
matemáticas menos aplicadas (en invariantes algebraicos, funciones elípticas,
...). Pero afortunadamente, a pesar de las críticas que muchos matemáticos le
han dirigido por ello, Hermite también dedicó un corto periodo de su vida, tres
años hacia 1870, al estudio de problemas de aproximación e interpolación
introduciendo técnicas que permiten calcular funciones interpoladoras que, en
los puntos de un soporte, coinciden tanto ellas como sus primeras derivadas
con los valores de la función que se interpola y las derivadas correspondientes.
De forma más concreta, Hermite se ocupó, entre otros tópicos, de un problema
de interpolación más general que los de interpolación de Lagrange e
interpolación de Taylor pues Hermite consideró que en cada uno de los (n+1)
puntos x0 < x1 < .... < xn se conocían los valores de una función f(x) y los de su
primera derivada f’(x), buscando el polinomio p2·n+1(x), de grado menor o igual
que (2·n+1), que verificaba que:
p2·n+1(xi) = f(xi)
(i = 0, 1, …, n)
p'2·n+1(xi ) = f '(xi )
(i = 0, 1, …, n)
Dicho polinomio, que también puede demostrarse que es único, fue obtenido
por Hermite expresándolo como una combinación lineal de polinomios en la
forma:
n
n
i= 0
i=0
p2·n+1(x) = ∑ f(xi )·Hi,0 (x) + ∑ f '(xi )·Hi,1(x)
donde los polinomios {H0,0(x), H1,0(x), ..., Hn,0(x), H0,1(x), Hn,1(x), ...., Hn,1(x)}
forman una base del espacio formado por todos los polinomios de grado menor
o igual que (2·n+1) y son denominados polinomios de base de Hermite (y cuya
expresión se obtendrá en apartados posteriores). A la fórmula que proporciona
p2·n+1(x) en función de esta base se la conoce con el nombre de fórmula de
interpolación de Hermite.
El problema de interpolación de Hermite se generalizó en años posteriores
dando cabida a que en cada punto xi del soporte se supusieran conocidos el
valor de una función f(x) y los de sus mi primeras derivadas, buscándose
11
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
entonces un polinomio pα(x) de grado menor o igual que α, y donde el entero α
está dado por α = n +
n
∑ m , verificando:
i =0
p(αj (xi ) = f ( j (xi )
i
(j = 0, 1, ..., mi)
(i = 0, 1, ..., n)
En honor a Charles Hermite este proceso se conoce con el nombre de
interpolación de Hermite. Obsérvese que la interpolación de Lagrange es un
caso particular de la de Hermite en el que se toman nulos todos los valores mi.
Asimismo, la interpolación de Taylor es un caso particular de la de Hermite en
la que el soporte de interpolación se reduce a un único punto x0.
En el tintero se nos han quedado muchos otros matemáticos de los siglos XVII,
XVIII y XIX que obtuvieron resultados que conformaron una sólida teoría sobre
los métodos de interpolación.
El siglo XX, y especialmente su segunda mitad en la que las técnicas de
interpolación pudieron implementarse sobre ordenadores, conoció un auténtico
estallido en el uso de la interpolación, derivación e integración numéricas. Los
métodos numéricos de resolución de ecuaciones diferenciales, ordinarias o
parciales -que rigen numerosos problemas de la física, la química o la
ingeniería- están basados en estas técnicas. Así los métodos en diferencias
finitas o elementos finitos que se estudian en otras asignaturas pueden ser
considerados como continuadores de las técnicas de interpolación
desarrolladas por Newton, Lagrange, Gauss, Hermite y muchos otros. Y baste
recordar que la existencia de tales métodos, junto a las máquinas de cálculo,
están presentes hoy en día en el estudio y diseño de aviones, cohetes,
vehículos, edificios, prótesis, hornos industriales, estabilidad de galerías y
taludes, ....
Esperamos que esta breve introducción a las técnicas de interpolación permita
al lector tener una visión general sobre el tema del que se ocupan estos
apuntes. Muchos y muy buenos matemáticos han contribuido al desarrollo que
ahora tiene. Y muy numerosos son los campos en los que se encuentran sus
aplicaciones.
12
Programación y Métodos Numéricos
Interpolación polinómica
2. Interpolación polinómica de Lagrange
Consideraremos en esta sección el problema de interpolación de Lagrange
formulado de la manera siguiente:
Problema de Interpolación Polinómica de Lagrange
“Dados (n+1) puntos distintos {x0 , x1 , ... , xi ,... , xn} y (n+1)
valores {f0, f1, ..., fi, ..., fn}, encontrar un polinomio pn(x), de
grado menor o igual que n, verificando las igualdades:
pn(xi) = fi
(i = 0, 1, ...., n)
“
En tal problema denominaremos soporte de interpolación al conjunto de
puntos {x0 , x1 , ... , xi ,... , xn}. En los soportes que consideraremos
supondremos que el índice n es un entero estrictamente positivo (es decir que
al menos hay 2 puntos en el soporte) y que los (n+1) puntos del soporte son
distintos entre sí. Cuando la distancia entre puntos consecutivos sea siempre
la misma se dirá que el soporte es un soporte equidistante.
Al polinomio pn(x) se le denominará polinomio interpolador de Lagrange
sobre el soporte {x0 , x1 , ... , xi ,... , xn} para los valores {f0, f1, ..., fi, ..., fn}.
Cuando estos valores sean los valores que toma una cierta función f(x) en los
puntos del soporte, se dirá que pn(x) es el polinomio interpolador de Lagrange
de la función f(x) sobre el soporte {x0 , x1 , ... , xi ,... , xn}. No obstante, cuando
consideremos que no hay confusión sobre los puntos del soporte utilizados así
como sobre los valores en ellos, nos referiremos a pn(x) diciendo simplemente
que es el polinomio interpolador de Lagrange.
Ejemplos:
30 − 24· 2 2 16· 2 − 23
·x +
·x + 1 es el polinomio
2·π
π2
interpolador de Lagrange de la función f(x) = cos(x) sobre el soporte14
⎧ π π⎫
⎨0, , ⎬ . En efecto, es un polinomio de grado menor o igual que 2 verificando:
⎩ 4 3⎭
⎛
1
⎛π⎞ 1 ⎛
⎛ π ⎞⎞
⎛π⎞
⎛ π ⎞⎞
p2(0) = 1 (=cos(0)), p2 ⎜ ⎟ =
⎜ =cos ⎜ ⎟ ⎟
⎜ =cos ⎜ ⎟ ⎟ , p2 ⎜ ⎟ =
2 ⎝
⎝3⎠ 2 ⎝
⎝ 3 ⎠⎠
⎝4⎠
⎝ 4 ⎠⎠
1º) El polinomio p2(x) =
14
Adoptaremos en todo cuanto sigue el convenio de que, salvo que se especifique lo contrario,
los argumentos de las funciones trigonométricas se consideran dados siempre en radianes.
13
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
2º) El polinomio p3(x) = -x3 + 2·x2 – 3·x + 2 es el polinomio interpolador de
Lagrange de la función f(x) = x4 – 3·x3 + x2 – x + 2 sobre el soporte de 4 puntos
{-1, 0, 1, 2}. En efecto, habiendo 4 puntos el polinomio dado es un polinomio de
grado 3 que, además, verifica que:
p3(-1) = 8 (= f(-1)), p3(0) = 2 (= f(0)), p3(1) = 0 (= f(1)), p3(2) = -4 (= f(2))
•
En este apartado presentaremos diferentes técnicas para resolver el problema
de interpolación de Lagrange anteriormente formulado.
Una primera forma de determinar el polinomio buscado consiste en considerar
que pn(x) es un polinomio de la forma pn(x) = α0 + α1·x + α2·x2 + ... + αn·xn
para, a continuación, obtener un sistema de (n+1) ecuaciones lineales a partir
de las igualdades entre los valores conocidos en el soporte y los valores que
debe tomar el polinomio interpolador en los puntos del soporte. Más
concretamente:
pn(x0) = f0 ⇔ α0 + α1·x 0 + α 2 ·x 02 + .... + αn ·xn0 = f0
pn(x1) = f1 ⇔ α0 + α1·x1 + α 2 ·x12 + .... + αn ·x1n = f1
pn(x2) = f2 ⇔ α0 + α1·x 2 + α 2 ·x 22 + .... + αn ·xn2 = f2
………..
…………………..
…
2
n
pn(xn) = fn ⇔ α0 + α1·xn + α 2 ·xn + .... + αn ·xn = fn
El sistema anterior puede escribirse con notación matricial en la forma:
⎡1
⎢
⎢1
⎢1
⎢
⎢...
⎢1
⎣
x0
x1
x2
...
xn
x 02 ... x n0 ⎤ ⎧α 0 ⎫ ⎧ f0 ⎫
⎥⎪ ⎪ ⎪ ⎪
x12 ... x1n ⎥ ⎪ α1 ⎪ ⎪ f1 ⎪
⎪ ⎪ ⎪ ⎪
x 22 ... xn2 ⎥·⎨α 2 ⎬ = ⎨ f2 ⎬
⎥
... ... ... ⎥ ⎪ ... ⎪ ⎪...⎪
⎪ ⎪ ⎪ ⎪
x n2 ... xnn ⎥⎦ ⎪⎩αn ⎭⎪ ⎩⎪ fn ⎭⎪
Si, como se ha supuesto, los puntos del soporte son distintos entre sí, la matriz
del sistema anterior es una matriz regular y por tanto el sistema anterior admite
una única15 solución (es decir que el polinomio buscado queda definido de
forma única a través de sus coeficientes obtenidos como solución del sistema
planteado).
15
No nos detenemos a demostrar esta afirmación pues la existencia y unicidad del polinomio
interpolador de Lagrange será demostrada posteriormente.
14
Programación y Métodos Numéricos
Interpolación polinómica
Ejemplo:
Determinemos la expresión del polinomio interpolador de Lagrange de la
función f(x) = x4 – 3·x3 + x2 – x + 2 sobre el soporte {-1, 0, 1, 2}. En estos
puntos se tiene que: f0 = f(-1) = 8, f1 = f(0) = 2, f2 = f(1) = 0 y f3 = f(2) = -4.
Denotando al polinomio buscado por: p3(x) = α0 + α1·x + α2·x2 + α3·x3 , se tiene
que:
p3(-1) = f0 ⇔ α0 - α1 + α2 - α3 = 8
p3(0) = f1 ⇔ α0
=2
p3(1) = f2 ⇔ α0 + α1 + α2 + α3 = 0
p3(2) = f3 ⇔ α0 + 2·α1 + 4·α2 + 8·α3 = -4
es decir:
⎡1 −1
⎢
⎢1 0
⎢1 1
⎢
⎣1 2
1 −1⎤ ⎧α 0 ⎫ ⎧ 8 ⎫
⎪ ⎪
0 0 ⎥⎥ ⎪ α1 ⎪ ⎪⎪ 2 ⎪⎪
·⎨ ⎬ = ⎨ ⎬
1 1 ⎥ ⎪α 2 ⎪ ⎪ 0 ⎪
⎥
4 8 ⎦ ⎩⎪α 3 ⎭⎪ ⎩⎪−4 ⎭⎪
de donde:
α0 = 2, α1 = -3, α2 = 2, α3 = -1
por lo que: p3(x) = 2 – 3·x + 2·x2 – 1·x3.
La figura siguiente recoge la gráfica de f(x) y de p3(x).
f(x)
p3(x)
•
15
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejercicio propuesto:
Plantéese el sistema de ecuaciones que permite calcular el polinomio
⎧ π π⎫
interpolador de Lagrange de la función f(x) = sen(x) sobre el soporte ⎨0, , ⎬ .
⎩ 4 2⎭
Resuélvase dicho sistema y escríbase la expresión del polinomio interpolador.
•
Esta forma de calcular el polinomio interpolador de Lagrange, mediante la
resolución de un sistema de (n+1) ecuaciones con (n+1) incógnitas, es útil
cuando se trabaja con un soporte formado por un número de puntos
relativamente bajo. En el caso de que no sea así es necesario realizar un gran
esfuerzo computacional para resolver el sistema de ecuaciones al que se llega.
Pero además, esta forma de proceder tiene menos interés que otras que
analizaremos a continuación cuando se piensa en aplicarlas a los métodos de
resolución numérica de problemas de contorno (y en concreto al método de
elementos finitos) que se aborda en otras asignaturas.
Por ello, en los subapartados que siguen, se estudiarán otras técnicas de
cálculo del polinomio interpolador de Lagrange.
16
Programación y Métodos Numéricos
Interpolación polinómica
2.1. La fórmula de interpolación de Lagrange
Teorema 1 (Existencia y unicidad del polinomio interpolador de Lagrange)
Dados (n+1) valores {f0, f1, ..., fi, ..., fn}, y siendo Li(x) (i= 0, …, n) los
polinomios de base de Lagrange asociados al soporte formado por las (n+1)
abscisas distintas {x0, x1, ... , xi, ..., xn}, existe un único polinomio de grado
menor o igual que n, pn(x), verificando las (n+1) igualdades:
pn(xi) = fi
(i = 0, 1, 2, ..., n)
(1)
Demostración:
Como se ha visto en el apartado anterior, el sistema (1) puede escribirse con
notación matricial en la forma:
⎡1
⎢
⎢1
⎢1
⎢
⎢...
⎢1
⎣
x0
x1
x2
...
xn
x 02 ... xn0 ⎤ ⎧α 0 ⎫ ⎧ f0 ⎫
⎥⎪ ⎪ ⎪ ⎪
x12 ... x1n ⎥ ⎪ α1 ⎪ ⎪ f1 ⎪
⎪ ⎪ ⎪ ⎪
x 22 ... xn2 ⎥·⎨α 2 ⎬ = ⎨ f2 ⎬
⎥
... ... ... ⎥ ⎪ ... ⎪ ⎪...⎪
⎪ ⎪ ⎪ ⎪
x n2 ... xnn ⎥⎦ ⎩⎪αn ⎭⎪ ⎩⎪ fn ⎭⎪
[X]·{α} = {f}
La matriz del sistema, habida cuenta de que las abscisas x0, x1, …., xn son
todas ellas distintas, tiene su determinante del tipo Vandermonde y por ello
distinto de 0. En otros téminos es una matriz regular que admitirá inversa [X]-1 .
Por ello existirá un único juego de coeficientes, dado por la expresión:
{α} = [X]-1·{f}
Que identifique al polinomio interpolador pn(x).
c.q.d.
Definición
Se denominan polinomios de base de Lagrange asociados al soporte
formado por las (n+1) abscisas distintas {x0, x1, ... , xi, ..., xn}, y los
denotaremos por Li(x) (i= 0, …, n) , a los (n+1) polinomios de grado menor o
igual a n definidos por las expresiones:
Si n = 0: L0(x) = 1
Si n > 0:
n ⎛ x−x ⎞
j
Li (x) = ∏ ⎜
⎟⎟
⎜
j=0 ⎝ x i − x j ⎠
j≠i
(i = 0, 1, 2, ..., n)
(2)
●
17
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
El método diseñado por Lagrange para el cálculo del polinomio interpolador,
utiliza los polinomios de base de Lagrange que se acaban de definir. La forma
en que se utilizan, se recogen en el siguiente teorema.
Teorema 2 (Fórmula de Lagrange para el polinomio interpolador)
Dados (n+1) valores {f0, f1, ..., fi, ..., fn}, y siendo Li(x) (i= 0, …, n) los
polinomios de base de Lagrange asociados al soporte formado por las (n+1)
abscisas distintas {x0, x1, ... , xi, ..., xn}, se verifica que el polinomio interpolador
de Lagrange sobre el soporte considerado y para los valores dados puede
expresarse como:
n
pn (x) = ∑ fi ·Li (x)
(3)
i =0
Demostración:
Basta con observar que los polinomios de base de Lagrange dados por la
expresión (1) son polinomios de grado n verificando, sobre los puntos del
soporte, que verifican:
⎧0 si i ≠ k
Li (xk ) = δik = ⎨
⎩ 1 si i = k
Por tanto, el polinomio dado por la fórmula de interpolación de Lagrange (3) es
un polinomio de grado menor o igual que n (al ser una combinación lineal de
polinomios de grado n) que además verificará que:
pn(xk) =
n
∑ f ·L (x
i=0
i
i
k
) = fk·Lk(xk) = fk
(k = 0, 1, ..., n)
Es, por ello, el polinomio interpolador de Lagrange sobre el soporte
considerado y para los valores dados en el enunciado.
c.q.d.
NOTA: La expresión (3) se conoce como fórmula de interpolación de
Lagrange.
Consecuencia inmediata del teorema anterior es el siguiente corolario
Corolario 1
Si p(x) es una función polinómica de grado m, y n es un entero estrictamente
positivo tal que m < n, el polinomio interpolador de Lagrange pn(x) de la función
p(x) sobre cualquier soporte formado por (n+1) puntos es la propia función p(x).
18
Programación y Métodos Numéricos
Interpolación polinómica
Demostración:
El grado del polinomio interpolador de Lagrange sobre un soporte
formado por (n+1) puntos debe ser menor o igual que n. La función p(x)
se ha supuesto que es un polinomio de grado m < n por lo que verifica la
condición sobre el grado exigido al polinomio interpolador de Lagrange.
Puesto que obviamente el valor de la función p(x) en los puntos del
soporte coincide con el valor p(xi) se puede concluir que p(x) es el
polinomio interpolador de Lagrange de ella misma. Y como en virtud del
teorema anterior el polinomio interpolador de Lagrange es único, puede
concluirse que pn(x) ≡ p(x).
c.q.d.
Ejemplo:
Utilicemos la fórmula de Lagrange para determinar el polinomio interpolador de
⎧ π π⎫
Lagrange de la función f(x) = sen(x) sobre el soporte ⎨0, , ⎬ .
⎩ 4 2⎭
En primer lugar calculemos los valores de la función f(x) en los puntos del
soporte:
1
⎛π⎞
⎛π⎞
⎛π⎞
⎛π⎞
f0 =f(0) = sen(0) = 0,
, f2 = f ⎜ ⎟ = sen ⎜ ⎟ = 1
f1 = f ⎜ ⎟ = sen ⎜ ⎟ =
2
⎝4⎠
⎝4⎠
⎝2⎠
⎝2⎠
Procedamos a continuación a calcular (y representar gráficamente) los
polinomios de base de Lagrange asociados a este soporte.
π⎞⎛
π⎞
⎛
⎜ x − 4 ⎟·⎜ x − 2 ⎟ 8·x 2 − 6·π·x + π2
⎠⎝
⎠=
L0 (x) = ⎝
π
π
π2
⎛
⎞⎛
⎞
−
−
0
·
0
⎜
4 ⎟⎠ ⎜⎝
2 ⎟⎠
⎝
π⎞
2 ⎟⎠ −16·x 2 + 8·π·x
⎝
=
L1(x) =
π2
⎛π
⎞⎛ π π⎞
−
−
0
·
⎜4
⎟⎜ 4 2⎟
⎝
⎠⎝
⎠
π
( x − 0 )·⎛⎜ x − ⎞⎟ 8·x 2 − 2·π·x
4⎠
⎝
=
L 2 (x) =
π2
⎛π
⎞⎛ π π⎞
−
−
0
·
⎜2
⎟⎜2 4⎟
⎝
⎠⎝
⎠
( x − 0 )·⎛⎜ x −
19
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
L0(x)
L1(x)
L2(x)
π/4
π/2
Con ayuda de estos polinomios de base se calcula el polinomio interpolador
utilizando la fórmula de interpolación de Lagrange:
2
1 ( −16·x + 8·π·x )
8·x 2 − 2·π·x
p2(x) = f0·L0(x) + f1·L1(x) + f2·L2(x) =
·
+ 1·
=
π2
π2
2
⎛ 8· 2 − 16 ⎞ 2 ⎛ 8 − 2· 2 ⎞
= ⎜⎜
⎟·x + ⎜⎜
⎟·x
2·π2 ⎟⎠
2·π ⎟⎠
⎝
⎝
La figura siguiente recoge, además de las gráficas de los tres polinomios de
base, la gráfica de la función f(x) = sen(x) y la gráfica del polinomio interpolador
que se acaba de determinar.
π/4
π/2
Una aproximación del valor de sen(1) puede obtenerse entonces evaluando
p2(1):
sen(1) ≈ p2(1) = 0.82863992...
20
Programación y Métodos Numéricos
Interpolación polinómica
Puede compararse esta aproximación del valor de sen(1) con el valor exacto
que es 0.841470984.....
•
Examinemos alguna de las propiedades de los polinomios de base de
Lagrange.
Propiedad 1
Dado el soporte {x0, x1, ... , xi, ..., xn},
el i-ésimo polinomio de base de
Lagrange:
n ⎛ x−x ⎞
j
Li (x) = ∏ ⎜
⎟⎟
⎜
j= 0 ⎝ x i − x j ⎠
j≠ i
(i = 0, 1, ....,n)
es el único polinomio de grado menor o igual que n que verifica que:
⎧0 si i ≠ k
Li (xk ) = δik = ⎨
⎩ 1 si i = k
(i, k = 0, 1, ..., n)
Demostración:
Es evidente -sin más que sustituir en la expresión del polinomio Li(x) la
variable x por la abscisa xk (k = 0, 1, ...., i, .., n) - que Li(x) es un polinomio de
grado menor o igual que n que se anula en todos los puntos del soporte salvo
en el punto xi en el que toma el valor unidad.
La unicidad se infiere del hecho de que, en virtud del teorema de existencia y
unicidad del polinomio interpolador, sólo puede haber un polinomio de grado
menor o igual que n pasando por los (n+1) puntos (x0, 0), (x1, 0), ...., (xi-1, 0),
(xi, 0), (xi+1, 0), ...., (xn, 0).
c.q.d.
La gráfica siguiente representa el hecho que se acaba de demostrar
recogiendo los grafos de los 5 polinomios de base asociados al soporte
formado por las abscisas {0.25, 1.12, 4.56, 8.33, 11.45}.
21
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Propiedad 2
Dado el soporte {x0, x1, ..., xi, ..., xn}, los polinomios de base de Lagrange
asociados a dicho soporte:
n ⎛ x−x ⎞
j
Li (x) = ∏ ⎜
⎟⎟
⎜
j=0 ⎝ x i − x j ⎠
j≠i
(i = 0, 1, ...., n)
verifican que:
n
∑ L (x) = 1
i=0
i
∀x
Demostración:
La función unidad, p(x) = 1, es un polinomio de grado 0. Por tanto pertenece al
conjunto de polinomios de grado menor o igual que n para cualquier elección
del número natural n que se haga. Puesto que, en virtud del corolario 1, el
polinomio interpolador de Lagrange pn(x) de esta función p(x) sobre el soporte
de abscisas distintas {x0, x1, ..., xi, ... , xn} ha de coincidir con p(x), se verificará
que:
1 = p(x) = pn(x) =
n
n
n
i=0
i= 0
i=0
∑ p(xi )·Li (x) = ∑1·Li (x) = ∑ Li (x)
c.q.d.
Ejercicios propuestos:
22
Programación y Métodos Numéricos
Interpolación polinómica
1º) Demostrar que siendo Π(x) el polinomio de grado (n+1) dado por la
n
expresión: Π(x) = ∏ (x − x j ) , se puede escribir el i-ésimo polinomio de base de
j=0
Lagrange sobre el soporte {x0, x1, ..., xi, ..., xn} como:
Li (x) =
Π(x)
(x − xi )·Π '(xi )
2º) Demostrar que siendo L0(x), L1(x), ...., Ln(x) los (n+1) polinomios de base
asociados al soporte {x0, x1, ..., xi, ..., xn} se verifica que:
n
∑x
i=0
m
i
·Li (x) = xm
∀m ≤ n
3º) Justificar la veracidad o falsedad de la afirmación siguiente:
“Para cualquier polinomio de base de Lagrange Li(x) asociado a un
soporte genérico {x0, x1, ..., xi, ..., xn} se verifica que:
Li (x) ≤ 1
∀x ∈ ( x 0 ,xn )
(i = 0, 1, ...., n) “
4º) Utilícese la fórmula de Lagrange para determinar el polinomio interpolador
⎧ π π π⎫
de Lagrange de la función cos(x) sobre el soporte ⎨0, , , ⎬ .
⎩ 6 3 2⎭
Represéntense las gráficas de los polinomios de base asociados a este soporte
e indíquese el valor interpolado que aproximaría cos(π/4).
5º) Determínese el polinomio interpolador de Lagrange, p5(x) , de la función
f(x) = x3 sobre el soporte {0, 1, 2, 3, 4, 5}. ¿Cuál es el error de interpolación en
el punto x = 2.5, es decir cual es el valor de |f(2.5) – p5(2.5)| ?.
n ⎛ x−x ⎞
j
6º) Demuéstrese que los polinomios Li (x) = ∏ ⎜
⎟⎟
⎜
j= 0 ⎝ x i − x j ⎠
j≠ i
(i = 0, 1, ..., n)
asociados al soporte {x0, x1, ..., xi, ..., xn} forman una base del espacio vectorial
Pn formado por todos los polinomios (de variable y coeficientes reales) de
grado menor o igual que n.
23
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
2.2. Fórmula del error en la interpolación de Lagrange
Las técnicas de interpolación de Lagrange descritas hasta ahora (y las que se
describirán en subapartados siguientes) permiten encontrar un polinomio de
grado menor o igual que n que coincide con los valores de una función f(x) en
los puntos del soporte de interpolación {x0, x1, ..., xn}. Pero esta coincidencia de
valor no tiene por qué producirse en puntos no pertenecientes al soporte. Es
por ello que se puede definir una función error de interpolación de la forma
siguiente:
Definición
Siendo pn(x) el polinomio interpolador de Lagrange de la función f(x) sobre el
soporte {x0 , x1, .... , xn}, se denomina error de interpolación (de Lagrange) a la
función E(x) que a todo punto x le asocia el valor E(x) = f(x) – pn(x).
f(x)
p2(x)
p2(x*)
E(x*)
f(x*)
x0
x1
x*
x2
En general, si no se tiene información adicional sobre la función f(x) que se
está interpolando, poco se puede decir sobre el error de interpolación (salvo
que será nulo en los puntos del soporte). Pero si se admite una cierta
regularidad de la función f(x), más concretamente, si se admite que tanto la
función f(x) como sus primeras derivadas son continuas y acotadas, es posible
obtener cotas de la función error de interpolación en el intervalo (a, b) al que
pertenezcan los puntos del soporte. Dedicaremos este subapartado a concretar
esta afirmación.
24
Programación y Métodos Numéricos
Interpolación polinómica
Teorema 3
Siendo f(x) una función continua de clase C(n+1)((a, b)) y denotando por pn(x) al
polinomio interpolador de Lagrange de la función f(x) sobre el soporte {x0, x1, ...,
xn}, formado por (n+1) puntos distintos de (a, b), para todo punto x*∈(a, b) se
puede encontrar algún punto ξ * ∈(a, b), dependiente del punto x* que se
escoja, verificando que:
E(x*) = f(x*) − pn (x*) =
f (n+1 ( ξ * )
(n + 1)!
n
·∏ (x * − xi )
i= 0
Demostración:
Si el punto x* coincidiera con alguno de los puntos del soporte la igualdad
anterior es evidente pues el error sería nulo y el productorio que aparece en la
expresión del error también se anularía.
Consideremos pues el caso en que x* ∉{x0, x1,..., xn}. En esta situación se
puede definir el polinomio:
f(x*) − pn (x*) n
q(x) = pn(x) + n
·∏ (x − xi )
∏ (x * − xi ) i=0
i= 0
El polinomio q(x) es un polinomio de grado menor o igual que (n+1), pues es la
suma de un polinomio de grado menor o igual que n (pn(x)) más otro polinomio
n
de grado (n+1) (dado por
∏ (x − x ) )
i
multiplicado por la constante
i=0
f(x*) − pn (x*)
n
∏ (x * − x )
.
i
i=0
Además dicho polinomio verifica que:
q(xk) = pn(xk) +
f(x*) − pn (x*) n
·∏ (x k − x i ) = pn(xk) = f(xk)
n
∏ (x * − xi ) i=0
(k = 0, 1, ..., n)
i=0
q(x*) = pn(x*) +
f(x*) − pn (x*) n
·∏ (x * − xi ) = pn(x*)+ f(x*) - pn(x*) = f(x*)
n
∏ (x * − xi ) i=0
i=0
Por tanto q(x) es el polinomio interpolador de Lagrange de la función f(x) sobre
el soporte formado por los (n+2) puntos: {x0, x1,..., xn, x*} .
25
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Definimos entonces la función F(x) = f(x) – q(x). Esta función es continua y será
de clase C(n+1)((a, b)) pues es la diferencia de dos funciones de dicho espacio.
Además la función F(x) se anula en los (n+2) puntos distintos {x0, x1,..., xn, x*}.
Aplicando sucesivamente el teorema de Rolle16 se tiene entonces que F’(x) se
anulará en al menos (n+1) puntos de (a, b), F”(x) lo hará en al menos n puntos
de (a, b), F’’’(x) será nula en al menos (n-1) puntos de (a, b), ...... y F(n+1(x) se
anulará en al menos un punto del intervalo (a, b). Denotemos por ξ * a alguno
de los puntos de (a, b) en los que se anula F(n+1(x). Se tiene así que:
0 = F(n+1( ξ * ) = f(n+1( ξ * ) – q(n+1( ξ * ) =
=f
(n+1
(ξ *) – p
(n +1
n
⎞
f(x*) − pn (x*) ⎛ n
(ξ*) − n
·⎜ ∏ (x − xi ) ⎟
⎠
∏ (x * − xi ) ⎝ i=0
(n +1
=
i= 0
= f(n+1( ξ * ) – 0 –
f(x*) − pn (x*)
·(n + 1)! ⇒
n
∏ (x * −xi )
i=0
f (n+1(ξ*) n
⇒ f(x*) – pn(x*) =
·∏ (x * − x i )
(n + 1)! i=0
c.q.d.
Una consecuencia inmediata del teorema anterior es el hecho, ya conocido por
el corolario 1 demostrado en el apartado anterior, de que si f(x) es una función
polinómica de grado menor o igual que n, al interpolarla con (n+1) abscisas
distintas de soporte el error que se comete es nulo (pues la derivada de orden
(n+1) de un polinomio de grado menor o igual que n es la función nula).
Pero el teorema anterior, tal cual está formulado, tiene una aplicación práctica
escasa pues su uso en la determinación del error de interpolación de Lagrange
cometido en un punto x* exige el conocimiento previo de la (n+1)-ésima
derivada de la función f(x) (cuando lo habitual es que ni tan siquiera se conozca
la expresión de f(x)) y además la abscisa ξ * en la que evaluar dicha derivada.
Pero sin embargo sí que nos ofrece información cualitativa sobre el proceso de
16
Teorema de Rolle: “Si una función g(x) continua en el intervalo [a, b] es derivable en (a, b) y
además verifica que f(a) = f(b), entonces existe al menos un punto c∈(a, b) en el que se verifica
que f’(c) = 0”.
26
Programación y Métodos Numéricos
Interpolación polinómica
interpolación. En efecto, una consecuencia inmediata de dicho teorema es que
si se denota por M al valor:
M = Sup f (n+1(x)
x∈( a,b )
se verificará que:
∀x ∈ (a,b) :
|E(x)| = |f(x) – pn(x)| ≤
n
M
· ∏ (x − xi )
(n + 1)! i=0
de donde:
∀x ∈ (a,b) :
|E(x)| = |f(x) – pn(x)| ≤
n
M
· Sup ∏ (x − xi )
(n + 1)! x∈( x0 ,xn ) i=0
Si se denota por h a la longitud del intervalo (a,b) es evidente que, para todo
punto x interior a dicho intervalo se verificará que: |x-xi| < h. Ello nos permite
expresar la cota de error en la forma:
M
·h(n+1)
∀x ∈ (a,b) :
|E(x)| = |f(x) – pn(x)| ≤
(n + 1)!
Las desigualdades anteriores recogen cotas superiores del máximo del valor
absoluto de la función de error de interpolación. Tales cotas pueden ser
alcanzadas o no por la función de error (siendo frecuente que el error real de
interpolación sea ostensiblemente menor que la cota así calculada). Por ello el
interés de estas acotaciones se encuentra cuando la cota calculada es
suficientemente pequeña, pues en ese caso se pueden asegurar errores de
interpolación pequeños. Cuando la cota tiene un valor alto poco se puede
asegurar sobre el error de interpolación.
Por otra parte debe señalarse que las desigualdades antes obtenidas pueden
inducir al lector que aborda por primera vez el estudio de la interpolación de
Lagrange a sacar conclusiones erróneas. Por ejemplo es frecuente que a la
vista de esta expresión se piense (erróneamente) que un incremento en el
número de puntos del soporte, sin incrementar la longitud del intervalo,
conduce a un menor error de interpolación ya que al aumentar n crece el valor
de (n+1)!. Ello no siempre sucede así pues, aunque es cierto que el factorial
(n+1)! acaba creciendo con n más rápidamente que el valor de hn , debe
tenerse en cuenta que el valor de M = Sup f (n+1(x) no es independiente de n.
x∈( x0 ,xn )
Además el incremento del número de puntos del soporte puede conducir a
polinomios interpoladores de alto grado que presenten oscilaciones muy
pronunciadas lo cual no siempre será acorde con la naturaleza de la función
27
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
f(x) que se interpole. Un ejemplo de lo que se acaba de señalar se recoge a
continuación.
Ejemplo:
Sea f la función definida mediante f(x) = sen(π·x2). Si, en el intervalo [0, 4] se
considera un soporte equidistante formado por los (n+1) puntos:
xi = 4·i/n
(i = 0, 1, …, n)
una cota del error de interpolación está dada por:
∀x ∈ [0,4 ] :
E(x) ≤
4(n+1)
· sup f (n+1(x)
(n + 1)! x∈( 0,4 )
(
)
En la tabla siguiente se recogen, para algunos valores de n, el valor de
4(n+1)
α=
, y los órdenes de magnitud de los valores de M = sup f (n+1(x)
y
x∈( 0,4 )
(n + 1)!
(
Cota=
)
4(n+1)
· sup f (n+1(x) .
(n + 1)! x∈(0,4 )
(
)
n
α
O(M)
O(Cota)
2
32
3
15875
169335
4
128
15
1 · 107
8 · 107
6
1024
315
6 · 109
2 · 1010
Puede observarse como un incremento en el número de puntos del soporte de
interpolación no conduce a una disminución de la cota de error. Pero
analicemos si estas cotas de error nos proporcionan alguna información útil.
28
Programación y Métodos Numéricos
•
Interpolación polinómica
Obsérvese que el polinomio interpolador obtenido para n= 2 se
obtendría con el soporte {x0 = 0, x1 = 2, x2 = 4} en el que la función toma
los valores:
f0 = sen(0) = 0,
f1 = sen(4·π) = 0 ,
f2 = sen(16·π) = 0
lo que nos conduce a que p2(x) = 0 y a que el error de interpolación
realmente cometido es: E(x) = sen(π·x) – p2(x) = sen(π·x). En otros
términos el error real de interpolación toma valores comprendidos entre
-1 y 1 por lo que la cota de error obtenida en la tabla anterior es muy
superior al máximo del valor absoluto del error.
•
Para n = 4 los puntos del soporte son {x0 = 0, x1 = 1, x2 = 2, x3 = 3,
x4 = 4}. En ellos los valores de la función son:
f0 = sen(0) = 0,
f1 = sen(π) = 0 ,
f3 = sen(9·π) = 0 ,
f2 = sen(4·π) = 0,
f4 = sen(16·π) = 0
lo que nos conduce a que p4(x) = 0 y a que el error de interpolación
realmente cometido es: E(x) = sen(π·x) – p2(x) = sen(π·x). En otros
términos el error real de interpolación toma valores comprendidos entre
-1 y 1 por lo que la cota de error obtenida en la tabla anterior es muy
superior al máximo del valor absoluto del error.
•
Para n = 6 el soporte de interpolación está formado por los puntos
{x0 = 0, x1 = 2/3 , x2 = 4/3, x3 = 2, x4 = 8/3 , x5 = 10/3 , x6 = 4 ,}
siendo los valores (aproximados por sus 4 primeros decimales) de la
función en él:
f0 = sen(0) = 0,
f2 = sen(16·π/9) = -0.6428,
f4 = sen(64·π/9) = -0.3420,
f6 = sen(16·π) = 0
f1 = sen(4·π/9) = 0.9848 ,
f3 = sen(4·π) = 0 ,
f5 = sen(100·π/9) = -0.3420,
El dibujo siguiente recoge las gráficas de la función f(x) (punteada) y del
polinomio interpolador que se obtendría (en trazo continuo) y permite
29
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
verificar que también ahora la cota de error obtenida supera con mucho
el máximo valor absoluto del error de interpolación.
No obstante, a pesar de que en los casos anteriores las cotas de error son muy
elevadas, nada hace pensar que un incremento del número de puntos pueda
mejorar la calidad de la interpolación. Para ilustrar este hecho, los dibujos
siguientes recogen las gráficas obtenidas con 13 y con 14 puntos de soporte
para esta función. En la segunda de ellas, los tramos no dibujados del
polinomio interpolador exceden la escala de las ordenadas consideradas y por
ello se recoge en otra figura la gráfica del polinomio interpolador aumentando el
rango de las ordenadas representadas.
Soporte con 13 puntos
30
Programación y Métodos Numéricos
Interpolación polinómica
Soporte con 14 puntos
Soporte con 14 puntos (ordenadas en [-100, 100])
•
NOTAS:
1ª. Cuando en un intervalo [a, b] se elige un soporte equidistante que incluya
a los extremos del intervalo, es decir un soporte de la forma:
xi = a + i·
(b − a)
n
(i = 0, 1, ..., n)
se verifica17 que:
17
Para una demostración detallada puede consultarse M. Crouzeix & A.L. Mignot (1983)
“Analyse numérique des équations différentielles”, Ed. Masson.
31
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Sup
n
∏ (x − xi ) ≤ C·
x∈( x0 ,xn ) i=0
e −n
·(b − a)(n+1)
n·ln(n)
donde C es una constante positiva.
2ª. La acotación del error anteriormente obtenida
n
M
∀x ∈ [ x 0 ,x n ] : |E(x)| = |f(x) – pn(x)| ≤
· Sup ∏ (x − xi )
(n + 1)! x∈( x0 ,xn ) i=0
indica que si se quiere minimizar el error de interpolación manteniendo el
número de puntos del soporte, estos puntos deberían ubicarse de forma que se
n
∏ (x − x ) .
minimizase el valor de Sup
x∈( x0 ,xn ) i=0
i
El cálculo de la posición de estos
puntos conduce (tras un proceso algo laborioso) a que en un intervalo [a, b] la
mejor elección de los (n+1) puntos de soporte está dada por las fórmulas:
ξi =
⎛ (2·i + 1) ⎞
a+b b−a
·cos ⎜
·π ⎟
+
2
2
⎝ (2·n + 2) ⎠
(i = 0, 1, ..., n)
Los soportes así formados se conocen con el nombre de soportes de
Chebyshev18. Con ellos puede demostrarse que:
Sup
n
∏ (x − xi ) =
x∈( x0 ,xn ) i=0
(b − a)(n+1)
2(2·n+1)
lo que nos permite establecer la cota de error:
E(x) ≤
M·(b − a)(n+1)
(n + 1)!·2(2·n+1)
18
En la determinación de los puntos de este tipo de soportes juegan un papel esencial los
denominados polinomios de Chebyshev: {T0(x) = 1, T1(x) = x, Ti = 2·x·Ti-1(x) – Ti-2(x) (i = 2,
...,n) }. A partir de ellos pueden construirse los polinomios t0(x) = 1, t1(x) = x, ti(x) = (1/2(i-1))·Ti (i
= 2, ..., n), pudiéndose demostrar fácilmente que, en el intervalo [-1, 1], estos polinomios
forman una base del espacio de polinomios de grado menor o igual que n y que ademas ti(x) es
el polinomio de grado i con coeficiente director unitario con menor norma ||·||∞.. Es por ello que
este tipo de soportes se denomina soporte de Chebyshev en honor al matemático ruso Pafnuty
Lvovich Chebyshev (16 de mayo de 1821, Okatovo (Rusia) – 8 de diciembre de 1894, San
Petersburgo (Rusia)). Para un mayor detalle del proceso de construcción de los soportes de
Chebyshev, puede consusltarse F. Michavila & C. Conde (1987) “Métodos de Aproximación”,
Ed. Depto. de Matemática Aplicada y Métodos Informáticos – ETSI Minas – Universidad
Politécnica de Madrid.
32
Programación y Métodos Numéricos
Interpolación polinómica
Ejemplos:
1º. Sea f la función f(x) = ex. Si se desea interpolar esta función en un intervalo
[a, b] utilizándose un soporte formado por (n+1) puntos, una cota del error de
interpolación es:
⎛ n
⎞ (b − a)(n+1) b
1
∀x ∈ [a,b] : |E(x)| ≤
·Sup e x ·Sup ⎜ ∏ (x − x i ) ⎟ =
·e
x∈(a,b) ⎝ i= 0
(n + 1)! x∈(a,b)
(n + 1)!
⎠
( )
Puesto que la función factorial presenta un crecimiento mayor que la función
potencial, el error de interpolación, en este caso, tenderá a cero cuando n
tienda a infinito. En otros términos, los polinomios interpoladores de Lagrange
pn(x) de la función ex obtenidos para soportes con n puntos cada vez serán
más próximos a ex (dicho más correctamente, la sucesión de polinomios pn(x)
converge a ex cuando n tiende a infinito).
2º) Si se desea interpolar en el intervalo [0, 1] la función f(x) = ex utilizando 2
puntos de soporte, una cota del error de interpolación será:
∀x ∈ [0,1] :
e
E(x) ≤ ·Sup((x − x 0 )·(x − x1 ))
2 x∈(0,1)
Denotemos por q(x) = (x-x0)·(x-x1) = x2 – (x0+x1)·x + x0·x1. Con esta notación es
evidente que la cota del error de interpolación será más pequeña cuanto menor
sea el máximo de |q(x)| en [0, 1]. Según lo indicado en el comentario realizado
en la 2ª de las “notas” anteriores, ello se logra ubicando los puntos del soporte
en las abscisas:
1 1
1
⎛1 ⎞ 1
+ ·cos ⎜ ·π ⎟ = +
2 2
⎝ 4 ⎠ 2 2· 2
1 1
1
⎛3 ⎞ 1
ξ1 = + ·cos ⎜ ·π ⎟ = −
2 2
⎝ 4 ⎠ 2 2· 2
ξ0 =
lo que nos conduce a que el soporte de Chebyshev, en este caso, es:
1
1
1
1
x0 = −
y
x1 = +
.
2 2· 2
2 2· 2
La figura siguiente recoge el grafo de la función ex y de los polinomios de grado
1 (rectas) obtenidos con el soporte {0, 1} (recta “superior”), con el soporte
{0.499, 0.501} (recta “inferior”) y con el soporte de Chebyshev (recta
“intermedia”).
33
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
3º. Siendo f(x) = sen(5·x+2) , x0 = 0 y x1 = π/10 se tiene que los polinomios
de base de Lagrange están dados por las expresiones:
π
x−
x
10
L1(x) =
L0 (x) =
π
π
−
10
10
L0(x)
L1(x)
El polinomio interpolador de Lagrange de f(x) sobre este soporte es:
π
x−
10 + sen(2 + π )· x =
p1(x) = f(0)·L0(x) + f(π/10)·L1(x) = sen(2)·
π
2 π
−
10
10
⎞
10
10 ⎛
⎛4+π⎞
= sen(2) + ·⎜ sen ⎜
− sen(2) ⎟·x = sen(2) + ·( cos ( 2 ) − sen(2) )·x
⎟
π
π ⎝
⎝ 2 ⎠
⎠
34
Programación y Métodos Numéricos
Interpolación polinómica
f(x)
p1(x)
El error de interpolación en cada punto x* del intervalo [0, π/10], utilizando el
teorema que nos proporcionaba dicho error, responde a la expresión:
⎡ π⎤
∀x* ∈ ⎢0, ⎥ , ∃ξ* = ξ(x*) /
⎣ 10 ⎦
E(x*)=f(x*)-p1(x*) = −
25·sen(5·ξ * +2)
π ⎞
⎛
·x *·⎜ x * − ⎟
2
10 ⎠
⎝
Como en este caso hemos partido de una función f(x) de la que se conoce su
expresión analítica, el error de interpolación también se podría obtener
mediante:
E(x*) = f(x*) – p1(x*) = sen(5·x*+2) - sen(2) −
10
·( cos(2) − sen(2))·x
π
Ello nos permitiría, para cada punto x*, encontrar algún punto ξ * en el que se
satisfaga la expresión del error obtenida mediante el teorema. Así por ejemplo,
para el punto x* = π/20 se tendrá que utilizando la primera expresión del error:
E(
π
25·sen(5·ξ * +2) π ⎛ π
π ⎞ π2
)=−
· ·⎜
− ⎟ = ·sen(5·ξ * +2)
20
2
20 ⎝ 20 10 ⎠ 32
y de la segunda:
E(
π
π
π
π⎞
1
⎛
) = f( ) − p1( ) = sen ⎜ 2 + ⎟ −sen(2) − ·( cos ( 2 ) − sen(2) )
2
20
20
20
4⎠
⎝
35
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Identificando las dos expresiones del error se tiene que en este caso el punto
ξ * estará dado por la solución de:
π2
π⎞
1
⎛
·sen(5·ξ * +2) = sen ⎜ 2 + ⎟ −sen(2) − ·( cos ( 2 ) − sen(2) )
2
32
4⎠
⎝
por lo que:
ξ* = −
⎛ 16 ⎛
⎞⎞
2 1
⎛π
⎞
+ ·arcsen ⎜ 2 ·⎜ 2·sen ⎜ + 2 ⎟ − sen(2) − cos(2) ⎟ ⎟
5 5
⎝4
⎠
⎠⎠
⎝π ⎝
Entre los diferentes ángulos que verifican la expresión anterior, tomaremos el
que pertenezca al intervalo [0, π/10] que, aproximado con 10 dígitos decimales,
es:
ξ* ≈ 0.1608142204 rad.
Puede verificarse que para este valor ambas expresiones del error conducen a
que: E(π/20) = 0.10213483....
Una cota del error de interpolación en este intervalo puede obtenerse de la
forma siguiente:
25
π ⎞
⎡ π⎤
⎛
∀x ∈ ⎢0, ⎥ : E(x) ≤
sup sen(5·x + 2)· sup x·⎜ x − ⎟
2 x∈⎛ 0, π ⎞
10 ⎠
⎛ π ⎞
⎣ 10 ⎦
⎝
x∈⎜ 0, ⎟
⎜
⎟
⎝ 10 ⎠
⎝ 10 ⎠
En el intervalo [0, π/10] el argumento α = (5·x+2) de la función seno que
interviene en la acotación anterior toma valores comprendidos entre:
αi = 2
α
2≤ α ≤ 2+
π
2
αf = 2+π/2
Por tanto los valores extremos de sen(α) se alcanzarán en 2 y en (2+π/2).
Puesto que sen(2) = 0.909297426... y sen(2+π/2) = -0.416146836.... puede
concluirse que: M = sup sen(5·x + 2) = 0.909297426... < 0.909298 .
⎛ π ⎞
x∈⎜ 0, ⎟
⎝ 10 ⎠
36
Programación y Métodos Numéricos
Interpolación polinómica
Por otra parte el valor extremo de q(x) = x·(x-π/10) en el intervalo (0, π/10) se
alcanza en el punto en que se anule q’(x) (pues en los extremos del intervalo
[0, π/10] el polinomio se anula), es decir en el punto obtenido mediante:
2·xm −
π
π
= 0 ⇒ xm =
10
20
en el que q(x) toma el valor:
q(xm ) = −
π2
= -0.024674011...
400
q(x)
Todo lo anterior nos permite tomar como cota del error de interpolación:
⎡ π⎤
∀x ∈ ⎢0, ⎥ :
⎣ 10 ⎦
E(x) ≤
25
·(0.909298)·(0.024675) = 0.280461...
2
En este caso puede verificarse fácilmente el carácter de cota superior del error
del valor que se acaba de hallar. En efecto el máximo de la función error de
interpolación se produce en el punto en que se anule la expresión:
E’(x) = f’(x) – p’1(x) = 5·cos(5·x+2) – (10/π)·(cos(2)-sen(2))
Ello nos conduce al punto:
c=−
2 1
⎛2
⎞
+ ·arccos ⎜ ·( cos(2) − sen(2) ) ⎟ ≈ 0.115025797
5 5
⎝π
⎠
37
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
siendo el error máximo cometido en la interpolación:
E(c) = f(c) – p1(c) = 0.11265....
es decir menos de la mitad de la cota anteriormente hallada.
4º. Una función con la que frecuentemente se ilustra el buen comportamiento
de los soportes de Chebyshev es la denominada función de Runge que está
dada por:
1
f(x) =
1+ x2
Las figura siguiente recoge el grafo de f(x) en el intervalo [-6, 6] y el grafo del
polinomio interpolador de Lagrange obtenido con el soporte formado por los 7
puntos {-6, -4, -2, 0, 2, 4, 6}. Puede observarse el “alto” valor del error de
interpolación máximo.
Si en lugar del soporte equidistante se trabajase con un soporte de Chebyshev
formado por los 7 puntos dados por la expresión:
⎛ 2·i + 1 ⎞
xi = 6·cos ⎜
·π ⎟
⎝ 14 ⎠
(i=0, 1, 2, 3, 4, 5, 6)
38
Programación y Métodos Numéricos
Interpolación polinómica
el error de interpolación máximo se reduciría notablemente. Ello puede
apreciarse en las gráficas de f(x) y del polinomio interpolador hallado de esta
forma que se recogen en la figura siguiente:
El incremento del número de puntos del soporte no ayuda a mejorar la
precisión en el caso de utilizarse soportes equidistantes aunque sí que lo hace
en este caso si se utilizan soportes de Chebyshev. Como ilustración de este
hecho, la figura siguiente recoge el grafo de f(x) en el intervalo [-6, 6] y el grafo
del polinomio interpolador de Lagrange obtenido con el soporte formado por los
13 puntos {-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6}. Puede observarse el “alto”
valor del error de interpolación máximo.
Si los 13 puntos se hubieran escogido según la fórmula del soporte de
Chebyshev:
⎛ (2·i + 1) ⎞
xi = 6·cos ⎜
·π ⎟
⎝ 26
⎠
39
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
la figura siguiente recoge la gráfica de la función f(x) y del polinomio
interpolador de Lagrange. En ella se aprecia la reducción del máximo valor del
error de interpolación.
Ejercicios propuestos:
1º) Siendo f(x) = 2·x·e-(4·x+2) y considerando el soporte formado por los tres
puntos siguientes {x0 = 0.2, x1 = 0.5, x2 = 0.8}, se pide:
a) Determinar la expresión de los polinomios de base de Lagrange
asociados a dicho soporte y representarlos en el intervalo [0, 1].
b) Utilizar la fórmula de Lagrange para determinar la expresión del
polinomio interpolador de Lagrange de f(x) sobre el soporte {x0, x1, x2}.
c) Representar gráficamente en [0, 1] la función f(x) y su polinomio
interpolador.
d) Utilícese el teorema 3 que proporciona la fórmula del error de
interpolación para determinar la expresión del error de interpolación en
este caso.
e) Determínese la expresión del error de interpolación como la diferencia
entre la función f(x) y el polinomio interpolador hallado.
40
Programación y Métodos Numéricos
Interpolación polinómica
f) A partir de las dos expresiones del error calculadas en los apartados
anteriores obténgase alguno de los puntos ξ* ∈ [0,1] en los que se
verifica que el error de interpolación cometido en x*=0.4 está dado por la
fórmula obtenida en el apartado d).
g) Obténgase una cota del error de interpolación en cualquier punto
x ∈ [0,1] a partir de la expresión del apartado d).
h) Determínense, a partir de la expresión del error obtenida en el apartado
e) los puntos del intervalo [0, 1] en los que se hace máximo el valor
absoluto del error de interpolación y compárese el error máximo con la
cota obtenida en el apartado g).
2º) Repítase el ejercicio anterior utilizando un soporte de Chebyshev con tres
puntos en el intervalo [0, 1].
3º) Analícese la evolución de la cota del error de interpolación de Lagrange al
incrementar el número de puntos del soporte cuando se interpola en el intervalo
la función de Runge f(x) = (1+x2)-1 utilizando un soporte equidistante.
41
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
2.3. La fórmula de interpolación de Newton,
Otra forma de calcular el polinomio interpolador de Lagrange de una función
f(x) sobre un soporte {x0, x1, ..., xn} es a través de la denominada fórmula de
Newton. Dicha fórmula es muy eficiente cuando se persigue calcular el
polinomio interpolador o el valor de dicho polinomio en algún punto concreto ya
que los coeficientes del polinomio interpolador pueden obtenerse fácilmente a
partir de las tablas de diferencias divididas de la función en el soporte de
interpolación. Es además una fórmula que además permite actualizar
fácilmente la expresión del polinomio interpolador si se añade un nuevo punto
al soporte de interpolación.
Como ya se señaló en la introducción a este tema, la fórmula de Newton puede
obtenerse fácilmente si se expresa el polinomio interpolador de Lagrange de la
función f(x) sobre el soporte {x0, x1, ..., xn} mediante la expresión:
pn (x) = a0 + a1·(x − x 0 ) + a2 ·(x − x 0 )·(x − x1 ) + ... + an ·(x − x 0 )·(x − x1 )·...·(x − xn−1 ) =
i−1
n ⎛
⎞
= a0 + ∑ ⎜ ai ∏ (x − x j ) ⎟
i=1 ⎝
j =0
⎠
Con esta expresión, y denotando por fi a los valores f(xi), las (n+1) igualdades
que debe verificar el polinomio interpolador de Lagrange, p(xi) = fi, conducen a
un sistema de ecuaciones triangular inferior del que es sencillo despejar el
valor de los coeficientes a0, a1, ..., an.
Observemos que si el soporte estuviera formado por un único punto {x0} el
polinomio interpolador sería una constante:
p0(x) = a0
y como p(x0) debe coincidir con f0 es obvio que: a0 = f0.
Si ahora se considera el soporte {x0, x1} el polinomio interpolador de Lagrange
sería un primer grado que tendría la expresión:
p1(x) = a0 + a1·(x – x0)
y al tener que verificarse que p(x0) = f0 y p(x1) = f1 se verificará que:
42
Programación y Métodos Numéricos
a0 = f0
Interpolación polinómica
y
a1 =
Ello nos permite expresar p1(x) en la forma:
p1(x) = p0(x) + a1·(x-x0) = p0(x) +
f1 − f0
x1 − x 0
f1 − p0 (x1 )
·(x-x0)
x1 − x 0
donde p0(x) es el polinomio interpolador de Lagrange en el soporte {x0}.
De forma análoga, si ahora se considera el soporte {x0, x1, x2} el polinomio
interpolador de Lagrange será de segundo grado y tendrá la expresión:
p2(x) = a0 + a1·(x-x0) + a2·(x-x0)·(x-x1)
y de las igualdades p(x0) = f0 , p(x1) = f1 y p(x2) = f2 se obtiene que:
a0 = f0 ,
a1 =
f1 − f0
x1 − x 0
a2 =
y
f2 − (a0 + a1 ( x 2 − x 0 ))
( x 2 − x0 )·(x 2 − x1 )
lo que nos permite escribir el polinomio interpolador en la forma:
p2(x) = f0 +
f − (a0 + a1 ( x 2 − x 0 ))
f1 − f0
·(x-x0) + 2
·(x-x0)·(x-x1) =
x1 − x 0
( x 2 − x0 )·(x 2 − x1 )
= p1(x) +
f2 − p1(x 2 )
·(x-x0)·(x-x1)
( x 2 − x0 )·(x 2 − x1 )
donde p1(x) es el polinomio interpolador de Lagrange en el soporte {x0, x1}.
En general, siendo pk-1(x) el polinomio interpolador de Lagrange sobre el
soporte {x0, x1, ..., xk-1} y denotando por pk(x) al polinomio interpolador de
Lagrange sobre el soporte {x0, x1, ..., xk-1, xk} se verifica19 que:
k −2
k −1
j=0
j=0
pk (x) = a0 + a1·(x − x 0 ) + ... + ak −1·∏ (x − x j ) +ak ·∏ (x − x j ) =
k −1
= pk-1(x) + ak ·∏ (x − x j )
j= 0
y de la igualdad pk(xk) = fk se tendrá que:
19
Esta afirmación se demostrará con mayor detalle un poco más adelante.
43
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
ak =
fk − pk −1(xk )
k −1
∏ (x
k
− xj )
j= 0
Podemos observar además que en el cálculo de a0 sólo interviene el valor en
{x0}, que en el cálculo de a1 intervienen los valores en {x0 , x1}, y que, en
general, en el cálculo de ak intervienen los valores en {x0, x1, ..., xk}. Es por ello
habitual referirse a estos coeficientes con la notación a0 = f[x0], a1 = f[x0 ,x1], ...,
ak = f[x0, x1, ..., xk] (k = 0, 1, ..., n) poniendo así de manifiesto los puntos del
soporte que intervienen en su cálculo.
Ello tiene especial interés si se observa que el orden en el que se han ido
tomando los puntos del soporte ( {x0}, {x0, x1}, ..., {x0, x1, ..., xk}, ...) podría haber
sido diferente. En efecto, observemos que, siendo único el polinomio
interpolador, podemos expresarlo de múltiples maneras dependiendo de la
ordenación del soporte de interpolación. En efecto, si denotamos por {i0, i1, ...,
in} a una permutación cualquiera de los índices { 0, 1, ..., n} y consideramos el
mismo soporte que antes pero reordenado en la forma xi0 ,xi1 ,...,x in el
{
}
polinomio interpolador de Lagrange se podría expresar como:
pn (x) = a0* + a1* ·(x − x i0 ) + a2* ·(x − x i0 )·(x − xi1 ) + .... + an* ·(x − xi0 )·(x − xi1 )·...·(x − xin −1 ) =
i−1
n ⎛
⎞
= a'0 + ∑ ⎜ ai' ·∏ (x − xij ) ⎟
i=1 ⎝
j= 0
⎠
Obviamente los coeficientes {a0, a1, ...,an-1} y {a0* ,a1* ,...,an* −1} no tienen por qué
coincidir y ahora se tendrá que:
a0* = f ⎣⎡ xi0 ⎦⎤ = fi0 ,
.....,
a = f ⎡⎣ xi0 ,xi1 ,...,xik ⎤⎦ =
*
ik
fik − pk* −1(xik )
∏(x
k −1
j= 0
ik
− x ij
)
(k = 1, ...., n)
{
}
donde pk* −1(x) es el polinomio de Lagrange sobre el soporte xi0 ,xi1 ,...,xik −1 .
44
Programación y Métodos Numéricos
Interpolación polinómica
Pero puesto que el polinomio interpolador de Lagrange es único, ambas
expresiones conducen al mismo polinomio interpolador independientemente del
orden en que se tomen sus puntos. Por tanto el coeficiente de xi (i = 0, 1, ..., n)
en ambas expresiones debe ser el mismo. Ello implica que an* = an o con la
notación que hemos introducido anteriormente: f [ x 0 ,x1,...,x n ] = f ⎡⎣ xi0 ,xi1 ,..., xin ⎤⎦ .
Concretemos más estos aspectos. Según hemos detallado anteriormente, si
en la expresión del polinomio interpolador que estamos considerando en este
apartado sólo se consideran sus (k+1) primeros sumandos (con k < n), el
polinomio pk(x) correspondiente es el polinomio interpolador de f(x) sobre el
soporte {x0, x1, ..., xk} ya que, siendo un polinomio de grado menor o igual que
k se verifica que pk(xi) = fi (i = 0, 1, ..., k) . Ello permite interpretar la fórmula
anterior como una fórmula “recursiva” en la que a partir del polinomio de grado
k-1 que interpola a la función f(x) en el soporte {x0, x1, ..., xk-1}:
i−1
k −1 ⎛
⎞
pk(x) = a0 + ∑ ⎜ ai ∏ (x − x j ) ⎟
i=1 ⎝
j= 0
⎠
puede obtenerse fácilmente el polinomio interpolador de Lagrange, pk(x), de f(x)
sobre el soporte {x0, x1, ..., xk} mediante:
k −1
pk(x) = pk-1(x) + ak· ∏ (x − x j )
j=0
Supongamos dado un soporte de n puntos distintos {x0, x1, ...., xn-1} y conocidos
los valores fi (i = 0, ..., n-1) que toma una función f(x) en dichos puntos. El
polinomio interpolador de Lagrange, pn-1(x), de f(x) en este soporte verificará:
pn-1(x) = fi
(i = 0, ..., (n-1))
Si al soporte anterior se le añade un nuevo punto xn, disitinto a los que
formaban el soporte anterior, obteniendo así el soporte de (n+1) puntos {x0, x1,
...., xn-1, xn} y se denota por fn al valor f(xn), el nuevo polinomio interpolador de
Lagrange, pn(x), de la función f(x) sobe este soporte deberá satisfacer las
igualdades:
(i = 0, …, (n-1), n)
pn(x) = fi
45
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Si se denota por qn(x) al polinomio de grado n: qn(x) = pn(x) – pn-1(x) se tendrá
verifica que:
q(xi) = 0
(i = 0, ..., (n-1))
Se tiene así que {x0, ..., x(n-1)} son n raíces del polinomio de grado qn(x). Ello
nos permite escribir este polinomio en la forma:
(n −1)
qn(x) = an·(x-x0)·(x-x1)·…·(x-x(n-1)) = an· ∏ (x − x j )
j=0
Y puesto que qn(x) = pn(x) – pn-1(x) se obtiene que:
∀x ∈ {x0 ,...,xn−1} :
(n −1)
pn(x) – pn-1(x) = an· ∏ (x − x j ) ⇒
j=0
⇒ an =
pn (x) − pn−1(x)
∀x ∉ {x 0 ,...,xn−1}
(n −1)
∏ (x − x )
j
j=0
En particular para x = xn se tiene que:
an =
pn (xn ) − pn−1(xn ) fn − pn−1(xn )
= (n−1)
(n −1)
∏ (xn − x j ) ∏ (xn − x j )
j= 0
j=0
Con esta expresión de an resulta finalmente que:
f − p (x ) (n−1)
pn (x) = pn−1(x) + (nn−1) n−1 n ·∏ (x − x j )
∏ (xn − x j ) j=0
j=0
Definición (Diferencias divididas)
Se denomina diferencia dividida de la función f(x) en el soporte {x0, ..., xn-1,
xn}, y se representa por f[x0, ..., xn-1, xn], al valor del coeficiente an previamente
obtenido, es decir:
f [ x 0 ,x1,...,xn−1,xn ] =
f − pn−1(xn )
n
(n −1)
∏ (x
n
− xj )
j =0
•
46
Programación y Métodos Numéricos
Interpolación polinómica
Denotemos por f[xi] = fi (i = 0, 1, ..., n). Según el desarrollo anterior, si se
considera un soporte formado por el punto {x0} se verifica que p0(x0) = a0 = f0
(= f[x0]). A partir de este polinomio, si se añade un nuevo punto al soporte para
tener {x0, x1} se tendrá que:
p1(x)= p0(x) + f[x0, x1]·(x-x0) = f[x0] + f[x0, x1]·(x-x0)
Añadiendo ahora al soporte el punto x2 para tener {x0, x1, x2} resultará que:
p2(x)= p1(x) + f[x0, x1, x2]·(x-x0)·(x-x1) =
= f[x0] + f[x0, x1]·(x-x0) + f[x0, x1, x2]·(x-x0)·(x-x1)
En general se tendrá que:
pn(x)= pn-1(x) + f[x0, x1,…, xn-1, xn]·(x-x0)·(x-x1)·...(x-xn-1) =
(i−1)
n ⎛
⎞
= f[x 0 ] + ∑ ⎜ f [ x 0 ,...,xi ]·∏ (x − x j ) ⎟
i=1 ⎝
j= 0
⎠
La fórmula anterior se conoce como fórmula de interpolación de Newton. Su
uso, por el momento, sólo plantearía la dificultad de calcular las diferencias
divididas que en ella intervienen.
Demostremos algunas propiedades de las diferencias divididas que nos
permitirán desarrollar una forma más cómoda de calcularlas.
Propiedad 1.
Sea {i0, i1, ..., im-1, im} un conjunto de (m+1) índices diferentes del conjunto de
(n+1) índices {0, 1, ...., n} y sea {j0, j1, ... , jm-1, jm} cualquier otro conjunto de m
índices obtenido como una permutación del conjunto de índices {i0, i1, ..., im-1,
im}. Se verifica que:
f ⎡⎣ xi1 ,xi2 ,...,xim −1 ,xim ⎤⎦ = f ⎡⎣ x j1 ,x j2 ,....,x jm −1 ,x jm ⎤⎦
Demostración:
Según el proceso antes descrito, el cálculo del polinomio
interpolador de Lagrange mediante la fórmula de Newton se puede ir
realizando, sobre el soporte xi0 ,xi1 ,...,xim , de la forma siguiente:
{
}
47
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
{ }
p0(x) = fi0 = f ⎡⎣ xi0 ⎤⎦
Sobre xi0 :
{
}
(
{
)
(
p1(x)=p0+ f ⎡⎣ xi0 ,xi1 ⎤⎦· x − xi0 = f ⎡⎣ xi0 ⎤⎦ + f ⎡⎣ xi0 ,xi1 ⎤⎦· x − xi0
Sobre xi0 ,xi1 :
)
p2(x) = p1(x) + f ⎡⎣ xi0 ,xi1 ,xi2 ⎤⎦· x − xi0 ·( x − xi1 ) =
}
(
Sobre xi0 ,xi1 ,xi2 :
)
= f ⎡⎣ xi0 ⎤⎦ + f ⎡⎣ xi0 ,xi1 ⎤⎦· x − xi0 + f ⎡⎣ xi0 ,xi1 ,xi2 ⎤⎦· x − xi0 ·( x − xi1 )
(
)
(
)
........
{
}
(
)
+
Sobre xi0 ,xi1 ,...,xim : pm(x) = f ⎡⎣ xi0 ⎤⎦ + f ⎡⎣ xi0 ,xi1 ⎤⎦· x − xi0
+ f ⎡⎣ xi0 ,xi1 ,xi2 ⎤⎦· x − xi0 ·( x − xi1 ) +
(
)
+....+ f ⎡⎣ xi0 ,xi1 ,...,x im ⎤⎦· x − x i0 ·( x − xi1 )·...·( x − xim −1 )
(
)
Si ahora se considera el mismo soporte pero reordenado en la forma
x j0 ,x j1 ,...,x jm −1 ,x jm puede repetirse el proceso obteniendo como polinomios
{
}
interpoladores:
{ }
q0(x) = f j0 = f ⎡⎣ x j0 ⎤⎦
Sobre x j0 :
{
}
(
{
)
(
q1(x)=q0+ f ⎡⎣ x j0 ,x j1 ⎤⎦· x − x j0 = f ⎡⎣ x j0 ⎤⎦ + f ⎡⎣ x j0 ,x j1 ⎤⎦· x − x j0
Sobre x j0 ,x j1 :
)
q2(x) = q1(x) + f ⎡⎣ x j0 ,x j1 ,x j2 ⎤⎦· x − x j0 ·( x − x j1 ) =
}
(
Sobre x j0 ,x j1 ,x j2 :
)
= f ⎡⎣ x j0 ⎤⎦ + f ⎡⎣ x j0 ,x j1 ⎤⎦· x − x j0 + f ⎡⎣ x j0 ,x j1 ,x j2 ⎤⎦· x − x j0 ·( x − x j1 )
(
)
(
)
........
{
}
(
)
+
Sobre x j0 ,x j1 ,...,x jm : qm(x) = f ⎡⎣ x j0 ⎤⎦ + f ⎡⎣ x j0 ,x j1 ⎤⎦· x − x j0
+ f ⎡⎣ x j0 ,x j1 ,x j2 ⎤⎦· x − x j0 ·( x − x j1 ) +
(
)
+....+ f ⎡⎣ x j0 ,x j1 ,...,x jm ⎤⎦· x − x j0 ·( x − x j1 )·...·( x − x jm −1 )
(
)
En virtud del teorema 1 en el que se demostró la existencia y unicidad del
polinomio interpolador de Lagrange, se verifica que qm(x) y pm(x) son el mismo
polinomio pues interpolan a f(x) sobre el mismo soporte (aunque ordenado de
48
Programación y Métodos Numéricos
Interpolación polinómica
formas distintas). Identificando los coeficientes que multiplican a xm en ambos
coeficientes se tiene que:
f ⎡⎣ xi0 ,xi1 ,...,x im ⎤⎦ = f ⎡⎣ x j0 ,x j1 ,...,x jm ⎤⎦
c.q.d.
Propiedad 2
Sea {i0, i1, ..., im-1, im} un conjunto de m índices diferentes del conjunto de (n+1)
índices {0, 1, ...., n}. Se verifica que:
f ⎡ x i ,...,xim −1 ,xim ⎤⎦ − f ⎡⎣ xi0 ,xi1 ,...,xim −1 ⎤⎦
f ⎡⎣ x i 0 ,x i1 ,...,x im −1 ,x im ⎤⎦ = ⎣ 1
xim − x i0
donde f[xk] = f(xk) (k = i0, i1, ..., im).
Demostración:
Según los desarrollos realizados para obtener la fórmula de Newton, si se
considera el soporte xi 0 ,xi1 ,...,x im −1 ,x im se tendrá que el polinomio interpolador
{
}
de Lagrange de f(x) (que será de grado menor o igual que m) responde a la
expresión:
pm(x) = pm-1(x) + f ⎡⎣ xi 0 ,xi1 ,...,xim −1 ,xim ⎤⎦ · x − xi0 ·( x − xi1 )·...·( x − xim −1 ) =
(
)
= f ⎣⎡ xi0 ⎦⎤ + f ⎣⎡ xi0 ,xi1 ⎦⎤·(x − xi0 ) + f ⎣⎡ xi0 ,xi1 ,xi2 ⎦⎤·(x − xi0 )·(x − xi1 ) + ….+
· x − xim −1 )
+ f ⎡⎣ xi 0 ,xi1 ,...,xim −1 ,xim ⎤⎦ · x − xi0 ·( x − xi1 )·...·( x − xim − 2 )(
(
)
{
}
Si el soporte se considera en orden inverso, xi m ,xim −1 ,...,x i1 ,xi0 , los sucesivos
polinomios interpoladores que se irán obteniendo serán:
Sobre {xim } :
q0(x) = fim = f ⎡⎣ xim ⎤⎦
Sobre {xim ,xim −1 } :
q1(x) = q0(x) + f ⎡⎣ xim ,xim −1 ⎤⎦·( x − xim ) =
49
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
= f ⎡⎣ xim ⎤⎦ + f ⎡⎣ xim ,xim −1 ⎤⎦·( x − xim )
· x − xim −1 ) =
Sobre {xim ,xim −1 ,,xim − 2 } :q2(x) = q1(x)+ f ⎡⎣ xim ,xim −1 ,xim − 2 ⎤⎦·( x − xim )(
· x − xim −1 )
= f ⎡⎣ xim ⎤⎦ + f ⎡⎣ xim ,xim −1 ⎤⎦·( x − xim ) + f ⎡⎣ xim ,xim −1 ,xim − 2 ⎤⎦·( x − xim )(
........
{
}
Sobre xim ,xim−1 ,,xim − 2 ,...,xi0 :
qm(x)= f ⎡⎣ xim ⎤⎦ + f ⎡⎣ xim ,xim −1 ⎤⎦·( x − xim ) + f ⎡⎣ xim ,xim −1 ,xim − 2 ⎤⎦·( x − xim )(
· x − xim −1 ) +
+ .... + f ⎡⎣ xim ,xim −1 ,xim − 2 ,...,x i1 ⎤⎦·( x − xim )(
· x − xim −1 )·...·( x − xi2 ) +
+ f ⎡⎣ xim ,xim −1 ,xim − 2 ,...,xi1 ,xi0 ⎤⎦·( x − xim )(
· x − xim−1 )·...·( x − xi2 )(
· x − xi1 )
En virtud del teorema 1 (de existencia y unicidad del polinomio interpolador de
Lagrange) el polinomio interpolador de f(x) sobre el soporte de (m+1) puntos
xi 0 ,xi1 ,...,x im −1 ,x im es único y no depende del orden en que se tomen los puntos.
{
}
Por tanto qm(x) = pm(x). Identificando los coeficientes de xm en las expresiones
de pm(x) y qm(x) se tiene que:
f ⎡⎣ xi 0 ,xi1 ,...,xim −1 ,xim ⎤⎦ = f ⎡⎣ xim ,xim −1 ,xim − 2 ,...,xi1 ,xi0 ⎤⎦
Identificando ahora los coeficientes que multiplican a xm-1 se tiene que:
(
)
f ⎡⎣ xi0 ,xi1 ,...,xim −1 ,xim ⎤⎦· − xi0 − xi1 − ... − xim −1 + f ⎡⎣ xi0 ,xi1 ,...,xim −1 ⎤⎦ =
= f ⎡⎣ xim ,xim −1 ,...,x i1 ,xi0 ⎤⎦·( − xim − xim −1 − ... − xi1 ) + f ⎡⎣ xim ,xim −1 ,...,xi1 ⎤⎦
Y puesto que, en virtud de la propiedad anterior el orden en que se tomen los
puntos no altera el valor de la diferencia dividida, la igualdad anterior se puede
rescribir en la forma:
f ⎡⎣ xi0 ,xi1 ,...,xim −1 ,xim ⎤⎦ · xim − xi0 = f ⎡⎣ xi1 ,xi2 ,...,x im ⎤⎦ − f ⎡⎣ xi0 ,xi1 ,...,xim −1 ⎤⎦
(
)
50
Programación y Métodos Numéricos
Interpolación polinómica
de donde:
f ⎡ x i ,...,xim −1 ,xim ⎤⎦ − f ⎡⎣ xi0 ,xi1 ,...,xim −1 ⎤⎦
f ⎡⎣ x i 0 ,xi1 ,...,xim −1 ,xim ⎤⎦ = ⎣ 1
xim − x i0
c.q.d.
La propiedad anterior permite calcular fácilmente las diferencias divididas
ordenando los cálculos en la forma recogida en la tabla siguiente (construida
para un soporte de 5 puntos) en la que los cálculos se irán realizando columna
a columna:
x0
→ f [ x0 ] →
x1
→
x2
x3
x4
f [ x1 ] →
f [ x 0 ,x1 ] →
f [ x1,x 2 ] →
f [ x 0 , x1, x 2 ] → f [ x 0 ,x1,x 2 , x 3 ] → f [ x 0 , x1, x 2 ,x 3 ,x 4 ]
f [ x1,x 2 , x 3 ] → f [ x1, x 2 , x 3 ,x 4 ]
→ f [ x 2 ] → f [ x 2 ,x 3 ] → f [ x 2 ,x 3 ,x 4 ]
→ f [ x3 ] → f [ x3 , x 4 ]
→ f [x4 ]
Esta forma de proceder es la que se recoge en el siguiente algoritmo de
construcción de la tabla de diferencias divididas sobre un soporte de (n+1)
puntos.
Algoritmo de construcción de la tabla de diferencias divididas20.
Datos: n, {x0, x1, ...., xn } y {f0, f1, ...., fn}
Para i desde i = 0 hasta i = n con paso 1 hacer:
f[xi] = fi
Fin bucle en i.
Para j desde j = 1 hasta j = n con paso 1 hacer:
Para i desde i = 0 hasta i = (n-j) , con paso 1, hacer:
f[xi, ..., xi+j] = (f[xi+1, ..., xi+j]- f[xi, ..., xi+j-1]) /(xi+j – xi)
Fin bucle en i.
Fin bucle en j.
Fin algoritmo.
20
En la programación de este algoritmo es habitual almacenar los valores de las diferencias
divididas en una matriz de dimensiones (n+1, n+1) en las que los elementos Ai,1 almacenan los
valores f[xi-1] (i= 1, ..., n+1) y los elementos Ai,j almacenan los valores de f[xi-1, ..., xi+j-2] (j = 2,
..., n+1; i = 1, ...., n+2-j).
51
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplos:
1º) Utilícese la fórmula de Newton para obtener la expresión del polinomio
interpolador de Lagrange de la función f(x) = 2·x·e-(4·x+2) sobre el soporte
{x0 = 0, x1 = 1/3, x2 = ½, x3 = 1}.
Se tiene que:
f0 = f(0) = 0 = f[x0], f1 = f(1/3) ≈ 0.02378266 = f[x1],
f2 = f(1/2) ≈ 0.01831564 = f[x2] , f3 = f(1) ≈ 0.00495750 = f[x3]
Con estos valores y utilizando la relación de recurrencia:
f [ xi+1,..., xi+k −1,xi+k ] − f [ xi ,xi+1,..., xi+k −1 ]
f [ xi ,...,xi+k ] =
x i+k − x i
se puede construir la tabla de diferencias divididas:
i
xi
f[xi]
f[xi,xi+1]
f[xi,xi+1,xi+2]
f[xi,xi+1,xi+2, xi+3]
0
0
0
0.07134799
-0.20830025
0.21742906
1
1/3
0.02378266
-0.03280214
0.00912881
2
1/2
0.01831564
-0.02671627
3
1
0.00495750
por lo que utilizando la fórmula de Newton se tiene que:
p3(x) = 0 + 0.07134799·(x-0) + (-0.20830025)·(x-0)·(x – 1/3) +
+ 0.21742906·(x-0)·(x-1/3)·(x-1/2) =
= 0.1770195813· x - 0.3894911370·x2 + 0.2174290601·x3
La figura siguiente recoge la gráfica de la función f(x) (en trazo discontinuo) y
del polinomio interpolador de Lagrange.
52
Programación y Métodos Numéricos
Interpolación polinómica
f(x)
p3(x)
2º) Calcúlese la expresión del polinomio interpolador de Lagrange de la
misma función que en el ejercicio anterior, f(x) = 2·x·e-(4·x+2) sobre el soporte
{ 0, 1/3, 1/2 , 2/3, 1}.
El soporte de interpolación es el del ejercicio anterior añadiéndole el punto 2/3.
Si denotamos por x0 = 0, x1 = 1/3, x2 = ½, x3 = 1 y x4 = 2/3 puede
completarse la tabla de diferencias divididas como sigue (se han escrito en
cursiva los nuevos valores que ha sido necesario calcular):
i
xi
f[xi]
f[xi,xi+1]
f[xi,xi+1,xi+2]
f[xi,xi+1,xi+2, xi+3] f[x0,x1,x2, x3, x4]
0
0
0
0.07134799
-0.20830025
0.21742906
1
1/3
0.02378266
-0.03280214
0.00912881
0.044155155
2
1/2
0.01831564
-0.02671627
0.02384719
3
1
0.00495750
-0.02274174
4
2/3
0.01253808
-0.25991085
por lo que f[x0, x1,x2, x3, x4] = - 0.25991085 y el nuevo polinomio interpolador
estará dado por:
53
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
p4(x) = p3(x) + (-0.25991085)·(x-0)·(x-1/3)·(x-1/2)·(x-1) =
= 0.1770195813· x - 0.3894911370·x2 + 0.2174290601·x3 –
-0.25991085 · (x-0)·(x-1/3)·(x-1/2)·(x-1) =
= 0.22033805·x – 0.64940199·x2 + 0.69393230·x3 –0.25991085·x4
f(x)
p4(x)
Propiedad 3
Si f ∈ Cn ( ( a,b ) ) , para todo soporte de (n+1) puntos distintos {x0, x1, ..., xn}
pertenecientes al intervalo [a, b] existe un punto ξ ∈ ( a,b ) verificando que:
f (n (ξ)
f [ x 0 ,x1,...,xn ] =
n!
Demostración:
Consideremos el soporte {x0, x1, ..., xn-1} y designemos por pn-1(x) al polinomio
interpolador de f(x) sobre él. Según la fórmula del error de interpolación de
Lagrange (proporcionada en el teorema 2 del apartado 2.2.) si f ∈ Cn ((a,b)) se
verifica que:
∀x ∈ (a,b) ∃ξ=ξ(x) / f(x)-pn-1(x) =
f (n (ξ) n−1
·∏ (x − x j )
n! j=0
En particular, si con esta fórmula se evalúa el error en el punto xn se tendrá
que:
f (n (ξ) n−1
∃ξ=ξ(xn ) / f(x n )-pn-1(xn ) =
·∏ (xn − x j )
n! j=0
de donde:
54
Programación y Métodos Numéricos
∃ξ=ξ(x n ) /
Interpolación polinómica
f(x n )-pn-1(xn )
n −1
∏ (x
n
− xj)
=
f (n (ξ)
n!
j=0
siendo el lado izquierdo de la igualdad anterior la diferencia dividida en {x0, ..,
xn}. En resumen si f ∈ Cn ((a,b)) , para todo soporte de (n+1) puntos distintos {x0,
.., xn} de (a, b), se vrifica que:
f (n (ξ)
∃ξ / f [ x 0 ,x1,...,xn−1,xn ] =
n!
c.q.d.
Una consecuencia inmediata de la propiedad anterior es que si f(x) es una
función polinómica de grado m, las diferencias divididas construidas sobre más
de (m+1) puntos serán nulas (pues la derivada de orden (m+1) de un polinomio
de grado m siempre es nula)21.
El error de interpolación también puede expresarse en términos de diferencias
divididas. Esto es lo que se hace en el siguiente teorema
Teorema 4
Siendo f ∈ C(n+1) ((a,b)) y denotando por pn(x) al polinomio interpolador de
Lagrange de f(x) construido sobre un soporte genérico de (n+1) puntos distintos
{x0, ..., xn} pertenecientes al intervalo (a, b), se verifica que:
n
∀x* ∈ (a,b) / x* ∉ {x 0 ,...,xn } : E(x*) = f(x*) - pn (x*) = f[x 0 ,x1,...,xn ,x*]·∏ (x * − x j )
j=0
Demostración:
Por definición de la diferencia dividida en {x0, ..., xn, x*} se tiene que:
f [ x 0 ,...,xn ,x * ] =
f(x*) − pn (x*)
n
∏ (x * − x )
j
j= 0
21
A la misma conclusión podría haberse llegado considerando que el polinomio interpolador de
una función polinómica de grado m es ella misma y que por tanto, si se usa la fórmula de
Newton para expresar el polinomio interpolador deben ser nulas todas las diferencias divididas
construidas sobre (m+1) puntos o más ya que multiplican a productos de más de m binomios.
55
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
de donde:
n
f(x*) − pn (x*) = f [ x 0 ,...,x n ,x * ]·∏ (x * − x j )
j=0
c.q.d.
Ejemplo:
Una de las aplicaciones de las técnicas de interpolación polinomial es la
búsqueda de expresiones simplificadas de sumatorios (obviamente cuando
dichas expresiones sean polinómicas). Ilustraremos este proceso con la
determinación de la expresión del sumatorio:
n
∑ i·(i − 1)·(i − 2) .
La forma de
i= 2
proceder se sustenta en considerar que si el sumatorio tiene una expresión
polinómica de grado “m”, es decir si
n
f(n) = ∑ i·(i − 1)·(i − 2) = a0 + a1·n + ... + am·nm
i= 2
podemos interpolar el polinomio f(x) en un soporte formado por abscisas
enteras y la fórmula buscada se obtendrá evaluándolo en x = n. Además por
ser f(x) un polinomio de grado m, todas sus diferencias divididas construidas
sobre más de (m+1) puntos se anularán. Por ello si se interpola con más de
(m+1) puntos (entendidos aquí como abscisas enteras) se obtendrá el
polinomio buscado.
El problema “a priori” es conocer cuál es el valor de “m”22. Para ello, puesto que
en el sumatorio aparecen tres productos en los que interviene “i” es razonable
pensar que el polinomio resultante al menos será de grado 3 por lo que
actuaremos en principio con 4 puntos. Tomemos, por ejemplo el soporte {2, 3,
4, 5} y construyamos la tabla de diferencias divididas.
xi
2
3
4
5
f[xi]
0
6
30
90
f[xi,xi+1] f[xi,..,xi+2] f[xi,..,xi+3]
6
9
3
24
18
60
22
En el subapartado siguiente veremos la forma en que se puede determinar el valor de “m” sin
necesidad de realizar pruebas con distintos valores como aquí se hace.
56
Programación y Métodos Numéricos
Interpolación polinómica
¿Será suficientemente alto el número de puntos del soporte? En principio no
podemos estar seguros de ello pues las últimas diferencias divididas no se han
anulado. Para salir de dudas añadamos uno más y modifiquemos la tabla:
xi
2
3
4
5
f[xi]
0
6
30
90
6
210
f[xi,xi+1] f[xi,..,xi+2] f[xi,..,xi+3]
6
9
3
4
24
18
60
30
120
f[xi,..,xi+4]
¼
La tabla anterior nos muestra que, al menos, se necesitan 5 puntos para
obtener la expresión exacta del sumatorio (pues la última diferencia dividida
obtenida no es nula). Pero ¿serán necesarios más puntos?. Añadamos uno
más y reconstruyamos la tabla:
xi
2
3
4
5
6
f[xi]
0
6
30
90
210
7
420
f[xi,xi+1] f[xi,..,xi+2] f[xi,..,xi+3]
6
9
3
24
18
4
60
30
5
45
120
210
f[xi,..,xi+4]
¼
¼
f[xi,..,xi+5]
0
La última de las diferencias divididas halladas ya tiene el valor 0. Ello parece
indicar que el polinomio buscado podrá determinarse con 5 puntos de soporte.
No obstante para asegurarnos de que lo anterior no es una casualidad
podemos variar el último de los puntos escogidos (sustituyendo “7” por ejemplo
por “9”). Si así se hace obtenemos que:
f[xi] f[xi,xi+1] f[xi,..,xi+2] f[xi,..,xi+3]
f[xi,..,xi+4]
f[xi,..,xi+5]
xi
0
6
9
3
¼
0
2
¼
3
6
24
18
4
4
30
60
30
11/2
115/2
5
90
120
6
210 350
9
1260
57
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Al volver a ser nula la última diferencia dividida podemos tener alguna
esperanza de que el polinomio buscado sea de grado 4 (suposición que
deberemos verificar a posteriori). Aplicando la fórmula de Newton se tiene que:
f(n) = 0+ 6·(n-2) +9·(n-2)·(n-3) + 3·(n-2)·(n-3)·(n-4) + (¼)·(n-2)·(n-3)·(n-4)·(n-5) =
2·n − n2 − 2·n3 + n4
=
4
En resumen,
n
2·n − n2 − 2·n3 + n4
i·(i − 1)·(i − 2) =
∑
4
i= 2
Para verificar esta expresión se calcularán los valores del sumatorio y de f(n)
para diferentes valores de “n”. En la gráfica siguiente se recogen los valores
2·x − x 2 − 2·x 3 + x 4
calculados y el grafo de f(x) =
observándose que en las
4
abscisas enteras la función coincide con los valores del sumatorio
correspondientes
•
Ejercicios propuestos:
1º) Demostrar que se verifica que:
⎛
⎞
⎜
⎟
n ⎜
⎟
fi
f [ x 0 ,x1,....,xn−1,xn ] = ∑ ⎜ n
⎟
i= 0 ⎜
⎟
(x
x
)
−
i
j
⎜⎜ ∏
⎟⎟
j =0
⎝ j ≠i
⎠
58
Programación y Métodos Numéricos
Interpolación polinómica
2º) a) Utilícese la fórmula de Newton para calcular el polinomio interpolador de
Lagrange de la función f(x) = x5 sobre el soporte {-2, -1, 0, 1, 2}.
b) Calcúlese el nuevo polinomio interpolador de Lagrange de f(x) = x5, si al
soporte anterior se le añade un nuevo punto x5.
3º) Calcúlese la expresión polinómica en la variable entera “n” que proporciona
el valor del sumatorio:
n
∑ i ·(i − 2)
2
3
i=1
4º) En el método de Gauss para la resolución de sistemas de n ecuaciones
lineales con n incógnitas se realizan:
(n −1)
∑ (i2 + i) +
(n −1)
i=1
(n −1)
∑ (i
2
+ i) +
i=1
∑ (n − i) sumas,
i=1
(n −1)
∑ (n − i) productos
y
i=1
(n −1)
n+ ∑ i divisiones
i=1
Obténgase la expresión polinómica en la variable entera n que proporciona el
número total de operaciones y demuéstrese que cuando n es elevado el
número total de operaciones es del orden de (2·n3/3).
5º) En el método de Cholesky para la resolución de sistemas definidos
positivos de n ecuaciones lineales con n incógnitas se realizan:
(n −1)
(n −1)
∑ i·(n − i) + 2· ∑ (n − i) sumas,
i=1
i=1
(n −1)
(n −1)
∑ i·(n − i) + 2· ∑ (n − i) productos
i=1
i=1
(n −1)
2·n+ ∑ i divisiones y
i=1
n raíces cuadradas
59
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Obténgase la expresión polinómica en la variable entera n que proporciona el
número total de operaciones y demuéstrese que cuando n es elevado el
número total de operaciones es del orden de (n3/3).
6º) En el método LDLT para factorizar una matriz simétrica de n filas y
columnas puede programarse realizándose el siguiente número de
operaciones:
⎛ (i−1)
⎞ n
(
j
1)
−
⎜∑
⎟ + ∑ (i − 1) sumas,
∑
i=1 ⎝ j=1
⎠ i=1
n
n
⎛ (i−1)
⎞
2·∑ ⎜ ∑ ( j − 1) ⎟ + 2·∑ (i − 1) productos
i=1 ⎝ j=1
i=1
⎠
n
y
(n −1)
∑ i divisiones
i=1
Obténgase la expresión polinómica en la variable entera n que proporciona el
número total de operaciones y demuéstrese que cuando n es elevado el
número total de operaciones es del orden de (n3/2).
60
Programación y Métodos Numéricos
Interpolación polinómica
2.4. Interpolación con soportes equidistantes: Fórmulas con diferencias
finitas.
Por la simplicidad que representa es muy frecuente trabajar con soportes de
interpolación equidistantes. Recuérdese que se denominaban así aquellos
soportes en los que la distancia entre dos puntos consecutivos era siempre la
misma. Más concretamente, denotando por h a la distancia entre puntos
consecutivos del soporte, se define un soporte equidistante de (n+1) como
aquel en el que sus puntos se generan a partir del primero, x0, mediante la
expresión:
xi = x0 + i·h (i = 1, …, n).
Cuando se desea calcular el polinomio interpolador de Lagrange de una
función f(x) sobre un soporte equidistante de (n+1) puntos, pueden utilizarse los
métodos vistos para el caso general (resolución de un sistema de (n+1)
ecuaciones con (n+1) incógnitas, fórmula de Lagrange o fórmula de Newton).
Pero el número de cálculos a realizar puede reducirse si en lugar de aquellos
se emplean métodos en diferencias finitas como los que desarrollaremos en
este subapartado.
Comencemos definiendo que entendemos por diferencias finitas. Para ello
supondremos en todo este subapartado que el soporte {x0, x1, ...., xn} es un
soporte equidistante y que la distancia entre puntos consecutivos del soporte
es h. Asimismo denotaremos por fi al valor de la función que se desea
interpolar f(x) en el punto xi: fi = f(xi) (i = 0, 1, ..., n).
Definición (Diferencia finita progresiva de primer orden)
Se denomina diferencia finita progresiva (o en adelanto) de primer orden de
la función f(x) en el punto xi, y se representa por Δfi, al valor:
(i = 0, 1, ..., (n-1))
Δfi = fi+1 – fi
De forma más general se proporciona la siguiente definición:
Definición (Diferencia finita progresiva de orden k)
Siendo k un entero superior o igual a 1 e inferior a (n+1), se denomina
diferencia finita progresiva (o en adelanto) de orden k de la función f(x) en el
punto xi, y se representa por Δkfi, al valor:
(1 < k < n), (i = 0, 1, ..., (n-k))
Δkfi = Δ(k-1)fi+1 – Δ(k-1)fi
donde Δ0fi = fi (i = 0, 1, ..., n)
61
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
De manera análoga pueden definirse diferencias finitas regresivas tal cual se
hace en las siguientes definiciones:
Definición (Diferencia finita regresiva de primer orden)
Se denomina diferencia finita regresiva (o en retroceso) de primer orden de
la función f(x) en el punto xi, y se representa por ∇fi, al valor:
∇fi = fi – fi-1
(i = 1, ..., n)
Definición (Diferencia finita regresiva de orden k)
Siendo k un entero superior o igual a 1 e inferior a (n+1), se denomina
diferencia finita regresiva (o en retroceso) de orden k de la función f(x) en el
punto xi, y se representa por ∇kfi, al valor:
∇kfi = ∇ (k-1)fi+1 – ∇ (k-1)fi
(1 < k < n), (i = k, ..., n)
donde Δ0fi = fi (i = 0, 1, ..., n).
•
Al igual que sucedía para las diferencias divididas, el cálculo de las diferencias
finitas (progresivas o regresivas) puede realizarse de forma cómoda mediante
tablas como las que se ilustran a continuación (para el caso de soportes con 7
puntos). En ambas tablas los cálculos se desarrollan columna a columna.
x0
x1
x2
x3
x4
x5
x6
f0
f1
f2
f3
f4
f5
f6
Δf0
Δf1
Δf2
Δf3
Δf4
Δf5
Δ 2 f0
Δ 2 f1
Δ 2 f2
Δ 2 f3
Δ 2 f4
Δ 3 f0
Δ 3 f1
Δ 3 f2
Δ 3 f3
Δ 4 f0
Δ 4 f1
Δ 4 f2
Δ 5 f0
Δ 5 f1
Tabla de diferencias finitas progresivas
62
Δ 6 f0
Programación y Métodos Numéricos
x0
x1
x2
x3
x4
x5
x6
f0
f1
f2
f3
f4
f5
f6
∇f1
∇f2
∇f3
∇f4
∇f5
∇f6
Interpolación polinómica
∇ 2 f2
∇ 2 f3
∇ 2 f4
∇ 2 f5
∇ 2 f6
∇3 f3
∇3 f4
∇3 f5
∇3 f6
∇ 4 f4
∇ 4 f5
∇ 4 f6
∇5 f5
∇5 f6
∇ 6 f6
Tabla de diferencias finitas regresivas
Ejemplo:
Consideremos la función f(x) = x2 + x3 – 2·x4
y calculemos la tabla de
diferencias finitas progresivas de esta función en el soporte {0, 1, 2, 3, 4, 5}.
xi
0
1
2
3
4
5
fi
0
0
–20
–126
–432
–1100
Δfi
Δ2fi
Δ3fi
Δ4fi
0
-20
-66
-48
-20
-86
-114 -48
-106 -200 -162
-306 -362
-668
Δ5fi
0
Asimismo, la tabla de diferencias finitas regresivas será
xi
0
1
2
3
4
5
fi
0
0
–20
–126
–432
–1100
∇fi
∇ 2f i
∇ 3f i
∇ 4f i
0
-20
-106
-306
-668
-20
-86
-66
-200 -114 -48
-362 -162 -48
∇ 5f i
0
•
Como puede apreciarse en las tablas del ejemplo anterior, los valores de las
diferencias finitas progresivas y regresivas son los mismos pero colocados de
forma diferente. Esto no es una casualidad ya que:
63
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Propiedad 1
Entre las diferencias finitas progresivas y las diferencias finitas regresivas de
una función f(x) en un soporte equidistante {x0, x1, ...., xn} se verifican las
igualdades:
(i = 0, 1, …., (n-1))
Δfi = ∇fi+1
Δkfi = ∇kfi+k
(2 < k < n), (i = 0, 1, ..., (n-k))
Demostración:
Demostremos en primer lugar la primera igualdad. Según las definiciones de
diferencia progresiva y regresiva de primer orden se verifica que:
Δfi = fi+1 - fi = ∇fi+1
(i = 0, 1, …, (n-1))
Para demostrar la segunda igualdad dada en la propiedad procederemos por
inducción. Para ello supongamos que para algún valor (k-1) se verifique que:
Δ (k-1)fi = ∇(k-1)fi+k-1
(i = 0, 1, ..., (n-k+1))
Obsérvese que, al menos para (k-1) = 1 la igualdad es cierta pues se reduce a
la primera de las igualdades recogidas en la propiedad y que hemos
demostrado previamente.
Con esta hipótesis se tiene que para todo entero i tal que 0 < i < (n-k) se
verifica:
Δkfi = Δ(k-1)fi+1 - Δ(k-1)fi = ∇(k-1)fi+1+k-1 - ∇(k-1)fi+k-1 =
= ∇(k-1)fi+k - ∇(k-1)fi+k-1= ∇kfi+k
c.q.d.
La fórmula de interpolación de Newton presentada en el subapartado 2.3.
puede rescribirse en términos de diferencias finitas. Ello se realiza de forma
sencilla apoyándose en la siguiente propiedad:
64
Programación y Métodos Numéricos
Interpolación polinómica
Propiedad 2
Dado el soporte equidistante {x0, x1, ..., xn} y denotando por h a la distancia
entre puntos consecutivos del soporte, se verifica que la diferencia progresiva
de orden k en el punto xi y la diferencia dividida f[xi, xi+1, …, xi+k] se relacionan
mediante la igualdad:
Δkfi = k!·hk·f[xi, xi+1, …, xi+k]
(0 < k < n), (i = 0, 1, .., (n-k))
Demostración:
Procedamos por inducción. Para k = 0 la igualdad anterior queda en la forma:
Δ0fi = 0!·h0·f[xi] = fi (i = 0, 1, …, n)
por lo que la igualdad es cierta para k = 0.
Admitiendo entonces que se verifica la propiedad para algún valor (k-1)
demostremos que también es cierta para el valor k. Por verificarse para (k-1) se
tendrá que:
Δ (k-1)fi = (k-1)!·h(k-1)·f[xi, xi+1, …, xi+k-1]
(i = 0,1, …, (n-k+1))
y por tanto, para cualquier valor del índice i tal que 0 < i < (n-k), se tendrá que:
Δkfi = Δ (k-1)fi+1 - Δ (k-1)fi = (k-1)!·h(k-1)·f[xi+1, …,xi+k] - (k-1)!·h(k-1)·f[xi, …, xi+k-1] =
= (k-1)!·h(k-1)· (f[xi+1, …,xi+k] - f[xi, …, xi+k-1]) =
= (k-1)!·h(k-1)·f[xi,xi+1, …,xi+k]·(xi+k – xi) =
= (k-1)!·h(k-1)·f[xi,xi+1, …,xi+k]·k·h =
= k!·hk· f[xi,xi+1, …,xi+k]
c.q.d.
Análogamente las diferencias finitas regresivas se relacionan con las
diferencias divididas según la igualdad que se recoge en la siguiente
propiedad:
65
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Propiedad 3
Dado el soporte equidistante {x0, x1, ..., xn} y denotando por h a la distancia
entre puntos consecutivos del soporte, se verifica que la diferencia progresiva
de orden k en el punto xi y la diferencia dividida f[xi, xi+1, …, xi+k] se relacionan
mediante la igualdad:
∇kfi = k!·hk·f[xi-k, xi-k+1, …, xi]
(0 < k < n), (i = k, k+1, .., n)
Demostración:
Combinando las dos propiedades anteriores se tiene que:
∇kfi = Δkfi-k = k!·hk·f[xi-k, xi-k+1, …, xi]
(0 < k < n), (i = k, k+1, .., n)
c.q.d.
Utilizando la propiedad 2 la fórmula de Newton puede ser escrita en la forma:
(i−1)
⎛
⎞
pn(x) = f0 + ∑ ⎜ f [ x 0 ,...,xi ]·∏ (x − x j ) ⎟ = Δ0f0 +
i=1 ⎝
j= 0
⎠
n
⎛ Δi f0 (i−1)
⎞
⎜ i ·∏ (x − x j ) ⎟
∑
i=1 ⎝ i!·h j= 0
⎠
n
La fórmula anterior es utilizada en ocasiones realizando el cambio de variable:
x = x0 + t·h
con lo que:
(x – xj) = (x0 + t·h) – (x0 + j·h) = (t – j)·h
y podemos escribir la denominada fórmula de interpolación de NewtonGregory progresiva:
pn(x) =
⎛ Δi f0 (i−1)
⎞ n ⎛t⎞ i
·
(t
j)·h
−
⎜ i∏
⎟ = ∑ ⎜ ⎟ Δ f0
∑
i=0 ⎝ i!·h j= 0
⎠ i=0 ⎝ i ⎠
n
⎛t⎞
donde se ha utilizado el número combinatorio ⎜ ⎟ dado por:
⎝i⎠
1
si i = 0
⎧
⎛t⎞ ⎪
=
⎜ ⎟ ⎨ t·(t − 1)·(t − 2)·....·(t − i + 1)
si i > 0
⎝i⎠ ⎪
⎩
i!
66
Programación y Métodos Numéricos
Interpolación polinómica
Ejemplo:
Determinemos el valor del polinomio interpolador de Lagrange de la función
⎧ π π⎫
f(x) = sen(x) sobre el soporte ⎨0, , ⎬ en el punto x = π/3. En este soporte se
⎩ 4 2⎭
1
y f2 = 1. Por tanto la tabla de diferencias
tiene que h = π/4 y f0 = 0, f1 =
2
finitas progresivas será:
i
xi
Δ0fi
0
0
0
1
π/4
2
π/2
Δ2fi
Δfi
1
(1 - 2 )
2
1
(1 -
2
1
2
)
1
por lo que el polinomio interpolador, utilizando la fórmula de Newton, será:
1
(1 − 2)
π⎞
4· 2 − 2
8·(1 − 2) 2
⎛
p2(x) = 0 + 2 ·(x-0) +
· x − 0 )·⎜ x − ⎟ =
·x +
·x
2 (
2
π
4
π
π
⎝
⎠
π
⎛
⎞
1!·
2!·⎜ ⎟
4
⎝4⎠
por lo que: sen(π/3) ≈ p2(π/3) =
2·(1 + 2· 2)
= 0.85076158...
9
Si se deseara utilizar la fórmula de Newton-Gregory hubiéramos procedido de
la forma siguiente:
π
π
π
4
= 0 + t· ⇒ t = 3 =
π 3
3
4
4
por lo que:
2
⎛4 / 3⎞ i
⎛ 4 / 3⎞
⎛ 4 / 3⎞ 1 ⎛ 4 / 3⎞
+⎜
p2(π/3) = ∑ ⎜
⎟·0 + ⎜
⎟·
⎟·(1 − 2) =
⎟ Δ f0 = ⎜
i= 0 ⎝ i ⎠
⎝ 0 ⎠
⎝ 1 ⎠ 2 ⎝ 2 ⎠
⎛4⎞
⎛ 4⎞⎛ 1⎞
⎜ 3 ⎟ 1 ⎜ 3 ⎟·⎜ 3 ⎟
4 1
4
2·(1 + 2· 2)
= ⎝ ⎠·
+ ·(1 − 2) =
+ ⎝ ⎠ ⎝ ⎠·(1 − 2) = ·
3 2 18
1!
2!
9
2
67
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
De forma análoga, utilizando la propiedad 3 la fórmula de Newton puede ser
escrita en la forma:
pn(x) = f0 +
(i−1)
⎛
⎞
0
f
x
,...,x
·
[
]
⎜
∑
0
i ∏ (x − x j ) ⎟ = Δ f0 +
i=1 ⎝
j=0
⎠
n
⎛ ∇i fi (i−1)
⎞
⎜ i ·∏ (x − x j ) ⎟
∑
i=1 ⎝ i!·h j= 0
⎠
n
La fórmula anterior es utilizada en ocasiones realizando el cambio de variable:
x = x0 + t·h
con lo que:
(x – xj) = (x0 + t·h) – (x0 + j·h) = (t – j)·h
y podemos escribir la denominada fórmula de interpolación de NewtonGregory regresiva:
⎛ ∇i fi (i−1)
⎞ n ⎛t⎞
pn(x) = ∑ ⎜ i ·∏ (t − j)·h ⎟ = ∑ ⎜ ⎟ ∇i fi
i= 0 ⎝ i!·h j=0
⎠ i=0 ⎝ i ⎠
n
⎛t⎞
donde nuevamente se utiliza el número combinatorio ⎜ ⎟ dado por:
⎝i⎠
1
si i = 0
⎧
⎛t⎞ ⎪
⎜ ⎟ = ⎨ t·(t − 1)·(t − 2)·....·(t − i + 1)
si i > 0
⎝i⎠ ⎪
⎩
i!
Ejemplo:
De una función f(x) se conoce la siguiente tabla de valores:
i
0
1
2
3
4
5
xi
0
2
4
6
8
10
fi
0
5
30
91
204
385
Determinemos, usando la fórmula de Newton-Gregory regresiva, el valor de su
polinomio interpolador de Lagrange en el punto x = 3. Para ello comenzamos
construyendo la tabla de diferencias finitas regresivas:
68
Programación y Métodos Numéricos
∇ 2f i
Interpolación polinómica
xi
∇ 0f i
0
0
2
5
5
4
30
25
20
6
91
61
36
16
8
204
113
52
16
0
10
385
181
68
16
0
∇fi
∇ 3f i
∇ 4f i
∇ 5f i
0
Puesto que en el soporte considerado se verifica que h = 2, se tiene que:
3 = 0 + t·2 ⇒ t = 3/2 = 1.5
por lo que:
⎛ 1.5 ⎞
⎛ 1.5 ⎞
⎛ 1.5 ⎞
⎛ 1.5 ⎞
⎛ 1.5 ⎞
⎛ 1.5 ⎞
p(5) = 0·⎜
⎟ + 5·⎜
⎟ + 20·⎜
⎟ + 16·⎜
⎟ + 0·⎜
⎟ + 0·⎜
⎟ =
⎝ 0 ⎠
⎝ 1 ⎠
⎝ 2 ⎠
⎝ 3 ⎠
⎝ 4 ⎠
⎝ 5 ⎠
⎛ 1.5 ⎞
⎛ 1.5 ⎞
⎛ 1.5 ⎞
= 5·⎜
⎟ + 20·⎜
⎟ + 16·⎜
⎟=
⎝ 1 ⎠
⎝ 2 ⎠
⎝ 3 ⎠
1.5
1.5·(1.5 − 1)
1.5·(1.5 − 1)·(1.5 − 2)
=
= 5·
+ 20·
+ 16·
1!
2!
3!
= 7.5 + 7.5 +
8
·(1.5)·(0.5)·( −0.5) = 7.5 + 7.5 – 1 = 14
3
•
Una consecuencia de las propiedades 2 y 3 (junto con la propiedad 3 del
subapartado anterior) es que si f(x) es una función polinómica de grado m
serán nulas las diferencias finitas progresivas o regresivas de orden m y
superior, cualquiera que sea el soporte equidistante sobre el que se evalúen.
Ejemplo:
Calcúlese la expresión polinómica en “n” que proporciona el valor de:
n
∑ i·(n − i)
i=0
69
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Para conocer “a priori” el grado de la expresión polinómica que se está
buscando podemos razonar de la forma que sigue. Siendo m un entero
cualquiera se verificará que:
m +1
m
m +1
m +1
m +1
m
m
i= 0
i=0
i= 0
i=0
i=0
i=0
i= 0
Δfm = fm+1 − fm = ∑ i·(m + 1 − i) − ∑ i·(m − i) = ∑ m·i + ∑ i − ∑ i2 − ∑ m·i + ∑ i2 =
m
m +1
⎛ m+1 m ⎞ m+1 ⎛ m+1
⎞
= m·⎜ ∑ i − ∑ i ⎟ + ∑ i − ⎜ ∑ i2 − ∑ i2 ⎟ = m·(m + 1) + ∑ i − (m + 1)2 =
i= 0
i=0
⎝ i = 0 i =0 ⎠ i =0 ⎝ i= 0
⎠
= m2 + m +
(m +1)
∑
i − m2 − 2·m − 1 =
i= 0
(m + 2)
∑
∑ i − m −1
i=0
Sustituyendo m por (m+1) se tendrá que: Δfm+1 =
Δ 2 fm = Δfm+1 − Δfm =
(m +1)
i−m−2−
i=0
(m + 2)
∑ i − m − 2 , y por tanto:
i= 0
(m +1)
∑ i + m + 1 = (m + 2) − 1 = m + 1
i= 0
Sustituyendo m por (m+1) se tiene que: Δ 2 fm+1 = m + 2 por lo que:
Δ 3 fm = m + 2 − m − 1 = 1
Luego, en un soporte formado por los números naturales, todas las diferencias
finitas progresivas de orden 3 toman valor 1. Ello nos indica que las de orden
mayor o igual a 4 serán todas nulas. Por tanto la expresión polinómica buscada
es de grado 3 y con cuatro puntos de soporte será suficiente para determinarla.
Consideremos por ello el soporte {0, 1, 2, 3}. Los valores de f(n) =
n
∑ i·(n − i)
i=0
en estos puntos son: f0 = 0, f1 = 0, f2 = 1 y f3 = 4 y la tabla de diferencias finitas
progesivas es:
xi
∇ 0f i
∇fi
∇ 2f i
∇ 3f i
0
0
0
1
1
1
0
1
2
2
1
3
3
4
Usando la fórmula de Newton-Gregory progresiva, el valor interpolado en el
entero “n” es
⎛n⎞
⎛n⎞
⎛n⎞
⎛ n ⎞ n·(n-1)
n·(n-1)·(n-2)
n3 − n
0· ⎜ ⎟ +0· ⎜ ⎟ +1· ⎜ ⎟ +1· ⎜ ⎟ =
+
=
2!
3!
6
⎝0⎠
⎝ 1⎠
⎝ 2⎠
⎝3⎠
70
Programación y Métodos Numéricos
Interpolación polinómica
lo que nos permite concluir que:
n
∑ i·(n − i) =
i=0
n3 − n
6
•
En ocasiones los soportes equidistantes se toman, además, centrados. Más
concretamente, un soporte equidistante centrado con (2·n+1) puntos se
genera a partir de un punto x0 considerándose los demás puntos del soporte en
la forma:
xi = x 0 + i·h
(i = -n, -n+1, ...., -2, -1, 1, 2, …, n-1, n)
y donde h es la distancia entre dos puntos consecutivos del soporte.
Cuando se trabaja con este tipo de soportes puede tener ventajas utilizar un
tercer tipo de diferencias finitas, llamado diferencias finitas centradas, que
definimos a continuación.
Definición (Diferencia finita centrada de primer orden)
Se denomina diferencia finita centrada (o central) de primer orden de la
función f(x) en el punto xi+1/2, y se representa por δfi+1/2, al valor:
δfi+1/2 = fi+1 - fi
(i = -n, -n+1, ..., -1, 0, 1, …, n-1)
•
La definición de las diferencias finitas centradas de mayor orden se realiza a
continuación.
Definición (Diferencia finita centrada de orden k)
Siendo k un número natural tal que 1 < k < 2·n:
•
Si k es par se denomina diferencia finita centrada (o central) de orden
k de la función f(x) en el punto xi, y se representa por δkfi, al valor:
δkfi = δ(k-1)fi+1/2 - δ(k-1)fi-1/2
(i = -n+(k/2), ..., 0, …, n-(k/2))
•
Si k es impar se denomina diferencia finita centrada (o central) de
orden k de la función f(x) en el punto xi+1/2, y se representa por δkfi+1/2, al
valor:
δkfi+1/2 = δ(k-1)fi+1 - δ(k-1)fi-1
(i = -n+(k-1)/2,...,0,…, n-(k+1)/2)
En el caso k = 0 se define δ0fi = fi (i = -n, ...., 0, ..., n).
71
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
El cálculo de las diferencias finitas centradas puede organizarse también en
una tabla como la que se recoge a continuación para un soporte con 9 puntos y
en la que los cálculos se realizan columna a columna.
x-4
f-4
δf-7/2
x-3
δ2f-3
f-3
δ3f-5/2
δf-5/2
x-2
δ2f-2
f-2
δ4f-2
δ3f-3/2
δf-3/2
x-1
δ2f-1
f-1
δ4f-1
δ4f0
δ4f1
δ7f1/2
δ5f3/2
δ2f2
f2
δ8f0
δ6f1
δ3f3/2
δ4f2
δ3f5/2
δf5/2
x3
δ5f1/2
δ2f1
f1
δ7f-1/2
δ6f0
δ3f1/2
δf3/2
x2
δ5f-1/2
δ2f0
f0
δf1/2
x1
δ6f-1
δ3f-1/2
δf-1/2
x0
δ5f-3/2
δ2f3
f3
δf7/2
x4
f4
Ejemplo:
La tabla de diferencias finitas centradas de la función f(x) = x7 –2·x3 +x2 – 1 en
el soporte {-2, -1, 0, 1, 2} es la siguiente
-2
-109
110
-1
1
-112
-2
0
-1
114
2
0
1
-1
0
114
116
116
2
115
72
Programación y Métodos Numéricos
Interpolación polinómica
Los valores de las diferencias finitas centradas son los mismos que los que se
obtendrían en las tablas de diferencias finitas progresivas o regresivas (aunque
ordenados y denotados de diferente manera). Más concretamente:
Propiedad 4
Entre las diferencias finitas progresivas y las diferencias finitas centradas de
una misma función f(x) sobre un soporte equidistante centrado de la forma {x-n,
...., x0, ..., xn} se verifica la relación:
δkfi+k/2 = Δkfi
(0 < k < 2·n) ,(i = -n, ..., n-k)
Demostración:
Según las definiciones de diferencia finita progresiva y centrada de orden 0,
para k = 0 se tiene que:
δ0fi = fi =Δ0fi (i = - n, ….., n)
por lo que la propiedad es cierta para k = 0.
Procedamos entonces por inducción suponiendo que para algún valor entero
(k-1), no negativo y menor que 2·n, se verifica la igualdad que queremos
demostrar y comprobemos que en ese caso también es cierta para el entero k.
En efecto, si la igualdad es cierta para (k-1) se tendrá que:
δ(k-1)fi+(k-1)/2 = Δ(k-1)fi
(i = -n, ..., n-k+1)
y, para cualquier valor del índice i comprendido entre –n y (n-k) se tendrá que:
Δkfi = Δ(k-1)fi+1 - Δ(k-1)fi = δ(k-1)fi+1+(k-1)/2 - δ(k-1)fi+(k-1)/2 =
= δ(k-1)fi+(k+1)/2 - δ(k-1)fi+(k-1)/2 = δ(k-1)fi+k/2
Por tanto, al ser cierta la igualdad para k = 0, también lo será para k = 1. Y ello
implica que también lo será para k =2. Y ello a su vez implica que lo sea para el
valor k = 3, ..... y para k = 2·n.
c.q.d.
Asimismo se entre las diferencias finitas regresivas y las centradas existe la
relación recogida en la propiedad siguiente:
73
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Propiedad 5
Entre las diferencias finitas regresivas y las diferencias finitas centradas de una
misma función f(x) sobre un soporte equidistante centrado de la forma {x-n, ....,
x0, ..., xn} se verifica la relación:
δκφι+κ/2 = ∇kfi+k
(0 < k < 2·n) ,(i = -n, ..., n-k)
Demostración:
Evidente pues es una combinación de las propiedades 1ª y 4ª demostradas en
este subapartado.
c.q.d.
La propiedad 4ª (o si se prefiere la 5ª) puede utilizarse para, junto a la
propiedad 2ª (respectivamente la propiedad 3ª), determinar la relación entre
las diferencias finitas centradas y las diferencias divididas. Dicha relación es la
que se detalla a continuación
Propiedad 6
Entre las diferencias divididas y las diferencias finitas centradas de una misma
función f(x) sobre un soporte equidistante centrado de la forma {x-n, ...., x0, ...,
xn} se verifica la relación:
δkfi+k/2 = k!·hk·f[xi, …, xi+k ]
(0 < k < 2·n) ,(i = -n, ..., n-k)
Demostración:
Es una consecuencia inmediata de las propiedades 2ª y 4ª demostradas
anteriormente en este subapartado.
c.q.d.
La relación anterior nos permite, a partir de la fórmula de interpolación de
Newton, obtener distintas fórmulas de interpolación utilizando diferencias finitas
centradas. La más típica es la que se obtiene si la fórmula de interpolación de
Newton se utiliza sobre el soporte: {x0, x1, x-1, x2, x-2, ..., xn., x-n}. En ese caso:
p2·n(x) = f[x0] + f[x0, x1]·(x-x0) + f[x0, x1,x-1]·(x-x0)·(x-x1) +
+ f[x0, x1,x-1,x2]·(x-x0)·(x-x1)·(x-x-1) + …. +
+ f[x0, x1,x-1,x2, …, xn, x-n]·(x-x0)·(x-x1)·(x-x-1)·….(x-xn)
y puesto que:
74
Programación y Métodos Numéricos
f[x0] =δ0f0 , f[x0, x1] =
Interpolación polinómica
δf1/ 2
δ2 f1/ 2
, f[x0, x1,x-1] = f[x-1,x0, x1] =
, …..
h
2!·h2
f[x0, x1,x-1,x2, …, xn, x-n] = f[x-n,…,x-2,x-1,x0, x1,x2, …, xn] =
δ2·n f0
(2·n)!·h2·n
se tiene que:
p2·n(x) = δ0 f0 + δf1/ 2 ·
+ δ3 f1/ 2 ·
+ δ2·n f0 ·
( x − x 0 ) + δ2 f ·( x − x0 )·( x − x1 ) +
1!·h
0
( x − x0 )·( x − x1 )·( x − x −1 )
3!·h3
2!·h2
+ .........+
( x − x0 )·( x − x1 )·( x − x −1 )·...·(x − x −n )
(2·n)!·h2·n
que es la denominada fórmula de interpolación de Gauss progresiva.
Otra fórmula equivalente puede obtenerse considerando el soporte ordenado
de la forma: {x0, x-1, x1, x-2, x2, ..., x-n., xn}. En este caso la fórmula de Newton
será:
p2·n(x) = f[x0] + f[x0, x-1]·(x-x0) + f[x0,x-1, x1]·(x-x0)·(x-x-1) +
+ f[x0, x-1,x1,x-2]·(x-x0)·(x-x-1)·(x-x1) + …. +
+ f[x0, x-1,x1,x-2, …, x-n, xn]·(x-x0)·(x-x-1)·(x-x1)·….(x-x-n)
lo que nos conduciría a la fórmula de interpolación de Stirling (también
denominada fórmula de interpolación de Gauss regresiva) siguiente:
p2·n(x) = δ0 f0 + δf−1/ 2 ·
+ δ3 f−1/ 2 ·
+ δ2·n f0 ·
( x − x0 ) + δ2 f ·( x − x0 )·( x − x −1 ) +
1!·h
0
( x − x0 )·( x − x −1 )·( x − x1 )
3!·h3
2!·h2
+ .........+
( x − x0 )·( x − x −1 )·( x − x1 )·...·(x − xn )
(2·n)!·h2·n
75
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplo:
Calculemos mediante la fórmula de interpolación de Stirling el polinomio
interpolador de la función f(x) = x7 –2·x3 +x2 – 1 en el soporte {-2, -1, 0, 1, 2}.
La tabla de diferencias finitas centradas de esta función fue calculada en uno
de los ejemplos anteriores y es la que se recoge a continuación (resaltándose
los valores a utilizar en la fórmula de interpolación de Stirling):
-2
-109
110
-1
1
-112
-2
0
-1
114
2
0
1
-1
0
114
116
116
2
115
Por tanto:
p4(x) = -1 + (-2) ·
x −0
(x − 0)·(x − ( −1))
(x − 0)·(x − ( −1))·(x − 1)
+ (2) ·
+ 114·
=
2
1!·1
2!·1
3!·13
= 19·x3 + x2 –20·x –1
El mismo polinomio sería calculado mediante la fórmula de interpolación de
Gauss progresiva utilizando los valores resaltados en la tabla siguiente:
-2
-109
110
-1
1
-112
-2
0
-1
114
2
0
1
-1
0
114
116
116
2
115
lo que nos conduciría a:
76
Programación y Métodos Numéricos
p4(x) = -1 + (0) ·
Interpolación polinómica
x −0
(x − 0)·(x − 1)
(x − 0)·(x − 1)·(x + 1)
+ (2) ·
+ 114·
=
2
1!·1
2!·1
3!·13
= 19·x3 + x2 –20·x –1
La figura siguiente recoge los grafos de f(x) = = x7 –2·x3 +x2 – 1 (en trazo
discontinuo) y de su polinomio interpolador p4(x) = 19·x3 + x2 –20·x –1 en trazo
continuo.
f(x)
p4(x)
•
Ejercicios propuestos:
1º) Sea f(m) la función definida sobre el conjunto de números enteros no
negativos mediante la expresión:
m
f (m) = ∑ i2 .(m − i)2
i=0
Hállese el polinomio interpolador de Lagrange de dicha función:
a) Sobre el soporte {0, 1, 2, 3, 4} usando la fórmula de Newton-Gregory
progresiva.
b) Sobre el soporte {0, 1, 2, 3, 4, 5} usando la fórmula de Newton-Gregory
regresiva
77
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
c) Sobre el soporte {0, 1, 2, 3, 4, 5, 6} usando la fórmula de Gauss progresiva.
d) Según los resultados anteriores, señálese si se puede escribir con ellos la
m
expresión exacta, dependiente sólo de m, del valor que toma ∑ i 2 .(m − i)2 . En
i=0
caso afirmativo justifíquese el motivo de ello. Y en caso negativo indíquese
cual, entre las obtenidas en las opciones anteriores, se aproximará más a la
expresión exacta y cual es la cota del error que se comete.
2º) De una función f(x) se conocen los siguientes valores:
x
-1
0
1
2
3
f(x)
7
1
-1
-17
-41
Utilícese la fórmula de Stirling para obtener el polinomio interpolador de
Lagrange de la función f(x) en el soporte {-1,0,1,2, 3}. Obténgase, además, una
1
cota del error de interpolación de esta función sabiendo que Sup f (v (x) = .
x∈( −1,3 )
2
3º) Para el caso de interpolaciones con soportes equidistantes:
a) Obténgase una expresión del error de interpolación en un punto x* en la
que intervengan las diferencias finitas progresivas de una función.
b) Idem con diferencias finitas regresivas.
c) Idem con diferencias centradas.
78
Programación y Métodos Numéricos
Interpolación polinómica
3. Interpolación polinómica de Hermite.
El problema de interpolación polinómica de Lagrange, tratado en el apartado
anterior, consiste en determinar un polinomio pn(x), de grado menor o igual que
n, que en los puntos de un soporte de (n+1) puntos tome los valores de la
función f(x) que se interpola. Nada obliga a que los valores de las derivadas de
f(x) en los puntos del soporte coincidan con los de las derivadas del polinomio
interpolador. Es por ello que el problema de interpolación polinomial puede
plantearse en un marco más amplio, conocido con el nombre de problema
interpolación polinómica de Hermite. Más concretamente, puede formularse el
siguiente problema:
Problema de Interpolación Polinómica de Hermite
“Dados (n+1) puntos distintos {x0 , x1 , ... , xi ,... , xn} y (n+1)
valores enteros no negativos {α0, α1, ..., αi, ..., αn}, siendo
n
m = n + ∑ αi y conocidos los (m+1) valores
i= 0
{f
(0
0
,f0(1,...,f0( α0 ,f1(0 ,f1(1,...,f1( α1 ,..........,fn(0 ,fn(1 ,...,fn( αn
}
encontrar un polinomio pm(x), de grado menor o igual que m,
verificando las (m+1) igualdades:
(k
pm
(xi ) = fi(k
(i = 0, 1, ...., n) , (k = 0, …, αi)
“
Si los valores fi(k se consideran como el valor de la k-ésima derivada de una
cierta función f(x) en el punto del soporte xi, fi(k = f (k (xi ) , al polinomio pm(x)
solución del problema anterior se le denomina “polinomio interpolador de
Hermite sobre el soporte {x0 , x1 , ... , xi ,... , xn} para los enteros {α0, α1, ..., αi,
..., αn} y para los valores f0(0 ,f0(1,...,f0( α0 ,f1(0 ,f1(1,...,f1( α1 ,..........,fn(0 ,fn(1,...,fn( αn ”.
{
}
Cuando esté claro el soporte sobre el que se trabaja y los enteros que se
utilizan, simplemente diremos que pm(x) es el polinomio interpolador de Hermite
de la función f(x).
Obsérvese que el problema de interpolación polinómica de Lagrange es un
caso particular de este en el que α0 = α1 = .... = αn = 0.
79
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplos:
6 2 4 3
·x + 3 ·x es el polinomio interpolador de Hermite
π2
π
⎧ π ⎫
de la función f(x) = cos(x) sobre el soporte ⎨0, , π ⎬ para los enteros {1, 0, 1}.
⎩ 2 ⎭
1º) El polinomio p4(x) = 1 −
En efecto, es un polinomio de grado menor o igual que 4 verificando:
p4(0) = 1 (=cos(0)),
p’4(0) = 0 (= cos’(0) = -sen(0) )
⎛π⎞
p4 ⎜ ⎟ = 0 ( = cos(π/2) )
⎝2⎠
p4(π) = -1 ( = cos(π) ),
p’4(π) = 0 (= cos’(π) = -sen(π) )
•
Una primera forma de determinar el polinomio interpolador de Hermite consiste
en considerar que pm(x) es un polinomio de la forma pm(x) = β0 + β1·x + β2·x2 +
... + βm·xm para, a continuación, obtener un sistema de (m+1) ecuaciones
lineales a partir de las igualdades que proporcionan los valores que debe tomar
el polinomio interpolador y sus derivadas en los puntos del soporte. Más
concretamente:
pm(x0) = f0(0 ⇔ β0 + β1·x 0 + β2 ·x 02 + .... +βm ·xm0
p’m(x0) = f0(1 ⇔
p”m(x0) = f0(2 ⇔
= f0(0
β1 + 2·β2 ·x 0 + .... +m·βm ·xm0 −1 = f0(1
2·β2 + .... +m·(m − 1)·βm ·xm0 −2
= f0(2
……..
……………………………………
( α0
( α0
pm (x0)= f0 ⇔ α0 !·βα0 + ... + m·(m − 1)·...·(m − α 0 + 1)·βm ·xm0 −α0 = f0( α0
pm(x1) = f1(0 ⇔ β0 + β1·x1 + β2 ·x12 + .... +βm ·x1m
p’m(x1) = f1(1 ⇔
p”m(x1) = f1(2 ⇔
= f1(0
β1 + 2·β2 ·x1 + .... +m·βm ·x1m−1 = f1(1
2·β2 + .... +m·(m − 1)·βm ·x1m−2 = f1(2
……..
……………………………………
p(mα1 (x1)= f1( α1 ⇔ α1 !·βα1 + ... + m·(m − 1)·...·(m − α1 + 1)·βm ·x1m−α1 = f1( α1
……..
……………………………………
……..
……………………………………
pm(xn) = fn(0 ⇔ β0 + β1·xn + β2 ·xn2 + .... +βm ·xnm = fn(0
p’m(xn) = fn(1 ⇔
p”m(xn) = fn(2 ⇔
β1 + 2·β2 ·xn + .... +m·βm ·xnm−1 = fn(1
2·β2 + .... +m·(m − 1)·βm ·xnm−2 = fn(2
……..
……………………………………
( αn
( αn
pm (xn)= fn ⇔ αn !·βαn + ... + m·(m − 1)·...·(m − αn + 1)·βm ·xnm−αn = fn( αn
80
Programación y Métodos Numéricos
Interpolación polinómica
Si, como se ha supuesto, los puntos del soporte son distintos entre sí, la matriz
del sistema anterior es una matriz regular y por tanto el sistema anterior admite
una única23 solución (es decir que el polinomio buscado queda definido de
forma única a través de sus coeficientes obtenidos como solución del sistema
planteado).
Ejemplo:
Determinemos la expresión del polinomio interpolador de Hermite de la función
⎧ π ⎫
f(x) = cos(x) sobre el soporte ⎨0, , π ⎬ para los enteros {1, 0, 1}.
⎩ 2 ⎭
En x0 =0 se tiene que: f0(0 = f(0) = 1 y f0(1 = f '(0) = 0
π
⎛π⎞
: f1(0 = f ⎜ ⎟ = 0
2
⎝2⎠
(0
Y en x2 = π: f2 = f( π) = −1 y f2(1 = f '( π) = 0
En x1 =
Al haber 5 condiciones se podrán determinar 5 coeficientes y por ello se
interpolará mediante un polinomio de grado menor o igual a 4 que es de la
forma:
p4(x) = β0 + β1·x + β2·x2 + β3·x3 + β4·x4
y debe verificar:
p4(x0) = f0(0 ⇔ β0
p’4(x0) = f0(1 ⇔
(0
1
p4(x1) = f
=1
β1
=0
2
π
⇔ β0 + β1· +
2
⎛π⎞
⎛π⎞
β 2· ⎜ ⎟ + β 3· ⎜ ⎟
⎝2⎠
⎝2⎠
p4(x2) = f2(0 ⇔ β0 + β1·π +
p’4(x2) = f2(1 ⇔
β1
β2·π2
+ 2·β2·π
3
+ β3· π3
+ 3·β3· π2
23
⎛π⎞
+ β 4· ⎜ ⎟
⎝2⎠
4
+ β4· π4
+ 4·β4· π3
=0
= -1
=0
No nos detenemos a demostrar esta afirmación pues la existencia y unicidad del polinomio
interpolador de Hermite será demostrada posteriormente por otros métodos. No obstante el
lector interesado en conocer esta demostración puede encontrarla, por ejemplo, en la
referencia F. Michavila & C. Conde (1987) “Métodos de Aproximación”, Ed. Depto. de
Matemática Aplicada y Métodos Informáticos – ETSI Minas – Universidad Politécnica de Madrid
81
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Del sistema anterior se obtiene que: β0 = 1, β1 = 0, β2 =
Por tanto: p4(x) = 1 −
−6
4
, β3 = 3 , β3 = 0.
2
π
π
6 2 4 3
·x + 3 ·x
π2
π
La figura siguiente recoge las gráficas de f(x) y de p4(x) en el intervalo [-1, 4]
pudiendo observarse la “buena concordancia” entre la función f(x) y p4(x) en el
intervalo [0, π].
f(x)
p4(x)
•
Ejercicio propuesto:
Plantéese el sistema de ecuaciones que permite calcular el polinomio
⎧ π π⎫
interpolador de Hermite de la función f(x) = sen(x) sobre el soporte ⎨0, , ⎬ y
⎩ 4 2⎭
para los enteros {0, 1, 2}. Resuélvase dicho sistema y escríbase la expresión
del polinomio interpolador.
•
Esta forma de calcular el polinomio interpolador de Hermite, mediante la
resolución de un sistema de (m+1) ecuaciones con (m+1) incógnitas, es útil
cuando se trabaja con un soporte formado por un número de puntos
relativamente bajo. En caso de no ser así exige realizar un gran esfuerzo
computacional para resolver el sistema de ecuaciones al que se llega.
Pero además, esta forma de proceder tiene menos interés que otras que
analizaremos a continuación cuando se piensa en aplicarlas a los métodos de
resolución numérica de problemas de contorno (y en concreto al método de
elementos finitos) que se aborda en otras asignaturas. Por ello, en los
subapartados que siguen, se estudiarán otras técnicas de cálculo del
polinomio interpolador de Hermite.
82
Programación y Métodos Numéricos
Interpolación polinómica
3.1. Interpolación de Hermite de primer orden: la fórmula de interpolación
de Hermite.
Por simplicidad en la exposición, comenzaremos ocupándonos del problema de
determinar un polinomio p2·n+1(x) de grado menor o igual a (2·n+1) que en los
puntos de un soporte formado por (n+1) puntos distintos {x0, x1, ..., xn} verifique
las (2·n+2) condiciones siguientes:
p2·n+1(xi) = fi(0
(i = 0, 1, ..., n)
(i = 0, 1, ..., n)
p'2·n+1(xi ) = fi(1
{
}
donde f0(0 ,f0(1,f1(0 ,f1(1,...,fn(0 ,fn(1 son valores conocidos (y que supondremos que
los que tienen superíndice “(0” se corresponden con los valores de una cierta
función f(x) en los puntos del soporte y los que tienen superíndice “(1” son los
valores de la primera derivada de esta función, f’(x), en los puntos del soporte).
El problema anterior se denomina problema de interpolación polinómica de
Hermite de primer orden y podemos resumirlo en la búsqueda de un polinomio
de grado menor o igual a (2·n+1) que tanto él como su primera derivada tome
valores predeterminados en los puntos del soporte. Este problema admite una
solución única, hecho este que, junto a una forma de determinar el polinomio
buscado, se demuestra en el teorema siguiente:
Teorema 5
Siendo {x0, x1, ... , xi, ..., xn} un soporte formado por (n+1) puntos distintos y
dados (2n+2) valores f0(0 ,f0(1,f1(0 ,f1(1,...,fn(0 ,fn(1 , existe un único polinomio p2·n+1(x)
{
}
de grado menor o igual que (2·n+1) verificando las (2·n+2) igualdades:
p2·n+1(xi) = fi(0 , p'2·n+1(xi ) = fi(1 (i = 0, 1, 2, ..., n)
(1)
Además dicho polinomio
interpolación de Hermite:
puede
calcularse
mediante
la
n
n
n
⎛ 1
⎞
p2·n+1(x) = ∑ fi(0 ·H0,i (x) + ∑ fi(1·H1,i (x) = ∑ ⎜ ∑ fi(k ·Hk,i (x) ⎟
i= 0
i=0
i= 0 ⎝ k = 0
⎠
fórmula
de
(2)
donde los polinomios H0,i(x) y H1,i(x) se denominan polinomios de base de
Hermite y están dados por las expresiones:
2
H0,i (x) = (1 − 2·(x − x i )·L'i (x i ) )·(Li (x) )
(i = 0, 1, ..., n)
(3)
H1,i (x) = (x − xi )·(Li (x))
2
(i = 0, 1, ..., n)
siendo Li(x) el i-ésimo polinomio de base de Lagrange:
n
(x − xj )
Li (x) = ∏
j=0 ( x i − x j )
j≠i
83
(4)
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Demostración:
a) Comencemos demostrando que el polinomio dado por la expresión (2) es el
polinomio interpolador de Hermite de f(x).
Para ello, en primer lugar, observemos que puesto que los polinomios de base
de Lagrange, Li(x), son polinomios de grado n, los polinomios de base de
Hermite, H0,i(x) y H1,i(x), son todos ellos polinomios de grado (2·n+1). Por tanto
el polinomio p2·n+1(x) dado por la expresión (2) es un polinomio de grado menor
o igual que (2·n+1) ya que es una combinación lineal de los anteriores.
Por otra parte, remplazando en (3) y (4) “x” por “xk” y recordando que:
⎧0 si i ≠ k
Li(xk) = δik = ⎨
(i, k = 0, 1, …, n),
⎩ 1 si i = k
es evidente que los polinomios de base de Hermite satisfacen que:
⎧0 si i ≠ k
H0,i(xk) = δik = ⎨
(i, k = 0, 1, …, n)
⎩ 1 si i = k
H1,i(xk) =0
(i, k = 0, 1, …, n)
Por tanto:
n
n
i=0
i= 0
p2·n+1(xk ) = ∑ fi(0 ·H0,i (xk ) + ∑ fi(1·H1,i (xk ) = fk(0
Además, para cualquier par de índices 0 < i, k < n se tiene que :
2
H'0,i (x) = −2·L'i (xi )·(Li (x) ) + 2·(1 − 2·(x − x i )·L'i (x i ) )·Li (x)·L'i (x) ⇒
(
)
(
)
⇒ H'0,i (x k ) = −2·L'i (xi )·(Li (x k ) ) + 2· 1 − 2·(x k − xi )·L'i (x i ) ·Li (x k )·L'i (x) ⇒
2
⇒ H'0,i (x k ) = −2·L'i (x i )·(Li (xk ) ) + 2· 1 − 2·(xk − x i )·L'i (xi ) ·Li (xk )·L'i (xk ) ⇒
2
⇒ H'0,i (xk ) = 0
y:
H1,i' (x) = (Li (x) ) + 2·(x − xi )·Li (x)·L'i (x) ⇒
2
⇒ H1,i' (xk ) = (Li (x k ) ) + 2·(x k − x i )·Li (x k )·L'i (xk ) ⇒
2
⎧0 si i ≠ k
⇒ H1,i' (xk ) = δik = ⎨
⎩ 1 si i = k
84
Programación y Métodos Numéricos
Interpolación polinómica
por lo que:
n
n
i=0
i=0
'
p'2·n+1(xk ) = ∑ fi(0 ·H0,i
(xk ) + ∑ fi(1·H1,i' (xk ) = fk(1
Ello demuestra que el polinomio p2·n+1(x) dado por (2) es el polinomio
interpolador de Hermite.
b) Demostremos ahora, por reducción al absurdo, la unicidad del polinomio
interpolador de Hermite.
Supongamos que hubiera dos polinomios distintos, p2·n+1(x) y q2·n+1(x), de grado
menor o igual que (2·n+1) verificando:
p2·n+1(xi) = fi(0 , p'2·n+1(xi ) = fi(1 (i = 0, 1, 2, ..., n)
q2·n+1(xi) = fi(0 ,
q'2·n+1(xi ) = fi(1 (i = 0, 1, 2, ..., n)
Denotemos entonces por r(x) al polinomio definido mediante:
r(x) = p2·n+1(x) - q2·n+1(x)
Este polinomio será de grado menor o igual a (2·n+1) ya que es la diferencia de
dos polinomios de grado menor o igual a (2·n+1). Además este polinomio
verificará que:
r(xi) = p2·n+1(xi) – q2·n+1(xi) = 0
(i = 0, 1, ..., n)
r '(xi ) = p'2·n+1(xi ) − q'2·n+1(xi ) = 0
(i = 0, 1, ..., n)
lo que nos indica que cada punto del soporte es una raíz, al menos de
multiplicidad doble, del polinomio r(x). Contando cada raíz tantas veces como
su multiplicidad, lo anterior nos indica que r(x) tiene, al menos, (2·n+2) raíces.
Pero el único polinomio de grado menor o igual a (2·n+1) que posee más de
(2·n+1) raíces es el polinomio idénticamente nulo. Ello nos conduce a que:
r(x) ≡ 0 ⇔ p2·n+1(x) − q2·n+1(x) ≡ 0 ⇔ p2·n+1(x) ≡ q2·n+1(x)
en contra de la suposición inicial de que eran dos polinomios distintos. Por
tanto es absurdo suponer que exista más de un polinomio interpolador de
Hermite.
c.q.d.
85
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ilustremos el método de cálculo que proporciona el teorema anterior con un
ejemplo.
Ejemplo:
Calculemos el polinomio interpolador de Hermite de una función f(x) de la que
se sabe que:
f(0) = 0,
f(1) = 1,
f(2) =
f’(0) = 0,
3
f’(1) = ,
2
f’(2) =
8
3
2
En primer lugar se tiene que los polinomios de base de Lagrange sobre el
soporte {0, 1, 2} son:
L0 (x) =
x 2 − 3·x + 2
,
2
L1(x) = − x 2 + 2·x ,
L 2 (x) =
x2 − x
2
L’0(0) =
−3
,
2
L’1(1) = 0,
L’2(2) =
3
2
y:
Con estos valores podemos calcular los polinomios de base de Hermite como
sigue:
3·x 5 − 17·x 4 + 33·x 3 − 23·x 2 + 4
H0,0 (x) = (1 − 2·(x − 0)·L0 (0))·(L0 (x)) =
4
'
2
4
3
H0,1(x) = (1 − 2·(x − 1)·L1(1))·(L1(x)) = x − 4·x + 4·x 2
'
2
H0,2 (x) = (1 − 2·(x − 2)·L'2 (2))·(L 2 (x))2 =
−3·x 5 + 13·x 4 − 17·x 3 + 7·x 2
4
y:
H1,0 (x) = (x − 0)·(L0 (x))2 =
x 5 − 6·x 4 + 13·x 3 − 12·x 2 + 4·x
4
H1,1(x) = (x − 1)·(L1(x))2 = x 5 − 5·x 4 + 8·x 3 − 4·x 2
H1,2 (x) = (x − 2)·(L 2 (x))2 =
86
x 5 − 4·x 4 + 5·x 3 − 2·x 2
4
Programación y Métodos Numéricos
Interpolación polinómica
Las figuras siguientes recogen los gráficos de estos polinomios de base de
Hermite.
H0,0(x)
H0,1(x)
H0,2(x)
π/4 rad
H1,0(x)
H1,1(x)
H1,2(x)
Con estos polinomios de base de Hermite se tiene finalmente que el polinomio
interpolador de Hermite está dado por:
n
n
i=0
i=0
p5 (x) = ∑ fi(0 ·H0,i (x) + ∑ fi(1·H1,i (x) = 0·H00 (x) + 1·H01(x) + 8·H02 (x) +
3
3
+0·H10 (x) + ·H11(x) +
·H12 (x) =
2
2
9 ⎞ 5 ⎛
13 ⎞
52 ⎞ 3 ⎛ 11
⎛3
⎛
⎞
− 2 ⎟·x 2
·x + ⎜ 5· 2 − ⎟·x 4 + ⎜ 8 −
·x + ⎜
=⎜ −
⎟
⎟
2 ⎠
4· 2 ⎠
⎝
⎝ 2 4· 2 ⎠
⎝
⎝ 2· 2
⎠
87
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Una función f(x) para la que se toman los valores de los que se ha partido en
este ejercicio es la función f(x) = x3/2 .La figura siguiente recoge esta función
f(x) junto al polinomio interpolador p5(x).
f(x)
p5(x)
•
Demostremos algunas propiedades del los polinomios de base de Hermite
Propiedad 1
• El polinomio de base H0,i(x) definido sobre el soporte {x0, ..., xi, ... ,xn} es
el único polinomio de grado menor o igual que (2·n+1) que verifica:
⎧0 si i ≠ k
H'0,i (xk ) = 0 (k = 0, .., n)
H0,i(xk) = δik = ⎨
,
⎩ 1 si i = k
•
El polinomio de base H1,i(x) definido sobre el soporte {x0, ..., xi, ... ,xn} es
el único polinomio de grado menor o igual que (2·n+1) que verifica:
⎧0 si i ≠ k
(k = 0, .., n)
H1,i(xk) = 0 , H1,i' (xk ) = δik = ⎨
⎩ 1 si i = k
Demostración:
Es una consecuencia inmediata del teorema anterior, pues sólo habrá un
polinomio interpolador de Hermite (H0,i(x)) de grado menor o igual a (2·n+1) que
en el soporte {x0, ..., xi, ... ,xn} tome los valores:
Abscisa
f(0
f(1
x0 ... xi-1
0 ... 0
0 ... 0
xi
1
0
xi+1 .... xn
0 .... 0
0 .... 0
88
Programación y Métodos Numéricos
Interpolación polinómica
Análogamente sólo habrá un polinomio de grado menor o igual a (2·n+1) que
en el soporte {x0, ..., xi, ... ,xn} tome los valores:
x0 ... xi-1
0 ... 0
0 ... 0
Abscisa
f(0
f(1
xi
0
1
xi+1 .... xn
0 .... 0
0 .... 0
c.q.d.
Propiedad 2
Si p(x) es una función polinómica de grado m, y n es un entero estrictamente
positivo tal que m < (2·n+1), el polinomio interpolador de Hermite p2·n+1(x) de la
función p(x) sobre cualquier soporte formado por (n+1) puntos distintos es la
propia función p(x).
Demostración:
El grado del polinomio interpolador de Hermite sobre un soporte formado por
(n+1) puntos debe ser menor o igual que (2·n+1). La función p(x) se ha
supuesto que es un polinomio de grado m < (2·n+1) por lo que verifica la
condición sobre el grado exigido al polinomio interpolador de Hermite. Puesto
que obviamente el valor de la función p(x) en los puntos del soporte coincide
con el valor p(xi) y el valor de la primera derivada p’(x) en los puntos del
soporte también coincide con p’(xi) se puede concluir que p(x) es el polinomio
interpolador de Hermite de ella misma. Y como, en virtud del teorema anterior,
el polinomio interpolador de Hermite es único puede concluirse que
p2·n+1(x) ≡ p(x).
c.q.d.
Propiedad 3
Dado el soporte {x0, x1, ..., xi, ..., xn}, los polinomios de base de Hermite
asociados a dicho soporte:
(
)
H0,i (x) = 1 − 2·(x − x i )·L'i (x i ) ·(Li (x) )
2
(i = 0, 1, ...., n)
verifican que:
n
∑H
i=0
i,0
(x) = 1
Demostración:
89
∀x
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Sea f(x) la función unidad: f ≡ 1. Obviamente en los puntos de cualquier soporte
se verifica que: fi(0 = f(xi ) = 1 y fi(1 = f '(xi ) = 0 (i = 0, 1, ..., n). Además como
esta función es un polinomio de grado 0 (perteneciente a cualquier espacio
formado por los polinomios de grado menor o igual que (2·n+1) sea cual sea n)
se verifica que el polinomio interpolador de Hermite, p2·n+1(x), de f(x) es la
propia función. Por tanto:
∀x :
n
n
n
i=0
i=0
i= 0
1 ≡ p2·n+1(x) = ∑ 1·H0i (x) + ∑ 0·H1i (x) = ∑ H01(x)
c.q.d.
Ejercicios propuestos:
1º) Demostrar que siendo H0,i(x) y H1,i(x) (i = 0, 1, ..., n) los polinomios de base
de Hermite asociados al soporte {x0, ..., xn} se verifica que:
n
n
i=0
i=0
∑ xi·H0,i (x) + ∑ H1,i (x) = x
2º) Demostrar que siendo H0,i(x) y H1,i(x) (i = 0, 1, ..., n) los polinomios de base
de Hermite asociados al soporte {x0, ..., xn} y dado el entero m cumpliendo la
condición 0 < m < 2·n+1, se verifica que:
n
∑x
i=0
m
i
n
·H0,i (x) + m·∑ xi(m−1) ·H1,i (x) = xm
i= 0
3º) Determínese el polinomio interpolador de Hermite de la función f(x) = x4
sobre el soporte {0, 1, 3} a partir de los valores de la función y de su primera
derivada en los puntos del soporte. ¿Cuál es el error de interpolación en el
punto x = 2.5, es decir cual es el valor de |f(2.5) – p5(2.5)| ?.
4º) Utilícese la fórmula de interpolación de Hermite para determinar el
polinomio interpolador de Hermite de la función cos(x) sobre el soporte
⎧ π π⎫
⎨0, ,
⎬ a partir de los valores de la función de su primera derivada en los
⎩ 6 2⎭
puntos del soporte. Represéntense las gráficas de los polinomios de base
asociados a este soporte e indíquese el valor interpolado que aproximaría
cos(π/4).
5º) Demuéstrese que los polinomios de base de Hermite asociados al soporte
{x0, x1, ..., xi, ..., xn} forman una base del espacio vectorial P2·n+1 formado por
todos los polinomios (de variable y coeficientes reales) de grado menor o igual
que (2·n+1).
90
Programación y Métodos Numéricos
Interpolación polinómica
3.2. Interpolación polinómica de Hermite: caso general.
Ocupémonos ya del problema general de interpolación polinómica de Hermite.
Este problema, según se describió anteriormente, puede formularse en la
forma:
Problema de Interpolación Polinómica de Hermite
“Dados (n+1) puntos distintos {x0 , x1 , ... , xi ,... , xn}, (n+1)
valores enteros no negativos {α0, α1, ..., αi, ..., αn}, siendo
n
m = n + ∑ αi y conocidos los (m+1) valores
i= 0
{f
(0
0
,f0(1,...,f0( α0 ,f1(0 ,f1(1,...,f1( α1 ,..........,fn(0 ,fn(1 ,...,fn( αn
}
encontrar un polinomio pm(x), de grado menor o igual que m,
verificando las (m+1) igualdades:
(k
pm
(xi ) = fi(k
(i = 0, 1, ...., n) , (k = 0, …, αi)
“
En otros términos buscamos un polinomio de grado menor o igual que m y tal
que en cada punto xi del soporte él y sus αi primeras derivadas tomen valores
predeterminados. La existencia y unicidad del polinomio interpolador de
Hermite, así como una manera de construirlo, se justifican con el siguiente
teorema.
Teorema 6
Dados:
• Un soporte formado por (n+1) puntos distintos {x0, x1, ..., xn}
• Los (n+1) enteros no negativos {α0, α1, ..., αn}
•
Los (m+1) valores, con m = n +
n
∑ α , {f
i=0
i
(0
0
,...,f0( α0 ,f1(0 ,...,f1( α1 ,...,fn(0 ,...,fn( αn
}
existe un único polinomio de grado menor o igual que m verificando las (m+1)
igualdades:
(k
p(k
(i = 0, 1, ..., n), (k = 0, ..., αi)
(1)
m (x i ) = fi
Además dicho polinomio está dado por la expresión:
91
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
⎛ αi (k
⎞
pm (x) = ∑ ⎜ ∑ fi ·Hk,i (x) ⎟
i=0 ⎝ k =0
⎠
n
donde los polinomios Hk,j(x), llamados polinomios de base de Hermite, pueden
construirse mediante el proceso recursivo siguiente:
Hαi ,i (x) = hαi ,i (x)
Hk,i (x) = hk,i (x) −
αi
∑h
j=k +1
(j
k,i
(i = 0, 1, ..., n)
(xi )·Hj,i (x) (k = αi-1, αi-2, …, 0), (i = 0, 1, …, n)
siendo denotados por hk,j(x) los polinomios dados por:
(x − xi )k n ⎛ x − x j ⎞
hk,i (x) =
·∏ ⎜
⎟⎟
⎜
k!
j=0 ⎝ x i − x j ⎠
α j +1
(k = 0, 1, …,αi), (i = 0, 1, …, n)
j≠i
y por h(k,ij (xi ) al valor en el punto xi de la j-ésima derivada del polinomio hk,i(x).
Demostración:
a) Demostremos que el polinomio dado en el enunciado de este teorema es
solución del problema de interpolación de Hermite.
Para ello, en primer lugar observemos que, para 0 < i < n, el polinomio hk,i(x)
es un polinomio de grado: k + n +
n
∑α
j=0
j≠i
j
= m – αi + k , y como 0 < k < ai se
puede concluir que todos los polinomios hk,i(x) son de grado menor o igual que
m. Más concretamente:
grado(hαi ,i (x)) = m , grado(hαi −1,i (x)) = m − 1, .... , grado(h0,i (x)) = m − αi
Ello, a su vez implica que, para 0 < i < n, los polinomios Hαi ,i (x) = hαi ,i (x) sean
de grado: grado(Hαi ,i (x)) = m .
En cuanto a los polinomios Hαi −1,i (x) = hαi −1,i (x) − h(ααi −i 1,i (x i )·Hαi ,i (x) su grado será
menor o igual que m pues son una combinación lineal del polinomio hαi −1,i (x)
(cuyo grado es m-1) y del polinomio Hαi ,i (x) (cuyo grado es m).
92
Programación y Métodos Numéricos
Interpolación polinómica
Por el mismo motivo, para i = 0, 1, 2, ..., n, todos los polinomios:
Hαi −2,i (x) = hαi − 2,i (x) − h(ααi −i −2,i1 (x i )·Hαi −1,i (x) − h(ααi −i 2,i (x i )·Hαi ,i (x)
tienen grado menor o igual que m pues son una combinación lineal del
polinomio hαi −2,i (x) (cuyo grado es m-2), del polinomio Hαi −1,i (x) (cuyo grado es
menor o igual que m) y del polinomio Hαi ,i (x) (cuyo grado es m).
Razonando de forma recursiva se concluye que todos los polinomios Hk,i (x) ,
con 0 < k < αi y 0 < i < n, son polinomios de grado menor o igual que m.
Y puesto que pm(x) es a su vez una combinación lineal de los polinomios Hk,i (x)
puede concluirse que grado(pm(x)) < m.
Por otra parte, fácilmente se verifica por inducción que:
⎧ 1 si i = j y j = k
H(k,ij (x s ) = δis ·δ jk = ⎨
⎩0 en otro caso
(0 < j, k < αs) , (0 < i, s < n)
lo que implica que:
⎛ αi (k ( j
⎞
p (x s ) = ∑ ⎜ ∑ fi ·Hk,i (x s ) ⎟ = fs( j ·H(j,sj (x s ) =fs( j
i= 0 ⎝ k =0
⎠
(j
m
n
(0 < j < αs) , (0 < s < n)
y por tanto que pm(x) es solución del problema de interpolación de Hermite.
b) Demostremos ahora, por reducción al absurdo, que el polinomio pm(x) es la
única solución del problema de Hermite.
Supongamos que hubiera dos polinomios distintos, pm(x) y qm(x), de grado
menor o igual que m y verififcando:
(k
p(k
m (x i ) = fi
(k
q(k
m (x i ) = fi
(0 < k < αi) , (0 < i < n)
(0 < k < αi) , (0 < i < n)
93
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Denotando por r(x) al polinomio definido mediante: r(x) = pm(x) – qm(x) se tiene
que r(x) es otro polinomio de grado menor o igual que m para el que se verifica
que:
r (k (xi ) = 0
(0 < k < αi) , (0 < i < n)
En otros términos cada punto xi del soporte es una raíz de multiplicidad (αi +1)
de r(x). Ello implica que, contando cada raíz tantas veces como su
multiplicidad, el polinomio r(x) tiene, al menos, (m+1) raíces. Puesto que el
único polinomio de grado menor o igual que m con más de m raíces es el
polinomio idénticamente nulo, se puede concluir que r(x) ≡ 0. De ello se infiere
que p(x) ≡ q(x) en contra de lo inicialmente supuesto. Por tanto es absurdo
suponer que existe más de un polinomio interpolador de Hermite.
c.q.d.
Ejemplo:
Calculemos el polinomio interpolador de Hermite de la función de Runge
f(x) = (1 + x2)-1 sobre el soporte {-8, 0, 10} para los enteros { 3, 0, 2}.
Comencemos evaluando la función y sus derivadas en los puntos del soporte
•
En x0 = -8:
f0(0 = f( −8) =
f0(2 = f "( −8) =
•
En x1 = 1:
•
En x2 = 10:
f2(0 = f(10) =
1
,
65
f0(1 = f '( −8) =
382
,
274625
16
,
4225
f0(3 = f '''( −8) =
12096
17850625
f1(0 = f(0) = 1
1
,
101
f2(1 = f '(10) =
−20
,
10201
f2(2 = f "(10) =
598
1030301
Evaluemos ahora los polinomios hk,i(x) dados en el teorema anterior:
94
Programación y Métodos Numéricos
Interpolación polinómica
“Asociados a x0”:
3
3
⎛ x − x1 ⎞ ⎛ x − x 2 ⎞
x ⎛ x − 10 ⎞
1
·⎜
=
h0,0(x) = ⎜
·x·(x − 10)3 =
⎟·⎜
⎟ =
⎟
−8 ⎝ −18 ⎠
46650
⎝ x 0 − x1 ⎠ ⎝ x 0 − x 2 ⎠
=
1
5
25 2 125
·x 4 −
·x 3 +
·x −
·x
46656
7776
3888
5832
3
⎛ x − x1 ⎞ ⎛ x − x 2 ⎞
h1,0(x) = (x − x 0 )·⎜
⎟·⎜
⎟ =
x
x
x
x
−
−
1⎠⎝ 0
2 ⎠
⎝ 0
3
x ⎛ x − 10 ⎞
1
=
·(x + 8)·x·(x − 10)3 =
= (x + 8)· ·⎜
⎟
−8 ⎝ −18 ⎠ 46650
=
1
11
5
175 2 125
·x 5 −
·x 4 +
·x3 +
·x −
·x
46656
23328
3888
5832
729
3
(x − x 0 )2 ⎛ x − x1 ⎞ ⎛ x − x 2 ⎞
·⎜
h2,0(x) =
⎟·⎜
⎟ =
2!
x
x
x
x
−
−
1 ⎠⎝ 0
2 ⎠
⎝ 0
3
(x + 8)2 x ⎛ x − 10 ⎞
1
· ·⎜
=
·(x + 8)2 ·x·(x − 10)3 =
=
⎟
93912
2
−8 ⎝ −18 ⎠
=
1
7
29
235 3 25 2 500
·x 6 −
·x 5 −
·x 4 +
·x +
·x −
·x
93312
46656
23328
11664
729
729
3
(x − x 0 )3 ⎛ x − x1 ⎞ ⎛ x − x 2 ⎞
·⎜
h3,0(x) =
⎟·⎜
⎟ =
3!
x
x
x
x
−
−
1⎠⎝ 0
2 ⎠
⎝ 0
3
(x + 8)3 x ⎛ x − 10 ⎞
1
· ·⎜
=
·(x + 8)3 ·x·(x − 10)3 =
=
⎟
279936
6
−8 ⎝ −18 ⎠
=
1
1
19
119 4
95 3 100 2 4000
·x 7 −
·x 6 −
·x 5 +
·x +
·x −
·x −
·x
279936
46656
23328
34992
1458
729
2187
95
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
“Asociados a x1”:
⎛ x − x0 ⎞
h0,1(x) = ⎜
⎟
⎝ x1 − x 0 ⎠
=−
4
3
⎛ x − x2 ⎞
⎛x+8⎞
·⎜
⎟ =⎜
⎟
⎝ 8 ⎠
⎝ x1 − x 2 ⎠
4
3
1
⎛ x − 10 ⎞
·⎜
=
·(x + 8)4 ·(x − 10)3 =
⎟
4096000
⎝ −10 ⎠
1
1
69
109
101 3
21 2 1
·x 7 −
·x 6 +
·x 5 +
·x 4 −
·x −
·x + ·x + 1
4096000
2048000
1024000
512000
16000
800
5
“Asociados a x2”:
4
⎛ x − x 0 ⎞ ⎛ x − x1 ⎞ ⎛ x + 8 ⎞
h0,2(x) = ⎜
⎟ ·⎜
⎟ =⎜
⎟
⎝ x 2 − x 0 ⎠ ⎝ x 2 − x1 ⎠ ⎝ 18 ⎠
=
4
1
⎛ x ⎞
·⎜ ⎟ =
·(x + 8)4 ·x =
⎝ 10 ⎠ 1049760
1
1
4
64
128
·x 5 +
·x 4 +
·x 3 +
·x 2 +
·x
1049760
32805
10935
32805
32805
⎛ x − x0 ⎞
h1,2(x) = (x − x 2 )·⎜
⎟
⎝ x2 − x0 ⎠
4
⎛ x − x1 ⎞
·⎜
⎟=
⎝ x1 − x1 ⎠
4
1
⎛x+8⎞ x
= (x − 10)·⎜
· =
·(x − 10)·(x + 8)4 ·x =
⎟
⎝ 18 ⎠ 10 1049760
=
1
11
2
56
512 2 256
·x 6 +
·x 5 +
·x 4 −
·x 3 −
·x −
·x
1049760
524880
32805
32805
32805
6561
(x − x 2 )2 ⎛ x − x 0 ⎞
·⎜
h2,2(x) =
⎟
2!
⎝ x2 − x0 ⎠
(x − 10)2 ⎛ x + 8 ⎞
=
·⎜
⎟
2
⎝ 18 ⎠
=
4
4
⎛ x − x1 ⎞
·⎜
⎟=
x
x
−
⎝ 2
1⎠
1
⎛ x ⎞
·⎜ ⎟ =
·(x − 10)2 ·(x + 8)4 ·x =
⎝ 10 ⎠ 2099520
1
1
13
38
8
128 2 1280
·x 7 +
·x 6 −
·x 5 −
·x 4 +
·x 3 +
·x +
·x
2099520
174960
174960
32805
10935
2187
6561
96
Programación y Métodos Numéricos
Interpolación polinómica
Evaluemos ahora los valores de las derivadas que intervendrán en el cálculo de
los polinomios de base de Hermite:
h'''2,0 (x 0 ) = h'''2,0 ( −8) =
h"1,0 (x 0 ) = h"1,0 ( −8) =
h'0,0 (x 0 ) = h'0,0 ( −8) =
−7
,
12
h'''1,0 (x 0 ) = h'''1,0 ( −8) =
−7
,
24
h"0,0 (x 0 ) = h"0,0 ( −8) =
h'''0,0 (x 0 ) = h'''0,0 ( −8) =
29
,
90
13
72
13
,
216
−31
3888
h"1,2 (x 2 ) = h''1,2 (10) =
h'0,2 (x 2 ) = h'0,2 (10) =
−7
8
29
45
h"0,2 (x 2 ) = h''0,2 (10) =
11
135
Tras los cálculos previos anteriores ya se pueden determinar los polinomios de
base de Hermite utilizando las expresiones dadas en el teorema anterior:
“Asociados” a x0 = -8:
H3,0(x) = h3,0(x) =
=
1
1
19
119 4
95 3 100 2 4000
·x 7 −
·x 6 −
·x 5 +
·x +
·x −
·x −
·x
279936
46656
23328
34992
1458
729
2187
H2,0 (x) = h2,0 (x) − h'''2,i (x 0 )·H3,0 (x) =
=
7
1
161
485
25 3 125 2 5000
·x 7 −
·x 6 −
·x 5 +
·x 4 +
·x −
·x −
·x
2239488
124416
186624
279936
324
1458
2187
97
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
H1,0 (x) = h1,0 (x) − h"1,0 (x 0 )·H2,0 (x) − h'''1,0 (x 0 )·H3,0 (x) =
=
95
11
2249
755
3625 3
125 2 23125
·x 7 −
·x 6 −
·x 5 −
·x 4 +
·x +
·x −
·x
80621568
13436928
6718464
10077696
104976
26144
19683
H0,0 (x) = h0,0 (x) − h'0,0 (x 0 )·H1,0 (x) − h"0,0 (x 0 )·H2,0 (x) − h'''0,0 (x 0 )·H3,0 (x) =
=
3205
215
75763
168865
·x 7 +
·x 6 −
·x 5 −
·x 4 +
17414258688
2902376448
1451188224
2176782336
+
120275 3
67375 2 128125
·x +
·x −
·x
22674816
5668704
531441
“Asociado” a x1 = 0:
H0,1(x) = h0,1(x) =
=−
1
1
69
109
101 3 21 2 1
·x 7 −
·x 6 +
·x 5 +
·x 4 −
·x −
·x + ·x + 1
4096000
2048000
1024000
512000
16000
800
5
“Asociados” a x2 = 10:
H2,2(x) = h2,2(x) =
=
1
1
13
38
8
128 2 1280
·x 7 +
·x 6 −
·x 5 −
·x 4 +
·x 3 +
·x +
·x
2099520
174960
174960
32805
10935
2187
6561
H1,2 (x) = h1,2 (x) − h"1,2 (x 2 )·H2,2 (x) =
=
−29
43
271
1192
1072 3 5248 2 9728
·x 7 −
·x 6 +
·x 5 +
·x 4 −
·x −
·x −
·x
94478400
15746400
3936600
1476225
492075
98415
59049
H0,2 (x) = h0,2 (x) − h'0,2 (x 2 )·H1,2 (x) − h"0,2 (x 2 )·H2,2 (x) =
=
511
587
10753
8989
·x 7 +
·x 6 −
·x 5 −
·x 4 +
8503056000
1417176000
708588000
66430125
+
22324
63616 2 109184
·x 3 +
·x +
·x
22143375
4428675
2657205
98
Programación y Métodos Numéricos
Interpolación polinómica
Antes de construir el polinomio interpolador verifiquemos que los polinomios de
base de Hermite satisfacen:
⎧ 1 si i = s y j = j
H(k,ij (x s ) = δ jk ·δis = ⎨
( 0 < j,k < αs) , ( 0 < i, s < 2)
⎩0 en otro caso
Ello se puede comprobar en las tablas siguientes que recogen los valores de
las funciones Hk,i(x) y de sus tres primeras derivadas en los puntos del soporte.
En ella los valores que se muestran resaltados se corresponden con aquellos
que permiten verificar las igualdades anteriores.
Tabla de valores de H00(x)
Función
1ª derivada
x0
1
0
x1
0
−128125
531441
x2
0
0
2ª derivada
3ª derivada
0
67375
2834352
0
0
120275
3779136
23725
248832
Tabla de valores de H10(x)
Función
1ª derivada
x0
0
1
x1
0
−23125
19683
x2
0
0
2ª derivada
3ª derivada
0
125
13122
0
0
3625
17496
1925
3456
Tabla de valores de H20(x)
Función
x0
0
x1
0
x2
0
1ª derivada
0
−5000
2187
0
99
2ª derivada
3ª derivada
1
0
−125
729
25
54
0
125
96
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Tabla de valores de H30(x)
Función
x0
0
x1
0
x2
0
1ª derivada
0
−4000
2187
0
2ª derivada
3ª derivada
0
−200
729
0
1
95
243
5
4
Tabla de valores de H01(x)
Función
x0
0
x1
1
x2
0
1ª derivada
0
2ª derivada
0
−21
400
1
5
0
0
3ª derivada
0
−303
8000
−19683
128000
Tabla de valores de H02(x)
Función
1ª derivada
x0
0
0
x1
0
109184
2657205
x2
1
0
2ª derivada
0
127232
4428675
0
3ª derivada
0
44648
7381125
7099
121500
Tabla de valores de H12(x)
Función
x0
0
x1
0
x2
0
1ª derivada
0
−9728
59049
1
100
2ª derivada
0
−10496
98415
0
3ª derivada
0
−2144
164025
−511
1350
Programación y Métodos Numéricos
Interpolación polinómica
Tabla de valores de H22(x)
Función
1ª derivada
x0
0
0
x1
0
1280
6561
x2
0
0
2ª derivada
3ª derivada
0
256
2187
1
0
16
3645
29
30
Las figuras siguientes recogen los grafos de estos polinomios de base (en el
intervalo [-11, 11]:
H0,0(x)
H0,1(x)
H0,2(x)
H1,0(x)
H1,2(x)
101
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
H2,0(x)
H2,2(x)
H3,0(x)
Por último, con los polinomios de base de Hermite y los valores de la función
f(x) y sus derivadas en los puntos del soporte se puede calcular el polinomio
interpolador de Hermite mediante:
3
2
k =0
k =0
p7 (x) = ∑ f0(k ·Hk,0 (x) + f1(0 ·H0,1(x) + ∑ f2(k ·Hk,2 (x) =
=1+
+
27699871744
19112886821 2
21826921472 3
·x −
·x −
·x +
147132134305
735660671525
3678303357625
3908797597
1162926472
9254121
4204394
·x 4 +
·x 5 −
·x 6 −
·x 7
18391516788125
18391516788125
18391516788125
18391516788125
La figura siguiente recoge, en el intervalo [-11, 11] el grafo de la función de
Runge (en trazo discontinuo) y del polinomio interpolador de Hermite hallado
(en trazo continuo). Como puede apreciarse, después de los largos cálculos
anteriores, existe una buena aproximación entre el polinomio hallado y la
102
Programación y Métodos Numéricos
Interpolación polinómica
función que se interpola en los entornos de los puntos del soporte no
sucediendo lo mismo en puntos alejados de los del soporte. Y al estar los
puntos del soporte “alejados” entre sí se aprecian zonas en las que la precisión
del polinomio interpolador es bastante pobre. En los ejercicios propuestos se
encontrarán casos en los que el polinomio interpolador tiene un
comportamiento más parecido a la función que interpola.
•
Ejercicios propuestos
1º) Determínese, sobre el soporte {0, 1, 2} y para los enteros {2, 1, 2}, el
polinomio interpolador de Hermite de la función f(x) = 1 + 3·x . Represéntense
gráficamente, en el intervalo [0, 2], los polinomios de base de Hermite, el
polinomio interpolador de Hermite y la función f(x).
2º) Constrúyase el polinomio interpolador de Hermite de la función de Runge
f(x) = (1+x2)-1 sobre el soporte {-2, 0, 2} para los enteros {2, 2, 2}.
Represéntense gráficamente, en el intervalo [-2, 2], los polinomios de base de
Hermite, el polinomio interpolador de Hermite y la función f(x).
3º) Demuéstrese que siendo Hk,i(x) (k = 0, ..., αi), (i = 0, ..., n) los polinomios de
base de Hermite construidos sobre el soporte {x0, ..., xn} y para los enteros {α0,
..., αn}, se verifica que:
n
∑H
i=0
0,i
(x) = 1
103
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
4º) Demuéstrese que el polinomio de base de Hermite Hk,i(x) (0 < k < αi) , (0 < i
< n), construido sobre el soporte {x0, ..., xn} y para los enteros {α0, ..., αn}, es los
único polinomio de grado menor o igual que m = n +
n
∑α
i=0
i
para el que se
verifican las igualdades:
⎧ 1 si s = i y j = k
H(k,ij (x s ) = ⎨
⎩0 en caso contrario
(0 < j < as) , (0 < s < n)
5º) Demuéstrese que siendo Hk,i(x) (k = 0, ..., αi), (i = 0, ..., n) los polinomios de
base de Hermite construidos sobre el soporte {x0, ..., xn} y para los enteros {α0,
..., αn}, y siendo j un entero no negativo inferior o igual a m = n +
n
∑ α , se
i=0
verifica que:
⎛ inf( j,αi ) ⎛ j ⎞ ( j−k )
⎞
j
⎜ ∑ k!·⎜ ⎟·x i ·Hk,i (x) ⎟ = x
∑
i=0 ⎝ k = 0
⎝k ⎠
⎠
n
104
i
Programación y Métodos Numéricos
Interpolación polinómica
3.3. Análisis del error en la interpolación de Hermite.
Al igual que se señaló en el caso de la interpolación de Lagrange puede
definirse el error de interpolación de Hemite como sigue:
Definición
Siendo pm(x) el polinomio interpolador de Hermite de la función f(x) sobre el
soporte {x0, x1, ...., xn} y para los enteros {α0, α1, ..., αn}, se denomina error de
interpolación (de Hermite) a la función E(x) que a todo punto x le asocia el valor
E(x) = f(x) – pm(x).
•
En general, si sobre la función f(x) que se está interpolando sólo se conocen
los valores de ella y algunas de sus derivadas en los puntos del soporte, poco
se puede decir sobre el error de interpolación (salvo que será nulo en los
puntos del soporte). Pero si se admite una cierta regularidad de la función f(x),
más concretamente, si se admite que tanto la función f(x) como sus primeras
derivadas son continuas y acotadas, es posible obtener cotas de la función
error de interpolación en el intervalo (a, b) al que pertenezcan los puntos del
soporte. De forma más concreta, demostremos el siguiente:
Teorema 7
Dados el soporte de (n+1) puntos distintos {x0, x1, ...., xn} de un intervalo (a, b) y
los enteros no negativos {α0, α1, ..., αn}, denotando por m = n +
n
∑α
i=0
i
y por
pm(x) al polinomio interpolador de Hermite, sobre el soporte considerado y para
los enteros dados, de una función f(x) de clase C(m+1)((a, b)), para todo punto
x*∈(a, b) se puede encontrar algún punto ξ * ∈(a, b), dependiente del punto x*
que se escoja, verificando que el error de interpolación de Hermite en x* está
dado por la expresión:
E(x*) = f(x*) − pn (x*) =
f (m+1 ( ξ * )
(m + 1)!
n
·∏ (x * − xi )αi +1
i=0
Demostración:
Si el punto x* coincidiera con alguno de los puntos del soporte la igualdad
anterior es evidente pues el error sería nulo y el productorio que aparece en la
expresión del error también se anularía.
Consideremos pues que x* ∉{x0, x1,..., xn}. En ese caso se puede definir el
polinomio:
105
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
q(x) = pm(x) +
f(x*) − pm (x*)
n
∏ (x * − x )
n
·∏ (x − x i )αi +1
αi +1 i=0
i
i= 0
El polinomio q(x) es un polinomio de grado menor o igual que (m+1), pues es la
suma de un polinomio de grado menor o igual que m (pm(x)) más otro polinomio
n
de grado (m+1) (el polinomio
∏ (x − x )
i
αi +1
) multiplicado por la constante
i=0
f(x*) − pm (x*)
n
∏ (x * − x )
i
.
αi +1
i=0
Además dicho polinomio verifica que:
q(j(xi) = p(jm(xi) = f(j(xi)
q(x*) = pn(x*) +
(i = 0, ..., n), (j = 0, ..., αi)
f(x*) − pn (x*) n
·∏ (x * − xi ) = pn(x*)+ f(x*) - pn(x*) = f(x*)
n
∏ (x * − xi ) i=0
i=0
Por tanto q(x) es el polinomio interpolador de Hermite de la función f(x) sobre el
soporte formado por los (n+2) puntos: {x0, x1,..., xn, x*} y para los enteros {α0,
α1, ..., αn, 0}.
Definimos entonces la función F(x) = f(x) – q(x). Esta función es continua y será
de clase C(m+1)((a, b)), pues es la diferencia de dos funciones de dicho espacio.
Además la función F(x) admite a cada punto del soporte xi como una raíz de
multiplicidad, al menos, αi y al punto x* como una raíz, al menos, simple. Es
decir que, contando cada raíz tantas veces como su multiplicidad indique, la
función
F(x) admite en (a, b), al menos, (m+2) raíces. Aplicando
sucesivamente el teorema de Rolle24 se tiene entonces que F’(x) admitirá, al
menos, (m+1) raíces en (a, b), F”(x) admitirá, al menos, m raíces en (a, b),
F’’’(x) admitirá, al menos, (m-1) raíces en (a, b), ...... y F(m+1(x) admitirá, al
menos, una raíz en (a, b). Denotemos por ξ * a alguna de dichas raíces de
F(m+1(x) en (a, b). Se tiene entonces que:
0 = F(m+1( ξ * ) = f(m+1( ξ * ) – q(n+1( ξ * ) =
24
Teorema de Rolle: “Si una función g(x) continua en el intervalo [a, b] es derivable en (a, b) y
además verifica que f(a) = f(b), entonces existe al menos un punto c∈(a, b) en el que se verifica
que f’(c) = 0”.
106
Programación y Métodos Numéricos
=f
(m+1
(ξ *) – p
(m +1
m
Interpolación polinómica
⎞
f(x*) − pm (x*) ⎛ n
(ξ*) − n
·⎜ ∏ (x − xi )αi +1 ⎟
⎠
∏ (x * −xi )αi +1 ⎝ i=0
(m +1
=
i=0
= f(m+1( ξ * ) – 0 –
f(x*) − pm (x*)
n
∏ (x * − x )
i
·(m + 1)! ⇒
αi +1
i= 0
f (m+1(ξ*) n
⇒ f(x*) – pm(x*) =
·∏ (x * − x i )αi +1
(m + 1)! i=0
c.q.d.
Con la misma notación que la utilizada en el teorema precedente, una
consecuencia inmediata es que si f(x) es una función polinómica de grado
menor o igual que m, el error que se comete al interpolarla es nulo (pues la
derivada de orden (m+1) de un polinomio de grado menor o igual que m es la
función nula).
En la práctica el teorema anterior se utiliza para obtener cotas del error de
interpolación. En efecto, una consecuencia inmediata de dicho teorema es que
si se denota por M al valor:
M = Sup f (n+1(x)
x∈( a,b )
se verificará que:
∀x ∈ (a,b) :
|E(x)| = |f(x) – pm(x)| ≤
n
M
· ∏ (x − xi )αi +1
(m + 1)! i=0
de donde:
∀x ∈ (a,b) :
|E(x)| = |f(x) – pm(x)| ≤
n
M
·Sup ∏ (x − xi )αi +1
(m + 1)! x∈(a,b ) i=0
Si se denota por h a la longitud del intervalo (a, b) es evidente que, para todo
punto x interior a dicho intervalo se verificará que: |x-xi| < h. Ello nos permite
expresar la cota de error en la forma:
M
·h(m+1)
∀x ∈ (a,b) :
|E(x)| = |f(x) – pm(x)| ≤
(m + 1)!
Las desigualdades anteriores recogen cotas superiores del máximo del valor
absoluto de la función de error de interpolación. Tales cotas pueden ser
107
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
alcanzadas o no por la función de error (siendo frecuente que el error real de
interpolación sea ostensiblemente menor que la cota así calculada). Por ello el
interés de estas acotaciones se encuentra cuando la cota calculada es
suficientemente pequeña, pues en ese caso se pueden asegurar errores de
interpolación pequeños. Cuando la cota tiene un valor alto poco se puede
asegurar sobre el error de interpolación.
Por otra parte debe señalarse que las desigualdades anteriores pueden inducir
al lector que aborda por primera vez el estudio de la interpolación de Hermite a
sacar conclusiones erróneas. Por ejemplo es frecuente que a la vista de esta
expresión se piense (erróneamente) que un incremento en el número de puntos
del soporte o del número de derivadas de f(x) y del polinomio interpolador que
se hacen coincidir en cada punto del soporte, sin incrementar la longitud del
intervalo, conduce a un menor error de interpolación ya que al aumentar m
crece el valor de (m+1)!. Ello no siempre sucede así pues, aunque es cierto
que el factorial (m+1)! acaba creciendo con m más rápidamente que el valor
de hm, debe tenerse en cuenta que el valor de M = Sup f (m+1(x) no es
x∈( a,b )
independiente de m. Por otra parte el incremento del número de puntos del
soporte puede conducir a polinomios interpoladores de alto grado que
presenten oscilaciones muy pronunciadas lo cual no siempre será acorde con
la naturaleza de la función f(x) que se interpole.
Ejemplo:
Consideremos la función de Runge f(x) = (1+x2)-1 , el soporte {-1, 1} y los
enteros {1, 1}. El polinomio interpolador de Hermite en esta situación será de
grado m = 3. El error de interpolación, según el teorema precedente, estará
dado por la expresión:
∀x* ∈ [ −1,1] ∃ξ*=ξ(x*) / E(x*) =
f (iv (ξ*)
·(x * +1)2 ·(x * −1)2
4!
Busquemos una cota del error. Para ello se tiene que:
384·x 4
288·x 2
24
f (x) =
−
+
2 5
2 4
(1 + x ) (1 + x )
(1 + x 2 )3
(iv
cuyo máximo valor absoluto se alcanza en x = 0 y es: |f(iv(0)| = 24. Por tanto:
108
Programación y Métodos Numéricos
∀x ∈ [ −1,1] :
E(x) ≤
Interpolación polinómica
24
· sup (x + 1)2 ·(x − 1)2 = sup ⎡⎣(x + 1)2 ·(x − 1)2 ⎤⎦
x∈( −1,1)
4! x∈( −1,1)
Determinemos el máximo de q(x) = (x+1)2·(x-1)2 =(x2 – 1)2.Puesto que:
q’(x) =4·x·(x2 –1)
se tiene que la primera derivada de q(x) se anula en los puntos x(1) = -1, x(2) = 0
y x(3) = 1. Puesto que q(-1) = q(1) = 0 y q(0) = 1 puede concluirse que:
sup ⎡⎣(x + 1)2 ·(x − 1)2 ⎤⎦ = 1
x∈( −1,1)
lo que nos conduce a la acotación de error siguiente:
∀x ∈ [ −1,1] :
E(x) ≤ 1
Pero esta acotación es muy “pobre” si se tiene en cuenta que el máximo valor
de la función f(x) es 1.
Determinemos el error realmente cometido y su máximo valor. Para ello
debemos determinar el polinomio interpolador de Hermite. Dejamos al lector la
tarea de realizar los cálculos detallados que nos conducen a que:
1
·(3 – x2)
4
Por tanto, al disponer de la expresión de la función que se está interpolando, la
función de error es:
p3(x) =
E(x) = f(x) − p3 (x) =
1
1
− ·(3 − x 2 )
2
1+ x
4
Su primera derivada está dada por:
E’(x) =
−2·x
x
1
·x·((1 + x 2 )2 − 4)
+ =
2 2
2 2
(1 + x )
2 2·(1 + x )
que se anula en x = 0 y en la solución de (1+x2)2 – 4 = 0, es decir:
(1+x2)2 – 4 = 0 ⇒ (1 + x2) = ±2
109
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
lo que proporciona como raíces rales los valores x = -1 y x = 1. Puesto que
3 1
E(-1) = E(1) = 0 y E(1) = 1 − = puede concluirse que:
4 4
max E(x) = E(0) =
x∈( −1,1)
1
4
Los razonamientos anteriores demuestran que el máximo valor del error de
interpolación es, en este caso, la cuarta parte de la cota obtenida.
La figura siguiente recoge los grafos de f(x) y de p3(x).
f(x) = (1+x2)-1
p3(x) = (¼)·(3-x2)
Ejercicio propuesto:
a) Dertermínese la expresión del error de interpolación de Hermite que se
comete al interpolar f(x) = sen(x) en el soporte {0, π/2 , π} y para los
enteros {1, 0, 1}.
b) Obténgase a partir de la expresión anterior una cota del error en el
intervalo [0, π].
c) Determínese el polinomio interpolador de Hermite, p(x), que interpola a
f(x) en el soporte {0, π/2 , π} y para los enteros {1, 0, 1}.
d) Hállese el máximo valor de |f(x) – p(x)| y comparese este resultado con
la cota obtenida en el apartado b).
110
Programación y Métodos Numéricos
Interpolación polinómica
3.4. Interpolación de Hermite: la fórmula de interpolación de Newton.
3.4.1. Planteamiento
Las dos maneras presentadas anteriormente para determinar el polinomio
interpolador de Hermite (a través de la resolución del correspondiente sistema
de ecuaciones o mediante la fórmula de interpolación de Hermite en la que se
utilizan los polinomios de base de Hermite) no son los únicos caminos posibles.
En efecto, la fórmula de Newton que se presentó en el subapartado 2.3. para el
cálculo del polinomio interpolador de Lagrange puede generalizarse al caso de
la interpolación de Hermite. Pero para ello es necesario generalizar el concepto
de diferencia dividida. Todo ello es el objetivo de este subapartado.
En todo cuanto sigue se considerará que se trabaja en un soporte formado por
(n+1) puntos distintos {x0, x1, .., xn} y que en cada punto xi se conoce el valor de
una cierta función f(x) así como el de sus αi primeras derivadas. A tales
valores, se les denotará indistintamente por fi(0 , fi(1 , ..., fi( αi o por f(xi), f’(xi), ...,
f ( αi (xi ) . Además denotaremos por m al valor obtenido mediante: m = n +
n
∑α .
i=0
i
Este número entero no negativo indica, como se ha visto en apartados
anteriores, el grado del polinomio interpolador de Hermite de f(x) sobre el
soporte {x0, x1, .., xn} y para los enteros {α 0 , α1,..., αn } .
La idea básica de la fórmula de Newton consiste en expresar el polinomio
interpolador de Hermite, pm(x), en la forma:
( α0 )
(1)
(2)
2
pm(x) = a(0)
·(x − x 0 )α0 +
0 + a0 ·(x − x 0 ) + a 0 ·(x − x 0 ) + ... + a0
(
)
+ a1(0) + a1(1) ·(x − x1 ) + a1(2) ·(x − x1 )2 + ... + a1( α1 −1) ·(x − x1 )α1 ·(x − x 0 )( α0 +1) +
+ …….. +
(
)
n −1
αn
αn
(1)
(2)
2
a(0)
·∏ (x − x j )
n + an ·(x − x n ) + an ·(x − x n ) + ... + an ·(x − x n )
=
( α j +1)
=
j=0
(i−1)
n ⎛
α j +1 ⎞
⎛ αi (k )
k
k ⎞
(k )
a
·
x
x
a
·
x
x
·
−
+
−
⎜⎜∑ i (
⎟
∑
∑
0 (
i)
i ) ⎟ ∏(x − xj )
k =0
i=1 ⎝ ⎝ k = 0
⎠ j=0
⎠
α0
)
De esta manera los coeficientes a(k
((k = 0, .., αi) , (i = 0, ..., n) ) pueden
i
determinarse fácilmente a partir de las igualdades que debe satisfacer el
polinomio interpolador. Antes de continuar con este proceso, ilustremos lo
anterior con dos sencillos ejemplos en los que se esboza el proceso de cálculo
de los coeficientes del polinomio.
111
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Ejemplos:
1º) Considérese el problema de interpolación de Hermite planteado sobre un
soporte de 2 puntos {x0, x1} y para los enteros {1, 1}. La fórmula de Newton
consistiría básicamente en buscar el polinomio interpolador p3(x) en la forma:
(1)
(0)
2
(1)
2
p3(x) = a(0)
0 + a0 ·(x − x 0 ) + a1 ·(x − x 0 ) + a1 ·(x − x 0 ) ·(x − x1 )
lo que nos permitirá razonar como sigue:
(0
p3(x0) = f0(0 ⇒ a(0)
( que denotaremos como f[x0])
0 = f0
(1
(que denotaremos como f[x0, x0] )
p’3(x0) = f0(1 ⇒ a(1)
0 = f0
p3(x1) = f1(0 ⇒ a1(0)
f1(0 − f0(0
− f0(1
f[x 0 ,x1 ] − f [ x 0 ,x 0 ]
f1(0 − f0(0
f0(1
(x1 − x 0 )
=
−
=
=
2
(x1 − x 0 ) (x1 − x 0 )
(x1 − x 0 )
(x1 − x 0 )
(que denotaremos como f[x0, x0, x1] )
p’3(x1) = f1(1 ⇒ a1(1) =
f1(1 − f[x 0 ,x 0 ] 2·f [ x 0 ,x 0 ,x1 ]
−
(x1 − x 0 )2
( x1 − x 0 )
lo que, denotando por f[x1, x1] al valor f1(1 se puede
expresar como:
a1(1) =
f[x1,x1 ] − f[x 0 ,x 0 ]
( x1 − x 0 )
(x1 − x 0 )
=
=
2·
−
f[x1,x1 ] − f[x 0 ,x1 ]
( x1 − x 0 )
(x1 − x 0 )
f[x 0 ,x1 ] − f[x 0 ,x 0 ]
( x1 − x 0 )
( x1 − x 0 )
−
f[x 0 ,x1 ] − f[x 0 ,x 0 ]
( x1 − x 0 )
( x1 − x 0 )
=
=
f[x 0 ,x1,x1 ] f [ x 0 ,x 0 ,x1 ]
= f[x0, x0, x1, x1]
−
(x1 − x 0 )
( x1 − x0 )
El procedimiento de cálculo de estos coeficientes puede realizarse de forma
simple si se organizan en una tabla como la que a continuación se detalla. En
ella, los valores resaltados en letra negrita se corresponden con los
coeficientes y los valores que se proporcionan en cursiva se corresponden con
112
Programación y Métodos Numéricos
Interpolación polinómica
datos del problema. El resto se calcula de forma similar a como se detalló para
las diferencias divididas
x0
f0( 0
x0
---
x1
f1( 0
x1
--
f0( 1 = f[x0, x0]
f[x0, x1]
f[x0, x0, x1]
f1(1 = f[x1, x1]
f[x0, x1, x1]
f[x0, x0, x1, x1]
2º) Consideremos ahora el problema de interpolación de Hermite planteado
sobre un soporte de 2 puntos {x0, x1} y para los enteros {2, 1}. La fórmula de
Newton consistiría básicamente en buscar el polinomio interpolador p4(x) en la
forma:
(1)
(2)
2
(0)
3
(1)
3
p4(x) = a(0)
0 + a0 ·(x − x 0 ) + a0 ·(x − x 0 ) + a1 ·(x − x 0 ) + a1 ·(x − x 0 ) ·(x − x1 )
lo que nos permitirá razonar como sigue:
(0
p4(x0) = f0(0 ⇒ a(0)
( que denotaremos como f[x0])
0 = f0
(1
(que denotaremos como f[x0, x0] )
p’4(x0) = f0(1 ⇒ a(1)
0 = f0
f0(2
(que denotaremos como f[x0, x0, x0] )
2
f0(2
(0
(0
(1
f − f0
f0
2
= 1
−
−
=
3
(x1 − x 0 ) (x1 − x 0 )2 (x1 − x 0 )
p”4(x0) = f0(2 ⇒ a(2)
0 =
p4(x1) = f1(0 ⇒ a1(0)
f1(0 − f0(0
f0(2
− f0(1
(x − x 0 )
2
= 1
−
=
2
(x1 − x 0 )
(x1 − x 0 )
=
f [ x 0 ,x1 ] − f [ x 0 ,x 0 ]
(x1 − x 0 )
2
=
−
f [ x 0 ,x 0 ,x 0 ]
(x1 − x 0 )
=
f [ x 0 ,x 0 ,x1 ] − f [ x 0 ,x 0 ,x 0 ]
(x1 − x 0 )
(que denotaremos como f[x0, x0, x0, x1] )
113
Interpolación polinómica.
(1
1
p’4(x1) = f
⇒a
(1)
1
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
f1(1 − f[x 0 ,x 0 ] 2·f [ x 0 ,x 0 ,x 0 ] 3·f [ x 0 ,x 0 ,x 0 ,x1 ]
=
−
−
=
2
(x1 − x 0 )3
(x1 − x 0 )
( x1 − x0 )
f [ x 0 ,x 0 ,x1 ] − f [ x 0 ,x 0 ,x 0 ]
f [ x1,x1 ] − f[x 0 ,x 0 ] 2·f [ x 0 ,x 0 ,x 0 ]
(x1 − x 0 )
−
− 3·
=
2
3
(x1 − x 0 )
(x1 − x 0 )
( x1 − x 0 )
=
f [ x1,x1 ] − f[x 0 ,x 0 ]
(x1 − x 0 )3
f [ x 0 ,x 0 ,x 0 ]
+
( x1 − x0 )
2
−
3·f [ x 0 ,x 0 ,x1 ]
(x1 − x 0 )2
=
f [ x 0 ,x1 ] − f [ x 0 ,x 0 ]
f [ x1,x1 ] − f[x 0 ,x 0 ] f [ x 0 ,x 0 ,x 0 ]
(x1 − x 0 )
=
+
− 3·
=
2
3
(x1 − x 0 )
(x1 − x 0 )2
( x1 − x 0 )
=
=
=
=
f [ x1,x1 ] − f[x 0 ,x1 ]
(x1 − x 0 )3
f [ x 0 ,x1,x1 ]
(x1 − x 0 )
2
+
+
f [ x 0 ,x 0 ,x 0 ]
( x1 − x0 )
f [ x 0 ,x 0 ,x 0 ]
( x1 − x0 )
2
f [ x 0 ,x1,x1 ] − f [ x 0 ,x 0 ,x1 ]
(x1 − x 0 )2
f [ x 0 ,x 0 ,x1,x1 ]
(x1 − x 0 )
−
− 2·
−
2
− 2·
f [ x 0 ,x1 ]
(x1 − x 0 )3
f [ x 0 ,x 0 ,x1 ]
(x1 − x 0 )2
+ 2·
f [ x 0 ,x 0 ]
(x1 − x 0 )3
=
=
f [ x 0 ,x 0 ,x1 ] − f [ x 0 ,x 0 ,x 0 ]
( x1 − x0 )
2
=
f [ x 0 ,x 0 ,x 0 ,x1 ]
( x1 − x 0 )
(que denotaremos como f[x0, x0, x0, x1, x1]).
Al igual que en el ejemplo anterior, el procedimiento de cálculo de estos
coeficientes puede realizarse de forma simple si se organizan en una tabla
como la que a continuación se detalla. En ella, los valores resaltados en letra
negrita se corresponden con los coeficientes y los valores que se proporcionan
en cursiva se corresponden con datos del problema. El resto se calcula de
forma similar a como se detalló para las diferencias divididas
114
Programación y Métodos Numéricos
Interpolación polinómica
x0
f0( 0
x0
---
x0
---
---
x1
f1( 0
f[x0, x1]
f[x0, x0, x1]
f[x0, x0, x0, x1]
x1
--
f1(1 = f[x1, x1]
f[x0, x1, x1]
f[x0, x0, x1, x1]
f0( 1 = f[x0, x0]
f0( 2
= f[x0, x0, x0]
2
f[x0, x0, x0, x1, x1]
•
Las tablas de los ejemplos anteriores permiten vislumbrar la simplicidad del
proceso de aplicación la fórmula de Newton al cálculo del polinomio
interpolador de Hermite: basta con modificar las “primeras” columnas de la
tabla para ir calculando los coeficientes del polinomio interpolador de forma
similar al caso de la interpolación de Lagrange.
Pero en los ejemplos anteriores han aparecido diferencias divididas en las que
aparecen puntos repetidos y que conviene definir adecuadamente. A ello
dedicaremos el siguiente subapartado. Como en él consideraremos el caso
general, para evitar confusiones con el número de veces que se repite un
mismo punto en una diferencia dividida en adelante indicaremos dicho número
escribiéndolo entre paréntesis a continuación del punto. Así, por ejemplo
escribiremos f[x0(2), x1(3), x2(1)] en lugar de f[x0, x0, x1, x1, x1, x2].
115
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
3.4.2. Generalización del concepto de diferencia dividida
Consideremos, en primer lugar, un soporte de k puntos distintos {x0, x1, ..., xk-1}
con k > 0, y supongamos que en cada punto xi se conoce el valor que toman
una cierta función f(x) así como sus αi primeras derivadas. Denotemos además
k −1
k −1
i=0
i=0
por mk-1 al número entero positivo dado por: mk −1 = ∑ (αi + 1) − 1 = k − 1 + ∑ α i y
por pmk −1 (x) al polinomio interpolador de Hermite de la función f(x) sobre el
soporte {x0, x1, ..., xk-1} y para los enteros {α0 , α1,..., αk −1} . Se verifica entonces
que pmk −1 (x) es un polinomio de grado inferior o igual a mk-1 que satisface las
(mk-1 + 1) igualdades:
p(mj k −1 (xi ) = f ( j (xi )
( 0 ≤ j ≤ αi ; 0 ≤ i ≤ k − 1)
Procedamos a añadir un nuevo punto, xk, al soporte anterior y denotemos por
mk al entero positivo mk = mk −1 + 1 . El nuevo polinomio interpolador de Hermite
de f(x) sobre el soporte {x0, x1, ..., xk-1, xk} para los enteros {α0 , α1,..., αk −1,0} ,
que denotaremos por pmk (x) , será el (único) polinomio de grado inferior o igual
a mk que satisfaga las (mk+1) igualdades:
p(mj k (xi ) = f ( j (xi )
( 0 ≤ j ≤ αi ; 0 ≤ i ≤ k − 1)
pmk (xk ) = f(xk)
(1.1.)
(1.2.)
La determinación de pm(x) puede realizarse a partir de pm-1(x) según se indica
en la propiedad siguiente:
Propiedad 1.
Con la notación anterior, el polinomio de grado menor o igual a mk que
satisface las igualdades (1.1.) y (1.2.) puede expresarse como:
k −1
pmk (x) = pmk −1 (x) + C·∏ (x − x i )αi +1
i=0
donde la constante C que aparece en la expresión anterior está dada por:
116
Programación y Métodos Numéricos
Interpolación polinómica
C=
f(xk ) − pmk −1 (xk )
k −1
∏(x
i=0
k
− xi )
αi +1
Demostración:
El grado del polinomio pmk (x) será, a lo sumo, el mayor de los grados de los
dos polinomios cuya suma lo define en el enunciado de la propiedad. El grado
de pmk −1 (x) es mk-1. El del segundo polinomio que interviene en la definición es:
k −1
k −1
i=0
i= 0
∑ ( αi + 1) = k + ∑ αi = mk −1 + 1 = mk
Por tanto el grado de pmk (x) es el que se afirma en la propiedad.
Por otra parte las igualdades (1.1.) son evidentes pues:
∀(s, j) / {0 ≤ j ≤ α s ,0 ≤ i ≤ k − 1} :
p(mj k (x s ) = p(mj k −1 (x s ) + C·
⎞
d j ⎛ k −1
(x − xi )αi +1 ⎟
= p(mj k −1 (x s ) = f ( j (x s )
j ⎜∏
dx ⎝ i=0
⎠ x = xs
Además, en el punto xk se verifica la igualdad (1.2) pues:
k −1
pmk (xk ) = pmk −1 (xk ) + C·∏ (xk − xi )αi +1 = pmk −1 (xk ) +
i=0
f(xk ) − pmk −1 (xk ) k −1
·∏ (xk − xi )αi +1 =
k −1
α +1
∏ ( x k − x i ) i i=0
i=0
= pmk −1 (xk ) + f(xk ) − pmk −1 (xk ) = f(xk )
c.q.d.
Definición 1.
Con la notación utilizada anteriormente, se denomina diferencia dividida de la
k
función f(x) en los puntos {x i }i=0 , repitiendo ( αi +1) veces el punto xi para
0 < i < k-1 y el punto xk una vez, al valor:
C=
f(xk ) − pmk −1 (xk )
k −1
∏(x
i=0
k
− xi )
A esta diferencia dividida la denotaremos por:
117
αi +1
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
f [ x0 (α0 + 1),x1(α1 + 1),...,xk −1(αk −1 + 1),xk (1)] .
•
Sea ahora {β0 ,.., βk ,..., βr } un conjunto de (r+1) enteros no nulos siendo, al
⎛ r
⎞
menos, jk>0. Denotemos por m al valor m = r + ⎜ ∑ βk ⎟ − 1 y por pm (x) al
⎝ i=0 ⎠
polinomio interpolador de Hermite de funa función f(x) sobre el soporte {x0, ...,
xk-1, xk, xk+1, ..., xr} y para los enteros {β0 ,.., βk −1, ( βk − 1) , βk +1,..., βr } . Dicho
polinomio es el único de grado menor o igual que m que satisface las (m + 1)
igualdades:
p(mj (x i ) = f ( j (x i )
p(mj (x k ) = f ( j (x k )
( 0 ≤ j ≤ βi; i = 0,...,k − 1,k + 1,...,r )
( 0 ≤ j ≤ βk − 1)
Procedamos entonces a determinar el polinomio interpolador de Hermite de f(x)
sobre el mismo soporte {x0, ..., xk-1, xk, xk+1, ..., xr} pero añadiendo una
condición más en las derivadas que deben hacerse coincidir en xk, es decir
para los enteros {β0 ,.., βk −1, βk , βk +1,..., βr } . Dicho polinomio, que denotaremos por
pm+1(x), es el único polinomio de grado inferior o igual a (m+1) que satisface las
(m+2) condiciones:
p(mj +1(xi ) = f ( j (x i )
p(mj +1(x k ) = f ( j (x k )
( 0 ≤ j ≤ αi; i = 0,...,k − 1,k + 1,...,n )
( 0 ≤ j ≤ βk − 1)
p(mβ+k 1+1(xk ) = f ( βk +1(xk )
(2.1.)
(2.2.)
(2.3.)
La determinación de pm+1(x) puede realizarse según se indica en la siguiente
propiedad.
Propiedad 2.
Con la notación anterior, el polinomio de grado (m+1) que satisface las
igualdades (2.1.), (2.2.) y (2.3.) puede expresarse como:
118
Programación y Métodos Numéricos
Interpolación polinómica
⎛ r
⎞
β
pm+1(x) = pm (x) + C·⎜ ∏ (x − xi )βi +1 ⎟·( x − xk ) k
⎜⎜ i=0
⎟⎟
⎝ i≠ k
⎠
donde la constante C que aparece en la expresión anterior está dada por:
C=
f ( βk (xk ) − p(mβk (xk )
r
βk !·∏ ( xk − xi )
αi +1
i =0
i ≠k
Demostración:
El grado del polinomio pm+1(x) será, a lo sumo, el mayor de los grados de los
dos polinomios cuya suma interviene en su expresión dada en el enunciado. El
grado de pm(x) es m. El del segundo polinomio que interviene en la definición
es:
r
r
r
i= 0
i≠ k
i= 0
i≠ k
i=0
βk + ∑ ( βi + 1) = βk + r + ∑ βi = n + ∑ βi = m + 1
Por tanto el grado de pm+1(x) es el que se afirma en la propiedad.
Por otra parte las igualdades (2.1.) son evidentes pues:
∀(s, j) / {0 ≤ j ≤ βs ,s ∈ {0,...,k − 1,k + 1,...,r}} :
p
(j
m +1
⎛
⎞
r
d( j ⎜
βk
βi +1 ⎟
(x s ) = p (x s ) + C· j (x − xk ) ·∏ (x − xi )
= pm( j (x s ) = f ( j (x s )
⎟
dx ⎜⎜
i=0
⎟
i≠k
⎝
⎠ x = xs
(j
m
Asimismo las igualdades (2.2.) también se satisfacen pues:
∀j ∈ {0,..., βk − 1} :
p
(j
m +1
⎛
⎞
r
dj ⎜
βk
βi +1 ⎟
(xk ) = p (xk ) + C· j ( x − xk ) ∏ (x − xi )
= pm( j (x s ) = f ( j (x s )
⎜
⎟
dx ⎜
i=0
⎟
i≠k
⎝
⎠ x = xk
(j
m
119
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Además también se verifica la igualdad (2.3.) pues:
r
p(mβ+k 1(xk ) = pm(βk (xk ) + C·( βk !)·∏ (xk − xi )βi +1 =
i= 0
i≠ k
( βk
m
= p (x k ) +
f ( βk (xk ) − p(mβkk−1 (xk )
r
βk !·∏ ( xk − xi )
βi +1
r
·(βk !)·∏ (xk − x i )βi +1 =
i=0
r ≠k
i= 0
r ≠k
= p(mβk (xk ) + f (βk (xk ) − p(mβk (xk ) = f (βk (xk )
c.q.d.
Definición 2.
Con la notación utilizada anteriormente, se denomina diferencia dividida de la
r
función f(x) en los puntos {x i }i=0 repitiendo ( βi + 1) veces el punto xi para
i ∈ {0,...,k − 1,k,k + 1,...,n} , al valor:
C=
f ( βk (xk ) − p(mβk (xk )
r
βk !·∏ ( xk − xi )
βi +1
i=0
i≠k
A esta diferencia dividida la denotaremos por:
f [ x0 (α0 + 1),...,xk −1(αk −1 + 1),xk (βk + 1),xk +1(αk +1 + 1),...,xn (αn + 1)]
•
Las propiedades 1 y 2 muestran una forma de calcular el polinomio interpolador
de Hermite. De ella nos ocuparemos en el subapartado siguiente. Pero antes
de ello será necesario que examinemos algunas de las propiedades de las
diferencias divididas. La primera propiedad, que se demuestra en el teorema
siguiente, asegura la unicidad del valor de la diferencia dividida con
independencia del orden en que se tomen los puntos con que se define. Más
concretamente:
Teorema 8
Sea {j0, j1, ..., jn} una permutación cualquiera de los índices {0, 1, ..., n}. Se
verifica que:
120
Programación y Métodos Numéricos
Interpolación polinómica
f [ x 0 (α 0 + 1),x1(α1 + 1),...,xn (αn + 1)] = f ⎡⎣ x j0 (α j0 + 1),x j1 (α j1 + 1),...,x jn (α jn + 1)⎤⎦
Demostración:
n
Si denotamos por m al valor m’ = n − 1 + ∑ αi el polinomio interpolador de
i= 0
Hermite de la función f(x) sobre el soporte {x0, x1, ..., xn} para los enteros { α 0 ,
..., αn − 1 } será un polinomio pm’(x) de grado m’. Según la propiedad 2 antes
demostrada, el polinomio interpolador de Hermite de la función f(x) sobre el
soporte {x0, x1, ..., xn} para los enteros { α 0 , ..., αn } será el polinomio pm(x) de
grado m = m’+1 dado por la expresión:
n
pm (x) = pm ' (x) + f [ x 0 (α 0 + 1),...,xn (αn + 1)] ∏ (x − xi )αi +1
i=0
Obsérvese que en este polinomio el coeficiente del término de mayor grado es:
f [ x 0 (α 0 + 1),...,x n (αn + 1)]
Denotemos ahora por qm’(x) al polinomio interpolador de Hermite de la función
f(x) sobre el mismo soporte ordenado en la forma x j0 ,x j1 ,...,x jn y para los
enteros
{α
j0
{
}
}
, α j1 ,..., α jn − 1 . Según la propiedad 2 antes demostrada, el
polinomio interpolador de Hermite de la función f(x) sobre el soporte
x j0 ,x j1 ,...,x jn para los enteros α j0 , α j1 ,..., α jn será el polinomio qm(x) de grado
{
}
{
}
m = m’+1 dado por la expresión:
n
α +1
qm (x) = qm ' (x) + f ⎡⎣ x j0 (α j0 + 1),...,x jn (α jn + 1)⎤⎦ ∏ (x − x ji ) ji
i=0
Obsérvese que en este polinomio el coeficiente del término de mayor grado es:
f ⎡⎣ x j0 (α j0 + 1),...,x jn (α jn + 1)⎤⎦
Por la unicidad del polinomio interpolador de Hermite puede concluirse que
qm (x) ≡ pm (x) y por consiguiente los coeficientes de los términos del mismo
grado deben coincidir. Por tanto:
f [ x 0 (α 0 + 1),...,x n (αn + 1)] = f ⎡⎣ x j0 (α j0 + 1),...,x jn (α jn + 1)⎤⎦
c.q.d.
121
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
El teorema siguiente nos proporciona una forma cómoda de calcular las
diferencias divididas con puntos repetidos y en las que interviene más de un
punto.
Teorema 9
Sean “i” y “k” dos índices distintos y pertenecientes al conjunto de índices {0, 1,
..., n}. Considérense además los enteros no negativos {j0, ..., ji, ..., jk,..., jn}. Se
verifica que:
(x k − x i )·f [ x 0 ( j0 + 1),...,xi ( ji + 1),...,xk ( jk + 1),...,x n ( jn + 1)] =
= f [ x 0 ( j0 + 1),...,xi ( ji ),...,x k ( jk + 1),...,xn ( jn + 1)] −
− f [ x 0 ( j0 + 1),...,x i ( ji + 1),...,xk ( jk ),...,xn ( jn + 1)]
Demostración:
n
Sea m = n + ∑ ji y denotemos por pm-2(x) al polinomio de grado (m-2) que
i= 0
interpola en el sentido de Hermite a la función f(x) para los enteros {j0, ... , ji-1
,(ji-1), ji+1, ..., jk-1, (jk-1), jk+1 ..., jn}. Si incrementamos en una unidad el orden de
derivación que se hace coincidir en xi entre f(x) y el polinomio interpolador de
Hermite, se tendrá el polinomio:
⎛
⎞
⎜ n
⎟
js +1
j
j
qm−1(x) = pm−2 (x) + Ci ⎜ ∏ ( x − x s ) ⎟·( x − xi ) i ·( x − xk ) k
⎜ s =0
⎟
⎜ ss≠≠ik
⎟
⎝
⎠
donde:
Ci = f [ x 0 ( j0 + 1),..., xi−1(ji−1 + 1),xi ( ji + 1),xi+1( ji+1 + 1),..., xk −1( jk −1 + 1), xk ( jk ), xk +1(jk +1 + 1),..., xn ( jn + 1)]
Incrementando ahora en una unidad el orden de derivación que se hace
coincidir en xk se tendrá el polinomio:
122
Programación y Métodos Numéricos
Interpolación polinómica
⎛
⎞
⎛ n
⎞
⎜ n
⎟
js +1
ji
jk
js +1 ⎟
j
⎜
qm (x) = pm−2 (x) + Ci ·⎜ ∏ ( x − x s ) ⎟·( x − xi ) ·( x − xk ) + Ck ∏ ( x − x s )
·( x − xk ) k
⎜⎜ s=0
⎟⎟
⎜ s =0
⎟
⎜ ss≠≠ik
⎟
⎝ s ≠k
⎠
⎝
⎠
donde:
Ck = f [ x 0 ( j0 + 1),..., xi−1( ji−1 + 1),xi ( ji + 1),xi+1( ji+1 + 1),...,xk −1( jk −1 + 1), xk +1( jk +1 + 1),xk +1( jk +1 + 1),..., xn ( jn + 1)]
Podemos repetir este mismo proceso, a partir de pm-2(x), pero incrementando
primero el orden de derivación en xk y posteriormente en xi. Se tendrían así los
polinomios:
⎛
⎞
⎜ n
⎟
js +1
j
j
rm−1(x) = pm−2 (x) + C'k ⎜ ∏ ( x − x s ) ⎟·( x − xi ) i ·( x − xk ) k
⎜ s =0
⎟
⎜ ss≠≠ik
⎟
⎝
⎠
⎛
⎞
⎛ n
⎞
⎜ n
⎟
js +1
ji
jk
js +1 ⎟
j
⎜
rm (x) = pm−2 (x) + C'k ⎜ ∏ ( x − x s ) ⎟·( x − xi ) ·( x − xk ) + C'i ∏ ( x − x s )
·( x − xi ) i
⎜
⎟
⎜ s =0
⎟
⎜ s =0
⎟
⎜ ss≠≠ik
⎟
⎝ s ≠i
⎠
⎝
⎠
donde:
C'k = f [ x 0 ( j0 + 1),..., xi−1( ji−1 + 1), xi ( ji ), xi+1( ji+1 + 1),...,xk −1 ( jk −1 + 1), xk +1 ( jk +1 + 1), xk +1( jk +1 + 1),..., xn ( jn + 1)]
C'i = f [ x 0 ( j0 + 1),..., xi−1( ji−1 + 1),xi ( ji + 1),xi+1( ji+1 + 1),..., xk −1( jk −1 + 1),xk +1( jk +1 + 1), xk +1( jk +1 + 1),..., xn ( jn + 1)]
Los polinomios qm(x) y rm(x) son el mismo polinomio pues ambos están
determinados sobre el mismo soporte y para el mismo juego de grados de
derivación. Por tanto los coeficientes de sus términos del mismo grado deben
coincidir. Igualando los términos en xm se tiene que Ck = C’i lo que nos indica
que el valor de la diferencia dividida de f(x) en x0 repetido (j0+1) veces, x1
repetido (j1+1) veces, .... y xn repetido (jn+1) veces es independiente de cual
sea el orden seguido para hacer coincidir en cada punto xi las ji primeras
derivadas del polinomio interpolador y de la función que se interpola.
Identificando ahora los coeficientes de los términos en xm-1, y teniendo en
cuenta que como se acaba de demostrar Ck = C’i, se tiene que:
123
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
⎛
⎞
⎛
⎞
n
n
⎜
⎟
⎜
Ci − Ck jk ·xk + ∑ ( js + 1)·x s = C'k − C'i ji ·xi + ∑ ( js + 1)·x s ⎟ ⇒
⎜⎜
⎟⎟
⎜⎜
⎟⎟
s =0
s =0
s ≠k
s ≠i
⎝
⎠
⎝
⎠
⎛
⎞
⎛
⎞
n
n
⇒ C'k − Ci = Ck ⎜ ji ·xi + ∑ ( js + 1)·x s ⎟ − Ck ⎜ jk ·xk + ∑ ( js + 1)·x s ⎟ ⇒
⎜⎜
⎟⎟
⎜⎜
⎟⎟
s =0
s =0
s ≠i
s ≠k
⎝
⎠
⎝
⎠
⎛
⎞
n
n
⎜
⎟
⇒ C'k − Ci = Ck ⎜ ji ·xi + ( jk + 1)·xk + ∑ ( js + 1)·x s − jk ·xk − ( ji + 1)·xi − ∑ ( js + 1)·x s ⎟ ⇒
s =0
s =0
⎜
⎟
s ≠i
s ≠i
⎜
⎟
s ≠k
s ≠k
⎝
⎠
⇒ C'k − Ci = Ck ( xk − x i ) ⇒ Ck =
C'k − Ci
(x k − x i )
Sustituyendo Ck, C’k y Ci por sus expresiones como diferencias divididas
escritas anteriormente, se tiene demostrado este teorema.
c.q.d.
Hasta aquí hemos prestado atención a las diferencias divididas definidas sobre
más de un punto (repetidos cada uno de ellos (ji + 1) veces). También
conocemos de lo desarrollado en la interpolación de Lagrange que las
diferencias divididas en un único punto repetido una sóla vez coinciden con el
valor que la función toma en dicho punto: f[xi] = f[xi(1)] = f(xi). Pero para acabar
de definir las posibles diferencias divididas que se utilizarán es necesario
contemplar también las diferencias divididas en un único punto xi repetido (ji+1)
veces. Este objetivo puede lograrse de dos formas diferentes. Una de ellas,
que desarrollaremos en el anexo a este apartado, consiste en considerar un
soporte con (ji+1) puntos, plantearse la expresión de la diferencia dividida en
ellos (repetidos una sola vez) y posteriormente hacer tender las distancias
entre puntos hacia cero.
La segunda forma de proceder, que desarrollamos a continuación, consiste en
seguir el mismo proceso con el que se han definido las diferencias divididas en
este apartado. Para ello comencemos determinando, en el teorema siguiente,
124
Programación y Métodos Numéricos
Interpolación polinómica
la expresión del polinomio interpolador cuando se tiene un único punto {xi} en el
soporte y se conocen en él los valores de una función f(x) y los de sus βi
primeras derivadas.
Teorema 1025
El polinomio interpolador de Hermite de f(x) sobre el soporte {xi} para el entero
βi es:
1
1 ( βi
pβi (x) = f(xi ) + f '(xi )·(x − xi ) + f "(xi )·(x − xi )2 + ... +
f (xi )·(x − xi )βi
2!
βi !
Demostración:
Se verifica fácilmente que:
βi
1
f (k (xi )·(x − xi )(k − j)
k = j (k − j)!
p(βji (x) = ∑
(0 ≤ j ≤ βi )
por lo que:
p(βji (xi ) = f ( j (xi )
(0 ≤ j ≤ βi )
c.q.d.
El teorema anterior, para el caso en que βi = 0 nos conduce a que p0(x) = f(xi)
que, con la notación de diferencias divididas, se expresa en la forma:
p0(x) = f[xi(1)]
Si ahora contemplamos el caso en que βi = 1 el nuevo polinomio interpolador
estará dado por p1(x) = f(xi) + f’(xi)·(x-xi). Si, por analogía con el proceso
seguido anteriormente, buscamos expresar este polinomio en la forma:
p1(x) = p0(x) + f[xi(2)]·(x-xi) = f(xi) + f[xi(2)]·(x-xi)
deberemos definir la diferencia dividida f[xi(2)] como f[xi(2)] = f’(xi), con lo que:
p1(x) = f[xi(1)] + f[xi(2)]·(x-xi)
25
El polinomio interpolador que se define en este teorema coincide con el polinomio resultante
de considerar los (βi+1) primeros términos del desarrollo en serie de Taylor de f(x) en torno al
punto xi. Por ello dicho polinomio se conoce también con el nombre de polinomio de Taylor de
la función f(x) de orden βi en xi. Por el mismo motivo el proceso de interpolar con un único
punto de soporte en el que se conoce el valor de una función y el de sus βi primeras derivadas
se denomina también interpolación de Taylor.
125
Interpolación polinómica.
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
Procedamos por recurrencia, admitiendo26 que para algún valor (k-1) el
polinomio interpolador de Hermite de f(x) sobre el soporte {xi} para el entero
(k-1):
pk −1(x) = f(xi ) + f '(xi )·(x − xi ) + ... +
1
f (k −1(xi )·(x − xi )k −1
(k − 1)!
puede expresarse en la forma:
k −1
pk −1(x) = ∑ f ( j [xi ( j + 1)]·(x − xi ) j
j= 0
Se tiene entonces que el polinomio interpolador de Hermite de f(x) sobre el
soporte {xi} para el entero k:
pk (x) = f(xi ) + f '(xi )·(x − xi ) + ... +
1
1
f (k −1(xi )·(x − xi )k −1 + f (k (xi )·(x − xi )k
(k − 1)!
k!
puede expresarse en la forma:
βi
pβi (x) = ∑ f ( j [xi ( j + 1)]·(x − xi ) j = pβi −1 + f[xi (βi + 1)]·(x − xi )βi
j=0
sin más que denominar diferencia dividida f[xi(k+1)] al valor:
f [ xi (k)] =
1 (k
f (xi )
k!
•
Las definiciones y propiedades anteriores justifican el uso de tablas de
diferencias divididas análogas a las desarrolladas para el cálculo del polinomio
interpolador de Lagrange mediante la fórmula de Newton. En la página
siguiente se recoge un ejemplo de tal tipo de tablas, para el caso concreto de
una interpolación de Hermite sobre un soporte con tres puntos {x0, x1, x2} y para
los valores {3, 1, 2}.
En el subapartado siguiente, tras concretar la fórmula generalizada de Newton
desarrollaremos algún ejemplo concreto.
26
Obsérvese que, según lo anterior esto sucede, al menos, para k = 2.
126
Programación y Métodos Numéricos
Interpolación polinómica
x0
f(x0)
x0
----
f’(x0)
x0
----
----
x0
----
----
x1
f(x1)
f[x0(1),x1(1)]
f[x0(2),x1(1)]
f[x0(3),x1(1)]
f[x0(4),x1(1)]
x1
----
f’(x1)
f[x0(1),x1(2)]
f[x0(2),x1(2)]
f[x0(3),x1(2)]
f[x0(4),x1(2)]
x2
f(x2)
f[x1(1),x2(1)]
f[x1(2),x2(1)]
f[x0(1),x1(2),x2(1)]
f[x0(2),x1(2),x2(1)]
f[x0(3),x1(2),x2(1)]
f[x0(4),x1(2),x2(1)]
x2
----
f’(x2)
f[x1(1),x2(2)]
f[x1(2),x2(2)]
f[x0(1),x1(2),x2(2)]
f[x0(2),x1(2),x2(2)]
f[x0(3),x1(2),x2(2)]
f[x0(4),x1(2),x2(2)]
x2
----
----
1
f "(x 2 )
2
f[x1(1),x2(3)]
f[x1(2),x2(3)]
f[x0(1),x1(2),x2(3)]
f[x0(2),x1(2),x2(3)]
f[x0(3),x1(2),x2(3)]
1
f "(x 0 )
2
----
1
f "(x 0 )
3!
127
f[x0(4),x1(2),x2(3)]
Interpolación polinómica
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
3.4.3. La fórmula de Newton para el cálculo del polinomio interpolador de
Hermite.
El uso del teorema 10 del subapartado anterior así como el uso reiterado de las
propiedades 1ª y 2ª allí demostradas nos permite expresar el polinomio
interpolador de Hermite de una función f(x) sobre el soporte {x0, x1, x2, ..., xn}
para los enteros {α 0 , α1, α 2 ,..., αn } en la forma:
pm (x) = f [ x 0 (1)] + f [ x 0 (2)]·(x − x 0 ) + f [ x 0 (3)]·(x − x 0 )2 + ... + f [ x 0 (α 0 + 1)]·(x − x 0 )α0 +
+ f [ x 0 (α 0 + 1),x1(1)]·( x − x 0 )
α0 +1
+ f [ x 0 (α 0 + 1),x1(2)]·( x − x 0 )
+ f [ x 0 (α 0 + 1),x1(α1 + 1)]·( x − x 0 )
α0 +1
α0 +1
(x − x1 ) + ... +
(x − x1 )α1 +
+ f [ x 0 (α 0 + 1),x1(α1 + 1),x 2 (1)]·( x − x 0 )
α0 +1
(x − x1 )α1 +1 +
+ f [ x 0 (α 0 + 1),x1(α1 + 1),x 2 (2)]·( x − x 0 )
α0 +1
(x − x1 )α1 +1(x − x 2 ) +
+ f [ x 0 (α 0 + 1),x1(α1 + 1),x 2 (3)]·( x − x 0 )
α0 +1
(x − x1 )α1 +1(x − x 2 )2 + .... +
+ f [ x 0 (α 0 + 1),x1(α1 + 1),x 2 (α 2 + 1)]·( x − x 0 )
α0 +1
(x − x1 )α1 +1(x − x 2 )α2 +
+ ............................................................................................. +
n −1
+ f [ x 0 (α 0 + 1),x1(α1 + 1),...,xn−1(αn−1 + 1),xn (1)]·∏ ( x − x 0 )
αi +1
+
i=0
⎛ n−1
α +1 ⎞
+ f [ x 0 (α 0 + 1),x1(α1 + 1),...,x n−1(αn−1 + 1),xn (2)]·⎜ ∏ ( x − x 0 ) i ⎟·(x − xn ) +
⎝ i=0
⎠
⎛ n−1
α +1 ⎞
+ f [ x 0 (α 0 + 1),x1(α1 + 1),...,xn−1(αn−1 + 1),xn (3)]·⎜ ∏ ( x − x 0 ) i ⎟·(x − xn )2 +
⎝ i=0
⎠
+ ..................................................................................................+
⎛ n−1
α +1 ⎞
+ f [ x 0 (α 0 + 1),x1(α1 + 1),...,xn−1(αn−1 + 1),xn (αn + 1)]·⎜ ∏ ( x − x 0 ) i ⎟·(x − xn )αn
⎝ i=0
⎠
128
Programación y Métodos Numéricos
Interpolación polinómica
La fórmula anterior puede escribirse más abreviadamente como:
α0
pm (x) = ∑ f [ x 0 (k + 1)]·( x − x i ) +
k
k =0
(i−1)
n ⎛
α j +1 ⎞
⎛ αi
k ⎞
+ ∑ ⎜⎜ ⎜ ∑ f [ x 0 (α 0 + 1),...,xi−1(αi−1 + 1),xi (k + 1)]·( x − xi ) ⎟·∏ ( x − x j ) ⎟⎟
i=1 ⎝ ⎝ k =0
⎠ j= 0
⎠
que se conoce con el nombre de fórmula de Newton para el cálculo del
polinomio interpolador de Hermite (o fórmula generalizada de interpolación
de Newton).
En ella puede apreciarse que los únicos valores de la tabla de diferencias
divididas que intervienen son los ubicados en el extremo derecho de cada fila.
Los restantes valores de la tabla sólo son utilizados para calcular los que
intervienen en esta fórmula.
Ilustremos el uso de la fórmula con un ejemplo:
Ejemplo:
Calculemos el polinomio interpolador de Hermite de la función sen(x) sobre
el soporte {-π/2, 0, π/2} para los enteros { 3, 0, 2}. Para ello podemos calcular
los valores:
f(-π/2) = -1 (= f[x0(1)]),
f’(-π/2) = 0 (= f[x0(2)]) ,
( 13! ) f '''( −π 2 ) = 0
(½)·f”(-π/2) = ½ (= f[x0(3)])
(= f[x0(4)])
f(0) = 0 (= f[x1(1)])
f(π/2) = 1 (= f[x2(1)]) ,
f’(π/2) = 0 (= f[x2(2)]),
(½)·f”(π/2) = -½ (= f[x2(3)])
Con estos valores podemos calcular las diferencias divididas:
f [ x 0 (1),x1(1)] =
f [ x 0 (2),x1(1)] =
f [ x1(1)] − f [ x 0 (1)]
x1 − x 0
=
0 − ( −1)
π
2
f [ x 0 (1),x1(1)] − f [ x 0 (2)]
x1 − x 0
129
=
=
2
π
(2π) − 0 =
π
2
4
π2
Interpolación polinómica
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
f [ x 0 (3),x1(1)] =
f [ x 0 (4),x1(1)] =
f [ x1(1),x 2 (1)] =
f [ x 0 (2),x1(1)] − f [ x 0 (3)]
x1 − x 0
f [ x 0 (3),x1(1)] − f [ x 0 (4)]
x1 − x 0
f [ x 2 (1)] − f [ x1(1)]
x1 − x 0
f [ x 0 (1),x1(1),x 2 (1)] =
f [ x 0 (2),x1(1),x 2 (1)] =
f [ x 0 (3),x1(1), x 2 (1)] =
f [ x 0 (4),x1(1), x 2 (1)] =
1− 0
π
( )−( ) =
=
=
2
f [ x 0 (2),x1(1),x 2 (2)] =
f [ x 0 (3),x1(1), x 2 (2)] =
1
2
π2
π
(
8
π3
2
− 1π ) − 0
π
8 1
−
π3 π
=
2
x 2 − x0
( 2π) − (2π) = 0
=
π
f [ x 0 (1),x1(1),x 2 (1)] − f [ x 0 (2),x1(1)]
x2 − x0
x 2 − x0
x 2 − x0
=
(
π3
+
1
π2
=
π
)−(
f [ x 0 (2), x1(1),x 2 (2)] − f [ x 0 (3),x1(1),x 2 (1)]
x 2 − x0
f [ x 0 (3), x1(1), x 2 (2)] − f [ x 0 (4), x1(1), x 2 (1)]
x 2 − x1
130
16
π4
−
2
=
) = − 12 +
π2
=
(
12
−
) = − 28 +
4
π
=
π3
(− ) − (− ) = 0
4
1
π3
4
π3
1
π2
) = 12 −
π
) − (−
2
π3
π
( − 12 ) − ( − 4 π )
2
3
π3
π2
28
π5
+
3
π3
π
π
1
π2
(− ) − 0 = − 4
π
π5
4
4
π2
0 − ( − 12 π4 +
=
4
π3
π5
x2 − x0
=
1
π
π
2
x2 − x0
f [ x 2 (3)] − f [ x1(1),x 2 (2)]
−
π3
(0) − ( 2 π ) = −
f [ x1(1),x 2 (2)] − f [ x 0 (1),x1(1),x 2 (1)]
x2 − x0
8
π
π4
=−
π
π
f [ x 2 (2)] − f [ x1(1),x 2 (1)]
x 2 − x1
−12
4
0 − ( 4 π2 )
=
(− ) − (
=
f [ x 0 (1),x1(1),x 2 (2)] − f [ x 0 (2),x1(1),x 2 (1)]
f [ x1(1),x 2 (3)] =
16 2
−
π 4 π2
2
π
f [ x1(1),x 2 (1)] − f [ x 0 (1),x1(1)]
f [ x 0 (3),x1(1), x 2 (1)] − f [ x 0 (4), x1(1)]
f [ x 0 (1),x1(1),x 2 (2)] =
4
f [ x 0 (2), x1(1),x 2 (1)] − f [ x 0 (3), x1(1)]
f [ x1(1),x 2 (2)] =
f [ x 0 (4),x1(1), x 2 (2)] =
=
=
=
5
1
π3
) = 40 −
π
8 1
−
π3 π
6
4
π4
Programación y Métodos Numéricos
f [ x 0 (1),x1(1), x 2 (3)] =
f [ x 0 (2),x1(1), x 2 (3)] =
f [ x 0 (3),x1(1), x 2 (3)] =
f [ x 0 (4),x1(1), x 2 (3)] =
Interpolación polinómica
f [ x1(1),x 2 (3)] − f [ x 0 (1),x1(1), x 2 (2)]
x 2 − x0
=
(
8
π3
− 1π ) − ( − 4 π3 )
=
π
f [ x 0 (1), x1(1),x 2 (3)] − f [ x 0 (2),x1(1),x 2 (2)]
x2 − x0
f [ x 0 (2), x1(1),x 2 (3)] − f [ x 0 (3),x1(1), x 2 (2)]
x2 − x0
=
f [ x 0 (3), x1(1),x 2 (3)] − f [ x 0 (4), x1(1),x 2 (2)]
x2 − x0
(
=
=
12
π4
−
1
π2
π
(
12
π5
−
12 1
−
π 4 π2
) − 0 = 12 −
π
1
π3
)−(
12
π5
−
5
1
π3
π
0 − ( 30 π6 −
4
π4
π
1
π3
) =0
) = − 40 +
π7
4
π5
La tabla siguiente recoge los valores numéricos de estas diferencias divididas.
−π
−π
−π
−π
0
π
π
π
2
2
2
2
2
2
2
-1
− 0
− − 12
− − −
0 2 π 4 π2
1
−
−
2
π
0
−
0
−4
−1
0
8
π3
−4
π2
−4
8
2
− 1π
16
−12
π3
2
π2
+
π4
1
+ 3 π3
40
12
- 4 π4
− 1π3
π5
π6
12
0
− 1π3
π5
-28
π2
0
π3
π3
-
π4
− 1π
12
π4
−
1
π2
π5
-40
π7
+ 4 π5
A partir de la tabla anterior, usando la formula de Newton, se obtiene el
polinomio interpolador de Hermite de la función sen(x) sobre el soporte
{−π 2 ,0, π 2} y para los enteros {3, 0, 1} :
p7 (x) = -1 + 0·( x + π 2 ) + 12·( x + π 2 ) + 0·( x + π 2 ) + ( 16 π4 −
2
+ ( -28 π5 +
3
+ ( -40 π7 +
4
3
π3
)·( x + ) ·x + (
π5
)·( x + ) ·x·( x − )
π
π
4
2
40
4
π2
)·( x + )
π
2
4
+
− 4 π4 )·( x + π 2 ) ·x·( x − π 2 ) +
4
π6
π
2
2
2
2
⇒
⇒ p7 (x) = -1 + 12·( x + π 2 ) +
2
{(
4
+ ( x + π 2 ) ·⎡⎢( 16 π4 − 2 π2 ) + x·
⎣
-28
π5
+
3
π3
)+(
40
131
π6
}
2
− 4 π4 )·( x − π 2 ) + ( 40 π7 − 4 π5 )·( x − π 2 ) ⎤⎥
⎦
Interpolación polinómica
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
La figura siguiente muestra el grafo de sen(x) y de p7(x) observándose en ella
la “buena coincidencia” en el intervalo [ −π 2 , π 2 ] entre la función sen(x) y su
polinomio interpolador.
sen(x)
p7(x)
Para poder apreciar mejor la diferencia (sen(x) – p7(x)) se recoge en la figura
siguiente la gráfica de este error (inferior en valor absoluto a 3·10-5 en todo el
intervalo [ −π 2 , π 2 ] ).
•
132
Programación y Métodos Numéricos
Interpolación polinómica
Ejercicio propuesto:
Escribe un programa (en MAPLE, MATLAB, FORTRAN, C++, o en el lenguaje
de programación que mejor conozcas) para:
a) Calcular la tabla de diferencias finitas generalizadas
b) Calcular el polinomio interpolador de Hermite sobre un soporte de (n+1)
puntos y para (n+1) enteros no negativos dados
c) Utiliza dicho programa para calcular el polinomio interpolador de Hermite
de la función de Runge f(x) = (1 + x2)-1 sobre el soporte {-8, -4, 0, 5, 10}
para los enteros { 1, 2, 3, 2, 1}.
d) Representa en el intervalo [-10, 10] la función de Runge y su polinomio
interpolador.
e) Obtén una cota del error de interpolación válida en todo punto del
intervalo [-10, 10].
133
Interpolación polinómica
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
3.4.4. ANEXO: Otra forma de definir las diferencias divididas con puntos
repetidos.
Como se señaló en el subapartado 3.4.2. las diferencias divididas en las que
aparece un punto repetido pueden ser definidas a partir de las diferencias
divididas clásicas considerando un soporte formado por puntos distintos y
haciendo tender hacia cero la distancia entre algunos de ellos. Por ello
dedicaremos este anexo a detallar este proceso.
Consideraremos en todo este subapartado que f(x) es una función diferenciable
en todos los puntos de un intervalo (a, b). Comencemos considerando un punto
x* de (a, b) y, siendo h un valor no nulo, un soporte formado por los dos puntos
{x*, x*+h}. Según se definió en el apartado 5º la diferencia dividida (clásica) en
este soporte está dada por:
f[x*, x*+h] =
f(x * +h) − f(x*)
h
por lo que:
f(x * +h) − f(x*)
= f '(x*)
h→0
h
f[x*,x*] = lim f[x*,x * +h] = lim
h →0
De esta forma es natural introducir la definición siguiente:
Definición
Siendo f(x) una función diferenciable en el punto xi, se denomina diferencia
dividida de primer orden en el punto xi (o diferencia dividida en xi repetido
2 veces) y se representa por f[xi, xi] (o por f[xi(2)]) al valor:
f[xi, xi] = f’(xi)
•
Generalicemos el proceso anterior suponiendo ahora que la función f(x) es n
veces diferenciable en el intervalo (a, b) y, siendo h un valor no nulo,
consideremos el soporte formado por los (n+1) puntos {x0 = x*, x1 = x*+h, ....,
xn = x*+n·h} todos ellos pertenecientes al intervalo (a, b). Se tiene, por
recursión que:
134
Programación y Métodos Numéricos
Interpolación polinómica
f [ x*,x * +h,...,x * +(n − 1)·h,x * +n·h] =
=
f [ x * +h,...,x * +(n − 1)·h,x * +n·h] − f [ x*,x * +h,...,x * +(n − 1)·h,]
n·h
=
1 ⎡ f [ x * +2·h,...,x * +n·h] − f [ x * +h,...,x * +(n − 1)·h]
−
·⎢
n·h ⎣
(n − 1)·h
−
=
=
f [ x * +h,...,x * +(n − 1)·h] − f [ x*,...,x * +(n − 2)·h] ⎤
⎥ =
(n − 1)·h
⎦
1
·⎡ f [ x * +2·h,...,x * +n·h] − 2·f [ x * +h,...,x * +(n − 1)·h] +
n·(n − 1)·h2 ⎣
+ f [ x*,...,x * +(n − 2)·h]⎤⎦ =
= ....... =
⎞
⎛n⎞
1 1⎛ n
· n ·⎜ ∑ ( −1)i ⎜ ⎟·f(x * +(n − i) * h) ⎟
n! h ⎝ i=0
⎝i⎠
⎠
(1)
Por otra parte, al haber supuesto que f era n veces continuamente
diferenciable, la fórmula del desarrollo en serie de Taylor nos permite escribir
que:
(n − i) j ·h j (j
(n − i)n ·hn (n
·f (x*) +
·f (x*)
j!
n!
j=1
n-1
∃ξi ∈ [ x*,x * +(n − i)·h] / f(x*+(n-i)·h)=f(x*)+∑
Entrando con estos desarrollos en la expresión de la diferencia dividida se tiene
que:
n!· f [ x*,x * +h,...,x * +(n − 1)·h,x * +n·h] =
=
n −1
1 ⎛ n
n!
(n − i) j ⎞ ( j
n!
(n − i)n (n
i
i
−
+
−
·
(
1)
·
·
·f
(x*)
(
1)
·
·
·f (ξi )
⎟
∑
∑
n− j ⎜ ∑
i!·(n − i)! j! ⎠
i!·(n − i)! n!
j=1 h
i= 0
⎝ i=0
n −1
(2)
En la expresión anterior los coeficientes de f(j(x*) ( 0 < j < n) son nulos. Por no
interrumpir el desarrollo que se está realizando, realizaremos la demostración
de este hecho en el Lema 1º (un poco más adelante). Ello nos permite escribir:
135
Interpolación polinómica
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
n −1
n!· f [ x*, x * +h,...,x * +(n − 1)·h,x * +n·h] = ∑ ( −1)i ·
i=0
n!
(n − i)n (n
·
·f (ξi )
i!·(n − i)! n!
Si se hace tender h hacia 0, todos los puntos xi = x*+i·h tenderán a x* y además
todos los puntos ξi ∈ [ x*,x * +(n − i)·h] también tenderán a x*. Ello nos conduce
a que, tomando límites, se verifica:
⎛ n−1
n!
(n − i)n ⎞ (n
n!·f[x*, x*, …..,x*,x*] = ⎜ ∑ ( −1)i ·
·
⎟·f (x*)
i!·(n − i)! n! ⎠
⎝ i=0
(n+1) veces
Por otra parte se verifica (y también se deja la demostración para ser realizada
en el lema 2º un poco más adelante) para todo valor de n tal que n > 1, que:
⎛ n−1
n!
(n − i)n ⎞
i
(
1)
·
·
−
⎜∑
⎟ =1
i!·(n − i)! n! ⎠
⎝ i=0
por lo que, finalmente se tiene que:
f[x*, x*, …..,x*,x*] =
f (n (x*)
n!
(n+1) veces
De esta forma es natural introducir la definición siguiente:
Definición
Siendo f(x) una función diferenciable en el punto xi, se denomina diferencia
dividida de orden k el punto xi (o diferencia dividida en xi repetido (k+1)
veces) y se representa por f[xi, xi,...., xi] (o por f[xi(k+1)]), al valor:
f[xi, xi, ….., xi, xi] = f[xi(k+1)] =
f (n (xi )
k!
•
Una vez introducidas las diferencias divididas en las que todos sus argumentos
son el mismo punto repetido, podemos proceder a definir las diferencias
divididas en forma más general como se hace en la siguiente definición
136
Programación y Métodos Numéricos
Interpolación polinómica
Definición
Siendo {i0 < i1 < i2 < …. < ik-1 < ik} un conjunto de (k+1) índices enteros no
negativos (pudiendo repetirse algunos de ellos o no) se denomina diferencia
dividida de orden k: f ⎡⎣ xi0 ,xi1 ,xi2 ,...,x ik −1 ,xik ⎤⎦ al valor obtenido de la manera
siguiente:
f (n (xi )
n!
f ⎡ xi ,....,xik −1 ,xik ⎤⎦ − f ⎡⎣ xi0 ,xi1 ,....,xik −1 ⎤⎦
f ⎡⎣ xi0 ,xi1 ,....,xik −1 ,xik ⎤⎦ = ⎣ 1
x ik − x i0
Si i0 = ik = i: f[xi, xi, ….., xi, xi] =
Si i0 < ik:
•
NOTA:
Como se demostró en el apartado 3.2., el orden en que se tomen los puntos, repetidos o no, no
influye en el valor de la diferencia dividida. No obstante, en la definición anterior, se ha optado
por considerar los índices de los puntos del soporte ordenados de menor a menor a mayor,
agrupando de esta manera los que se repitan, para facilitar el seguimiento del proceso que se
ha descrito.
•
Ocupémonos, por último, de demostrar los lemas utilizados anteriormente para
definir la diferencia dividida f[xi(k+1)].
Lema 1º
Siendo n un número entero positivo se verifica que:
n
n!
( −1)i ·
=0
∑
i!·(n − i)!
i=0
Además, para todo entero no negativo j tal que 0 < j < n se verifica que:
n
∑ (−1)i·
i=0
n!
(n − i) j
·
=0
(n − i)!·i! j!
Demostración:
Para cualquier entero m que sea estrictamente positivo la fórmula del binomio
de Newton17, nos asegura que:
17
Recordemos que la fórmula del binomio de Newton es:
n
⎛n⎞
donde
(a + b)n = ∑ ⎜ ⎟·a( n − i ) ·b i
i =0 ⎝ i ⎠
137
⎛m⎞
m!
⎜ ⎟=
⎝ i ⎠ ( m − i )!·i !
Interpolación polinómica
0 = (1 – 1)m =
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
⎛m⎞
( −1)i ·⎜ ⎟ =
∑
i=0
⎝ i⎠
m
m
m!
∑ (−1) ·(m − i)!·i!
i
(3)
i=0
Particularizando esta expresión para m = n se tiene que:
n
n!
∑ (−1) ·(n − i)!·i!
i
=0
i=0
lo que demuestra la primera de las igualdades de esta propiedad.
Obsérvese además que la igualdad que se acaba de demostrar es un caso
particular de la segunda igualdad dada en el enunciado (obtenida para j = 0).
Ello nos permite proceder por inducción, suponiendo que para un algún valor
“(j-1)” la igualdad es cierta y demostrando que en ese caso también es cierta
para el valor j. En efecto, si se supone que para cualquier valor m entero y
superior a 1 y para algún valor (j-1) < (m-1) se verifica:
m
∑ (−1)i·
i=0
m!
(m − i)( j−1)
1 m
m!
·
=0⇔
·∑ ( −1)i ·
·(m − i)( j−1) = 0 ⇔
(m − i)!·i! ( j − 1)!
( j − 1)! i=0
(m − i)!·i!
m
⇔ ∑ ( −1)i ·
i= 0
m!
·(m − i)( j−1) = 0
(m − i)!·i!
se tendrá que:
n!
n!
(n − i) j 1 n
·(n − i) j−1·(n − i) =
( −1) ·
·
= ·∑ ( −1)i ·
∑
j! i=0
(n − i)!·i!
(n − i)!·i! j!
i=0
n
i
n n
n!
1 n
n!
·(n − i) j−1 − ·∑ ( −1)i ·i·
·(n − i) j−1
= ·∑ ( −1)i ·
j! i=0
(n − i)!·i!
j! i=0
(n − i)!·i!
en donde, habida cuenta de la suposición realizada, en el caso m = n, el primer
sumatorio es nulo por lo que:
138
Programación y Métodos Numéricos
n
∑ (−1)i·
i=0
Interpolación polinómica
1 n
n!
n!
(n − i) j
·(n − i) j−1 =
·
= − ·∑ ( −1)i ·i·
j! i=0
(n − i)!·i!
(n − i)!·i! j!
1 n
n!
1 n
n!
·(n − i) j−1 = ·∑ ( −1)i−1·
·(n − i) j−1 =
= ·∑ ( −1)i−1·i·
j! i=1
(n − i)!·i!
j! i=1
(n − i)!·(i − 1)!
1 (n−1)
1
·(n − i − 1) j−1 =
= ·n!· ∑ ( −1)i−1·
j!
(n − i − 1)!·(i)!
i= 0
(n −1)
1
1
·((n − 1) − i) j−1 =
= ·n·(n − 1)!· ∑ ( −1)i−1·
j!
((n
1)
i)!·i!
−
−
i=0
1 (n−1)
(n − 1)!
= ·n· ∑ ( −1)i−1·
·((n − 1) − i) j−1
j! i=0
((n − 1) − i)!·i!
en donde, volviendo a utilizar la suposición de la que se partió, ahora con
m = (n-1), se puede concluir que:
n
∑ (−1)i·
i=0
n!
(n − i) j
·
= 0
(n − i)!·i! j!
c.q.d.
NOTA:
Obsérvese que en la demostración anterior se partía del hecho de que para
todo
valor
de
m
>
1
se
verificaba
que
si
j
=
0
j
m
m!
(m − i)
·
= 0 . Esta igualdad nos sirvió para hacer la
entonces ∑ ( −1)i ·
(m − i)!·i!
j!
i=0
hipótesis de que para todo valor de m > 1 existía algún valor (j-1) < m para el
que:
m
∑ (−1)i·
i=0
m!
(m − i)( j−1)
·
=0
(m − i)!·i! ( j − 1)!
igualdad que, en el proceso de inducción seguido, se utilizó para m = n y para
m = (n-1). Ello nos obliga a que n sea mayor o igual que 2 (pues si n fuese 1 la
hipótesis no sería cierta ya que estaríamos admitiendo que 00 = 0). Es por ello
que, detallando el proceso de inducción para los primeros valores de n se tiene:
139
Interpolación polinómica
n = 1: j = 0
n = 2: j = 0
n=3j=0
n=4j=0
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
j=1
j=1
j=1
j=2
j=2
j=3
Ello justifica que en la igualdad de la propiedad anterior los valores de j deban
estar comprendidos entre 0 < j < (n-1). Para el caso j = n el valor del sumatorio
correspondiente se recoge en el lema siguiente.
Lema 2º.
Siendo n un número entero positivo se verifica que:
n
∑ (−1)i·
i=0
n!
(n − i)n
·
=1
(n − i)!·i! n!
Demostración:
Para n = 1 la igualdad anterior se reduce a que:
1
1!
∑ (−1) ·(1 − i)!·i!·
i
i=0
(1 − i)
1 1
1! 0
· − 1·
· =1
= 1·
1!
1!0! 1!
0!·1! 1!
Procedamos nuevamente por inducción suponiendo que para algún valor (n-1)
se verifica que:
(n −1)
(n − 1)!
((n − 1) − i)(n−1)
i
(
−
1)
·
·
=1
∑
((n − 1) − i)!·i!
(n − 1)!
i=0
Se tendrá entonces que:
n
n!
(n − i)n
i
(
−
1)
·
·
=
∑
(n − i)!·i! n!
i=0
n
= ∑ ( −1)i ·
i= 0
n
∑ (−1)i·
i=0
n!
(n − i)(n−1)
·
·(n − i) =
(n − i)!·i!
n!
n!
(n − i)(n−1) n
n!
(n − i)(n−1)
·
− ∑ ( −1)i ·i·
·
(n − i)!·i! (n − 1)!
(n − i)!·i!
n!
i=0
Por el lema 1º demostrado anteriormente resultará que el primer sumatorio de
la expresión anterior es nulo. Por tanto:
n
∑ (−1)i·
i=0
n
n!
(n − i)n
n!
(n − i)(n−1)
·
·
= −∑ ( −1)i ·i·
=
(n − i)!·i! n!
(n − i)!·i!
n!
i= 0
140
Programación y Métodos Numéricos
n
= ∑ ( −1)(i−1) ·i·
i= 0
n −1
= ∑ ( −1)(i−1) ·
i= 0
Interpolación polinómica
1
(n − i)(n−1)
·
=
(n − i)!·i!
1
n
∑ (−1)(i−1)·
i=0
(n − 1)!
(n − i)(n−1)
·
=
(n − i)!·(i − 1)! (n − 1)!
(n − 1)!
(n − i)(n−1) n−1
(n − 1)!
((n − 1) − i)(n−1)
·
= ∑ ( −1)(i) ·
·
(n − i)!·(i − 1)! (n − 1)!
((n − 1) − i)!·i!
(n − 1)!
i=1
lo que, según la hipótesis que hemos realizado, demuestra que:
n
∑ (−1)i·
i=0
n!
(n − i)n
·
=
(n − i)!·i! n!
n −1
∑ (−1)(i)·
i=1
(n − 1)!
((n − 1) − i)(n−1)
·
=1
((n − 1) − i)!·i!
(n − 1)!
Por tanto, como la hipótesis era cierta para n = 1, la igualdad es cierta para el
valor n = 2. Y, al ser cierta para n = 2, también es cierta para n = 3. Y por ser
cierta para n = 3 también lo es para n = 4. Y en general lo será para cualquier
valor de n entero positivo que se considere.
c.q.d.
141
Interpolación polinómica
Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
BIBLIOGRAFÍA SOBRE EL TEMA
[1] Burden, R.L. y Fiares, J.D. (1998). Análisis Numérico. Ed. International
Thomsom Editores
[2] Crouzeix, M. et Mignot, A.L. (1983) Analyse numérique des équations
differentielles. Ed. Masson.
[3] Gasca, M. (1995) Cálculo Numérico I. Ed. Universidad Nacional de
Educación a Distancia (UNED).
[4] Michavila, F. y Conde, C. (1987) Métodos de Aproximación. Ed. Depto. de
Matemática Aplicada y Métodos Informáticos – ETSI Minas – Universidad
Politécnica de Madrid.
[5] Sanz-Serna, J.M (1998 ) Diez lecciones de análisis numérico. Secretariado
de Publicaciones de la Universidad de Valladolid
[6] Shampine, L.F., Allen Jr., R.C. and Pruess, S. (1997) Fundamentals of
numerical computing. Ed. John Wiley & Sons, Inc.
[7] Stoer, J. and Bulirsch, R. (1993) Introduction to numerical analysis (2nd
edition). Ed. Springer
[8] Viaño, J.M. y Burguera, M. (2000) Lecciones de Métodos Numéricos, 3:
Interpolación. Ed. Tórculo
142
Descargar