You are on page 1of 21

Cálculo Numérico CAPITULO III - Interpolación

CAPITULO III
INTERPOLACIÓN
3.1- INTRODUCCIÓN

Con frecuencia se tiene que estimar valores intermedios entre datos o valores conocidos, como por ejemplo;
se conocen los valores específico del agua a ciertas temperaturas.

Temp °C 20 25 30 35 40 45 50
Calor esp. 0,99907 0,99852 0,99826 0,99818 0,99828 0,99849 0,99878

Supongamos que se quiera calcular


a) Calor específico del agua a 33 ºC
b) La temperatura para la cual el calor específico es 0.99837
La interpolación permite realizar los calculos aproximados.

INTERPOLAR una función, consiste en sustituir esta, por otra función p (x ) con el objeto de facilitar ciertas
operaciones. Podemos realizar la interpolación cuando:
• Conocemos los valores numéricos de f (x ) solamente en un conjunto de puntos y necesitamos f (x ) en un
punto no tabulado.
• La expresión f (x ) es difícil de derivar o integrar.

Problema general de la interpolación


Consideremos n + 1 puntos distintos; x0 , x1 , x 2 ,..., x n llamados puntos de interpolación y los valores de
f (x ) en esos puntos; f ( x 0 ) , f ( x1 ) ,..., f ( x n ) . La forma de interpolación de f (x ) consiste en obtener una
función g (x ) tal que:
p(x0) = f(xo);
p(x1) = f(x1); Siendo que p(x) es un polinomio.
: :
p(xn) = f(xn);

Gráficamente

x1 x2 x3 ...

Dado los puntos ( x 0 ; f ( x 0 )), ( x1 ; f ( x1 )),..., ( x n ; f ( x n )) por lo tanta n + 1 puntos distintos,


queremos aproximar f (x ) por un polinomio de grado < n , p n (x ) tal que :

f ( xi ) = p n ( xi ) ; para i = 1,2,3,...., n
si representamos p n (x ) de la forma p n (x ) = a 0 + a1 x + a 2 x + ... + a n x
2 n
; debemos encontrar los
valores de los coeficientes, a 0 , a1 , a 2 ,..., a n de p n (x ) .

Ing Hugo Franco Paats 29


Cálculo Numérico CAPITULO III - Interpolación

3.2 – INTERPOLACIÓN POLINOMICA

De la condición definida por f ( xi ) = p n ( xi ) ; podemos montar el siguiente sistema lineal:


a 0 + a1 x 0 + a1 x 02 + ... + a n x 0n = f ( x 0 )
a 0 + a1 x1 + a 2 x12 + ... + a n x1n = f ( x1 ) n + 1 ecuaciones con n + 1 incógnitas
.
a 0 + a1 x n + a 2 x n2 + ... + a n x nn = f ( x n )

Resolviendo este sistema lineal, obtenemos los valores de los coeficientes a a , a1 ,..., a n de p n (x) . La
matriz A de los coeficientes es:
1 x0 x02 ...x0n
1 x1 x12 ...x1n
Matriz de Valdermonde
. . . .
1 xn x n2 x nn

Ejemplo 3.1: Con los siguientes valores


x -1 0 2
f(x) 4 1 -1

encuentre p n (x ) = a 0 + a1 x + a 2 x
2

p 2 ( x0 ) = a 0 + a1 ( −1) + a 2 ( −1) 2 = 4
p 2 ( x1 ) = a 0 + a1 (0) + a 2 (0) 2 = 1
p 2 ( x2 ) = a 0 + a1 (2) + a 2 ( 2) 2 = −1

Resolviendo el sistema de ecuaciones obtenemos que a 0 = 1 ; a1 = −7 / 3 ; a 2 = 2 / 3 ; por tanto, el


polinomio interpolador es:

7 2
p 2 ( x) = 1 − x + x2
3 3

3.3 – INTERPOLACIÓN DE LAGRANGE

Dado los siguientes puntos x 0 , x1 , x 2 ,..., x n , es decir n+1 puntos distintos y y i = f ( xi ) ; para todo i = 1,
2, ...., n . Considerando p n (x ) , el polinomio de grado < n que interpola la función f ( x ) en x0 , x1 ,..., x n .
Representamos p n (x ) por: p n ( x ) = Y0 L0 ( xi ) + Y1 L1 ( xi ) + ... + Yn Ln ( xi ) = y i La forma más simple de
satisfacer la relación anterior es imponer la siguiente condición:

0 si k ≠i
LK ( xi ) =
1 si k =i
Definimos entonces

Ing Hugo Franco Paats 30


Cálculo Numérico CAPITULO III - Interpolación

( x − x0 )( x − x1 )...( x − x K −1 )( x − x K +1 )...( x − x n )
LK ( x) =
( x K − x0 )( x K − x1 )...( x K − x K −1 )( x K − x K +1 )...( x K − x n )

En síntesis
K =n
p n ( x) = ∑Y
K =0
K LK ( x) ; donde

j =n

∏ (x − x
j =o
j )
k≠ j
LK ( x) = j =n

∏ (x
j =0
K − xj)
k≠ j

Ejemplo 3.2: Utiliza la interpolación de Lagrange para un polinomio de segunda orden


con los siguientes valores :

x -1 0 2
f(x) 4 1 -1

n = 2; y p 2 ( x) = Y0 L0 ( x) + Y1 L1 ( x) + Y2 L2 ( x) ; donde:

( x − x1 )( x − x 2 ) ( x − 0)( x − 2) x 2 − 2x
L0 ( x) = = =
( x0 − x1 )( x0 − x 2 ) (−1 − 0)(−1 − 2) 3

( x − x 0 )( x − x 2 ) ( x − (−1))( x − 2) x 2 − x − 2
L1 ( x) = = =
( x1 − x 0 )( x1 − x 2 ) (0 − (−1))(0 − 2) −2

( x − x 0 )( x − x1 ) ( x − (−1))( x − 0) x 2 + x
L2 ( x ) = = =
( x 2 − x0 )( x 2 − x1 ) (2 + 1)(2 − 0) 6

de la tabla Y0 = 4 ; Y1 = 1; y Y2 = −1 . Sustituyendo los valores en la fórmula tenemos:


4 1 1
p 2 ( x ) = ( x 2 − 2 x ) − ( x 2 − x − 2) − ( x 2 + 2 x )
3 2 6
Simplificando, obtenemos el polinomio de segundo grado que interpola a la función en los puntos dados
7 2
p 2 ( x) = 1 − x + x2
3 3

3.4- FORMULA DE NEWTON

La fórmula de Newton para el polinomio p n (x) que interpola f(x) en x0 , x1 ,..., x n , con n+1 puntos distintos
es:
p n ( x) = d 0 + d1 ( x − x0 ) + d 2 ( x − x0 )( x − x1 ) + ... + d n ( x − x0 )( x − x1 )...( x − x n −1 )
Donde d k es el operador de diferencias divididas y donde los coeficientes k = 0.,1,..., n son diferencias
divididas de orden k entre los puntos [x j ; f ( x j ) ] ∀j = 0.,1,..., n

Ing Hugo Franco Paats 31


Cálculo Numérico CAPITULO III - Interpolación

3.4.1-OPERADOR DE DIFERENCIAS DIVIDIDAS

Sea f ( x ) una función tabulada en x 0 , x1 , x 2 ,..., x n ; en n+1 puntos distintos.


Definimos el operador de diferencias divididas por:

f [ x0 ] = f ( x0 ) orden 0

f [ x1 ] − f [ x0 ] f ( x1 ) − f ( x0 )
f [ x0 , x1 ] = = orden 1
x1 − x0 x1 − x0

f [ x1 , x 2 ] − f [ x0 , x1 ]
f [ x0 , x1 , x 2 ] = orden 2
x2 − x0
.
.
f [ x1 , x 2 ,..., x n ] − f [ x0 , x1 ,..., x n −1 ]
f [ x0 , x1 ,..., x n ] = orden n
x n − x0
se dice que f [ x0 , x1 ,..., x k ] es la diferencia dividida de orden k de la función f ( x ) sobre los k + 1 puntos:
x 0 , x1 , x 2 ,..., x k .

3.4.2- TABLAS DE DIFERENCIAS DIVIDIDAS

Dada la función f ( x ) y conocidos los valores de f ( x ) en los puntos x 0 , x1 , x 2 ,..., x n ; podemos construir
la siguiente tabla con los operadores de diferencias divididas

X orden 0 orden 1 orden 2 orden 3 orden n


Xo f[xo]
f[xo,x1]
X1 f[x1] f[xo,x1,x2]
f[x1,x2] f[xo,x1,x2,x3]
X2 f[x2] f[x1,x2,x3] : . . . f[xo,x1,...,xn]
f[x2,x3] : f[x-3,x-2,x-1,xn]
: : : [
f x n − 2 , x n −1 , x n ] f[Xn-3,Xn-2,xn-1,xn]

xn f[xn] f[xn-1,xn] .

Ejemplo 3.2: dada la siguiente tabla, construya la tabla de diferencias divididas de Newton

x -1 0 1 2 3
f ( x) 1 1 0 -1 -2
Tabla de diferencias divididas:
X orden 0 orden 1 orden 2 orden 3 orden 4
-1 1
0
0 1 -1/2
-1 1/6
1 0 0 -1/24
-1 0
2 -1 0
-1
3 -2

Ing Hugo Franco Paats 32


Cálculo Numérico CAPITULO III - Interpolación

de la tabla concluimos que los valores de do = 1; d1 = 0; d2 = -1/2; d3 = 1/6; d4 = -1/24; por tanto
utilizando la fórmula de Newton para un polinomio de cuarto orden y sustituyendo los valores
tenemos
p 2 ( x) = d 0 + d1 ( x − x0 ) + d 2 ( x − x0 )( x − x1 ) + ... + d 4 ( x − x0 )...( x − x3 )

1 1 1
p 2 ( x) = 1 + 0 − ( x + 1)( x − 0) + ( x + 1)( x − 0)( x − 1) − ( x + 1)( x − 0)( x − 1)( x − 2)
2 6 24

7 5 1 1 4
p 2 ( x) = 1 − x − x2 + x3 − x
12 8 4 24

Ejemplo 3.3: utilice la interpolación de Newton para un polinomio de segunda orden

Con los siguientes valores


x -1 0 2
f ( x) 4 1 -1

construimos la tabla de diferencias divididas

x orden 0 orden 1 orden 2


-1 4
-3
0 1 2/3
-1
2 -1
2
de la tabla concluimos que d 0 = 4; ; d1 = −3; d 2 = ; el polinomio interpolador de segunda orden de
3
Newton será: 2
7 2
p 2 ( x) = 4 − 3( x + 1) + 2 / 3( x + 1)( x + 0) = 1 − x + x2
3 3
7 2
p 2 ( x) = 1 − x + x2
3 3

3.5 – ANALISIS DE ERROR EN LA INTERPOLACIÓN

Al aproximar f ( x ) por un polinomio interpolador de grado < n se comete un error que esta dado por:
En(x) = f ( x ) – pn(x) ∀x ∈ [xo,xn];

El estudio del error es importante para saber cuan próximo está f ( x ) de pn(x) .
Graficamente.

p1(x)
f 2 ( x)

f1 ( x)

xo x1

Podemos ver que el mismo polinomio interpola f1 ( x) y f 2 ( x) en xo y x1 el error será portanto:


Ing Hugo Franco Paats 33
Cálculo Numérico CAPITULO III - Interpolación

E1(x)’ =f 2 ( x) – p1(x)
E1(x) = f 1 ( x) – p1(x) donde E1(x)’ < E1(x) ∀x ∈ [-xo,x1]

Consideremos un intervalo [a, b] de la función f ( x ) y a = xo<x1<x2<...<xn = b; en n+1 puntos. Por el


método de Newton construimos pn(x) que interpola f ( x ) en los puntos x0, x1,...,xn. Entonces po(x) es el
polinomio de grado cero que interpola f ( x ) en x = xo; po(x) = f ( x0 ) Del mismo modo ∀x ∈ [a,b] y x = xo
tendremos

f[xo,x] = f(x) – f(xo)


x – xo

(x – xo)f[xo,x] = f(x) – f(xo)

f(x) = f(xo) – (x – xo)f[xo,...,x]

donde f(xo) = po(x) y el segundo término del segundo miembro de la ecuación corresponde al error, o sea

Eo(x) = (x-xo)f[xo,...,x]

Considerando ahora p1(x) el polinomio de grado 1 que interpola f(x) en xo y x1

f[xo,x1,..,x] =f[x1,xo,...,x] =f[xo,x] –f[x1,xo] = [f(x)–f(xo)]/(x –xo) – f[x1,xo] =


x – x1 x – x1

= [f(x) – f(xo)] – (x-xo)(x-x1)f[x1,xo]


(x – xo)(x – x1)

f(x) = f(xo) + (x – xo)f[x1,xo] + (x-xo)(x – x1)f[xo,x1,x]

p1(x) E1(x)

entonces: p1(x) = f(xo) + (x – xo)f[x1,xo] y

E1(x) = (x-xo)(x – x1)f[xo,x1,x]

Aplicando sucesivamente el mismo raciocinio para xo,x1,x2,...xn tendremos la forma de Newton de grado <
n que interpola f ( x ) en xo,x1,x2,...xn

Pn(x) = f(xo)+(x– xo)f[xo,x1] + (x – xo)(x – x1)f[xo,x1,x2] + ...+ (x – xo)(x – x1)...(x–xn-1)f[xo,x1,...xn]

Y el error dado por: En(x) = (x – xo)(x – x1)...(x – xn)f[xo,x1,...,xn,x]

3.5.1- ESTIMATIVA DEL ERROR

Existen diferentes maneras para estimar el error cometido cuando se interpola una función f ( x ) por un
polinomio pn(x). Una manera práctica de estimar el error cuando usamos el polinomio de interpolación de
Newton es:

En(x) ≅ | (x – xo)(x – x1)...(x – xn)|Max| diferencias divididas de orden n+1|

Ejemplo 3.4 : dada una función f(x) en la forma tabular


Ing Hugo Franco Paats 34
Cálculo Numérico CAPITULO III - Interpolación

x O,2 0,34 0,4 0,52 0,6 0,72


f ( x) 0,16 0,22 0,27 0,29 0,32 0,37

a) obtener f(0.47) usando un polinomio de segundo grado


b) dar una estimativa del error cometido

construimos la tabla de diferencias divididas de Newton

x orden 0 orden 1 orden 2 orden 3

0.2 0.16
0.4286
0.34 0.22 2.022
0.8333 -17.8916
0.4 0.27 -3.7033
0.1667 18.2492
0.52 0.29 1.0415
0.375 -2.6031
0.6 0.32 0.2085
0.4167
0.72 0.37

dado que 0.47 pertenece al intervalo [0.42; 0.52] y como el polinomio interpolador es de segunda orden
por lo tanto tenemos que elegir 3 puntos para obtener el polinomio; tomando:
xo = 0.4; x1 = 0.52; x2 = 0.6; obtenemos:

a) p2(x) = f(xo) + (x – xo)f[xo,x1] + (x – xo)(x – x1)f[xo,x1,x2]


p2(x) = 0.27 + (x - 0.4)(0.1667) + (x – 0.4)(x – 0.52)(1.0415)

p2(0.47) = 0.2780

b) E2(0.47) = |(x – xo)(x – x1)(x – x2)| Máx |dif. Divididas de orden 3|

E2(0.47) = |(0.47 – 0.4)(0.47 – 0.52)(0.47 – 0.6)||18.2492| = 0.0083


La estimativa del error es de 0.0083

Estimativa del error en la interpolación de Lagrange

Teorema: si x0 , x1 ,..., x n son n+1 puntos distintos contenidos en el intervalo [a,b] y f(x) es una
función derivable n+1 veces en [a,b], entonces si x está contenido en el intervalo existe un número
z(x) tal que
f ( x) = p n ( x) + f n +1
( z ( x ))[( x − x 0 )( x − x1 )...( x − x n )] /( n + 1)!

Colorario: una cota para el error válida para todo punto x del intervalo es

n +1 ( x − x0 )( x − x1 )...( x − x n )
E n ( x) = f ( x) − p n ( x) ≤ máx f ( x)
(n + 1)!

Ing Hugo Franco Paats 35


Cálculo Numérico CAPITULO III - Interpolación

3.6- EVALUACION DEL GRADO DEL POLINOMIO INTERPOLADOR

La tabla de diferencias divididas puede auxiliar en la elección del grado del polinomio que usamos para
interpolar una función dada.

En primer lugar debemos construir la tabla de las diferencias divididas. Enseguida, examinamos las
diferencias divididas de la función en las proximidades del punto de interés. Si en estas proximidades las
diferencias divididas de orden ‘n’ son prácticamente constantes, o si las diferencias divididas de orden ‘n+1’
varían en torno de cero, podemos concluir que un polinomio interpolador de orden ‘n’ será el que mejor
aproximará a la función en la región considerada.

Ejemplo 3.5: consideremos f(x) dada por:

X 1 1.01 1.02 1.03 1.04 1.05

f(x) 1 1.005 1.01 1.0149 1.0198 1.0247

tabla de diferencias divididas

x orden 0 orden 1 orden 2


1 1.0
0.5
1.01 1.005 0
0.5
1.02 1.01 -0.5
0.49
1.03 1.0149 0
0.49
1.04 1.0198 0
0.49
1.05 1.0247

decimos entonces que en el intervalo [1; 1.05] un polinomio de orden n = 1 es una buena
aproximación para f ( x )

3.7- FENOMENO DE RUNGE

Cuando hacemos interpolación polinomial para una función f(x) se desea que la secuencia {pn(x)} de
los polinomios de grado <n converja a f(x) cuando n crece. Pero existen ejemplos de divergencia como el
conocido fenómeno de Runge.
1
Ejemplo: sea f ( x ) = definida ∀ ∈ [−1;1]
1 + 12 x 2
Vamos a interpolar f(x) en puntos igualmente espaciados, tales que:

Xi = -1 + 2i/n y tomamos n = 14

Lo que ocurre gráficamente es

Ing Hugo Franco Paats 36


Cálculo Numérico CAPITULO III - Interpolación

Ejemplo de
Runge.
Aproximamos
la función
por el
polinomio de
interpolación
que pasa
por los
puntos en
asterisco. Se
puede
observar
que la
aproximación
es mala
cerca de los
extremos
del
intervalo.

La divergencia ocurre en los extremos del intervalo. En este ejemplo conforme n crece, los puntos de
interpolación se vuelven cada vez más próximos y la diferencia | f(x) – p(x) | se vuelve arbitrariamente grande.

3.8 – INTERPOLACIÓN DE SPLINES

Terminamos este capítulo, estudiando un tipo de interpolación que ha demostrado poseer una gran finura, y
que inclusive es usado para el diseño por computadora, por ejemplo, de tipos de letras, imágenes, etc.

Esta interpolación se llama interpolación segmentaria o interpolación por splines. La idea central es que en
vez de usar un solo polinomio para interpolar los datos, podemos usar segmentos de polinomios y unirlos
adecuadamente para formar nuestra interpolación.
Cabe mencionar que entre todas, las splines cúbicas han resultado ser las más adecuadas para aplicaciones
como la mencionada anteriormente. Así pues, podemos decir de manera informal, que una función spline está
formada por varios polinomios, cada uno definido en un intervalo y que se unen entre si bajo ciertas
condiciones de continuidad.

Definición. (Splines de grado k)


Dada nuestra tabla de datos

donde suponemos que x0 < x1 < L < xn , y dado k un número entero positivo, una función de
interpolación spline de grado k, para la tabla de datos, es una función s ( x ) tal que :

i) s ( xi ) = yi , para toda para todo i = 1, 2, ...., n .

ii) s( x ) es un polinomio de grado ≤ k en cada subintervalo [xi −1 , xi ] .


iii ) s( x ) tiene derivada continua hasta de orden k − 1 en [x0 , xn ] .
Ing Hugo Franco Paats 37
Cálculo Numérico CAPITULO III - Interpolación

3.8.1 – FUNCIONES SPLINES LINEAL


Dados los n + 1 puntos

Una función spline de grado 1 que interpole los datos es simplemente unir cada uno de los puntos mediante
segmentos de recta, como sigue:

Claramente esta función cumple con las condiciones de la spline de grado 1. Así, tenemos que para este
caso:

⎧ s1 ( x ) si x ∈ [x0 , x1 ]
⎪s ( x ) s x ∈ [x1 , x2 ]

s ( x) = ⎨ 2
⎪ M
⎪⎩sn ( x ) si x ∈ [xn −1 , xn ]

donde:

i)
s j ( x ) es un polinomio de grado menor o igual que 1

ii) s( x ) tiene derivada continua de orden k-1=0.

iii)
s (x j ) = y j , para j = 0,1,...n
Por lo tanto, la spline de grado 1 queda definida como :

⎧ y0 + f [x1 , x0 ]( x − x0 ) si x ∈ [x0 , x1 ]
⎪ y + f [x , x ]( x − x ) x ∈ [x1 , x2 ]
⎪ si
s( x ) = ⎨ 1 2 1 1

⎪ M
⎪⎩ yn −1 + f [xn , xn −1 ]( x − xn −1 ) si x ∈ [xn −1 , xn ]

donde
f [ xi , x j ] es la diferencia dividida de Newton.

3.8.2 – FUNCIONES SPLINES DE SEGUNDO GRADO

Para aclarar bien la idea, veamos un ejemplo concreto, consideremos los siguientes datos :

Ing Hugo Franco Paats 38


Cálculo Numérico CAPITULO III - Interpolación

Y procedamos a calcular la interpolación por splines de grado 2.


Primero que nada, vemos que se forman tres intervalos :

[3,4.5]
[4.5,7]
[7,9]
En cada uno de estos intervalos, debemos definir una función polinomial de grado 2, como sigue:

⎧ a1 x 2 + b1 x + c1 si x ∈ [3,4.5]

s ( x ) = ⎨a2 x 2 + b2 x + c2 si x ∈ [4.5,7]
⎪a x2 + b x + c
⎩ 3 3 3 si x ∈ [7,9]

Primero, hacemos que la spline pase por los puntos de la tabla de datos. Es decir, se debe cumplir que:

s(3) = 2.5, s(4.5) =1, s(7) = 2.5, s(9) = 0.5


Así, se forman las siguientes ecuaciones:

s(3) = 2.5 ⇒ 9a1 + 3b1 + c1 = 2.5


⎧ (4.5) 2 a1 + 4.5b1 + c1 = 1
s (4.5) = 1 ⇒ ⎨
⎩(4.5) a2 + 4.5b2 + c2 = 1
2

⎧49a2 + 7b2 + c2 = 2.5


s (7) = 2.5 ⇒ ⎨
⎩ 49a3 + 7b3 + c3 = 2.5
s (9) = 0.5 ⇒ 81a3 + 9b3 + c3 = 0.5

Hasta aquí, tenemos un total de 6 ecuaciones vs. 9 incógnitas.


El siguiente paso es manejar la existencia de las derivadas continuas. En el caso de las splines de grado 2,
necesitamos que la spline tenga derivada continua de orden k-1=1, es decir, primera derivada continua.
Calculamos primero la primera derivada:
⎧ 2a1 x + b1 si x ∈ [3,4.5]

s′( x ) = ⎨2a2 x + b2 si x ∈ [4.5,7]
⎪ 2a x + b
⎩ 3 3 si x ∈ [7,9]

Vemos que esta derivada está formada por segmentos de rectas, que pudieran presentar discontinuidad
en los cambios de intervalo. Es decir, las posibles discontinuidades son x = 4.5 y x = 7 . Por lo tanto
para que s′( x ) sea continua, se debe cumplir que:

2a1 (4.5) + b1 = 2a2 (4.5) + b2


o lo que es lo mismo,
9a1 + b1 = 9a2 + b2
También debe cumplirse que:

2a2 (7 ) + b2 = 2a3 (7 ) + b3
Ing Hugo Franco Paats 39
Cálculo Numérico CAPITULO III - Interpolación

o lo que es lo mismo,
14a2 + b2 = 14a3 + b3

Así, tenemos un total de 8 ecuaciones vs. 9 incógnitas; esto nos da un grado de libertad para elegir
alguna de las incógnitas. Elegimos por simple conveniencia a1 = 0 .
De esta forma, tenemos un total de 8 ecuaciones vs. 8 incógnitas. Estas son las siguientes:

3b1 + c1 = 2.5
4.5b1 + c1 = 1
20.25a2 + 4.5b2 + c2 = 1
49a2 + 7b2 + c2 = 2.5
49a3 + 7b3 + c3 = 2.5
81a3 + 9b3 + c3 = 0.5
b1 = 9a2 + b2
14a2 + b2 = 14a3 + b3

Este sistema de ecuaciones tiene la siguiente forma matricial:

⎡3 1 0 0 0 0 0⎤ ⎡ b1 ⎤ ⎡2.5⎤
0
⎢4.5
⎢ 1 0 0 0 0 0 0⎥⎥ ⎢⎢ c1 ⎥⎥ ⎢⎢ 1 ⎥⎥
⎢0 0 20.25 4.5 1 0 0 0 ⎥ ⎢ a2 ⎥ ⎢ 1 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢0 0 49 7 1 0 0 0⎥ ⎢ b2 ⎥ ⎢2.5⎥
=
⎢0 0 0 0 0 49 7 1⎥ ⎢ c2 ⎥ ⎢2.5⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢0 0 0 0 0 81 9 1⎥ ⎢ a3 ⎥ ⎢0.5⎥
⎢1 0 −9 −1 0 0 0 0⎥ ⎢ b3 ⎥ ⎢ 0 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢⎣ 0 0 14 1 0 − 14 − 1 0⎥⎦ ⎢⎣ c3 ⎥⎦ ⎢⎣ 0 ⎥⎦

Usando Matlab se obtiene la siguiente solución:

b1 = −1
c1 = 5.5
a2 = 0.64
b2 = − 6.76
c2 = 18.46
a3 = − 1.6
b3 = 24.6
c3 = − 91.3
Sustituyendo estos valores (junto con a1 = 0 ), obtenemos la función spline cuadrática que interpola la
tabla de datos dada:

⎧ − x + 5.5 si x ∈ [3,4.5]

s ( x ) = ⎨0.64 x 2 − 6.76 x + 18.46 si x ∈ [4.5,7]
⎪ − 1.6 x 2 + 24.6 x − 91.3 si
⎩ x ∈ [7,9]
Ing Hugo Franco Paats 40
Cálculo Numérico CAPITULO III - Interpolación

La gráfica que se muestra a continuación, contiene tanto los puntos iniciales de la tabla de datos, así
como la spline cuadrática.
3.5

2.5

1.5

0.5
3 4 5 6 7 8 9

El siguiente caso, que es el más importante en las aplicaciones, sigue exactamente los mismos pasos del
ejemplo que acabamos de resolver, solamente que en vez de trabajar con polinomios cuadráticos, lo hace con
polinomios cúbicos.

3.8.3 – FUNCIONES SPLINES CUBICAS

Para hacer más firme el entendimiento, escribimos la definición correspondiente a este caso (k=3).

Dados los n + 1 datos:

Una spline cúbica que interpola estos datos, es una función s ( x ) definida como sigue :

⎧ s0 ( x ) si x ∈ [x0 , x1 ]
⎪ s ( x ) si x ∈ [x1 , x2 ]

s( x ) = ⎨ 1
⎪ M
⎪⎩sn −1 ( x ) si x ∈ [xn −1 , xn ]

donde cada si ( x ) es un polinomio cúbico; si ( xi ) = yi , para toda i = 0,1,.., k ,...n y tal que s( x ) tiene

primera y segunda derivadas contínuas en [x0 , xn ] .

Ejemplo 3.6: Interpolar los siguientes datos mediante una spline cúbica :

Solución.
Definimos un polinomio cúbico en cada uno de los intervalos que se forman:

Ing Hugo Franco Paats 41


Cálculo Numérico CAPITULO III - Interpolación

⎧ a1 x 3 + b1 x 2 + c1 x + d1 si x ∈ [2,3]
s( x ) = ⎨ 3
⎩a2 x + b2 x + c2 x + d 2
2
si x ∈ [3,5]

A continuación, hacemos que se cumpla la condición de que la spline debe pasar por los puntos dados
en la tabla. Así, tenemos que:

s(2) = −1 ⇒ 8a1 + 4b1 + 2c1 + d1 = −1


s(3) = 2 ⇒ 27a1 + 9b1 + 3c1 + d1 = 2
s (3) = 27a 2 + 9b2 + 3c 2 + d 2 = 2
s(5) = −7 ⇒ 125a2 + 25b2 + 5c2 + d 2 = −7

Ahora calculamos la primera derivada de s( x ) :

⎧ 3a x 2 + 2b1 x + c1 si x ∈ [2,3]
s ′( x ) = ⎨ 1 2
⎩3a 2 x + 2b2 x + c 2 si x ∈ [3,5]

Al igual que en el caso de las splines cuadráticas, se presentan ecuaciones que pueden presentar
discontinuidad en los cambios de intervalo; las posibles discontinuidades son los puntos donde se
cambia de intervalo, en este caso x = 3 . Para evitar esta discontinuidad, evaluamos x = 3 en los
dos polinomios e igualamos:

3a1 (3) + 2b1 (3) + c1 = 3a 2 (3) + 2b2 (3) + c 2


2 2

o lo que es lo mismo:

27a1 + 6b1 + c1 = 27a 2 + 6b2 + c2


Análogamente procedemos con la segunda derivada :

⎧ 6a x + 2b1 si x ∈ [2,3]
s ′′( x ) = ⎨ 1
⎩6a 2 x + 2b2 si x ∈ [3,5]

Para lograr que s ′′( x ) sea continua :

6a1 (3) + 2b1 = 6a 2 (3) + 2b2


∴18a1 + 2b1 = 18a2 + 2b2

En este punto contamos con 6 ecuaciones y 8 incognitas, por lo tanto tenemos 2 grados de libertad;
en general, se agregan las siguientes 2 condiciones:

s ′′( x0 ) = 0
s ′′( x n ) = 0

De lo cual vamos a obtener :

s′′(2) = 0 ⇒ 6a1 (2) + 2b1 = 0


∴12a1 + 2b1 = 0
s′′(5) = 0 ⇒ 6a2 (5) + 2b2 = 0
Ing Hugo Franco Paats 42
Cálculo Numérico CAPITULO III - Interpolación

∴ 30a2 + 2b2 = 0
Con lo cual, hemos completado un juego de 8 ecuaciones vs. 8 incógnitas, el cual es el siguiente:

8a1 + 4b1 + 2c1 + d1 = −1


27a1 + 9b1 + 3c1 + d1 = 2
27a 2 + 9b2 + 3c 2 + d 2 = 2
125a 2 + 25b2 + 5c 2 + d 2 = −7
27a1 + 6b1 + c1 = 27a 2 + 6b2 + c 2
18a1 + 2b1 = 18a 2 + 2b2
12a1 + 2b1 = 0
30a 2 + 2b2 = 0

Cuya forma matricial es la siguiente :

⎡8 4 2 1 0 0 0 0 ⎤ ⎡ a1 ⎤ ⎡ − 1 ⎤
⎢ 27
⎢ 9 3 1 0 0 0 0 ⎥⎥ ⎢⎢ b1 ⎥⎥ ⎢ 2 ⎥
⎢ ⎥
⎢0 0 0 0 27 9 3 1 ⎥ ⎢ c1 ⎥ ⎢ 2 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢0 0 0 0 125 25 5 1 ⎥ ⎢ d1 ⎥ ⎢ − 7 ⎥
=
⎢ 27 6 1 0 − 27 −6 −1 0⎥ ⎢ a2 ⎥ ⎢ 0 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ 18 2 0 0 − 18 −2 0 0 ⎥ ⎢ b2 ⎥ ⎢ 0 ⎥
⎢12 2 0 0 0 0 0 0 ⎥ ⎢ c2 ⎥ ⎢ 0 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎣⎢ 0 0 0 0 30 2 0 0 ⎦⎥ ⎣⎢ d 2 ⎦⎥ ⎢⎣ 0 ⎦⎥

Usando Matlab, obtenemos la siguiente solución:

a1 = − 1.25
b1 = 7.5
c1 = − 10.75
d1 = 0.5
a2 = 0.625
b2 = − 9.375
c2 = 39.875
d2 = − 50.125

Sustituyendo estos valores en nuestra función inicial, vemos que la spline cúbica para la tabla de datos
dada, queda definida como sigue:

⎧ − 1.25 x3 + 7.5 x 2 − 10.75 x + 0.5 si x ∈ [2,3]


s( x ) = ⎨
⎩0.625 x − 9.375 x + 39.875 x − 50.125 si
3 2
x ∈ [3,5]

Mostramos la gráfica correspondiente a este ejercicio

Ing Hugo Franco Paats 43


Cálculo Numérico CAPITULO III - Interpolación

Obsérvese la finura con la que se unen los polinomios cúbicos que conforman a la spline. Prácticamente
ni se nota que se trata de dos polinomios diferentes! Esto es debido a las condiciones que se impusieron
sobre las derivadas de la función. Esta finura casi artística, es la que permite aplicar las splines cúbicas,
para cuestiones como el diseño de letras por computadoras, o bien a problemas de aplicación donde la
interpolación que se necesita es de un carácter bastante delicado, como podría tratarse de datos médicos
sobre algún tipo de enfermedad.

Ejemplo 3.7: Interpolar los siguientes datos utilizando splines cúbicas:

Solución.
Nuevamente, definimos un polinomio cúbico en cada uno de los intervalos:

⎧ a1 x 3 + b1 x 2 + c1 x + d1 si x ∈ [− 1,1]

s ( x) = ⎨a2 x 3 + b2 x 2 + c2 x + d 2 si x ∈ [1,2]
⎪ a x3 + b x 2 + c + d
⎩ 3 3 3 3 si x ∈ [2,4]

Despues, hacemos que la spline pase por los puntos dados en la tabla. Así, tenemos que:
s ( −1) = −1 implica que, − a1 + b1 − c1 + d1 = −1

s (1) = 1 implica que, a1 + b1 + c1 + d1 = 1


a2 + b2 + c2 + d 2 = 1

s ( 2) = 5 implica que, 8a2 + 4b2 + 2c2 + d 2 = 5


8a3 + 4b3 + 2c3 + d 3 = 5

Y finalmente s ( 4) = −2 implica que,

64a3 + 16b3 + 4c3 + d3 = −2

Enseguida, calculamos la primera derivada:

⎧ 3a1 x 2 + 2b1 x + c1 si1 x ∈ [− 1,1]



s′( x) = ⎨3a2 x 2 + 2b2 x + c2 si x ∈ [1,2]
⎪ 3a x 2 + 2b x + c
⎩ 3 3 3 si x ∈ [2,4]
Ing Hugo Franco Paats 44
Cálculo Numérico CAPITULO III - Interpolación

Vemos entonces, que las posibles discontinuidades de s′( x ) son x = 1 y x = 2 . Por lo tanto,
para hacer que s′( x ) sea contínua, igualamos las ecuaciones correspondientes en ambos valores :

3a1 + 2b1 + c1 = 3a2 + 2b2 + c2


12a2 + 4b2 + c2 = 12a3 + 4b3 + c3

Ahora procedemos a calcular la segunda derivada:

⎧ 6a1 x + 2b1 si x ∈ [− 1,1]



s′′( x) = ⎨6a2 x + 2b2 si x ∈ [1,2]
⎪6a x + 2b
⎩ 3 3 si x ∈ [2,4]

Nuevamente, las posibles discontinuidades son x = 1 y x = 2 . Por lo tanto, para que s′′( x) sea
contínua , se igualan las ecuaciones en ambos valores :

6a1 + 2b1 = 6a2 + 2b2 → 3a1 + b1 = 3a2 + b2


12a2 + 2b2 = 12a3 + 2b3 → 6a2 + b2 = 6a3 + b3

Finalmente, se agregan las condiciones de que la doble derivada se anule en los puntos inicial y final de
la tabla. En este caso,

s′′(−1) = 0 → −6a1 + 2b1 = 0 → −3a1 + b1 = 0


s′′(4) = 0 → 24a3 + 2b3 = 0 → 12a3 + b3 = 0

Con esto tenemos un juego de doce ecuaciones vs. doce incógnitas:

− a1 + b1 − c1 + d1 = −1
a1 + b1 + c1 + d1 = 1
a2 + b2 + c2 + d 2 = 1
8a2 + 4b2 + 2c2 + d 2 = 5
8a3 + 4b3 + 2c3 + d 3 = 5
64a3 + 16b3 + 4c3 + d3 = −2
3a1 + 2b1 + c1 = 3a2 + 2b2 + c2
12a2 + 4b2 + c2 = 12a3 + 4b3 + c3
3a1 + b1 = 3a2 + b2
6a2 + b2 = 6a3 + b3
− 3a1 + b1 = 0
12a3 + b3 = 0

Este sistema tiene la siguiente forma matricial:

Ing Hugo Franco Paats 45


Cálculo Numérico CAPITULO III - Interpolación

⎡−1 1 −1 1 0 0 0 0 0 0 0⎤ ⎡ a1 ⎤ ⎡ − 1⎤
0
⎢1
⎢ 1 1 1 0 0 0 0 0 0 0 0⎥⎥ ⎢⎢ b1 ⎥⎥ ⎢⎢ 1 ⎥⎥
⎢0 0 0 0 1 1 1 1 0 0 0 0⎥ ⎢ c1 ⎥ ⎢ 1 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢0 0 0 0 8 4 2 1 0 0 0 0⎥ ⎢ d1 ⎥ ⎢ 5 ⎥
⎢0 0 0 0 0 0 0 0 8 4 2 1⎥ ⎢ a2 ⎥ ⎢ 5 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢0 0 0 0 0 0 0 0 64 16 4 1⎥ ⎢ b2 ⎥ ⎢− 2⎥
=
⎢3 2 1 0 − 3 − 2 −1 0 0 0 0 0⎥ ⎢ c2 ⎥ ⎢ 0 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢0 0 0 0 12 4 1 0 − 12 − 4 − 1 0⎥ ⎢d 2 ⎥ ⎢ 0 ⎥
⎢3 1 0 0 −3 −1 0 0 0 0 0 0⎥ ⎢ a3 ⎥ ⎢ 0 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢0 0 0 0 6 1 0 0 − 6 − 1 0 0⎥ ⎢ b3 ⎥ ⎢ 0 ⎥
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢− 3 1 0 0 0 0 0 0 0 0 0 0⎥ ⎢ c3 ⎥ ⎢ 0 ⎥
⎢⎣ 0 0 0 0 0 0 0 0 12 1 0 0⎥⎦ ⎢⎣ d3 ⎥⎦ ⎢⎣ 0 ⎥⎦

Usando Matlab, obtenemos la solución :

51 21 24
a1 = a2 = − a3 =
140 , 10 , 35
153 297 288
b1 = b2 = b3 = −
140 , 35 , 35

89 473 1867
c1 = c2 = − c3 =
140 , 70 , 70

153 48 732
d1 = − d2 = d3 = −
40 , 35 , 35

Por lo tanto, la spline cúbica es:

⎧ 140 x + 140
51 3
x + 140
153 2 89
x − 153
40 si x ∈ [−1,1]
⎪ 21 3 297 2 473 48
s( x) = ⎨− 10 x + 35 x − 70 x + 35 si x ∈ [1,2]
⎪ 24 x3 − 288 x 2 + 1867 x − 732 si x ∈ [2,4]
⎩ 35 35 70 35
Finalmente, mostramos la gráfica correspondiente
8

-1 1 2 4

-2

Ing Hugo Franco Paats 46


Cálculo Numérico CAPITULO III - Interpolación

3.8- EJERCICIOS

3.1- Dada la siguiente tabla:


x 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8
x
e 11.02 13.46 16.44 20.08 24.53 29.26 36.59 44.70

3. 1
a) Calcula e usando un polinomio de interpolación sobre tres puntos utilizando:
a.1- la forma de Lagrange
a.2- la forma de Newton.
b) De una estimativa del error para ambos casos.

3.2- Construya una tabla que contenga valores de cos( x ) para puntos igualmente espaciados en el
intervalo [1; 2]. ¿Cuál debe ser el menor número de puntos de esta tabla para obtener, a partir de ella, el
cos( x) usando interpolación cuadrática con un error menor que 10 −6 ∀x ∈ 1;2 [ ]

3.3- Construya la tabla de diferencias divididas de Newton con los siguientes datos:
x 0.0 0.5 1.0 1.5 2.0 2.5
f ( x) -2.78 -2.241 -1.65 -0.594 1.340 4.564
a) Calcula el valor de f(1,23) de la mejor manera posible de forma que se pueda calcular el error cometido.
b) Justifique el grado del polinomio elegido para resolver el item a)

3.4- Dado los siguientes datos:


x 0,0 0,5 1,0 1,5 2,0 2,5
f ( x) 1 2,119 2,910 3,945 5,72 8,695
a) Calcula f(1,6) usando polinomios de interpolación de Newton de orden 1, orden 2 y orden 3. Elija la
secuencia de puntos.
b) Haga una estimativa del error en cada predicción.
c) Repita el item a) utilizando la interpolación de Lagrange.

3.5.- Encuentre el polinomio de 2º grado que interpola la función f ( x ) , utilizando la interpolación


polinómica, cuyos valores son indicados en la siguiente tabla:

x -1 0 1,5
f ( x) 1 0,5 3

3.6- Calcule f(3), utilizando la fórmula de Lagrange si f(1) =2; f(2) = 11 y f(4) = 77.

3.7- Suponiendo que f(x) tiene un cero en el intervalo 1<x<2 y sabiendo que f(0) = 16; f(1) = 1 y f(2) =2,
estime la localización de este cero.

3.8 - Dada la siguiente tabla


x -2 0 2 3
f ( x) 0 1 b -1
Ajuste con un polinomio p(x) de grado tres o menor. Para tal polinomio ¿qué valor de b hace p(1) igual a 1

3.9 - Calcula el polinomio de interpolación de Newton para los siguientes datos:

Ing Hugo Franco Paats 47


Cálculo Numérico CAPITULO III - Interpolación

i)

x -2 1 2 4
y -3 2.4 0,5 7,8
ii)
x 0,3 0,6 0,9 1,2 1,5
y -3 0 -6 9 -12

Soluciones:

i ) f ( x ) = 0.5 + 0.875( x − 2) − 0.925( x − 2)( x + 2) + 0.4625( x − 2)( x + 2)( x − 1)


ii ) f ( x) = −3 + 10( x − 0.3) − 50( x − 0.3)( x − 0.6) + 185.18519 ( x − 0.3)( x − 0.6)( x − 0.9)
− 447 .53088( x − 0.3)( x − 0.6)( x − 0.9)( x − 1.2)

3.10 - Calcula el polinomio de Lagrange para los siguientes datos:


i)
x 1 -2 3 -5
y 1,56 3,54 -2,57 -8,9
ii)
x -1,5 -0,5 1 -2 -4
y 9 -2 5 33 0

Soluciones:

⎡ ( x + 2)( x − 3)( x + 5) ⎤ ⎡ ( x − 1)( x − 3)( x + 5) ⎤ ⎡ ( x − 1)( x + 2)( x + 5) ⎤


i ) p ( x ) = 1.56 ⎢ ⎥ + 3.54 ⎢ ⎥ − 2.57 ⎢ ⎥⎦
⎣ − 36 ⎦ ⎣ 45 ⎦ ⎣ 80
⎡ ( x − 1)( x + 2)( x − 3) ⎤
− 8 .9 ⎢ ⎥⎦
⎣ − 144

⎡ ( x + 0.5)( x − 1)( x + 2)( x + 4) ⎤ ⎡ ( x + 1.5)( x − 1)( x + 2)( x + 4) ⎤


ii ) p ( x ) = 9 ⎢ ⎥⎦ − 2 ⎢⎣ ⎥⎦
⎣ 3.125 − 7.875
⎡ ( x + 1.5)( x + 0.5)( x + 2)( x + 4) ⎤ ⎡ ( x + 1.5)( x + 0.5)( x − 1)( x + 4) ⎤
+ 5⎢ ⎥ + 33⎢ ⎥⎦
⎣ 56.25 ⎦ ⎣ − 4 .5

3.11 - Calcula las splines cúbicas para los siguientes datos:

i)
x -2 1 3
y 40 -5 -20

ii)
x -2 1 3
y 40 -5 -20

Soluciones:

Ing Hugo Franco Paats 48


Cálculo Numérico CAPITULO III - Interpolación

⎧ 0.25 x 3 + 1.5 x 2 − 14 .25 x + 7.5 si x ∈ [− 2,1]


i) s ( x) = ⎨
⎩− 0.375 x + 3.375 x − 16 .125 x + 8.125
3 2
si x ∈ [1,3]

⎧ − 526
5
x 3 − 526
75 2
x − 4703
789 x − 789
5860
si x ∈ [− 5,−2]

ii) s ( x) = ⎨ 1241
7890 x
3
+ 2257
2630 x
2
− 15619
3945 x
− 1315
8012
si x ∈ [− 2,3]
⎪− 299 x 3 + 2093 x 2 − 10511 x + 860 si x ∈ [3,7]
⎩ 1578 526 789 263

Ing Hugo Franco Paats 49

You might also like