1
Tema 3: Interpolación Polinomial.
Dpto. de Matemáticas. Prof. Doctor Fernando Mallo Fernández
Métodos Matemáticos.
2º ciclo de INGENIERÍA INDUSTRIAL, 2012-2013
Índice 1 Introducción a los métodos de interpolación. 3 1.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Interpolación de Lagrange 5 2.1. Existencia y Unicidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2. Cálculo por el Método de las Diferencias Divididas de
Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3. Cálculo por el Método de Lagrange . . . . . . . . . . . . . . . . . . . 19 2.4. Error de interpolación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.5. Interpolación por Splines (splines cúbicos naturales y
sujetos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
26 3 Interpolación de Lagrange Paramétrica 55 3.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.2. Existencia y Unicidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.3. Cálculo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2
3
1. Introducción a los métodos de interpolación.
1.1 Motivación.
Existen en todas las ramas de la ciencia, y, por tanto, en la Ingeniería
Aeroespacial situaciones en las que conociendo un conjunto de datos
experimentales en un cierto intervalo de la variable independiente, esto es,
conociendo una cierta cantidad de datos tabulados, se hace preciso encontrar una
función que verifique todos esos datos y permita, por consiguiente, predecir la
existencia de otros valores con la aproximación adecuada.
Formalmente, dada una función ( )f x , la fórmula de interpolación permite
calcular de manera aproximada los valores de ( )f x , sustituyendo la función
( )f x por otra función de aproximación ( )p x que pudiera convenir por razones de
simplicidad, operatividad, etc. La primera cuestión que debemos plantearnos es
la siguiente:
dada una tabla de valores de ( )f x :
(1) x0 x1 x2 . . . xn
y0 y1 y2 . . . yn
¿existe una función ( )p x tal que ( )k kp x y= ?
En caso de existir tal función ( )p x se llama función de interpolación.
En definitiva se trata de, a partir de los valores de la función ( )f x mostrados
en (1), construir otra función ( )p x con adecuados parámetros na :
(2 ) 0( ) ( ; ,..., ) np x p x a a≡
de modo que se cumplan las condiciones de interpolación prefijadas en el
conjunto de puntos (1) del dominio de la función ( )f x , que se denominan nodos
de interpolación.
Estas condiciones consisten, en general, en que coincidan los valores que
presenta la función dada ( )f x en los nodos de interpolación con los valores que
en dichos nodos presenta la función de interpolación ( )p x :
( ) ( ), 0,1,..., k kp x f x k n= =
donde x0, x1,…, xn son los nodos de interpolación.
La interpolación es una herramienta matemática muy útil en una gran
variedad de aplicaciones, en concreto:
Aproximar el valor ( )kf x cuando ( )f x tiene una expresión difícil de
calcular y se tiene una tabla de valores de ( )f x .
4
Aproximar el valor ( )kf x cuando se conoce ( )f x de forma experimental al
considerar una condición kx no experimental.
Construir una curva que pase por una colección de puntos, como por ejemplo:
Ejemplo 3.1 Diseñar una montaña rusa que pase por los puntos:
(1,2), (2,1), (3,5), (4,4) (5,3), (6,6)
Figura 1: Nodos del ejemplo 1.1.
Figura 2: Montaña rusa diseñada por interpolación de Lagrange.
5
2 Interpolación de Lagrange.
2.1 Existencia y Unicidad.
Definición 3.1. Interpolación Polinomial. En el caso particular en el que
p(x) es un polinomio, el problema de interpolación se conoce como Interpolación
Polinomial.
Recuerde que la fórmula general para un polinomio de n-ésimo grado es
(3) 0 1 1 2 2( ) · · · n nf x a a x a x a x= + + + +
Dados n+1 puntos, hay uno y sólo un polinomio de grado n que pasa a través
de todos los puntos. Por ejemplo, hay sólo una línea recta (es decir, un polinomio
de primer grado) que une dos puntos (figura 3a). De manera similar, únicamente
una parábola une un conjunto de tres puntos (figura 3b) y un polinomio de tercer
grado que une cuatro puntos (figura 3c).
Figura. 3 Ejemplos de interpolación polinomial: a) de primer grado (lineal) que une dos puntos, b) de segundo grado (cuadrática o parabólica) que une tres puntos y c) de tercer grado (cúbica) que une cuatro puntos.
Definición. 3.2. El problema de interpolación polinomial de Lagrange
consiste en dada una tabla de datos
x0 x1 x2 . . . xn
y0 y1 y2 . . . yn
con , j kx x≠ , para k j≠ , encontrar un polinomio ( )np x de grado menor posible
tal que
( ) 0,1,...,n k kp x y k n= =para
Entonces el polinomio ( )np x proporciona una fórmula para calcular valores
intermedios y se llama Polinomio Interpolador de Lagrange en los nodos
( ) ( ) ( )0 0 1 1, , ,n nx y x y x y, ,..., .
6
Teorema. 3.1 (Existencia y Unicidad del polinomio interpolador ( )np x ).
Existe un único Polinomio Interpolador de Lagrange, ( )np x de grado menor o
igual que n en los nodos ( ) ( ) ( )0 0 1 1, , ,n nx y x y x y, ,..., .
Aunque hay uno y sólo un Polinomio Interpolador de Lagrange de grado n
que se ajusta a n+1 puntos, existe una gran variedad de formas matemáticas en
las cuales puede expresarse este polinomio.
Ejemplo 3.2 Interpolación Lineal.
La forma más simple de interpolación consiste en unir dos puntos con una
línea recta. Dicha técnica, llamada interpolación lineal, se ilustra de manera
gráfica en la figura 4.
( ) ( ) ( ) ( )1 01 0 1 0
0 1 0
1 0 0
1 0
p x y y ytg
x x x x
y yp x y x x
x xα
− −= = ⇒− −−
−= + −
donde 0 1x x x< < .
Si notamos [ ] [ ] 1 00 0 0 1
1 0
, ,y y
x y x xx x
−= =−
. Se tiene
(4) ( ) [ ] [ ]( )1 0 0 1 0,p x x x x x x= + − .
0x x 1x
( )1p x
1y
0y
( )f x
Figura. 4 Interpolación Lineal.
Obsérvese que además de representar la pendiente de la recta que une los puntos
( ) ( )0 0 1 1, ,x y x yy , el término [ ] 1 00 1
1 0
,y y
x xx x
−=−
es una aproximación en diferencia
dividida finita a la primera derivada de ( )f x que viene dada por
( ) ( ) ( )0 0
00
' limdx
f x dx f xf x
dx→
+ −= . En general, cuanto menor sea el intervalo entre
los datos, mejor será la aproximación. Esto se debe al hecho de que, conforme
disminuye el intervalo, una función continua estará mejor aproximada por una
línea recta, como se demuestra en el siguiente ejemplo.
7
Ejemplo 3.3 Estime el logaritmo natural de 2 mediante interpolación lineal.
Primero, realice el cálculo por interpolación entre ( )ln 1 0= y ( )ln 6 1.791759= .
Después, repita el procedimiento, pero use un intervalo menor, por ejemplo de
( )ln 1 0= a ( )ln 4 1.386294= . El verdadero valor de ( )ln 2 0.6931472= .
Solución. Usamos la ecuación (4) y una interpolación lineal para ( )ln 2 desde
0 1x = hasta 1 6x = para obtener ( ) [ ] [ ]( ) [ ] [ ]( )1 0 0 1 02 , 2 1 1,6 2 1p x x x x= + − = + − .
Nuestra tabla de datos (2.1) viene dada por
1 6
0 1.791759
La diferencia dividida [ ] [ ]0 1, 1,6x x = es
[ ] 1.791759 01,6 0.3583519
6 1
−= =−
Las diferencias divididas necesarias para nuestra interpolación lineal se
muestra en la tabla siguiente:
ix [ ]ix [ ]1,i ix x +
1 0
6 1.791759 0.3583519
La recta de interpolación viene dada por ( ) ( )1 0.3583519 1p x x= − , que evaluada
en 2x = nos proporciona una aproximación a ( )ln 2 :
( )1 2 0 0.3583519 1 0.3583519p = + × =
que presenta un error: 0.6931472-0.3583519
0.483007 48,3%0.6931472
error = = ≈ .
p1(x)
64
1.7917
1.3862
1 2
0.6931
0.46200.3583
Figura. 5 Interpolación Lineal.
8
Como puede observarse en la figura 5, en el intervalo menor desde 0 1x = hasta
1 4x = se obtienen las diferencias divididas:
ix [ ]ix [ ]1,i ix x +
1 0
4 1.386294 0.4620981
En este caso, La recta de interpolación viene dada por ( ) ( )1 0.4620981 1p x x= − ,
que evaluada en 2x = nos proporciona otra aproximación a ( )ln 2 :
( )1 2 0 0.4620981 1 0.4620981p = + × =
Usando el intervalo más corto el error relativo porcentual se reduce a
0.6931472-0.46209810.333333 33,3%
0.6931472error = = ≈ .
Ambas interpolaciones se muestran en la figura 5, junto con la función
verdadera.
Ejemplo 3.4 Interpolación Cuadrática.
El error cometido en el ejemplo anterior se origina al aproximar una curva por
una línea recta. Una forma de resolver este problema consiste en dotar a la línea
que une los puntos de alguna curvatura. Si la tabla de datos se refiere a tres
puntos
0x 1x 2x
0y 1y 2y
éstos pueden ajustarse a un polinomio de segundo grado (también conocido
como polinomio cuadrático o parábola). Una forma particularmente
conveniente para expresar un polinomio con este fin es la siguiente:
(5) ( ) ( ) ( )( )2 0 1 0 2 0 1p x c c x x c x x x x= + − + − −
Observe que aunque la ecuación (5) parece diferir del polinomio general
[ecuación (3)], las dos ecuaciones son equivalentes
( ) ( ) ( )( ) ( ) 2
2 0 1 0 2 0 1 2 0 1 2
0 0 1 0 2 0 1
1 1 2 0 2 1
2 2
p x c c x x c x x x x p x a a x a x
a c c x c x x
a c c x c x
a c
= + − + − − ≡ = + +
= − +
= − −
=
De este modo, las ecuaciones (3), para 2n = , y (5) son formas alternativas y
equivalentes del único polinomio de segundo grado que une los tres puntos.
9
Para determinar los valores de los coeficientes, , 0,1, 2ic i = , puede utilizarse el
siguiente procedimiento:
a) Para encontrar 0c , se evalúa la ecuación (5) en 0x x= . Como resultado se
obtiene ( ) ( ) ( ) ( )2 0 0 1 0 0 2 0 0 0 1 0p x c c x x c x x x x c= + − + − − = , es decir
( )0 2 0 0c p x y= = o, en términos de diferencias divididas,
(6) [ ]00 0c xy= =
b) Para encontrar 1c , se sustituye (6) en (5) y se evalúa la ecuación
resultante en 1x x= . Ahora resulta
( ) ( ) ( ) ( ) ( )2 1 0 1 1 0 2 1 0 1 1 0 1 1 0p x y c x x c x x x x y c x x= + − + − − = + − ,
de donde, ( ) [ ]2 1 0 1 0
1 0 1
1 0 1 0
,p x y y y
c x xx x x x
− −= = =− −
, es decir
(7) ( ) [ ]1 01
1 0
0 1,y y
cx x
x x=−=−
c) Por último, para encontrar 2c , se sustituyen (6) y (7) en (5) y se evalúa la
ecuación resultante en 2x x= . En este caso, se tiene
( ) ( ) ( ) ( )1 02 2 2 0 2 0 2 2 0 2 1
1 0
y yy p x y x x c x x x x
x x
−= = + − + − −−
,
de donde, tras algunas operaciones algebraicas, se llega a
( )[ ] [ ] [ ]
2 2 1 1 0 1 02 1
1 2 0 12 1 1 0 2 1 1 02 0 1 2
2 0 2 0 2 0
, ,, ,
p x y y y y yy y
x x x xx x x x x x x xc x x x
x x x x x x
− − −−− −−− − − −= = = =
− − −,
Por tanto,
(8) [ ]0 1
1 02 1
2 1 1 02 2
2 0
, ,
y yy y
x x xx
xx xc
x x
−
=
− −− −=
−
El polinomio (5) adopta la forma:
(9) ( ) ( ) ( ) ( )( )1 02 1
1 0 2 1 1 02 0 0 0 1
1 0 2 0
y yy y
y y x x x xp x y x x x x x x
x x x x
−− −− − −= + − + − −− −
o, en términos de diferencias divididas,
(10) ( ) [ ] [ ]( ) [ ]( )( )2 0 0 1 0 0 1 2 0 1, , ,p x x x x x x x x x x x x x= + − + − −
10
Obsérvese que, como en el caso de la interpolación lineal, 1c representa la
pendiente de la línea que une los puntos ( )0 0,x y y ( )1 1,x y .
Los primeros dos términos de la ecuación (10) son equivalentes a la
interpolación lineal entre ( )0 0,x y y ( )1 1,x y , como se observa en (4).
El último término, ( )( )2 0 1c x x x x− − , determina la curvatura de segundo grado
en la fórmula de interpolación cuadrática.
El coeficiente 2c es muy similar a la aproximación en diferencias divididas
finitas de la segunda derivada.
Obsérvese que el polinomio cuadrático se consigue añadiendo un nuevo
término, de grado 2, al polinomio lineal
( ) ( ) [ ]( )( )2 1 0 1 2 0 1, ,p x p x x x x x x x x= + − −
Veamos que el error cometido al aproximar el log de 2 por interpolación lineal
disminuye si dotamos a la línea que une los puntos de alguna curvatura a través
de añadir un punto más y, como consecuencia, un término de 2º grado.
Ejemplo 3.5 Estime el logaritmo natural de 2 mediante interpolación lineal entre los tres puntos 1, 4 y 6.
Solución. Usamos la ecuación (10) y una interpolación cuadrática para ( )ln 2
entre los puntos 0 1x = , 1 4x = y 2 6x = para obtener
( ) [ ] [ ]( ) [ ]( ) ( )2 0 0 1 0 0 1 2 0 12 , 2 , , 2 2p x x x x x x x x x= + − + − − .
La tabla de datos viene dada por
1 4 6
0 1.386294 1.791759
La tabla de diferencias divididas viene dada por
ix [ ]ix [ ]1,i ix x + [ ]1 2, ,i i ix x x+ +
0x [ ]0x
[ ]0 1,x x
1x [ ]1x [ ]0 1 2, ,x x x
[ ]1 2,x x
2x [ ]2x
*Las diferencias divididas finitas en color burdeos son los coeficientes del polinomio interpolador.
La diferencia dividida [ ] [ ] [ ]1 0
0 1
1 0
,x x
x xx x
−=
− es [ ] 1.386294 0
1,4 0.46209814 1
−= =−
11
y [ ] [ ] [ ]2 1
1 2
2 1
,x x
x xx x
−=
− es [ ] 1.791759 1.386294
4,6 0.20273256 4
−= =−
Por otra parte, la diferencia dividida [ ] [ ] [ ]1 2 0 1
0 1 2
2 0
, ,, ,
x x x xx x x
x x
−=
− resulta
[ ] 0.2027325 0.46209811,4,6 0.051873
6 1
−= = −−
Las diferencias divididas necesarias para nuestra interpolación cuadrática se
muestran en la tabla siguiente:
ix [ ]ix [ ]1,i ix x + [ ]1 2, ,i i ix x x+ +
1 0
0.4620981
4 1.386294 0.051873−
0.2027325
6 1.791759
Y, por tanto, la curva de interpolación viene dada por
( ) [ ] [ ]( ) [ ]( ) ( )( ) ( )( )
2 0 0 1 0 0 1 2 0 1
2
, , ,
0 0.4620981 1 0.051873 1 4
0.669490 0.721346 0.051873
p x x x x x x x x x x x x x
x x x
x x
= + − + − −
= + − − − −
= − + −
que evaluado en 2 resulta
( )2 2 0.669490 0.721346 2 0.051873 4 0.5658444p = − + × − × =
y presenta un error: 0.6931472-0.5658444
0.183659 18,4%0.6931472
error = = ≈ .
61 2 4
p1(x)1.3862
0.6931
0.4620
0.5658
1.7917
Figura. 6 Interpolación Cuadrática.
12
De este modo, la curvatura determinada por la fórmula cuadrática (figura 6)
mejora la interpolación comparándola con el resultado obtenido antes al usar las
líneas rectas del ejemplo 3.3, figura 5.
Esta forma de proceder tiene la ventaja de que el polinomio cuadrático se consigue, conservando la estructura anterior, añadiendo un nuevo término al polinomio lineal
( ) ( ) [ ]( )( )2 1 0 1 2 0 1, ,p x p x x x x x x x x= + − −
De contar con un punto más estaríamos ante la interpolación cúbica:
0x 1x 2x 3x
0y 1y 2y 3y
cuyo polinomio de interpolación se obtiene procediendo de forma idéntica a
como se procede en los casos lineal y cuadrático, añadiendo un nuevo término a
( )2p x , el término de grado 3:
( ) ( ) [ ]( )( )( )
[ ] [ ]( ) [ ]( )( ) [ ]( )( )( )
3 2 0 1 2 3 0 1 2
0 0 1 0 0 1 2 0 1 0 1 2 3 0 1 2
, , ,
, , , , , ,
p x p x x x x x x x x x x x
x x x x x x x x x x x x x x x x x x x x x x
= + − − −
= + − + − − + − − −
(11)
( ) [ ] [ ]( ) [ ]( ) ( )
[ ]( ) ( )( )
3 0 0 1 0 0 1 2 0 1
0 1 2 3 0 1 2
, , ,
, , ,
p x x x x x x x x x x x x x
x x x x x x x x x x
= + − + − −
+ − − −
donde [ ] [ ] [ ]1 2 3 0 1 2
0 1 2 3
3 0
, , , ,, , ,
x x x x x xx x x x
x x
−=
−, la tabla de diferencias divididas se amplía en la
forma siguiente:
En la tabla anterior puede apreciarse la naturaleza recursiva de las
diferencias divididas finitas y en la tabla siguiente como se amplía conociendo
un dato más.
13
ix [ ]ix [ ]1,i ix x + [ ]1 2, ,i i ix x x+ + [ ]1 2 3, , ,i i i ix x x x+ + + [ ]1 2 3 4, , , ,i i i i ix x x x x+ + + +
0x [ ]0 *x
[ ]0 1,x x
1x [ ]1x [ ]0 1 2, ,x x x
[ ]1 2,x x [ ]0 1 2 3, , ,x x x x
2x [ ]2x [ ]1 2 3, ,x x x [ ]0 1 2 3 4, , , ,x x x x x
[ ]2 3,x x [ ]1 2 3 4, , ,x x x x
3x [ ]3x [ ]2 3 4, ,x x x
[ ]3 4,x x
4x [ ]4x
*Las diferencias divididas finitas en color burdeos son los coeficientes del polinomio interpolador.
Veremos en el ejemplo 3.7 la interpolación cúbica añadiendo un nodo más a
los datos del ejemplo 3.5.
2.2 Cálculo del polinomio interpolador de grado n por el método de las diferencias divididas de Newton.
El análisis anterior puede generalizarse para ajustar a n+1 datos un polinomio
de n-ésimo grado:
(12) ( ) ( ) ( ) ( ) ( )( ) ( )0 1 0 2 0 1 0 1 1... ...n n np x c c x x c x x x x c x x x x x x −= + − + − − + + − − −
Tal como hemos procedido con la interpolación lineal y cuadrática, si se
utilizan n+1 puntos para obtener los coeficientes del polinomio (2.12),
0 1, , ,..., nc c c , se obtiene el siguiente resultado:
[ ] [ ] [ ] [ ]0 0 1 0 1 20 1 12 0 1, , , , , ,.. , ,..., ,..., n nnx x x x xc c x x x x xc c −= = = =
donde la n-ésima diferencia dividida finita viene dada por
[ ] [ ] [ ]1 1 0 1 1
0 1 1
0
,..., , , ,...,, ,..., , n n n
n n
n
x x x x x xx x x x
x x
− −−
−=
−
y el polinomio de interpolación (2.12) se expresa entonces en la forma siguiente:
(13) ( ) [ ] [ ]( ) [ ]( )( )
[ ]( )( ) ( )0 0 1 0 0 1 2 0 1
0 1 1 0 1 1
, , ,
... , ,..., , ...
n
n n n
p x x x x x x x x x x x x x
x x x x x x x x x x− −
= + − + − −
+ + − − −
que se conoce como polinomio de interpolación de Newton en diferencias
divididas.
La forma en que hemos procedido a la interpolación nos ha conducido al
método de interpolación de diferencias divididas de Newton, uno de los más
14
populares por su característica de método constructivo recursivo. El método se
puede formalizar en la definición y teorema siguientes:
Definición. 3.3. (Diferencias Divididas). Se definen para 0,1,...,i n= las
diferencias divididas finitas en la forma:
[ ]
[ ] [ ] [ ]
[ ] [ ] [ ]
[ ] [ ] [ ]
0 0
1
1
1
1 2 1
1 2
2
1 1 0 1 1
0 1 1
,
, ,, ,
.....
,..., , , ,...,, ,..., ,
i i
i i
i i
i i i i
i i i
i i
n n n
n n
i n i
x y
x xx x
x x
x x x xx x x
x x
x x x x x xx x x x
x x
++
+
+ + ++ +
+
− −−
+
=
−=
−−
=−
−=
−
Se construye así una tabla de números:
ix [ ]ix [ ]1,i ix x + [ ]1 2, ,i i ix x x+ + [ ]1 2 3, , ,i i i ix x x x+ + +
0x [ ]0 *x
1x [ ]1x [ ]0 1,x x
2x [ ]2x [ ]1 2,x x [ ]0 1 2, ,x x x
3x [ ]3x [ ]2 3,x x [ ]1 2 3, ,x x x [ ]0 1 2 3, , ,x x x x
: : : : : :
1nx − [ ]1nx − [ ]2 1,n nx x− − [ ]3 2 1, ,n n nx x x− − − [ ]4 3 2 1, , ,n n n nx x x x− − − − …
nx [ ]nx [ ]1,n nx x− [ ]2 1, ,n n nx x x− − [ ]3 2 1, , ,n n n nx x x x− − − …
*Los elementos en color burdeos son los coeficientes del polinomio interpolador.
La relación existente entre las diferencias divididas y el polinomio interpolador
viene dada por el siguiente resultado:
Teorema. 3.2. (Diferencias Divididas Finitas). El polinomio interpolador de
Lagrange en los nodos ( ) ( ) ( )0 0 1 1, , ,n nx y x y x y, ,..., es:
(14) ( ) ( ) ( ) ( ) ( )( ) ( )0 1 0 2 0 1 0 1 1... ...n n np x c c x x c x x x x c x x x x x x −= + − + − − + + − − −
siendo [ ]0 1, ,...,i ic x x x= .
Observación. Ventajas del método de diferencias divididas de Newton:
1. Su cálculo es sencillo.
2. Es fácil pasar a polinomios de grado superior añadiendo nuevos nodos.
3. Es fácil pasar a polinomios de grado inferior eliminando nodos.
15
Ejemplo 3.6. Construir la tabla de diferencias divididas, hasta el orden 3, a partir de los seis puntos siguientes:
0 0.5 1 2 3 4
0 0.7071 1 1.4142 1.7321 2
La tabla de diferencias divididas se puede construir en SCILAB por órdenes
semejantes a las siguientes:
x=[0 0.5 1 2 3 4]';
y=[0 0.707 1 1.4142 1.7321 2]';
m=3;
DD= tdifdiv(x,y,m);
DD=[x,DD]
function DD= tdifdiv(x,y,m);
n = size(x,1)
DD = zeros(n,m+1);
DD(:,1) = y;
for j=1:m
for i=1:n-j
DD(i,j+1) = ( DD(i+1,j) - DD(i,j) )/( x(i+j) - x(i) );
end
end
endfunction
SCILAB (tdifdiv, para los datos x e y con diferencias divididas de orden m=3)
-->tdifdiv(x,y,3)
Tabla de diferencias divididas finitas de orden 3:
ix [ ]ix [ ]1,i ix x + [ ]1 2, ,i i ix x x+ + [ ]1 2 3, , ,i i i ix x x x+ + +
0.0 0.0000
1.4142
0.5 0.7071 -0.8284
0.5858 0.3570
1.0 1.0000 -0.1144
0.4142 0.0265
2.0 1.4142 -0.0482
0.3179 0.0077
3.0 1.7321 -0.0250 0.2679
4.0 2.0000
16
Ejemplo 3.7 En el ejemplo 3.5 , se utilizaron los nodos 0 1x = , 1 4x = y
2 6x = para estimar ( )ln 2 mediante una parábola. Ahora, agregando un cuarto
nodo ( 3 5x = , ( )3 ln 5 1.609438y = = ) estime ( )ln 2 con un polinomio de
interpolación de Lagrange de tercer grado obtenido por el método de las
diferencias divididas de Newton.
Solución: La tabla de datos viene dada por
1 4 6 5
0 1.386294 1.791759 1.609438
Para resolver el problema planteado utilizamos la interpolación cúbica
mediante el método de diferencias divididas de Newton entre los puntos 0 1x = ,
1 4x = , 2 6x = y 3 5x = .
El polinomio de Lagrange evaluado en x=2 entre los puntos 0 1x = , 1 4x = ,
2 6x = y 3 5x = viene dado por :
( ) [ ] [ ]( ) [ ]( )( ) [ ]( )( ) ( )3 0 0 1 0 1 2 0 1 2 32 , 2 1 , , 2 1 2 4 , , , 2 1 2 4 2 6p x x x x x x x x x x= + − + − − + − − −
La tabla de diferencias divididas para los nodos 0 1x = , 1 4x = y 2 6x = , que ya
hemos obtenido en ejemplos anteriores, es la siguiente:
ix [ ]ix [ ]1,i ix x + [ ]1 2, ,i i ix x x+ +
0.4620981
4 1.386294 0.051873−
0.2027325
6 1.791759
Debemos completar la tabla de diferencias divididas de orden 2 con la
diferencia dividida de orden 3 más las de orden 2 necesarias:
La tabla se completa con el nuevo nodo en la siguiente forma:
ix [ ]ix [ ]1,i ix x + [ ]1 2, ,i i ix x x+ + [ ]1 2 3, , ,i i i ix x x x+ + +
1 0
0.4620981
4 1.386294 0.051873−
0.2027325 [ ]0 1 2 3, , ,x x x x
6 1.791759 [ ]1 2 3, ,x x x
[ ]2 3,x x
5 1.609438
17
Para calcular el coeficiente [ ]0 1 2 3, , ,x x x x , correspondiente al término de 3º
grado, utilizamos la definición 3.3. Por un lado,
[ ] [ ] [ ][ ] [ ] [ ] [ ]2 3
1
1 2 1 2 0 1
0 1 2 3 1 2 1
3 0 3 0
2 3
0 1 2 3
,
,
, , ,
,, ,
, ,,
x x x x x x
x x x
x x
x x xx x x x
x x x x
x x x x
− −−
− − −= =− −
[ ] [ ] [ ]2 3
1 2 3
1 2
3 1
,, ,
,x x x x
xx
xx x
−=
−
[ ] [ ] [ ]3
2
2
3
3
2
,x
xx
x xx
−=
−
por otro lado, las primeras diferencias divididas del problema son
[ ]0 1, 0.4620981x x =
[ ]1 2, 0.2027325x x =
[ ] [ ] [ ]3
2
2
2
3
3
1.609438 1.791759
5, 0.1823216
6x
x x
x xx
− −= = =− −
las segundas diferencias divididas del problema son
[ ] [ ] [ ]1 2 0 1
0 1 2
2 0
, , 0.2027325 0.4620981, , 0.05187311
6 1
x x x xx x x
x x
− −= = = −− −
[ ] [ ] [ ]2 3
1 2 3
1 2
3 1
, 0.182, 0.2023216, , 0.0204110
20
73 5
5 4
x x
x
x xx x x
x
− −= = = −− −
la tercera diferencia dividida del problema es
[ ] [ ] [ ]1 2 3
0 1 2 3
0 1 2
3 0
, , 0.2041100, , , 0.00
, , ( 0.05187311)
5 17865529
x x xx x x x
x x x
x x
− − − =−
−= =−
La tabla de diferencias divididas resulta:
ix [ ]ix [ ]1,i ix x + [ ]1 2, ,i i ix x x+ + [ ]1 2 3, , ,i i i ix x x x+ + +
1 0*
0.4620981
4 1.386294 0.051873−
0.2027325 0.007865529
6 1.791759 0.020411−
0.1823216
5 1.609438
*Los elementos en color burdeos son los coeficientes del polinomio interpolador.
18
Por tanto, el polinomio de Lagrange obtenido por interpolación cúbica
mediante el método de diferencias divididas de Newton, viene dado por la
expresión,
( ) ( ) ( )( ) ( )( )( )3 2 0 0.4620981 1 0.051873 1 4 0.007865529 1 4 6p x x x x x x= + − − − − + − − −
que evaluado en 2 resulta: ( )3 2 0.6287686p =
La interpolación presenta un error: 0.6931472-0.6287686
0.093 9,3%0.6931472
error = = ≈ .
0.6931
2
0.6287
Figura. 7 Interpolación Cúbica. Método de las diferencias divididas de Newton.
x=[1; 4; 6; 5];
y=[0; 1.386294; 1.791759; 1.609438];
m=3;
DD= tdifdiv(x,y,m);
DDSAL=[x,DD]
Ejemplo. 3.8 Construir la tabla de diferencias divididas, hasta el orden 4,
con SCILAB, a partir de los 5 puntos siguientes:
1 2 3 4 5
2 -1 4 3 -2
y a partir de ella construir el polinomio interpolador de Lagrange de grado 4
por el método de las diferencias divididas de Newton.
Utilizamos la función tdifdiv en SCILAB para datos x e y orden m=4.
--> tdifdiv(x,y,4)
Con la salida de tdifdiv confeccionamos la tabla siguiente:
ix [ ]ix [ ]1,i ix x + [ ]1 2, ,i i ix x x+ + [ ]1 2 3, , ,i i i ix x x x+ + + [ ]1 2 3 4, , , ,i i i i ix x x x x+ + + +
1 2 -3.0000 4.0000 - 2.333333 0.6666667
2 -1 5.0000 -3.0000 0.333333
3 4 -1.0000 -2.0000
4 3 -5.0000
5 -2
19
El polinomio de Lagrange correspondiente viene dado por
( ) ( ) ( )( ) ( )( )( )( ) ( ) ( )( )
4 2 3 1 4 1 2 2.333333 1 2 3
+0.6666667 1 2 3 4
p x x x x x x x
x x x x
= − − + − − − − − −
− − − −
Ejercicio 3.0 (Propuesto) Resolver mediante el método de diferencias divi-didas de Newton la siguiente cuestión (a desarrollar por los alumnos):
Encontrar una aproximación de (3.5)f de la función tabulada:
x 1 2 3 4 5
( )y f x=
2 -
1
4 3 -
2
1. Utilizando un polinomio de grado 2
2. Utilizando un polinomio de grado 3
3. Utilizando un polinomio de grado 4
2.3 Cálculo por el método de Lagrange.
Un segundo método importante para calcular el polinomio interpolador es el
método de Lagrange. Este método consiste en una reformulación del método de
Newton y su principal característica es que evita el cálculo de las diferencias
divididas finitas. De hecho el polinomio de interpolación de Lagrange se obtiene
de manera directa a partir de la formulación el polinomio de Newton. Lo haremos
únicamente para los casos de los polinomios de primer y segundo grado, para
otros grados se hace de manera similar.
La primera diferencia dividida
(15) [ ] [ ] [ ]1 0
0 1
1 0
,x x
x xx x
−=
−
puede ser reformulada en la forma
(16) [ ] [ ] [ ] [ ] [ ] [ ] [ ]1 0 1 0
1 0 1 0
1 0
0 1
1 11 00 0
,x x
xx x x x
x x x x x xx
x x x x
−= = − +
−=
− −− −
conocida como la forma simétrica. Si se sustituye la ecuación (16) en la formula
de la interpolación lineal (4) se obtiene
( ) [ ] [ ]( ) [ ] [ ] [ ] ( )
[ ] [ ] [ ] [ ] [ ]
1 0
1 0 0 1 0 0 0
1 0 0 1
0 0 010 1 0 0 1
1 0 0 1 0 1 1 0
,x x
p x x x x x x x x xx x x x
x x x x x xx xx x x x x
x x x x x x x x
= + − = + + − − −
− − −−= + + = +− − − −
y sustituyendo [ ]0x por 0y y [ ]1x por 1y se tiene,
20
(17) ( ) 011 0 1
0 1 1 0
x xx xp x y y
x x x x
−−= +− −
,
que es el polinomio de Lagrange de grado 1.
( )1p x puede escribirse en la forma siguiente ( )1 0 0 1 1( ) ( )p x y L x y L x= + , donde
10
0 1
01
1 0
( )
( )
x xL x
x x
x xL x
x x
− = − − = −
Como puede observarse el polinomio 0 ( )L x toma el valor 1 en 0x x= y 0 en 1x x= ,
con 1( )L x ocurre lo contrario. Esta característica es la que asegura que el
polinomio pasa por los puntos ( )0 0,x y y ( )1 1,x y , puesto que en 0x se anula el 2º
sumando y resulta ( )1 0p x y= y en 1x se anula el 1º sumando y resulta ( )1 1p x y= .
Si repetimos el mismo proceso para la interpolación cuadrática se tiene
(18) ( ) ( ) ( )( ) ( )
( )( )( )( )
( ) ( )( ) ( )
1 2 0 2 0 1
2 0 1 2
0 1 0 2 1 0 1 2 2 0 2 1
x x x x x x x x x x x xp x y y y
x x x x x x x x x x x x
− − − − − −= + +
− − − − − −
es decir, también ( )2p x se puede expresar en forma de combinación de
polinomios ( )kL x , ( )2 0 0 1 1 2 2( ) ( ) ( )p x y L x y L x y L x= + + , donde
( )( )( )( )( )( )
( )( )( ) ( )
( ) ( )
1 2
0
0 1 0 2
0 2
1
1 0 1 2
0 1
2
2 0 2 1
( )
( )
( )
x x x xL x
x x x x
x x x xL x
x x x x
x x x xL x
x x x x
− −= − −
− − = − − − − =
− −
El polinomio 0 ( )L x toma el valor 1 en 0x x= y 0 en 1x x= y en 2x x= , 1( )L x
toma el valor 1 en 1x x= y 0 en 0x x= y en 2x x= , y, por último, 2 ( )L x toma el
valor 1 en 2x x= y 0 en 0x x= y en 1x x= . De modo similar al caso lineal esta
característica es la que asegura que el polinomio pasa por los puntos ( )0 0,x y ,
( )1 1,x y y ( )2 2,x y , resultando ( )2 0 0p x y= , ( )2 1 1p x y= y ( )2 2 2p x y= .
Con los mismos razonamientos podríamos deducir la estructura funcional de
un polinomio de cualquier grado en términos análogos, lo que induce el
planteamiento del método de Lagrange del cálculo del polinomio interpolador, la
definición de polinomio de Lagrange y su teorema asociado.
21
Método de Lagrange: Si existen polinomios ( )kL x de grado n tales que:
1( )
0k kj
k jL x
k jδ
== = ≠
entonces
( ) 0 0 1 1( ) ( ) ... ( )n np x y L x y L x y L x= + + +
es un polinomio de grado n≤ y ( )k kp x y= para 0,1,...,k n= .
( )p x es, por tanto, el Polinomio Interpolador que pasa por los puntos
( ),k kx y para 0,1,...,k n= .
Definición. 3.4 (Polinomios de Lagrange). Dados (n+1) puntos ( ),k kx y con
k jx x≠ para 0,1,...,k n= , los polinomios
( )( )( )
ii kk
k ii k
x xL x
x x
≠
≠
−=
−∏∏
reciben el nombre de Polinomios de Lagrange.
Teorema. 3.3 (Polinomio Interpolador de Lagrange). El polinomio
interpolador de Lagrange en los puntos ( )0 0,x y , ( )1 1,x y , …, ( ),n nx y , es
( ) 0 0 1 1( ) ( ) ... ( )n np x y L x y L x y L x= + + +
Por ejemplo, el polinomio de grado menor o igual que 3 que aproxima a la
función ( )( )f x sen x= en el intervalo [ ]0,3 y que pasa por los puntos:
x 0 1 2 3
( )y sen x= ( )0sen ( )1sen ( )2sen ( )3sen
viene dado por:
( )( )( )( ) ( ) ( )
( )( )( )( )( )( )
( )( )( )( ) ( ) ( )
( )( )( )( ) ( )( )
0 1
2 4
1 2 3 0 2 3( ) ( )
0 1 0 2 0 3 1 0 1 2 1 3
0 1 3 0 1 2( ) ( )
2 0 2 1 2 3 3 0 3 1 3 2
x x x x x xL x L x
x x x x x xL x L x
− − − − − −= =
− − − − − −
− − − − − −= =
− − − − − −
3 2 3 2
0 1
3 2 3 2
2 4
( ) 6 11 6 1 ( ) 2 5 2 3
( ) 2 2 3 2 ( ) 6 2 3
L x x x x L x x x x
L x x x x L x x x x
= − + − + = − +
= − + − = − +
Y la aproximación a ( )3sen π por evaluación del polinomio de interpolador
( ) ( ) ( ) ( ) ( )0 1 20 ( ) 1 ( ) 2 ( ) 3 ( )np x sen L x sen L x sen L x sen L x= + + +
en 3π es:
( ) ( ) ( ) ( )1 2/ 3 0.8414710 / 3 0.9092974 / 3 0.1411200 / 3np L L Lπ π π π= + +
22
2.4. Error de Interpolación.
La estructura de la ecuación (13) es similar a la expansión de la serie de Taylor
en el sentido de que se van agregando términos en forma secuencial, para
mostrar el comportamiento de orden superior de la función. Estos términos son
diferencias divididas finitas y, así, representan aproximaciones de las derivadas
de orden superior. En consecuencia, como ocurre con la serie de Taylor, si la
función verdadera es un polinomio de n-ésimo grado, entonces el polinomio de
interpolación de n-ésimo grado basado en n + 1 puntos dará resultados exactos.
También, como en el caso de la serie de Taylor, es posible obtener una
formulación para el error de truncamiento. Recordemos que el error de
truncamiento en la serie de Taylor se expresa en forma general como
(19) ( )
( ) ( )( 1
1
11 !
nn
n i i
fR x x
n
ξ++
+= −+
donde ( )1 ,i ix x x+∈ .
Para un polinomio de interpolación de n-ésimo grado, existe una expresión
análoga para el error:
(20) ( )
( ) ( ) ( ) ( )( 1
0 1 ...1 !
n
n n
fR x x x x x x
n
ξ+
= − − −+
fundamentada en el siguiente teorema:
Teorema 3.4. (Error de interpolación). Si es ( )f x de clase [ ]( )1 ,nC a b+ y
( )p x es el Polinomio Interpolador de ( )f x en los n+1 nodos siguientes
0 1 2 ... na x x x x b= < < < < =
entonces para cada [ ],x a b∈ existe un ( ),xc a b∈ tal que
(21) ( ) ( ) ( )( ) ( ) ( ) ( )( 1
0 1 ...1 !
n
x
n
f cf x p x x x x x x x
n
+
− = − − −+
Observaciones:
a) ( ) ( )nR f x p x= −
b) Si existe una cota superior M de la derivada (n+1) de ( )f x en
[ ],a b entonces
(22) ( ) ( ) ( ) ( )( ) ( )0 1 ...1 !
n
Mf x p x x x x x x x
n− ≤ − − −
+
23
Para que las formulas (21) y (22) sean aplicables es necesario conocer ( )f x y,
además, ( )f x debe ser de clase [ ]( )1 ,mC a b+; habitualmente este no es el caso.
Por fortuna, hay una formulación alternativa que no requiere del conocimiento
previo de la función ( )f x . Ante tal desconocimiento se utiliza la (n+1)
diferencia dividida finita, 0 1 –1[ , ,. . . , , , ]n nx x x x x , para aproximar ( )
( )( 1
1 !
n
xf c
n
+
+; de este
modo (21) se reformula en términos aproximados en la forma:
(23) ( ) ( ) ( )( ) ( )0 1 –1 0 1[ , ,. . . , , , ] ...n n n nR f x p x x x x x x x x x xx x= − − − −≃
Debido a que la ecuación (23) contiene la incógnita [ ]x , implícita en
0 1 –1[ , ,. . . , , , ]n nx x x x x , no es posible utilizarla para obtener el error nR , salvo que se
cuente con un dato más, 1[ ]nx + , en cuyo caso la ecuación (23) puede expresarse
en la forma
(24) ( ) ( ) ( )( ) ( )0 1 –1 1 0 1[ , ,. . . , , , ] ...n n nn nR f x p x x x x x x x x x x xx += − − − −≃
y puede usarse para estimar el error ( ) ( )nR f x p x= − .
Observaciones:
a) Si [ ],x a b∉ estaremos extrapolando, no interpolando.
b) El error puede ser muy grande si hay muchos nodos o si x no está próximo a ellos.
Ejemplo. 3.10 Se desea aproximar la función ( ) ( )cosf x x= en el intervalo
[ ]0, 2π usando los siguientes datos:
x 0 6π 4π 3π 2π
cos( )y x= 1 3 2 2 2 1 2 0
a) Usando la fórmula de acotación del error, predecir cuál será el máximo error de interpolación en todo el intervalo [ ]0, 2π , cuando se usa un
polinomio interpolador ( )p x de grado 4≤ .
b) Aproximar el valor de ( ) ( )1 cos 1f = mediante el polinomio ( )p x , calcular
el error real cometido y comprobar que dicho error es menor que la cota obtenida en (a).
c) Aproximar el valor de ( ) ( )1 cos 1f = mediante interpolación lineal en los
nodos más cercanos, y determinar el error cometido. ¿Cuál de los dos métodos produce un error menor?
24
Solución:
a) Recordemos que por el teorema del error de interpolación:
Si es ( )f x de clase [ ]( )1 ,mC a b+ y ( )p x es el Polinomio Interpolador de ( )f x
en los
0 1 2 ... na x x x x b= < < < < =
entonces para cada [ ],x a b∈ existe un ( ),xc a b∈ tal que
( ) ( ) ( )( ) ( )( ) ( )( 1
0 1 ...1 !
n
x
n n
f cR f x p x x x x x x x
n
+
= − = − − −+
Además, si existe una cota superior M de la derivada (n+1) de ( )f x en
[ ],a b entonces
( ) ( ) ( ) ( )( ) ( )0 1 ...1 !
n
Mf x p x x x x x x x
n− ≤ − − −
+
En nuestro caso estamos en las hipótesis del teorema en el intervalo [ ]0, 2π ,
puesto que ( ) ( )cosf x x= es de clase [ ]( )1 0, 2nC π+ , y si ( )p x es el Polinomio
Interpolador de cos( )x en los puntos
0 6 4 3 2a bπ π π π= < < < < =
entonces para cada [ ]0, 2x π∈ existe un ( )0, 2xc π∈ tal que
( ) ( ) ( )( ) ( ) ( )( )( )( )(4 1
4 4 0 6 4 3 24 1 !
xf cR f x p x x x x x xπ π π π
+
= − = − − − − −+
Además, 1 es una cota superior M de la derivada 5ª de ( ) cos( )f x x= en
( )0, 2π , por lo que
( ) ( ) ( ) ( ) ( ) ( )( )( )10 6 4 3 2
5 !nR f x p x x x x x xπ π π π= − ≤ − − − − −
b) Para calcular el polinomio de interpolación ( )p x , a partir de la tabla
x 0 0.523586 0.785379 1.047172 1.570758
cos( )y x= 1 0.8660254 0.7071068 0.5 0
utilizamos la función tdifdiv.
El comando --> tdifdiv(x,y,4) nos proporciona la tabla de coeficientes del
polinomio interpolador de orden 4.
[ ]ix [ ]1,i ix x + [ ]1 2, ,i i ix x x+ + [ ]1 2 3, , ,i i i ix x x x+ + + [ ]1 2 3 4, , , ,i i i i ix x x x x+ + + +
1 - 0.2558789 - 0.4471220 0.0912610 0.0288004
25
( ) ( ) ( )( )( )( )( )
( )( )( )( )
4 1 0.2558789 0 0.4471220 0) 0.523586
0.0912610 0 0.523586 0.785379
0.028800 0 0.523586 0.785379 1.047172
p x x x x
x x x
x x x x
= − − − − −
+ − − −
+ − − − −
que evaluado en x=1 resulta
( ) ( )( )( )
( )( )( )
4 1 1 0.2558789 0.4471220 1 0.523586
0.0912610 1 0.523586 1 0.785379
0.028800 1 0.523586 1 0.785379 1 1.047172
0.5402986
p = − − −
+ − −
+ − − −
=
( )4p x presenta el siguiente error:
a) 0.5403023-0.5402986 0.0000037error absoluto = =
b)0.5403023-0.5402986
0.0000068 0.00068%0.5403023
error relativo = = ≈ .
Por otra parte, la acotación del error viene dada por:
( ) ( ) ( ) ( )( )( )( )4 4
1cos 1 1 1 0 1 6 1 4 1 3 1 2 0.0000228
5!R p π π π π= − ≤ − − − − − =
Si contamos con un punto más, (2,-0.4161468) podemos utilizar la
aproximación:
( ) ( ) ( )( ) ( )0 1 –1 1 0 1[ , ,. . . , , , ] ...n n nn nR f x p x x x x x x x x x x xx += − − − −≃
que en nuestro caso es
( ) ( ) ( )( ) ( )( )( )4 41 1 0.0067150 1 0 1 6 1 4 1 3 1 2
0.0000185
R f p π π π π= − − − − − − −
=
≃
c) Para aproximar el valor de ( ) ( )1 cos 1f = mediante interpolación lineal en los
nodos más cercanos tendremos en cuenta que los nodos más cercanos son
x 0.785379 1.047172
cos( )y x= 0.7071068 0.5
Utilizando tdifdiv, para m=1:
--> tdifdiv(x,y,1) se obtienen los siguientes coeficientes de la recta de interpolación:
[ ]ix [ ]1,i ix x +
0.70710681 - 0.7911090
26
( ) ( )1 0.7071068 0.7911090 0.785379p x x= − −
que evaluado en x=1 resulta
( ) ( )1 1 0.7071068 0.7911090 1 0.785379 0.5373182p = − − =
y presenta error: a) 0.5403023-0.5373182 0.0029841error absoluto = =
b)0.5403023-0.5373182
0.0055230 0.55%0.5403023
error relativo = = ≈ .
La curva de interpolación de grado 4 aproxima mejor en 1 el coseno que la
recta de interpolación.
2.5 Interpolación por splines
En los problemas de interpolación mediante polinomios de grado mayor o
igual que 4 aparecen oscilaciones, las cuales en la mayoría de las aplicaciones
resultan indeseables, para evitarlo se utiliza a menudo la interpolación mediante
splines, porque da lugar a resultados que requieren solamente el uso de
polinomios de grado 1, 2 y 3 que evitan tales las oscilaciones.
Estas oscilaciones son una consecuencia del llamado efecto borde, que
podemos apreciar en las siguientes figuras y que ilustraremos con el ejercicio 3.1.
Figura. 8 Tres Nodos 11
27
Figura. 9 Cinco Nodos
Figura. 10 Siete Nodos
Figura. 11 Nueve Nodos
28
Ejercicio. 3.1 Consideremos la función de Runge en el intervalo [ ]5,5− :
2
1( )
1f x
x=
+
a) Obtener el polinomio de interpolación de grado 4 que aproxima a la función
de Runge tomando 5 nodos equiespaciados en el intervalo [ ]5,5− .
b) Comprobar que al aumentar el grado del polinomio interpolador, en vez de mejorar la aproximación global, esta empeora.
Solución:
a)
Representación gráfica de la función de Runge (http://www.fooplot.com/):
En el caso en que todos los nodos tienen la misma separación entre ellos
(nodos equiespaciados), se pueden obtener expresiones aún más sencillas del
polinomio de Lagrange.
Si h es el paso, entonces 0 , 0,1,...,jx x jh j n= + =
5 nodos equiespaciados en el intervalo [ ]5,5− ⇒ 5 2.5, 0,1,..., 4jx j j= − + × = .
1) Cargamos la librería interpol
(%i1) load(interpol);
2) Definimos la función de Runge
(%i2) f(x):=1/(1+x^2);
29
3) Definimos la lista (xi,f(xi)) en 5 nodos equiespaciados en [ ]5,5−
(%i3) puntos:makelist([-5+2.5*k,f(-5+2.5*k)], k, 0, 4);
(%o3)
4) Obtención del polinomio de grado 4 que aproxima a la función de Runge en los 5 nodos equidistantes en [ ]5,5− ,
(%i4) lagrange(puntos);P4(x):=''%; (%o4)
5) Representación gráfica de las funciones ( )f x y 4 ( )p x en [ ]5,5− :
(%i6) plot2d([f(x),P4(x)],[x,-5,5]);
(%o6)
Como puede apreciarse en la gráfica, el efecto borde está presente.
b) Vamos a comprobar que al aumentar el grado del polinomio interpolador la aproximación global empeora, en vez de mejorar. Para ello repetimos con n=10 (11 nodos equiespaciados).
� (%i7) puntos:makelist([-5+k,f(-5+k)], k, 0, 10);
(%o7)
30
� (%i8) lagrange(puntos);P10(x):=''%; (%o8)
(%i9) plot2d([f(x),P4(x),P10(x)],[x,-5,5]);
(%o9)
fun2: p4(x), fun3: p10(x)
31
Posibles soluciones para evitar el efecto borde son:
� 1.- Cuando sea posible, una selección adecuada de los nodos de interpolación, como, por ejemplo, los nodos de Chebyshev y otros a
conveniencia en función del problema a resolver, opción que es imposible
en la mayor parte de los problemas reales.
� 2.- Interpolación segmentaria, es decir, dividir el conjunto de nodos en
varios subconjuntos y calcular en cada subconjunto su correspondiente
polinomio interpolador (de menor grado). Algunas técnicas:
- Interpolación lineal a trozos (para cada par de nodos consecutivos se
obtiene un segmento recto de interpolación).
- Interpolación por splines cúbicos.
En el caso en que los datos provengan de una fuente a la que se le pueda
pedir valores para las abscisas que uno desee (por ejemplo, el caso en que uno
mismo haga mediciones sobre el objeto de estudio) existe un criterio para
elegirlas de manera tal que se reduzca el error producido por el fenómeno de
Runge (mayor error en extremos del intervalo). Este criterio consiste en requerir
las abscisas que se obtengan a partir de la siguiente expresión (los nodos de
Chebyshev, para n=4, es decir polinomio de grado n para interpolar entre n+1
puntos):
( ) ( )2 1cos , 0,1,...,
2 2 2 2k
b a kb ax k n
n
π− + += + = +
A continuación pasamos a comprobar que la aproximación mejora utilizando
nodos de Chebyschev.
En nuestro caso (intervalo [-5; 5] 5 5
02 2
b a+ −⇒ = = ,
( ) ( )( )5 55
2 2
b a − −−= = y
n = 4), los cinco nodos de Chebyshev son:
9 7 5 3 15cos , 5cos , 5cos 0, 5cos , 5cos
10 10 10 10 10π π π π π
=
� (%i10) Puntos:makelist([5*cos((2*k+1)/10*(%pi)),f(5*cos((2*k+1)/10*(%pi)))], k,0,4);
(%o10)
32
� (%i11) lagrange(puntos);PC(x):=''%; (%o11)
� (%i12) plot2d([f(x),PC(x)],[x,-5,5]);
(%o12)
Función 2 es el polinomio pC(x) con los cinco nodos de Chebyshev.
33
Como se observa en la gráfica, la situación es muy similar a la de los 5 nodos
equidistantes.
Veamos que la situación mejora bastante si aumentamos el número de nodos
de chebyshev, por ejemplo a 12:
� (%i13) puntos:makelist([5*cos((2*(n-k)+1)*(%pi)/(2*n+2)),(5*cos((2*(n-k)+1) *(%pi) / (2*n+2) ))] ,k,0,12);
(%o13)
� (%i14) lagrange(puntos);PC(x):=''%;
(%o14) << ¡Expresión excesivamente larga para ser mostrada! >> � (%i15) plot2d([f(x),PC(x)],[x,-5,5]);
(%015)
34
La interpolación polinómica a trozos o por segmentos, también llamada
universalmente “spline”, se caracteriza por el grado de los polinomios con los que
interpolamos en los subintervalos que para tal fin, distinguimos cuando
disponemos de un conjunto numeroso de nodos.
Los splines se utilizan para aproximar formas complicadas. La simplicidad
de la representación y la facilidad de cómputo de los splines los hacen ideales
para la representación informatizada de curvas, particularmente en el terreno de
los gráficos por ordenador. Los splines son utilizados para la interpolación o
afinado de datos de una o varias dimensiones.
El nombre Spline proviene de la técnica de dibujo que usa una cinta delgada y
flexible para dibujar curvas suaves que pasan a través de un conjunto de puntos.
En los extremos la curva tiende a parecerse a una recta (segunda derivada nula),
de ahí el nombre de Spline Natural.
Una función spline está formada por varios polinomios, cada uno definido
sobre un subintervalo, que se unen entre sí obedeciendo a ciertas condiciones de
continuidad. Para dar una definición formal consideremos la partición del
intervalo [a,b]:
{ }0 1 ... na x x x bΓ = = < < < =
Al concepto de spline se llega de forma inmediata a través del concepto de
función polinomial troceada cuya definición se da a continuación:
Definición. 3.5 Una función polinomial troceada en [ ],a b se obtiene
dividiendo [ ],a b en intervalos consecutivos con fronteras contiguas llamadas
nodos y definiendo polinomios de grado bajo, funciones de base iS , que
interpolan a la función en dos nodos consecutivos ( ),i ix y y ( )1, 1i ix y+ + de la
partición Γ . El conjunto de funciones { } 1
0( )
n
i iS x S
−
== forma la curva polinomial a
trozos.
En el panel izquierdo de la figura 12 se representa una polinomial constante a
trozos con tres funciones de base.
(25)
( ) ( ) ( ) ( ) ( ) ( )1 2 20 0 1 1 2 2, ,o x x x x xx x
S x I c S x I c S x I c≤ < ≤<= = = = = =
(A título informativo): Puesto que estas funciones de base son positivas sobre
regiones disjuntas, el estimador de mínimos cuadrados del modelo
( ) ( )2
0
i i
i
S x S xβ=
=∑ es ˆi iYβ = , la media de Y en el i-ésimo subintervalo.
Podemos obtener una polinomial a trozos más “refinada” que la constante a
trozos sin más que considerar 3 funciones de base adicionales,
(26) ( ) ( ) ( ) ( ) ( ) ( )1 2 23 3 4 4 5 5, ,o x x x x xx x
S x xI xc S x xI xc S x xI xc≤ < ≤<= = = = = =
35
a. Coa. Coa. Coa. Connnnstantstantstantstanteeee a trozosa trozosa trozosa trozos
b. Lineal a trozosb. Lineal a trozosb. Lineal a trozosb. Lineal a trozos
x0 x1 x2 x3
x0 x1 x2 x3
Fuente: Hastie et al. (2009).
Figura Figura Figura Figura 12121212....---- Curvas polinomiales a trozos.
En este caso la curva polinomial obtenida es lineal a trozos, panel derecho de
la Figura 12.
Más “suave”, en el sentido de ajuste a una curva “lisa”, será la función
polinomial resultante de considerar la lineal a trozos con la restricción de
continuidad en los dos nudos.
Continuidad que podemos conseguir a través de dos alternativas:
a) Introducir funciones lineales sobre cada intervalo
(2.27)
0 0 0
1 1 1
2 2 2
S a x b
S a x b
S a x b
= + = + = +
( ) ( )( ) ( )
0 1 1 1
1 2 2 2
S x S x
S x S x
=
=
b) Una vía más directa para proceder en este caso es usar bases que incorporen
las restricciones como las siguientes:
(28) ( ) ( ) ( ) ( ) ( ) ( )0 1 2 0 3 11, , ,S x S x x S x x x S x x x+ +
= = = − = −
donde Z+ denota la parte positiva. La función 2S se muestra en la figura 13b).
Lineal a trozos continuaLineal a trozos continuaLineal a trozos continuaLineal a trozos continua a)a)a)a) b)b)b)b)
Fuente: Hastie et al. (2009).
Figura Figura Figura Figura 13131313---- Polinomial Lineal a trozos Continua.
36
DiscontinuDiscontinuDiscontinuDiscontinuaaaa ContinuContinuContinuContinuaaaa
Fuente: Hastie et al. (2009).
Figura Figura Figura Figura 14141414....---- Polinomial Lineal a trozos Continua y Discontinua.
Lo habitual es intentar ajustar a funciones “suaves”, lo que se consigue
aumentando el orden del polinomio local, Figura 14. Si, además, exigimos
derivadas de orden suficiente nuestra función de ajuste presentará sin duda una
apetecible curva suave como las representadas en la Figura, donde se ha exigido
1ª derivada continua en los nudos, panel izquierdo de la figura, o 2ª derivada
continua en los nudos, panel derecho de la figura.
1ª derivada continua1ª derivada continua1ª derivada continua1ª derivada continua
2ª derivada continua2ª derivada continua2ª derivada continua2ª derivada continua
Fuente: Hastie et al. (2009).
Figura Figura Figura Figura 15151515....---- Polinomiales con 1ª y 2ª Derivadas Continuas.
A partir de las figuras anteriores es fácil intuir el papel central que los
polinomiales troceados juegan en la interpolación y ajuste de datos.
Definición. 3.6 (Spline de grado k). Una función spline ( )S x en [ ],a b de grado
0k ≥ , correspondiente a la partición Γ , es una polinomial troceada { } 1
1( )
n
i iS x S
−
==
con n nodos que satisface las siguientes condiciones:
1. ( ) i iS x y= para cada 0,...,i n= ;
2. ( )iS x es un polinomio de grado menor o igual que k en el intervalo
37
1,i ix x + , 0,..., 1i n= − .
(29)
( ) [ ]( ) [ ]
( ) [ ]
1
0 0 0 0 0 1
1
1 1 1 1 1 2
1
1 1 1 1 1
... ,
... ,( )
...
... ,
k k
k k
k k
n n n n n
S x d b x a x x x x
S x d b x d x x x xS x
S x d b x a x x x x
−
−
−− − − − −
= + + + ∈ = + + + ∈= = + + + ∈
3. ( )S x es de clase k-1 en [ ] [ ]0, , na b x x= , es decir ( ) [ ]1 ,kS x C a b−∈ .
4. Las componentes ( ) ( )1i iS x S x+y interpolan el mismo valor en el punto
1ix + , (lo que asegura continuidad en los puntos):
(30) ( ) ( )1 1 1i i i iS x S x+ + += para cada 0,..., 2i n= − .
( ) ( ) ( ) ( ) ( ) ( )0 1 1 1 1 2 2 2 2 1 1 1, S , , n n n nS x S x x S x S x S x− − − −= = … =
Funciones spline de grado 1 o Splines Lineales.
Los splines de grado 1 son funciones polinomiales de grado 1 que unen cada
par de coordenadas mediante una recta (b ax+ ), es decir una función cuya gráfica
la forman rectas a trozos, sobre una partición del intervalo [a, b], de tal manera
que el extremo final de un segmento coincide con el principio del siguiente, y su
construcción se realiza en los siguientes términos:
Dados los n+1 puntos: x0 x1 x2 . . . xn
y0 y1 y2 . . . yn
una función spline de grado 1 para interpolar los datos anteriores se determina
simplemente al unir cada uno de los puntos mediante segmentos de recta, como
se ilustra en la Figura 16.
Figura 16. Spline lineal.
38
(32)
( ) [ ]( ) [ ]
( ) [ ]
0 0 0 0 1
1 1 1 1 2
1 1 1 1
,
,( )
...
,n n n n n
S x b a x x x x
S x b a x x x xS x
S x b a x x x x− − − −
= + ∈ = + ∈
= = + ∈
donde:
1. ( ) i iS x y= para cada 0,...,i n=
2. ( )iS x es un polinomio de grado menor o igual que 1 en el intervalo
1,i ix x + , 0,..., 1i n= − .
3. ( )S x es continua en [ ] [ ]0, , na b x x= , es decir ( ) [ ]0
0 , nS x C x x∈ .
4. ( ) ( )1 1 1i i i iS x S x+ + += para cada 0,..., 2i n= − , (lo que asegura continuidad en los
puntos):
( ) ( ) ( ) ( ) ( ) ( )0 1 1 1 1 2 2 2 2 1 1 1, S , , n n n nS x S x x S x S x S x− − − −= = … =
Ejemplo. 3.2 Interpolar el valor x=0 a través del spline lineal con nodos en los puntos de la tabla siguiente:
x -3 -2 1 4
y 2 0 3 1
Solución: Partición: { }3 2 1 4a bΓ = = − < − < < =
Intervalos: [ ) [ ) [ ]3, 2 , 2,1 , 1, 4− − −
Spline Lineal:
( ) [ ]( ) [ ]( ) [ ]
0 0 0
1 1 1
2 2 2
3, 2
( ) 2,1
1,4
S x b a x x
S x S x b a x x
S x b a x x
= + ∈ − −= = + ∈ −
= + ∈
La recta ( )0 0 0S x b a x= + une los puntos ( ) ( )3, 2 2,0− −y , ( )1 1 1S x b a x= + une
los puntos ( ) ( )2,0 1,3− y y ( )2 2 2S x b a x= + une los puntos ( ) ( )1,3 4,1y .
Para determinar el spline que se busca es necesario conocer los 6 coeficientes
ib , ia , 0,1, 2i = , incógnitas de un sistema de 6 ecuaciones generadas por las
condiciones exigidas a un spline lineal:
El spline lineal ha de pasar por todos los puntos correspondientes a los nodos,
( ) i iS x y= para cada 0,1, 2,3i = y, además, ha de garantizarse la exigencia
39
de continuidad, lo que se logra con ( ) ( )1 1 1i i i iS x S x+ + += para cada 0,1i = ,
( ) ( ) ( ) ( )0 1 1 22 2 , S 1 1S S S− = − = .
( )( )( )( )( )
( )
0 0 0
0 0 0
1 1 1
1 1 1
2 2 2
2 2 2
( 3) 2 3 3 2
2 2 0( 2) 0
2 2 0
1 3(1) 3
1 3
(4) 1 4 4 1
S S b a
S b aS
S b a
S b aS
S b a
S S b a
− = ⇒ − = − =
− = − = − = ⇒ − = − =
= + == ⇒ = + = = ⇒ = + =
Tenemos de este modo 6 ecuaciones con 6 incógnitas, condición necesaria para
resolver el siguiente sistema:
0 0 1 1 2 2
0 0 1 1 2 2
0 0 1 1 2 2
0 0 1 1 2 2
0 0 1 1 2 2
0 0 1 1 2 2
b 3a 0b 0a 0b 0a 2
1b 2a 0b 0a 0b 0a 0
0b 0a 1b 2a 0b 0a 0
0b 0a 1b 1a 0b 0a 3
0b 0a 0b 0a 1b 1a 3
0b 0a 0b 0a 1b 4a 0
− + + + + =− + + + + =+ + − + + =+ + + + + =+ + + + + =+ + + + + =
≡
0
0
1
1
2
2
1 3 0 0 0 0 2
1 2 0 0 0 0 0
0 0 1 2 0 0 0
0 0 1 1 0 0 3
1 0 0 0 1 1 3
0 0 0 0 1 4 1
b
a
b
a
b
a
− − −
=
≡ AV=Y
⇒ V=A-1Y, es decir,
1
0
0
1
1
2
2
1 3 0 0 0 0 2
0 0 1 2 0 0 0
0 0 0 0 1 2 3
0 0 0 0 1 4 1
1 2 1 2 0 0 0
0 0 1 1 1 1 0
b
a
b
a
b
a
−− −
= − − − − −
Solución del sistema de ecuaciones con MAXIMA:
1) Matriz de coeficientes.
(%i1) A: matrix( [1,-3,0,0,0,0], [1,-2,0,0,0,0], [0,0,1,-2,0,0], [0,0,1,1,0,0], [0,0,0,0,1,1], [0,0,0,0,1,4] )$
40
2) Matriz Y.
(%i2) y: matrix( [2], [0], [0], [3], [3], [1] )$
3) Solución de Av=y: v=A-1 y (%i3) v:invert(A).y;
(%o3)
4) Definición de cada trozo del spline, ( ) ( ) ( )0 1 2, S x S x y S x .
(%i4) v[1,1]+v[2,1]*x$S0(x):=''%;
v[3,1]+v[4,1]*x$S1(x):=''%;
v[5,1]+v[6,1]*x$S2(x):=''%;
(%o4)
( )( )
( )
0
1
2
2 4
2
11 2
3 3
S x x
S x x
xS x
= − −
= +
= −
5) Matriz de nodos de interpolación p (matriz de dimensión 4x1).
(%i5) p: matrix( [-3,2], [-2,0], [1,3], [4,1] );
6) Carga de la librería de dibujo draw para poder representar las curvas junto
con los nodos de interpolación:
(%i6) load(draw);
(%06)
"C:/PROGRA~1/MAXIMA~1.1/share/maxima/5.22.1/share/draw/draw.lisp"
41
7) Representación del spline lineal junto con los nodos de interpolación:
(%i7) wxdraw2d(line_width = 2,
color=red,
explicit(S0(x),x,-3,-2),
explicit(S1(x),x,-2,1),
explicit(S2(x),x,1,4),
point_size=2,
point_type=7,
color=blue,
points(p));
(%07)
[gr2d(explicit,explicit,explicit,points)]
Funciones spline de grado 2 o Splines Cuadráticos.
Las funciones spline polinómicas de grado mayor que uno se desarrollan de
forma idéntica a las de grado uno, sólo que al aumentar el grado se puede
conseguir mayor regularidad global, sin que cambie mucho la dimensión del
espacio vectorial. Así, los splines cuadráticos con nodos { }0 1 ... nx x x< < < están
constituidos por parábolas a trozos, unidas entre sí, no sólo con continuidad sino
también con derivada continua, de tal forma que son funciones de clase uno en el
intervalo [ ] [ ]0, , na b x x= , [ ]1
0 , nC x x .
Es evidente que si se desea calcular una parábola conociendo su valor en dos
puntos, por ejemplo en 1x y 2x , y el valor de su derivada en uno de ellos, por
ejemplo en 1x , el problema es irresoluble. Si queremos usar el spline cuadrático
para interpolar datos, la siguiente parábola tendría que volver a interpolar el
valor en el nodo 2x , se puede interpolar un nuevo valor de función en 3x , pero no
podemos interpolar una parábola arbitraria en uno de estos extremos, pues, para
42
que ambas parábolas enlacen con clase uno se necesita que la nueva parábola
tenga en 2x la misma derivada que la parábola construida en el intervalo [ ]1 2,x x .
(33)
( ) [ ]( ) [ ]
( ) [ ]
2
0 0 0 0 0 1
2
1 1 1 1 1 2
2
1 1 1 1 1
,
,( )
...
,n n n n n n
S x c b x a x x x x
S x c b x a x x x xS x
S x c b x a x x x x− − − − −
= + + ∈ = + + ∈= = + + ∈
donde los ia , ib y ic , 0,1,..., 1i n= − , son coeficientes a determinar.
1. ( ) i iS x y= para cada 0,...,i n= ;
2. ( )iS x es un polinomio de grado menor o igual que 2 en el intervalo
1,i ix x + , 0,..., 1i n= − .
3. ( )S x tiene derivada continua en [ ] [ ]0, , na b x x= , es decir, ( ) [ ]1
0 , nS x C x x∈ .
4. ( ) ( )1 1 1i i i iS x S x+ + += para cada 0,..., 2i n= − , (lo que asegura continuidad en los
puntos), ( ) ( ) ( ) ( ) ( ) ( )0 1 1 1 1 2 2 2 2 1 1 1, S , , n n n nS x S x x S x S x S x− − − −= = … = .
( ) ( )1 1 1' 'i i i iS x S x+ + += para cada 0,..., 2i n= − ; (lo que asegura diferenciabilidad
en los puntos)
( ) ( ) ( ) ( ) ( ) ( )0 1 1 1 1 2 2 2 2 1 1 1' ' , S' ' , , ' 'n n n nS x S x x S x S x S x− − − −= = … =
Ejercicio. 3.3 Calcular el spline cuadrático para los datos del ejercicio 3.2.
Spline Cuadrático:
( ) [ ]( ) [ ]( ) [ ]
2
0 0 0 0
2
1 1 1 1
2
2 2 2 2
3, 2
( ) 2,1
1,4
S x c b x a x x
S x S x c b x a x x
S x c b x a x x
= + + ∈ − −= = + + ∈ − = + + ∈
La parábola ( ) 2
0 0 0 0S x c b x a x= + + une los puntos ( ) ( )3, 2 2,0− −y ,
( ) 2
1 1 1 1S x c b x a x= + + une los puntos ( ) ( )2,0 1,3− y y ( ) 2
2 2 2 2S x c b x a x= + + une los
puntos ( ) ( )1,3 4,1y .
Para determinar el spline que se busca es necesario conocer los 9 coeficientes
ic , ib , ia , 0,1, 2i = , incógnitas de un sistema de 9 ecuaciones generadas por las
condiciones exigidas a un spline cuadrático:
El spline cuadrático ha de pasar por todos los puntos correspondientes a los
nodos, ( ) i iS x y= para cada 0,1, 2,3i = y, además, ha de garantizarse la
43
exigencia de continuidad, lo que se logra con ( ) ( )1 1 1i i i iS x S x+ + += para cada
0,1i = , ( ) ( ) ( ) ( )0 1 1 22 2 , S 1 1S S S− = − = .
( )( )( )( )( )
( )
0 0 0 0
0 0 0 0
1 1 1 1
1 1 1 1
2 2 2 2
2 2 2 2
( 3) 2 3 3 9 2
2 2 4 0( 2) 0
2 2 4 0
1 3(1) 3
1 3
(4) 1 4
1
2
3
1
4
64 6
5
1
S S c b a
S c b aS
S c b a
S c b aS
S c b a
S S
ec
ec
ec
ec
e
b ecc a
c
− = ⇒ − = − + =
− = − + = − = ⇒ − = − + =
= + + = = ⇒ = + + = = ⇒ = + + =
Tenemos de este modo 6 ecuaciones con 9 incógnitas, es necesario, por tanto
contar con otras 3 ecuaciones. Para obtenerlas manejamos la existencia de la
derivada continuas de orden 1 del spline cuadrático, es decir de su primera
derivada:
( ) [ ]( ) [ ]( ) [ ]
0 0 0
1 1 1
2 2 2
' 2 3, 2
'( ) ' 2 2,1
' 2 1,4
S x b a x x
S x S x b a x x
S x b a x x
= + ∈ − −= = + ∈ −
= + ∈
Se observa que las derivadas anteriores están formadas por segmentos de
rectas que pudieran presentar discontinuidades en las fronteras de los
subintervalos. Por tanto, las posibles discontinuidades pueden presentarse en
x=-2 y en x=1, y para evitarlas es necesario que se verifique:
( ) ( )0 1' 2 ' 2S S− = − y ( ) ( )1 2' 1 ' 1S S=
es decir,
( ) ( )( ) ( )
0 1 0 0 1 1 0 0 1 1
1 2 1 1 2 2 1 1 2 2
' 2 ' 2 4 4 4 4 0
' 1 ' 1 2 2 2
7
82 0
S S b a b a b a b a
S S b a b a b a b a
ec
ec
− = − ⇒ − = − ⇒ − − + =
= ⇒ + = + ⇒ + − − =
Contamos, por tanto, con 8 ecuaciones con 9 incógnitas, lo que da un grado de
libertad para elegir alguna de las incógnitas. Podemos elegir, por simple
conveniencia 1 0a = . De este modo llegamos al sistema de ecuaciones:
0 0 1 1 1 2 2 2
0 0 1 1 1 2 2 2
0 0 1 1 1 2 2 2
0 0 1 1 1 2 2 2
0 0 1 1 1 2 2 2
0 0 1 1 1 2 2 2
1 3b 0 0b 0 0 0b 0 2
1 2b 0 0b 0 0 0b 0 0
0 0b 1 2b 4 0 0b 0 0
0 0b 1 1b 1 0 0b 0 3
0 0b 0 0b 0 1 1b 1 3
0 0b 0 0b 0 1 4b 16 1
c c a c a
c c a c a
c c a c a
c c a c a
c c a c a
c c a c a
− + + + + + + =
− + + + + + + =
+ + − + + + + =
+ + + + + + + =
+ + + + + + + =+ + + + + + + =
0 0 1 1 1 2 2 2
0 0 1 1 1 2 2 2
0 1b 0 1b 4 0 0b 0 0
0 1b 0 0b 2 0 1b 2 0
c c a c a
c c a c a
+ + − + + + + =
+ + + + + − − =
44
≡
0
0
1
1
1
2
2
2
1 3 0 0 0 0 0 0 2
1 2 0 0 0 0 0 0 0
0 0 1 2 4 0 0 0 0
0 0 1 1 1 0 0 0 3
0 0 0 0 0 1 1 1 3
0 0 0 0 0 1 4 16 1
0 1 0 1 4 0 0 0 0
0 1 0 0 2 0 1 2 0
c
b
c
b
a
c
b
a
− − − = − − −
≡ AV=Y
⇒ V=A-1Y, es decir,
1
0
0
1
1
1
2
2
2
1 3 0 0 0 0 0 0 2
1 2 0 0 0 0 0 0 0
0 0 1 2 4 0 0 0 0
0 0 1 1 1 0 0 0 3
0 0 0 0 0 1 1 1 3
0 0 0 0 0 1 4 16 1
0 1 0 1 4 0 0 0 0
0 1 0 0 2 0 1 2 0
c
b
c
b
a
c
b
a
−− − − = − − −
Solución del sistema con MAXIMA:
1) Matriz de coeficientes.
(%i1) A: matrix( [1,-3,0,0,0,0,0,0], [1,-2,0,0,0,0,0,0], [0,0,1,-2,4,0,0,0], [0,0,1,1,1,0,0,0], [0,0,0,0,0,1,1,1], [0,0,0,0,0,1,4,16], [0,1,0,-1,4,0,0,0], [0,1,0,0,2,0,-1,-2] )$
2) Matriz Y.
(%i2) y: matrix( [2], [0], [0], [3], [3], [1], [0], [0] )$
45
3) Solución de Av=y: v=A-1 y (%i3) v:invert(A).y;
(%o3)
4) Definición de cada trozo del spline, ( ) ( ) ( )0 1 2, S x S x y S x . (%i4)
v[1,1]+v[2,1]*x$S0(x):=''%; v[3,1]+v[4,1]*x+v[5,1]*x^2$S1(x):=''%; v[6,1]+v[7,1]*x+v[8,1]*x^2$S2(x):=''%;
(%o4)
( )( )
( )
0
2
1
2
2
2 4
2
2 4 25
3 9 9
S x x
S x x x
x xS x
= − −
= +
= + +
5) Matriz de nodos de interpolación P (matriz de dimensión 4x1).
(%i5) p: matrix( [-3,2], [-2,0], [1,3], [4,1] );
6) Carga de la librería de dibujo draw para poder representar las curvas junto
con los nodos de interpolación:
(%i6) load(draw);
(%06) "C:/PROGRA~1/MAXIMA~1.1/share/maxima/5.22.1/share/draw/draw.lisp"
7) Representación del spline cuadrático junto con los nodos de interpolación:
(%i7) wxdraw2d(line_width = 2,
color=red,
explicit(S0(x),x,-3,-2),
explicit(S1(x),x,-2,1),
explicit(S2(x),x,1,4),
46
point_size=2,
point_type=7,
color=blue,
points(p));
(%07)
Funciones spline de grado 3 o Splines Cúbicos.
De acuerdo con la definición de spline de grado k, la función ( )S x de grado 3
para los (n+1) nodos { }0 1 ... na x x x b= < < < = , 0,1,...,i n= , debe ser una función de
clase 2 en [ ] [ ]0, , na b x x= , [ ]2
0 , nC x x y debe coincidir con un polinomio de grado
menor o igual a 3 en cada subintervalo 1,i ix x + , 0,..., 1i n= − . Es decir
( ) [ )( ) [ )
( ) [ )
2 3
0 0 0 0 0 0 1
2 3
1 1 1 1 1 1 2
2 3
1 1 1 1 1 1
,
,( )
...
,n n n n n n n
S x d c x b x a x x x x
S x d c x b x a x x x xS x
S x d c x b x a x x x x− − − − − −
= + + + ∈ = + + + ∈= = + + + ∈
donde los ia , ib , ic y id , 0,1,..., 1i n= − , son los coeficientes a determinar
1. ( ) i iS x y= para cada 0,...,i n= ;
2. ( )iS x es un polinomio de grado menor o igual que 3 en el intervalo
1,i ix x + , 0,..., 1i n= − .
3. ( )S x tiene segunda derivada continua en [ ] [ ]0, , na b x x= , es decir,
( ) [ ]2
0 , nS x C x x∈ .
4. ( ) ( )1 1 1i i i iS x S x+ + += para cada 0,..., 2i n= − , (lo que asegura continuidad en los
puntos), ( ) ( ) ( ) ( ) ( ) ( )0 1 1 1 1 2 2 2 2 1 1 1, S , , n n n nS x S x x S x S x S x− − − −= = … = .
47
( ) ( )1 1 1' 'i i i iS x S x+ + += para cada 0,..., 2i n= − , lo que asegura diferenciabilidad
en los puntos,
( ) ( ) ( ) ( ) ( ) ( )0 1 1 1 1 2 2 2 2 1 1 1' ' , S' ' , , ' 'n n n nS x S x x S x S x S x− − − −= = … =
( ) ( )1 1 1'' ''i i i iS x S x+ + += para cada 0,..., 2i n= − , lo que asegura que no hay
cambios de concavidad en los nodos.
( ) ( ) ( ) ( ) ( ) ( )0 1 1 1 1 2 2 2 2 1 1 1'' '' , S '' '' , , '' ''n n n nS x S x x S x S x S x− − − −= = … =
De igual manera que en los métodos lineal y cuadrático debemos encontrar el valor de los coeficientes que resultan para formar el spline. La interpolación con spline cúbicos es la más usual.
A efectos prácticos:
Construir un spline cúbico para n nodos consiste en construir una curva
uniendo tramos definidos por polinomios de grado menor o igual a tres para cada
par, de forma que la unión sea suave, es decir, que coincidan la primera y
segunda derivada en cada unión.
Si en los extremos:
- Se exige que se anule la segunda derivada, la curva obtenida se denomina Spline Cúbico Natural.
- Se exige que la primera derivada tome un valor determinado, la curva obtenida se denomina Spline Cúbico Sujeto.
Ejercicio. 3.4 Encontrar el spline cúbico sujeto de interpolación que pasa
por los puntos de la tabla siguiente:
x -3 -2 1 4
y 2 0 3 1
y para el que se verifica: ( )( )' 3 1
' 4 1
S
S
− = −
=
Solución:
Spline Cúbico:
( ) [ ]( ) [ ]( ) [ ]
2 3
0 0 0 0 0
2 3
1 1 1 1 1
2 3
2 2 2 2 2
3, 2
( ) 2,1
1,4
S x d c x b x a x x
S x S x d c x b x a x x
S x d c x b x a x x
= + + + ∈ − −= = + + + ∈ −
= + + + ∈
La curva 2 3
0 0 0 0 0( )S x d c x b x a x= + + + une los puntos ( ) ( )3,2 2,0− −y ,
2 3
1 1 1 1 1( )S x d c x b x a x= + + + los puntos ( ) ( )2,0 1,3− y y 2 3
2 2 2 2 2( )S x d c x b x a x= + + +
los puntos ( ) ( )1,3 4,1y . En conclusión cuatro pares de coordenadas se unen
mediante tres curvas polinomiales de grado 3.
48
Para calcular el spline es necesario conocer los 12 coeficientes id , ic , ib , ia ,
0,1, 2i = , incógnitas de un sistema de 12 ecuaciones que deberán ser generadas
por las condiciones exigidas a un spline cúbico sujeto:
a) El spline cúbico sujeto ha de pasar por todos los puntos correspondientes a
los nodos, ( ) i iS x y= para cada 0,1, 2,3i = ; b) ha de garantizarse la existencia de
primera continua; c) se pide calcular un spline cúbico ( )S x sujeto para el que se
verifica ( ) ( )' 3 1; ' 4 1S S− = − = ; d) ha de garantizarse la existencia de segunda
derivada continua.
a) 6 ecuaciones se obtiene por el hecho de que el spline cúbico ha de pasar por
todos los puntos correspondientes a los nodos:
( )( )( )( )( )
( )
0 0 0 0 0
0 0 0 0 0
1 1 1 1 1
1 1 1 1 1
2 2 2 2 2
2 2 2 2 2
( 3) 2 3 3 9 27 2
2 2 4 8 0( 2) 0
2 2 4 8 0
1 3(1) 3
1 3
(4)
1
2
3
4
1 4 4 16 6
5
64 1
S S d c b a
S d c b aS
S d c b a
S d c b aS
ec
ec
ec
ec
ecS d c b a
d eS S c b a c
− = ⇒ − = − + − =
− = − + − = − = ⇒ − = − + − =
= + + + = = ⇒ = + + + = = ⇒ = + + + =
b) Otras 2 ecuaciones se obtienen a partir de existencia de primera derivada
continua:
( ) [ ]( ) [ ]( ) [ ]
2
0 0 0 0
2
1 1 1 1
2
2 2 2 2
' 2 3 3, 2
'( ) ' 2 3 2,1
' 2 3 1,4
S x c b x a x x
S x S x c b x a x x
S x c b x a x x
= + + ∈ − −= = + + ∈ −
= + + ∈
La derivada '( )S x puede presentar discontinuidades en 2 1x x= − =y en , para
evitarlas es necesario que se verifique:
( ) ( )0 1' 2 ' 2S S− = − y ( ) ( )1 2' 1 ' 1S S=
es decir,
( ) ( )
( ) ( )
0 1 0 0 0 1 1 1
0 0 0 1 1 1
1 2 1 1 1 2 2 2
1 1 1 2 2 2
7
' 2 ' 2 c 4 12 4 12
c 4 12 4 12 0
' 1 ' 1 2 3 2 3
2 3 2 3 0 8
S S b a c b a
b a c b a
S S c b a c b
ec
a
c b a c b ca e
− = − ⇒ − + = − +
⇒ − + − + − == ⇒ + + = + +
⇒ + + − − − =
c) Por otro lado, se pide calcular un spline cúbico sujeto para el que se verifica
( ) ( )' 3 1; ' 4 1S S− = − =
condiciones que se traducen en dos ecuaciones adicionales:
49
( ) ( )( ) ( )
0 0 0 0
2 2 2 2
' 3 1 ' 3 6 27 1
' 4 1 ' 4 8 4
9
108 1
S S c b a
S
ec
ecS c b a
− = ⇒ − = − + =
= ⇒ = + + =
d) Por último, obtenemos las dos ecuaciones restantes garantizando la existencia
de la segunda derivada continua:
( ) [ ]( ) [ ]( ) [ ]
0 0 0
1 1 1
2 2 2
'' 2 6 3, 2
''( ) '' 2 6 2,1
'' 2 6 1,4
S x b a x x
S x S x b a x x
S x b a x x
= + ∈ − −= = + ∈ −
= + ∈
La derivada ''( )S x también puede presentar discontinuidades en
2 1x x= − =y en , por lo que procedemos como para la primera derivada:
( ) ( )0 1'' 2 '' 2S S− = − y ( ) ( )1 2'' 1 '' 1S S=
es decir,
( ) ( )( ) ( )
0 1 0 0 1 1 0 0 1 1
1 2 1 1 2 2 1 1 2 2
11'' 2 '' 2 2 12 2 12 2 12 2 12 0
'' 1 '' 1 2 6 2 6 2 6 2 6 0 12
S S b a b a b a b a
S S b a b a
e
a eb b
c
ca
− = − ⇒ − = − ⇒ − − + =
= ⇒ + = + ⇒ + − − =
En definitiva contamos con el sistema de 12 ecuaciones con 12 incógnitas:
0 0 0 0 1 1 1 1 2 2 2 2
0 0 0 0 1 1 1 1 2 2 2 2
0 0 0 0 1 1 1 1 2 2 2 2
0 0 0 0 1 1 1 1 2 2 2 2
1 3 9b 27 0 0 0b 0 0 0 0b 0 2
1 2 4b 8 0 0 0b 0 0 0 0b 0 0
0 0 0b 0 1 2 4b 8 0 0 0b 0 0
0 0 0b 0 1 1 1 1 0 0 0b 0 3
0
d c a d c a d c a
d c a d c a d c a
d c a d c a d c a
d c a d c b a d c a
d
− + − + + + + + + + + =
− + − + + + + + + + + =
+ + + + − + − + + + + =
+ + + + + + + + + + + =
0 0 0 0 1 1 1 1 2 2 2 2
0 0 0 0 1 1 1 1 2 2 2 2
0 0 0 0 1 1 1 1 2 2 2 2
0 0 0 0 1 1 1 1 2 2 2 2
0 0b 0 0 0 0 0 1 1 1b 1 3
0 0 0b 0 0 0 0 0 1 4 16b 64 1
0 1 4b 12 0 1 4 12 0 0 0b 0 0
0 0 0b 0 0 1 2 3 0 1 2b 3 0
0
c a d c b a d c a
d c a d c b a d c a
d c a d c b a d c a
d c a d c b a d c a
d
+ + + + + + + + + + + =+ + + + + + + + + + + =+ − + + − + − + + + + =
+ + + + + + + + − − − =
0 0 0 0 1 1 1 1 2 2 2 2
0 0 0 0 1 1 1 1 2 2 2 2
0 0 0 0 1 1 1 1 2 2 2 2
0 0 0 0 1 1 1 1 2 2 2 2
1 6b 27 0 0 0b 0 0 0 0b 0 1
0 0 0b 0 0 0 0 0 0 1 8b 48 1
0 0 2b 12 0 0 2 12 0 0 0b 0 0
0 0 0b 0 0 0 2 6 0 0 2b 6 0
c a d c a d c a
d c a d c b a d c a
d c a d c b a d c a
d c a d c b a d c a
+ − + + + + + + + + + =
+ + + + + + + + + + + =+ + − + + − + + + + + =
+ + + + + + + + + − − =
50
1 3 9 27 0 0 0 0 0 0 0 0
1 2 4 8 0 0 0 0 0 0 0 0
0 0 0 0 1 2 4 8 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 1 4 16 64
0 1 4 12 0 1 4 12 0 0 0 0
0 0 0 0 0 1 2 3 0 1 2 3
0 1 6 27 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 8 48
0 0 2 12 0 0 2 12 0 0 0 0
0 0 0 0 0 0 2 6 0 0 2 6
− − − − − − − − −
− − − − + − − − −
0
0
0
0
1
1
1
1
2
2
2
2
2
0
0
3
3
1
0
0
1
1
0
0
d
c
b
a
d
c
b
a
d
c
b
a
=
≡ AV=Y
⇒ V=A-1Y, es decir,
0
0
0
0
1
1
1
1
2
2
2
2
1 3 9 27 0 0 0 0 0 0 0 0
1 2 4 8 0 0 0 0 0 0 0 0
0 0 0 0 1 2 4 8 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 1 4 16 64
0 1 4 12 0 1 4 12 0 0 0 0
0 0 0 0 0 1 2 3 0 1 2 3
0 1 6 27 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
d
c
b
a
d
c
b
a
d
c
b
a
− − − − − − = − − −
− − − − +
12
0
0
3
3
1
0
0
1
1 8 48 1
0 0 2 12 0 0 2 12 0 0 0 0 0
0 0 0 0 0 0 2 6 0 0 2 6 0
− − − − −
Solución del sistema de ecuaciones con MAXIMA:
1) Matriz de coeficientes.
(%i1) A: matrix( [1,-3,9,-27,0,0,0,0,0,0,0,0], [1,-2,4,-8,0,0,0,0,0,0,0,0], [0,0,0,0,1,-2,4,-8,0,0,0,0], [0,0,0,0,1,1,1,1,0,0,0,0], [0,0,0,0,0,0,0,0,1,1,1,1], [0,0,0,0,0,0,0,0,1,4,16,64], [0,1,-4,12,0,-1,4,-12,0,0,0,0], [0,0,0,0,0,1,2,3,0,-1,-2,-3], [0,1,-6,27,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,1,8,48], [0,0,2,-12,0,0,-2,12,0,0,0,0], [0,0,0,0,0,0,2,6,0,0,-2,-6] )$
51
2) Matriz Y.
(%i2) y: matrix([2],[0],[0],[3],[3],[1],[0],[0],[1],[1],[0],[0])$
3) Resolución de Av=y ⇔ v=A-1 y (%i3) v:invert(A).y;
(%o3)
4) Definición de cada trozo del spline, ( ) ( ) ( )0 1 2, S x S x y S x . (%i4) v[1,1]+v[2,1]*x+v[3,1]*x^2+v[4,1]*x^3$S0(x):=''%;
v[5,1]+v[6,1]*x+v[7,1]*x^2+v[8,1]*x^3$S1(x):=''%;
v[9,1]+v[10,1]*x+v[11,1]*x^2+v[12,1]*x^3$S2(x):=''%;
52
(%o4)
( )
( )
( )
3 2
0
3 2
1
3 2
2
83 571 1216 812
31 31 31 31
116 13 196 404
279 93 93 279
271 658 1207 593
837 279 279 837
x x xS x
x x xS x
x x xS x
= + + +
= + + +
= − + +
5) Matriz de nodos de interpolación de dimensión puntos (dimensión 4x1).
(%i5) puntos: matrix( [-3,2], [-2,0], [1,3], [4,1] ); 6) Carga de la librería de dibujo draw para poder representar las curvas junto
con los nodos de interpolación:
(%i6) load(draw);
(%06) "C:/PROGRA~1/MAXIMA~1.1/share/maxima/5.22.1/share/draw/draw.lisp"
7) Representación del spline cúbico junto con los nodos de interpolación:
(%i7) wxdraw2d(line_width = 2, color=red,
explicit(S0(x),x,-3,-2),
explicit(S1(x),x,-2,1),
explicit(S2(x),x,1,4),
point_size=2,point_type=7,color=blue,
points(puntos));
(%07)
[gr2d(explicit,explicit,explicit,points)]
La curva puede obtenerse con la función cspline (librería interpol). El spline que se
obtiene es el natural (derivadas segundas nulas en los extremos).
En este ejercicio debemos añadir la condición de spline sujeto, siendo las
derivadas en el primer y último extremo -1 y 1 respectivamente.
53
8) Cargamos la librería interpol.
(%i8) load(interpol);
(%o8) "C:/PROGRA~1/MAXIMA~1.1/share/maxima/5.22.1/share/numeric/interpol.mac"
9) Se obtiene la curva con la función cspline.
(%i9) cspline(p,d1=-1,dn=1);S(x):=''%;
(%09)
10) Representación de la curva obtenida por cspline y de los nodos del spline cúbico.
(%i10) wxdraw2d(line_width = 2, color=red, explicit(S(x),x,-3,4), point_size=2, point_type=7, color=blue, points(puntos) );
(%010)
Obtención de la curva por el método de interpolación de Lagrange. 11) Cálculo y representación gráfica del polinomio. (%i11) lagrange(puntos);p3(x):=''%;
(%o11) ( )3
( 1)( 2)( 3) ( 4)( 2)( 3) ( 2)( 4)( 1)
126 12 14
x x x x x x x x xP x
− + + − + + − − − −= − +
(%i12) plot2d([p3(x)],[x,-3,4]);
54
(%o12)
Propiedades de los splines cúbicos:
• Curva interpoladora con segmentos polinómicos (curvas componentes)
• Representación paramétrica
• Suave: C2 (curvas componentes)
• Sin oscilaciones: grado cúbico de los polinomios evita oscilaciones
• No local: el cambio de un punto afecta a los polinomios de todos
segmentos (ver el sistema (n+1) x (n+1)).
• Relativamente fácil de calcular.
• Se ha sacrificado la suavidad (no mucho) para evitar las oscilaciones
• Para hacer las curvas locales, hay que eliminar el requerimiento de que
Interpole los puntos.
Ejercicio. 3.5 (Propuesto) Interpolar usando SCILAB ( ) 2f x x= por
interpolación lineal, por splines cúbicos y por vecinos próximos.
x=linspace(0,3,20);
y=x^2;
xx=linspace(0,3,100);
yy1=interp1(x,y,xx,'linear');
yy2=interp1(x,y,xx,'spline');
yy3=interp1(x,y,xx,'nearest');
plot(xx,[yy1;yy2;yy3],x,y,'*')
xtitle('Interpolación de la función cuadrado')
legend(['Lineal','Spline Cúbico','Nearest'],a=2)
55
3. Interpolación Paramétrica de Lagrange.
3.1 Motivación.
- Queremos modelizar el recorrido de un vagón en la montaña rusa del primer ejemplo de este tema, de modo que pase por los puntos
(1, 2), (2, 1), (3, 5), (4, 4), (5, 3), (6, 6)
en los instantes de tiempo t = 0, 1, 2, 3, 4, 5.
Figura 12.
- Queremos diseñar un trazado que pase por los puntos (3, 0), (1, 6), (5, 4), (6, 7), (4, 7) en el orden indicado.
Figura 13.
56
Definición. 3.7 Una curva polinomial en 2ℝ es una curva paramétrica dada
por una función
( ) ( )( )( ) ,p t x t y t=
cuyas funciones coordenadas son, a su vez, polinomios. El grado de la curva
polinomial es el mayor de los grados de las funciones coordenadas.
El Problema de Interpolación de Lagrange (para curvas paramétricas) puede
escribirse en los siguientes términos:
Dados n+1 puntos
( ) ( ) ( )0 0 0 1 1 1, , , ,..., ,n n np x y p x y p x y= = =
y n+1 números reales distintos
0 1 ... nt t t< < < .
calcular una curva polinomial ( )p t tal que
( ) ( ) ( )0 0 1 1, ,..., n np t p p t p p t p= = =
3.2 Existencia y Unicidad de la Curva Interpoladora de
Lagrange.
Teorema. 2.5 (de Existencia y Unicidad ) Existen polinomios únicos
( ) ( ),x t y t de grado menor o igual que n que son solución del problema de
interpolación paramétrica. La curva ( ) ( )( )( ) ,p t x t y t= recibe el nombre de Curva
Interpoladora de Lagrange para la tabla:
t 0t 1t . . .
nt
( ),x y ( )0 0,x y ( )1 1,x y . . . ( ),n nx y
3.3 Cálculo de la Curva interpoladora de lagrange.
Las fórmulas de Lagrange y Newton que se estudiaron para el cálculo del polinomio interpolador de Lagrange se adaptan para el cálculo de la curva interpoladora, sin más que reemplazar:
Polinomio Curva x t y ( ),x y
Lo que equivale a interpolar cada función coordenada:
t 0t 1t . . .
nt
x 0x 1x . . .
nx
t
0t 1t . . . nt
y 0y 1y . . .
ny
57
Ejemplo. 3.7 Obtener la curva paramétrica que describe el recorrido del vagón de una montaña rusa que pasa por los puntos
x 1 2 3 4 5 6 y 2 1 5 4 -3 6
en los instantes de tiempo t = 0, 1, 2, 3, 4, 5.
Solución: Buscamos la curva interpoladora de Lagrange ( ) ( )( )( ) ,p t x t y t=
para la tabla:
t 0 1 2 3 4 5
(x,y) (1,2) (2,1) (3,5) (4,4) (5,-3) (6,6)
Debemos, por tanto, interpolar cada función coordenada:
t 0 1 2 3 4 5
x 1 2 3 4 5 6
t 0 1 2 3 4 5
y 2 1 5 4 -3 6
Para ( ),t x t , el polinomio interpolador de Lagrange en los puntos (0,1), (1,2),
(2,3), (3,4), (4,5), (5,6) es
( ) 0 1 2 3 4 51 ( ) 2 ( ) 3 ( ) 4 ( ) 5 ( ) 6 ( )x t L t L t L t L t L t L t= + + + + +
y para ( ),t y t , el polinomio interpolador de Lagrange en los puntos (0,2), (1,1),
(2,5), (3,4), (4,3), (5,6) es
( ) 0 1 2 3 4 52 ( ) 1 ( ) 5 ( ) 4 ( ) 3 ( ) 6 ( )y t L t L t L t L t L t L t= + + + + +
donde, para ambos polinomios interpoladores, los polinomios de Lagrange son
58
( )( )( ) ( ) ( )( ) ( ) ( )( )( )
( )( )( ) ( ) ( )( )( )( ) ( ) ( )
( )( )( ) ( ) ( )( )( )( )( ) ( )
( ) ( ) ( ) ( )( )( ) ( ) ( ) ( )( )
( )( )( )( ) ( )( )( )( ) ( ) ( )
( ) ( ) ( )
0 1
2 3
4 5
1 2 3 4 5 0 2 3 4 5( ) , ( )
0 1 0 2 0 3 0 4 0 5 1 0 1 2 1 3 1 4 1 5
0 1 3 4 5 0 1 2 4 5( ) , ( )
2 0 2 1 2 3 2 4 2 5 3 0 3 1 3 2 3 4 3 5
0 1 2 3 5 0 1 2( ) , ( )
4 0 4 1 4 2 4 3 4 5
t t t t t t t t t tL t L t
t t t t t t t t t tL t L t
t t t t t t t t tL t L t
− − − − − − − − − −= =
− − − − − − − − − −
− − − − − − − − − −= =
− − − − − − − − − −
− − − − − − − − −= =
− − − − −( )( )
( ) ( ) ( ) ( )( )3 4
5 0 5 1 5 2 5 3 5 4
t −− − − − −
La curva interpoladora de lagrange ( ) ( )( )( ) ,p t x t y t= viene dada por
( ) ( )( ) 0 1 2 3 4 5
0 1 2 3 4 5
( ) 2 ( ) 3 ( ) 4 ( ) 5 ( ) 6 ( ),( )
2 ( ) ( ) 5 ( ) 4 ( ) 3 ( ),
6 ( )
L t L t L t L t L t L tp t
L t L t L t L t L tx t y
L tt
+ + + + + = + + + + +
=
Ejemplo. 3.8 Diseñar un trazado que pase por los puntos
x 3 1 5 6 4 y 0 6 4 7 7
en el orden indicado, considerando instantes de tiempo t=0,1,2,3,4,5. Repre-sentar la curva obtenida con Maxima.
Solución:
1) Carga de la librería interpol.
� (%i1) load(interpol);
(%o1) "C:/PROGRA~1/MAXIMA~1.1/share/maxima/5.22.1/share/numeric/interpol.mac"
2) Definición de las listas de puntos ( ) ( ) [ ]1 2 1 , , , , ,p t x t p t y t p x y= = =
� (%i2) p1:[[0,3],[1,1],[2,5],[3,6],[4,4]]; p2:[[0,0],[1,6],[2,4],[3,7],[4,7]]; puntos:[[3,0],[1,6],[5,4],[6,7],[4,7]];
(%02)
3) Obtención de los polinomios interpoladores para x e y.
� (%i3) lagrange(p1,varname=t);f1(t):=''%; lagrange(p2,varname=t);f2(t):=''%; (%03)
59
4) Carga de la librería de dibujo draw:
� (%i4) load(draw);
(%04) "C:/PROGRA~1/MAXIMA~1.1/share/maxima/5.22.1/share/draw/draw.lisp"
5) Representación de la curva de interpolación (coordenadas paramétricas):
� (%i5) draw2d(line_width = 2,
color=red,
parametric(f1(t),f2(t),t,0,4),
point_size=2,
point_type=7,
color=blue,
points(puntos) );
(%05)
[gr2d(explicit,explicit,explicit,points)]