Está en la página 1de 5

MÉTODOS MATEMÁTICOS (Curso 2015-2016)

Segundo Curso del Grado en Ingenierı́a de Tecnologı́as Industriales


Departamento de Matemática Aplicada II. Universidad de Sevilla

Lección 3: Interpolación
Introducción. En muchas situaciones, aparecen conjuntos de datos o resultados de mediciones
experimentales de los que sólo se conoce una cierta cantidad, y para los cuales se necesita
encontrar una ley general que sirva para su tratamiento. Usualmente, esa ley general no es
otra cosa que una función que tome valores predeterminados. Precisamente, éste es el cometido
básico de la interpolación: dada una tabla de datos, se trata de encontrar una función cuyo
comportamiento en los puntos dados se ajuste, en algún sentido, a los valores proporcionados
por la tabla.
La elección del tipo de funciones interpoladoras depende básicamente del contexto en que se
esté trabajando y, como es previsible, hay una gran variedad. En este curso, sólo trataremos la
interpolación polinómica de Lagrange y ciertos tipos de interpolación polinómica a trozos (lineal
y splines).

INTERPOLACIÓN POLINÓMICA

La interpolación polinómica tiene gran importancia teórica en el Análisis Numérico, puesto


que permite fundamentar una amplia gama de métodos para la diferenciación numérica, la aprox-
imación numérica de integrales o cuadratura, la integración numérica de ecuaciones diferenciales,
el cálculo de extremos de funciones, etc.
Los polinomios son funciones que presentan muchas ventajas a la hora de su manejo práctico.
Por ejemplo, son derivables con continuidad tantas veces como se desee y su derivada es muy
fácil de obtener. A la hora de evaluar un polinomio de grado N :

p(x) = a0 + a1 x + · · · + aN xN ,

es conveniente sacar factor común a x, x2 , etc, y escribirlo en forma anidada:

p(x) = a0 + x(a1 + x(a2 + x(· · · x(aN −1 + aN x) · · ·)),

de donde se obtiene de modo natural el algoritmo de Horner-Rufini para su evaluación:

1. p ← aN ,

2. para j = N − 1, . . . , 0: p ← aj + xp.

Este algoritmo permite evaluar el polinomio con N multiplicaciones y N sumas.

1
El problema general de la interpolación polinómica consiste en, dada una función f : [a, b] →
R y N + 1 puntos diferentes: α0 < α1 < · · · < αN del intervalo [a, b], denominados nodos de la
interpolación, encontrar un polinomio pN (x) tal que

pN (αj ) = f (αj ), para todo j = 0, . . . , N .

Una forma de resolver este problema se basa en los denominados polinomios de Lagrange
(asociados a los nodos α0 , . . . , αN ), que están definidos como

YN
x − αl
Lj (x) = , j = 0, . . . , N.
l=0
αj − αl
l6=j

Es fácil comprobar que estos polinomios cumplen:


½
1, l = j,
Lj (αl ) =
0, l 6= j.

De esta manera, si tenemos los N + 1 polinomios de Lagrange, se observa que una solución del
problema de interpolación es simplemente

pN (x) = f (α0 )L0 (x) + · · · + f (αN )L(x).

Esta expresión se denomina forma de Lagrange del polinomio interpolador.


Si exigimos que el grado del polinomio interpolador sea menor o igual que N , se tiene que
pN (x) es único. En efecto, si hubiera dos polinomios interpoladores p1 (x) y p2 (x), su diferencia
q(x) = p1 (x) − p2 (x) serı́a un polinomio de grado menor o igual que N se anula en los N + 1
nodos de interpolación. Es decir, q(x) tiene N + 1 raı́ces distintas, luego debe ser el polinomio
nulo. Estos comentarios se recogen en el siguiente teorema.
Teorema 1. Consideremos una función f : [a, b] → R y N + 1 puntos diferentes del intervalo
[a, b]: α0 < α1 < · · · < αN . Entonces, existe un único polinomio pN (x) de grado menor o igual
que N que verifica
pN (αj ) = f (αj ), para todo j = 0, 1, ..., N .

Obviamente, una expresión para dicho polinomio interpolador viene dada por la forma de
Lagrange antes mencionada.
No obstante, esta forma de Lagrange para el polinomio interpolador no siempre es la más
útil en la práctica, pues no permite evaluarlo en un punto con N + 1 flops. Además, si necesita-
mos añadir algunos nodos más (esquemas adaptativos) no podemos reutilizar los cálculos. Para
solventar estas dificultades, se usa la forma de Newton del polinomio interpolador:

pN (x) = f (α0 ) + f [α0 , α1 ](x − α0 ) + f [α0 , α1 , α2 ](x − α0 )(x − α1 ) +


+f [α0 , α1 , α2 , α3 ](x − α0 )(x − α1 )(x − α2 ) + · · · + f [α0 , . . . , αN ](x − α0 ) · · · (x − αN −1 ).

Los diversos coeficientes f [α0 ], f [α0 , α1 ], . . . , f [α0 , . . . , αN ] de la forma de Newton del poli-
nomio interpolador reciben el nombre de diferencias divididas de f (x) en los nodos α0 , α1 , . . . , αN .

2
Para calcular su valor, construimos la siguiente tabla:
f [α0 ] = f (α0 )
f [α1 ] = f (α1 ) f [α0 , α1 ] = f (αα11)−f
−α0
(α0 )

f [α2 ] = f (α2 ) f [α1 , α2 ] = f (αα22)−f


−α1
(α1 )
f [α0 , α1 , α2 ] = f [α1 ,α2 ]−f [α0 ,α1 ]
α2 −α0
f [α3 ] = f (α3 ) f [α2 , α3 ] = f (αα33)−f
−α2
(α2 )
f [α1 , α2 , α3 ] = f [α2 ,α3 ]−f [α1 ,α2 ]
α3 −α1 f [α0 , α1 , α2 , α3 ] = f [α1 ,α2 ,α3 ]−f [α0 ,α1 ,α2 ]
α3 −α0
.. .. .. ..
. . . .
Observe que los valores de interpolación permiten construir la primera columna, y el resto de
la tabla se completa recurrentemente: cada elemento se obtiene a partir de los elementos de la
columna anterior que están situados al oeste y al noroeste de él. Los coeficientes de la forma de
Newton del polinomio interpolador aparecen en la diagonal de la tabla. El número de operaciones
de calcular todos los coeficientes es de N (N + 1)/2 divisiones y N (N + 1) restas.

Con respecto al problema de determinar el error que se comete al aproximar una función
f (x) por su polinomio interpolador, se tiene el siguiente resultado:
Teorema 2. Consideremos una función f : [a, b] → R de clase C N +1 [a, b] y N +1 puntos diferentes
de intervalo [a, b]: α0 < α1 < · · · < αN . Si pN (x) es el correspondiente polinomio interpolador,
se tiene que para cada x ∈ [a, b], existe un punto ξ = ξ(x) tal que
f (N +1) (ξ)
f (x) − pN (x) = (x − α0 ) · · · (x − αN ).
(N + 1)!
Además, mı́n(α0 , x) < ξ < máx(αN , x).

Respecto a la fórmula anterior conviene hacer dos precisiones. En primer lugar, en el exterior
del intervalo [a, b], la función W (x) = (x − α0 ) · · · (x − αN ) tiende muy rápido a infinito cuando
x se aleja de dicho intervalo hacia infinito. Por tanto, el uso de la interpolación de Lagrange
para aproximar f (x) fuera de este intervalo (proceso denominado extrapolación) debe evitarse,
salvo para valores de x cercanos a [a, b]. En segundo lugar, puede verse que la fórmula del error
depende obviamente de f (x) pero también de la elección de los nodos. Es posible buscar la mejor
disposición de éstos para que el error sea pequeño, cuestión en la que no abundaremos en este
curso pues raramente se presenta en la práctica la ocasión de elegir los nodos de interpolación.

INTERPOLACIÓN POLINÓMICA A TROZOS


Desde un punto de vista gráfico, la interpolación polinómica tiene una gran desventaja:
cuando se tienen muchos datos a interpolar, el correspondiente polinomio interpolador tiene
necesariamente un grado alto y presenta numerosas oscilaciones. Para mitigar estos efectos, la
estrategia usual es dividir el intervalo en varios trozos y en cada uno de ellos interpolar los datos
por un polinomio de grado bajo. Este proceso se conoce como interpolación a trozos.
Si una función f (x) está definida en un intervalo [a, b], para poder construir su interpolante
a trozos se debe seleccionar una partición del intervalo
∆ ≡ {a = α0 < α1 < · · · < αN = b}.

3
El interpolante a trozos p∆ (x) (subordinado a la partición ∆) satisface:
1. p∆ (αj ) = f (αj ), para cada j = 0, . . . , N ,
2. p∆ (x) es un polinomio de cierto grado (prefijado a priori) en cada intervalo [αj−1 , αj ].
Puesto que p∆ (x) es un polinomio en cada [αj−1 , αj ], y coincide con f (x) en los extremos, el
interpolante a trozos resulta ser entonces una función continua.
Interpolación lineal a trozos. Si fijamos el grado en 1, p∆ (x) es en cada intervalo [αj−1 , αj ]
el polinomio interpolador de grado menor o igual que uno basado en los nodos αj−1 y αj , esto
es,
αj − x x − αj−1
p∆ (x) = f (αj−1 ) + f (αj ), x ∈ [αj−1 , αj ], j = 1, . . . , N.
αj − αj−1 αj − αj−1
Este interpolante se conoce con el nombre de interpolante lineal a trozos. Su gráfica es una
poligonal que coincide con f (x) en los puntos de interpolación. Respecto al error del interpolante
lineal a trozos, tenemos que
h2
máx |f (x) − p∆ (x)| ≤ máx |f 00 (ξ)| .
x∈[a,b] 8 ξ∈[a,b]
Es decir, si la función f (x) es suficientemente derivable, su interpolante lineal converge cuadrática-
mente a f (x) cuando el diámetro h tiende a 0 (el diámetro de la partición ∆ se define como
h = máxk |αk+1 − αk |).
Interpolación por splines. El interpolante lineal a trozos tiene el inconveniente de que, siendo
una función continua, no es derivable con continuidad (su derivada es una función constante a
trozos con saltos en los nodos).
Para obtener resultados que representen mejor a una función regular se recurre a polinomios
de bajo grado en cada subintervalo, imponiendo condiciones adicionales que aseguren un enlace
suave entre intervalos adyacentes.
El más habitual es el llamado spline. Esta palabra inglesa denota un instrumento flexible
usado en dibujo técnico que sirve para trazar curvas suaves (de hecho, algunas veces se traduce
como trazador o cercha). Se trata de una regla que puede ser adaptada, flexionándola, a la forma
que tome la curva que se desea dibujar. Precisamente, la propiedad de adaptarse bien a formas
dadas que tienen las funciones spline es su aspecto más destacado.
Se denomina spline respecto de la partición ∆ a cualquier función S∆ (x) de clase C 2 [a, b] que
coincida en cada intervalo [αj , αj+1 ] (i = 0, 1, ..., N −1) con un polinomio de grado menor o igual
que 3. El problema de interpolación por splines consiste en, dada la función f (x), encontrar un
spline S(x) = S∆ (x) tal que
S∆ (αj ) = yj = f (αj ), para todo j = 0, 1, ..., N.
Observemos que el cálculo efectivo se traduce en la determinación de los coeficientes de las
correspondientes cúbicas. Puesto que tenemos N subintervalos determinados por la partición ∆,
deben determinarse 4N coeficientes.
Por otra parte, deben cumplirse 2N condiciones de interpolación (dos por cada una de las
cúbicas) ası́ como 2(N − 1) condiciones que garanticen que el spline sea de clase C 2 [a, b] (deben
de coincidir las derivadas laterales de primer y segundo orden en los nodos interiores).

4
En definitiva, tenemos un sistema de 4N − 2 ecuaciones y 4N incógnitas. Este problema
siempre tiene solución aunque no es única. Para garantizar la unicidad, se imponen condiciones
adicionales, lo que conduce a distintos tipos de splines: naturales, sujetos, periódicos, not-a-
knot,...
00 00
El spline natural se determina imponiendo que S∆ (a) = S∆ (b) = 0.

El spline sujeto se obtiene añadiendo condiciones del tipo S 0 (a) = y00 y S 0 (b) = yN
0
.

El spline not-a-knot (N ≥ 4) se obtiene imponiendo que la cúbica en [α0 , α1 ] sea la misma


que en [α1 , α2 ] y que la cúbica en [αN −2 , αN −1 ] sea la misma que en [αN −1 , αN ]. Estas
condiciones equivalen a que la derivada tercera del spline sea continua en α1 y en αN −1 .

El comportamiento del error para las funciones spline es bastante mejor que en el caso
polinomial. Una muestra es el siguiente resultado:
Teorema 3. Sea f : [a, b] → R de clase C 4 [a, b], con |f (4) (x)| ≤ M, para todo x ∈ [a, b]. Si
S(x) = S∆ es el spline sujeto tal que S 0 (a) = y00 y S 0 (b) = yN
0
, que interpola a la función f (x)
en los nodos de la partición ∆, entonces:
5
máx |f (x) − S(x)| ≤ M h4 .
a≤x≤b 384

Consecuentemente, si f ∈ C 4 [a, b], el resultado anterior implica que tomando el diámetro h


de la partición tendiendo a cero, los correspondientes splines sujetos convergen hacia f (x).
Las órdenes de Matlab que permiten realizar interpolaciones polinómicas a trozos son
interp1 y spline.

También podría gustarte