INTERPOLACION CUBICA POR TRAMOS. Quiz& entre todas las funciones...
Transcript of INTERPOLACION CUBICA POR TRAMOS. Quiz& entre todas las funciones...
INTERPOLACION CUBICA POR TRAMOS.
Quiz& entre todas las funciones polinomiales por
ramos las mds ~populares debido a sus propiedades son 10s
I cdbicos especial splines cdbicos.
$to se debe a que dichas funciones son fdciles de calcular,
valuar y ademds modelan con suavidad la tendencia de un
~njunto de datos.
En este capitulo vamos a.estudiar diferentes tipos de
unciones cdbicas por tramos, que nos permitirgn resolver
tra vez, el problema de construir una curva que pase por un
e puntos
*- '1 Interpolaci6n cfibica de Hermite.
: Supongamos que se tiene la siguiente tabla de valores:
3 declr que se conocen 10s valores de una f-unclon' g y su
?rivada en un conjunto de puntos {xi) i = l,...,n. k En esta secci6n vamos a ver que es muy f6cil construir a ?a funcidn formada o r un wolinomio cdbico en cada
.da con g y su derivada
bnocida en cada punto xi.
Antes de resolver este problema vamos a resolver un
%so especial del mismo, a partir del cual la expresi6n de @
$-solucidn del problema general serd inmediata.
Sblema: ~eterminar un polinomio cdbico P(y) tal que P(O)
= P;'
Soluci6n:
Expresemos el polinomio P(y) en la forma
P ( Y ) = Po q , (y ) + P , ~ , ( Y ) + p;, q3(y) + P ; ~ , ( Y ) ( 2 . 1 . 1 )
donde 10s q, ( y ) i = 1,. . 4 son polinomios cdbicos. Pa
calcular q l ( y ) observemos que si Po = 1 y P, = P; = P; =
entonces
P ( Y ) = q,(y)
Por lo tanto, q, (y) debe satisfacer que:
De estas condiciones es muy fgcil obtener q , (y ) pues
que, como y = 1 es una razz doble tenemos que q, debe ser
la forma:
donde a y b son coeficientes que se determinan por 1
condiciones q, ( 0 ) = 1 y q; ( 0 ) = 0 . De aqul se obt iene
= 1, b = 2 . Luego
Procediendo de manera similar' es fzcil calcular q,,
y q,, y se obtiene
q,(y) = y2(3 - 2 ~ )
q3(y) = ( Y - 1I2y
q4(y) = y2(y-1)
. - Luego sustituyendo en ( 2 . 1 . 1 ) obtenemos final
)=Po(y -1 )2 ( 1 + 2 y ) + ~ ~ y 2 ( 3 - 2 y ) + ~ & ( y - 1 ) 2 y + P ; y 2 ( y - l )
Observemos ahora que a partir de ( 2 . 1 . 2 ) es
ener el polinomio P i ( x ) tal que:
pi m i + 1 = Qi+l
; x i 1 = Si+l
Para transformar el interval0 [ x i , X I en
lizamos el siguiente cambio de variable X - Xi
Y = 9 Axi = - xi Axi
Como la idea es obtener la expresidn para
tir de la de P ( y ) debemos tener en cuenta que
d 1 ; ( x ) = - d x
P ( Y ( x ) ) = P ' ( Y ) Y ' = P ' ( Y ) - A x i
1 1 ) = P 1 ( 0 ) -- - si - P ( X ~ + ~ ) = P 1 ( l ) --
A X ~ A X ~
Esto significa que resolver el problema para
valente a resolver el problema para p ( y ) tomand
Po = 91 Pl = gi+1
PA = siAxi P; = si+l Axi
Por lo tanto, de ( 2 . 1 . 1 ) resulta que:'
77
Finalmente sustituyendo y por x y ql, q2, q3 Y q4 par
las expresiones correspondientes obtenemos que
De esta forma hemos obtenido una familia de polinomios
cllrbicos {P,(x)) cada uno definido en el interval0 [xi I
xi+d . Como Pi (x) satisface (2.1.3) i = 1,. . .,n-1, entonces la funci6n definida por
f (x) = Pi(x) para xi 5 x 5
i = l,...,n-1
es .una funci6n continuamente diferenciable, constituida por
secciones de polinomios cllrbicos. Esta funci6n se conoce con
el nombre de interpolante cllrbico de Hermite y se puede
demostrar que aproxima muy bien a la funci6n g y que lo hace
mejor en la medida que las longitudes de 10s intervalos
[xi, xi+,] son m%s pequefias. .Veamos a continuaci6n algunos ejemplos:
E jemplo 2.1
Supongamos que g(x) = 1/(1 + x2) y queremos calcular
el interpolante cllrbico de Hermite que coincide con g en 10s
puntos -3, -1, 0, 1 y 3. Como
nec os pa: cons
bterpolante f son 10s siquientes:
Tabla 2.1
Valores de la funci6n g = 1/(1 + x2) y de su primera
derivada .
Teniendo en cuenta que s, = g1 (xi) y gi =
y util
O.l(x +
0.06(-1
izando
1l2[2(~
simplif i
pl(x)
22
cando
- (x + - - 8
obt
2 I -
0.5
.l-x
4
nces q
2[2(-1
23
.-x )
De manera similar se obtienen las s
presiones para 10s polinomios P2, P3 y P, :
P2(x) = 0.5x3 + x2 + x + 1
P3(x) = 1.5x3 - 3x2 + x + 1
trui
igui
Por lo tanto, el interpolante cdbico de Hermite para 1
funci6n g = 1/(1 + x2) est% dado por
El grgfico de la funci6n f aparece en la figura 2.1
Fig. 2.1 Interpolante ctibico de Hermite para g = 1/( 1 + x2) X + puntos de interpolacf6n.
. Ejemplo 2.2
- - construyamos el interpolante cGbico de Hermite
incide con g en 10s puntos -2,-1,0 y 2. cdmo g ( x )
ene primera derivada en 0 vamos a experimentar
ferentes valores de s, para ver c6mo esto influye en
rma de1 interpolante. Organicemos nuevamente nuest
tos en una tabla
Tabla 2.2 Valores de la funci6n g = XO y de su primera + derivada
Observemos un momento la expresi6n (2.1.4) para i =
a claro que, independientemente de1 valor de S3 1
inomio P, que constituye el interpolante f es siempre
mo y coincide con el polinomio nulo, ya que s, = g l (
I S2 = g l ( - 1 ) = 0, g, = g( -2 ) = 0 y g, = g ( - 1 ) = 0.
Usando (2.1.4) y 10s valores de la tabla 2.2
iene ademss que
P2(x ) = ( x + 1 ) 2 ( ( s 3 - 2 ) ~ + 1 )
( 2 , ~ ) ~ x2 P3(x) = ((s, + 1 ) x + 1 ) + - (3-x)
4 4
Por ejemplo, si tomamos s3 = 0 entonces
erpolante cdbico de Hermite est% dado por:
0 -2 5 x -1
( x + 1)2(-2x + I ) , -1 = x = 0
1 0 5 x 5 2
que no
con
la
: ros
Similarmente, si
r
s3 = 1 entonces
Los grdficos de estas funciones se pueden apreciar en
las f iguras 2.2 y 2 - 3 respectivamente.
Fig. 2.2 Interpolante cdbico Fig. 2.3 Interpolante cdbico 1 3
de Hermite para g = X? con de Hermite para g = X? con I P
s3 = 0. s3 = 1.
N6tese que el cardcter local de la interpolac
Hermite se aprecia en estas figuras, ya que las variaciones
de la pendiente en 0 s61o afectan una vecindad de este
punto.
Acerca de la interpolaci6n de Hermite, ya sea mediante
un tinico polinomio, o por tramos, recomendamos a1 lector el
libro [Prel, cuyo capitulo 3 contiene un amplio material
sobre el tema e incluye estimaciones de 10s errores de
aprox imaci6n. Ademds se puede consultar el libro
donde el autor construye un spline de Hermite de clase c2, I
0
rue interpola a a v sus derivadas hasta el seuundo orden v .. d * 4
e est6 formado por polinomios de grado 5 .
!.2 Spline cubico de interpolaci6n.
Para construir el inter~olante cdbico de Hermite hemos
;upuesto que se conocen 10s valores de g1 en 10s puntos de
.nterpolacidn. Pero si esto no es as%, las pendientes
; i = 2, ..., n-1 se pueden escoger de modo que el
hterpolante f tenga hasta segunda derivada continua. En
:a1 caso se dice que f es un spline cdbico de interpolacidn.
En otras palabras, un spline cdbico es una funcidn
Iormada por secciones de polinomios cdbicos 10s cuales se
Inen con la mayor suavidad posible (sin que f sea
Recesariamente t - un dnico polinomio) . Si exigimos que cada polinomio P,(x) del spline cdbico
i I
Satisfaga las condiciones ( 2 . 1 3 entonces est5 claro que $' mdependietemente del valor de s,, la funcidn f definida por
jl (x) en cada interval0 [xi , xi+,] es continuamente C
iiferenciable. Por lo tanto, para lograr que f sea un spline PI *
iasta con tomar 10s si de modo que fw sea continua. 1"
Derivando dos veces la expresidn (2.1.4) que define
jada P,(x) se obtiene directamente que: n ,
2Xi + Xi+, - 3X - 2 Si+l para xi 5 x xi+,
Axi2
Como f est5 formda por secciones de polinomios cdbicos,
-0s Gnicos posibles puntos de discontinuidad de f son 10s 1
Wntos xi donde se empatan dos polinomios cdbicos. Luego, <
;a continuidad de f" es equivalente a exigir que:
Pero de (2.2.1) resulta que:
mientras que
Por lo tanto, de (2.2.2) y (2.2.3) obtenemos que f t l es
continua si escogemos 10s s, de mod0 que satisfagan la
ecuaci6n :
que es equivalente a
Finalmente dividiendo por A x + Ax, se obtiene que 10s s, deben satisfacer las ecuaciones:
a, s,-, + d,s, + (1 - a,)s,+, = b, i = 2 1 (2.2.4)
donde
d, = 2 a, = Ax,/(Ax,-, + Ax, ) (2.2.5)
L 2
Suponiendo entonces que s, y s, se escogen de alguna
Pa, tenemos en (2.2.4) un sistema de n-2 ecuaciones
.meales para calcular las n-2 inc6gnitas s,, . . . , La C latriz de este sistema es tridiagonal y de (2.2.4) y (2.2.5)
ulta claro que es de diagonal dominante por filas ya que
d, = 2 > a, + (1 - a,) = 1
Por lo tanto, (2.2.4) tiene exact amente una soluci6n
fie se puede hallar por el metodo de eliminaci6n de Gauss # in pivoteo [For]. Los parsmetros s, y sn dependen de las 14 ondiciones que impongamos en la frontera. A continuacign I@ iresentamos algunas de ellas. 78
s' t
Si se conoce el valor de g1 en x, y xn entonces resulta
y natural tomar s, = g1 (x,) y sn = gl(xn). En tal caso el i@ pline cGbico no s61o interpola a g en 10s puntos '+* ?$ k < * * * j X n sino que ademds interpola a g' en x, y x,. Este B bline se conoce la+
como swline cGbico completo y si
enotamos por g: y gl 10s valores de g' en x, y x, &d
1
pectivamente, en n
tonces Sl1 . se calculan como
0luci6n del sistema de ecuaciones lineales:
. . an- I dn- 1 1-
donde b, = g:, b, = gl, y el resto de 10s elementos de la < matriz y el lado derecho est6n dados por (2 -2.5) .
ii) Otra posible condici6n de frontera consiste en exigir >i I I ;$
que la segunda derivada del spline en 10s extremos sea 0, o ,'% - -
sea que
De (2.2.1) se obtiene que esta condici6n da lugar a las 4 ecuaciones:
Este tipo de spline se conoce como spline ctibico
natural y desde cierto punto de vista no es muy recomendable '
ya que la imposici6n arbitraria de la condici6n (2.2.7)
puede provocar que cerca de 10s extremos x, y x- el
error aumente (a menos que realmente gff(xl) = gv Sin embargo en el capitulo 3 mostraremos que el spline
natural de interpolaci6n tiene otras propiedades muy
interesantes que justifican su uso.
De (2.2.4) y (2.2.8) se tiene que las pendientes
s . . . s del spline ccbico natural se calculan coma soluci6n del sistema lineal:
QZ ' Q1 Qn ' Qn-1 nde b1 = 3 , b n = 3
Ax1 Axn- 1
s( el resto de 10s coeficientes de la matriz y el lado
krecho se calculan segtin (2.2.5) .
i ) Si uno no conoce nada acerca de las derivadas de g en
3s 1. puntos extremos, entonces una posibilidad es escoger s1
Cs, de manera que P1 coincida idgnticamente con P, y
coincida con P . En otras palabras, se trata de
oger s1 y sn de mod0 que 10s puntos x, y x no Sean
ntos de ruptura de la funci6n f.
Como f es un spline cfibico sabemos que
(J' (x,)=p,(J) (x,) 9 Pn-l(')(~n-1 )=pn(j) ( ~ ~ - 1 ) j = 0 , 1 9 2
if Pero P1 y P2 son polinomios cfibicos que se pueden g hcribir como:
gcx)=pi(xz)+~i ( ~ 2 ) (x-x2)+p\'(x2) (x-x,)~/~+P~ ' ' (x,) (x-x2)3/6 b(r)=p2(x2)+~5 (x2) (x-x2)+P2(x2) (x-x,)~/~+P~' ' (x,) (x-x2)3/6
Por lo tanto, esta condici6n de frontera es equivalente
exigir que P; (x,) = Pi' ' (x,) o sea que f" sea cont'inua
x, y similarmente en xn,, .
. u
N6tese que si se utiliza esta condici6n de frontera
nces la primera y la dltima seccidn polinomial
erpolan a la funci6n g en un punto adicional que no es de
ura, lo cual nos ilustra nuevamente el hecho de que en
interpolaci6n polinomial por tramos, 10s puntos de
rpolaci6n y de ruptura no necesariamente tienen que
En resumen, si escogemos la condici6n de frontera iii)
as pendientes s , . . , s n de1 spline se calculan
soluci6n del sistema de ecuaciones lineales:
- - "1
b 2 .
bn- 1
b n - -
- a 1 0 d 2 1-a,
an-1 dn- 1
a n a n -
e dl = A x 2 a, = x, - x1 a, = xn - xn-, dn = Axn-,
bn son el lado derecho de las ecuaciones (2.2.10) y
.11) respectivamente y el resto de 10s elementos de la
iz y el lado derecho est6n dados por (2.2.5).
Acerca de c6mo seleccionar las condiciones de frontera
line cdbico el lector puede tambign referirse a
[Spa], [Lucl y [Powl.
Un aspect0 que nosotros no hemos tratado aqui es el
r que se comete cuando interpolamos valores de una
i6n g mediante un spline cdbico f . Este error depende
i6n de las condiciones de frontera que hayamos escogido
a construir f (vea [Bool] , [Kam] , [Ahll y [Pow] .
- - s 1
S 2
Sn- 1
S n - d
- -
- 0
Por ejemplo en [Bool], C. de Boor demuestra que si f es
el spline ccbico completo que interpola a una funci6n g de
clase C4, entonces Ilg-f ll, = O(h4) donde h = max hi, hi =
xi+, - xi .Este tipo de error es el m5s pequefio que se puede esperar cuando f es un spline ccbico.
Por eso, en [Beh] 10s autores estudian una serie de
condiciones de frontera para el spline ccbico que
interpola datos igualmente espaciados, de mod0 que el error
de interpolaci6n sea de O(h4).
A1 igual que en el caso del spline parab6lic0, una
forma mgs conveniente de expresar el spline ccbico f, es
escribir cada polinomio Pi(x) que define a f en el
interval0 [xi, xi+,] a traves de su f6rmula de Taylor
alrededor de xi. De (2.1.3) ya sabemos que
Pi(xi) = gi:=CO(i,l) P', (xi) = si:=CO(i,2)
mientras que segh (2.2.2)
2 Py(xi) = - - (2si + si+, - 39[xi1 xi+,]:=C0(i,3))
Axi
Por Cltimo, a1 deducir la condici6n de frontera iii) ya
vimos que 6
Pi " (x)=P;" (xi) = - (si + si+, - 2g[xi, xi+,I):=CO(i,4) Axi2
Luego Pi(x) se escribe como:
Pi(x) = CO(i,l) + CO(i,2)(x-xi) + CO(i,3)(~-x,)~/2 + + C0(i,4) (x-x~)~/~
(2.2.12)
. - jemplo 2.3
Calculemos el spline c6bico coipleto que interpola a la
rci6n g(x) = 1/(1 + x2) en 10s puntos -3, -1, 0, 1 y 3. 6
ilizando 10s datos de la tabla 2.1 y (2.2.5) , construimos elementos de la matriz y el lado derecho del sistema
.2.6). Redondeando a 3 cifras decimales obtenemos que: g h ! Ax, = 2 Ax, = 1 Ax, = 1 Ax, = 2
B a, = 0.333 h3 = 0.5 a, = 0.666 : bl U 1 k - r l g 2 - g l 2 g 3 - g 2 1 - -
L J
Por lo tanto las pendientes s , s 5 de1 spline
bico completo se calculan como soluci6n del sistema
neal :
0.333 2 0.666
lo
0.5 2 0.5 0.666 2 0.333
1 1 11 ss = [-1y2] -0.06
El mismo se resolvi6 mediante el programa TRIDSIS
enigndose 10s siguientes resultados:
La tabla 2.3 muestra la matriz CO de 10s coeficiente
del spline. Con ayuda de la misma se reconstruy6 1
expresi6n analitica de cada uno de 10s cuatro polinomios qu
constituyen el spline f. El gr5fico de esta funci6n s
aprecia en la figura 2.4
Tabla 2.3 Coeficientes del spline cirbico completo.
Fig. 2.4 Spline ctblco completo que interpola a la funcibn
g(X) = 1/(1 + x2) X + puntos de interpolaci6n.
: jemplo 2.4 Construyamos el spline cdbico natural que interpola a
bfuncidn xO en 10s ~untos -2. -1. 0 v 2 . T L
Utilizando esta vez , -~ , ~ . '
10s datos de la tabla
$culamos 10s elementos de la matriz y el lado derecho del
Etema (2.2.9) y llegamos a 10s siguientes resultados
gedondeados a 3 cifras decimales) :
Ax, = 1 Ax, = 1 Ax, = 2
Luego, las pendientes s , . . . , s del spline cdbico
atural se calculan como soluci6n del sistema lineal:
La soluci6n de este sistema se obtuvo tambign a travgs
21 programa TRIDSIS (redondeando a 3 cifras decimales):
h $ Mediante la expresi6n (2.2.12) calculamos entonces 10s b
polinomios cdbicos que constituyen el spline f y obtuvimos
'kinalmente que
donde 10s coeficientes de cada polinomio se aproximaron a
cuatro lugares decimales. La figura 2.5 nos muestra en este
caso el grdfico de f.
Fig. 2.5 Spline cribico natural que interpola a la funcibn
g(x) = x!, X + ptos. de interpolaci6n.
Observemos ahora con detenimiento las figuras 2.1, 2.2,
2.4 y 2.5. Como se puede apreciar, en general el
interpolante cGbico de Hermite aproxima me j or a las
funciones de prueba que el spline-cdbico. Esto se debe
esencialmente a que el spline cdbico "invierten parte de su
capacidad para aproximar datos en ser una funcidn suave
(tiene hasta segunda derivada continua), mientras que el
interpolante cGbico de Hermite a1 ser una funci6n menos
suave tiene mds I1libertad" para modelar un conjunto de
datos.
Sin embargo, hay que tener en cuenta que la
nstrucci6n del interpolante cfibico de Hermite requiere
conozcamos la primera derivada, en 10s puntos de
terpolaci6nI de la funci6n que vamos a aproximar. Pero
chas veces en la pr6ctica no se dispone de esta
formaci6n, ya que 10s datos se han obtenido de forma
perimental y en realidad la funci6n g es desconocida. Por
of en tales problemas el spline ctibico es una herramienta
ndamental.
Los splines de tipo Hermite tambien se emplean para
nstruir curvas que preserven Itla forma de 10s datosH.
gamos aqui un parentesis.
El problema de construir un interpolante que preserve
comportamiento de 10s datos ha sido atacado con
ferentes tipos de splines y es un problema muy actual, por
auge que ha tomado en 10s Gltimos afios el disefio grgfico
r computadoras.
En otras palabras, se trata de que el interpolante
struido mantenga las propiedades de monotonia y/o
vexidad de 10s datos. Por ejemplo, si en el interval0
xi+,] 10s datos. se comportan de forma creciente, o sea
g(xi) g(xi+,), entonces resulta natural exigir que un en interpolante f satisfaga la condici6n fl(x) 2 0 para
Mds aGn, sea 6, = g[xi, xi+,] - g[xi, xi-,] la ferencia de las pendientes entre las dos rectas que pasan
r 10s puntos consecutivos xi-,, xi y xi+, (vea la fig. 6 ) . Si 6, y 6,+, son positivas entonces es de esperar
e un buen interpolante f sea convex0 en [xi,xi+,], o sea e fll(x) > 0 para x E [xi, xi+,].
'(1-1 x 1 x1*1 x 1*2
F i g . 2 . 6 Interpolante convex0 para "datos convexos".
En [Fri] 10s autores construyen un interpolante cdbico de Hermite que preserva la monotonia de 10s datos. En cada
intervalo [xi ,x,+,] , esta funcidn f es un polinomio cdbico que satisface las condiciones de interpolacidn: f ( x , ) =
Sus derivadas en 10s entremos
se escogen de mod0 que f 1 ( x ) tenga,~ en [xi , xi+,] , el mismo signo que la pendiente de la recta que pasa por x i g (x i ) )
Y ( ~ i + l , g (x i+ l ) ) . La primera solucidn propuesta a1 problema de construir
un interpolante que mantenga la monotonia y la concavidad de
10s datos se debe a Schweikert [Sch], que introdujo 10s
llamados splines de tensidn. Un spline de tensidn es una
funcidn de clase C2, que en cada interval0 [ x i , xi+i 1 satisface la ecuaci6n diferencial: a 2
e p es el llamado parsmetro de tensidn. N6tese que si p
entonces el spline de tensidn se reduce a1 spline cGbico
acabamos de estudiar, mientras que para p > 0 , cada
ci6n se escribe como combinaci6n lineal de las funciones
epx, e-px . En particular, cuando p + + co, el spline de tensidn se
oxima a1 lineal que interpola 10s datos. Este Gltimo
line ya sabemos que no es una funci6n suave, per0 conserva
forma de 10s datos. Por eso, es de esperar que para
gGn valor finito de p, el spline de tensidn resultante sea
funci6n suave con esta misma propiedad.
Sobre 10s splines de tensi6n el lector puede consultar
rnss [Ren], [Cli].
Los splines de tensi6n son muy costosos desde el punto
ista computacional. Esto explica por qu6 otros autores
ul], [Bool], [Nie]) han tratado de preservar la forma de
datos usando splines polinomiales. La idea general es
oducir puntos de ruptura adicionales en el spline cfibico
estudiamos en.esta secci6n. De esta forma se logra
ervar la convexidad, aunque no la monotonicidad, lo cual
ebe a que en el spline cfibico todas las secciones est%n
adas (no es un esquema local) y por lo tanto a1
ar una de ellas varian tambign todas las dem%s. Esta
itaci6n del spline cGbico se puede superar en la
ualidad (ver [Shl] ) . Sobre la construccidn de splines polinomiales que
serven la monotonia y/o convexidad de 10s datos tambign
pueden consultar 10s siguientes trabajos: BOO^], [Daw],
Y [Mcl.
Spline c6bico parametric0 y peri6dico.
Con mucha frecuencia, en problemas pr%cticos de diversa
97
. m
indole, 10s datos que uno necesita aproximar est6n
dispuestos de modo que para una misma abcisa se tiene m5s de
un valor (vea por ejemplo la fig. 2.7).
* *
*
*
*
*
*
Fig. 2.7 Datos de un problema hip6tbtico donde para una
abcisa se tienen 2 valores diferentes.
En tal caso hay que considerar que 10s datos
representan una curva plana y en consecuencia debemos
aproximarlos mediante una curva, ya que una funci6n no puede
tomar dos valores diferentes en el mismo punto.
Supongamos entonces que se dispone de un conjunto de
puntos x i yi) i = 1,. . .,n situados en el plano, y se dese construir una curva que pase por 10s mismos. Los punto
( x i yi) se pueden considerar como puntos de una curva, qu paramgtricamente se describe mediante dos funcione
(desconocidas) :
x = s(t) a l t r b
Y = h(t)
de mod0 que para ciertos valores
tl < t2 < . . . < tn
del parsmetro t se tiene que
9 8
Una vez que se han escogido 10s valores ti de1
6metro t de mod0 que cumplan la condicidn (2.3.1),
emos entonces construir el spline cdbico f , que interpola
abcisas de la curva original, es decir que pasa por 10s
ntos ( t i x i ) i = 1 , . . n y el f , que interpola las
enadas, o sea que toma el valor y, en cada t i ,
hnsiderando en 10s extremos una de las condiciones que
udiamos en la secci6n anterior.
Las funciones f , ( t ) , f , ( t ) definen entonces una curva
x = f l ( t )
Y = f , ( t )
pasa por 10s puntos (x i , y , ) i = 1 , . . . , n . Esta curva se
oce como spline cdbico param&trico, pues depende de la
ecci6n del par6metro t .
La seleccidn de una parametrizaci6n apropiada es
ndamental para lograr que el interpolante no tenga
osidades". En este sentido, la experiencia ha
ostrado que cualquier parametrizaci6n que aproxime la
gitud de arc0 es conveniente. Sin embargo, para lograr
el par6metro sea exactamente la longitud de arc0 se
esita un considerable esfuerzo de c6lculo. Por eso, en
pr5ctica se toman como par6metros:
t, = 0
t i + , = ti + d, i = 1 , . . . ,n-1 ( 2 . 3 . 2 )
nde d, es una aproximacidn de la longitud del arc0
e va de x i y , ) a (xi+,, y,+,), la cual se puede escoger
99
- 0
de una de las siguientes formas:
i) d, = 1-
ii) d, = A x i 2 + A y i 2
iii) di = I A x i I + I A Y I I
iv) di = m a x ( ( A x i ( , ( A Y I ( )
Ndtese que la seleccidn i) representa la longitud de
la cuerda que pasa por 10s puntos ( x i , - y i ) y ( x i + , , y , + , ) y
en la pr6ctica se ha podido comprobar que esta seleccidn es
muy conveniente.
Si ya se han escogido de alguna forma 10s puntos ti i =
l , , n entonces de (2.2.4) se obtiene inmediatamente que
las pendientes del spline f , ( t ) que interpola las abcisas,
se calculan como solucidn del sistema:
donde
a, = A t , / ( A t , - , + A t , ) con A t , = ti+, - ti ( 2 . 3 . 5 )
A x i - , A t , - , A x i b, = 3 +
A t i - , A t i - , + A t 1 A t , A t i - , + A t , I La primera y la Gltima ecuacidn del sistema (2.3.4)
dependen de la condicidn de frontera seleccionada. Por
ejemplo, si tomamos la condicidn ii) entonces el sistema
(2.3.4) se completa con las ecuaciones.
Axn- 3 -
A t n -
$ En general, cualquiera que sea la condici6n escogida $ asta con sustituir en la ecuaci6n correspondiente A x , por B
Y Qi Par xi .
De f orma similar, las pendientes s,, . . . , sn del spline
t l uue inter~ola las odenadas se obtienen como solucidn . A
un sist L
:ema lineal cuya ma triz coinc ide COI
tentras que el lado derecho se obtiene de sustituir x , por
o sea:
r A t i
Una vez construidos 10s splines f l ( t ) y f 2 ( t ) , si se
sea un gr6fico del spline paramgtrico basta con
eccionar diferentes valores del parsmetro t , digamos t** 1 '
1, ..., m y evaluar cada una de las funciones f, y f 2 que
erpolan las abcisas y las ordenadas respectivamente. De
se obtienei
x* = j
Y; =
@e pertenecen a la curva que representa el spline
- 0
paramgtrico.
Supongamos ahora que 10s puntos ( x , y ) provienen de
un problema cuyas caracteristicas hacen suponer a1
especialista que la curva de interpolacih debe ser cerrada.
Entonces ninguna de las condiciones de frontera estudiadas
en la seccidn anterior es dtil. Para lograr que el spline
paramgtrico sea una curva cerrada y que en el punto de
cierre el empate sea suave, basta con exigir que las
funciones f , y f 2 que interpolan las abcisas y ordenadas
respectivamente Sean periddicas, es decir que:
f , ( J ) ( t , ) = f , ( J ) ( t , ) j = 0 , 1 , 2
f 2 ( J ) ( t , ) = f ,(J) ( t , )
La condicidn (2.3.7) para j = 0 , o sea el cierre de la
curva, se logra simplemente considerando que el primer y el
dltimo punto de interpolacidn coinciden ( ( x , y , ) = (x,,
y , ) ) pues en tal caso como:
f i ( t 1 ) = xi i = 1 , . . .,n f z ( t 1 ) = Yl
f l ( t l ) = X1 = X, = f l ( t n )
f , ( t , ) = Y, = Yn = f , ( t n )
Por otro lado, como f ; ( t , ) = s, y f ; ( t , ) =
condici6n (2.3.7) para f , y j = 1 est% garantizada si en el
sistema (2.3.4) se elimina la incdgnita . s, porque s, = s l .
De manera similar se .debe proceder en el sistem
correspondiente para el c5lculo de las pendientes del splin
f 2 -
Por dltimo, teniendo en cuenta que s, = s,, de (2.2.2)
102
entonces
3 2 . 2 . 3 ) obtenemos que:
-- -- - -- - - f:(tn) = - 6 + +
4" Atn-1 Atn-1
; Luego, la condicidn ( 2 . 3 . 7 ) para f1 y j = 2 se 1:
diante la ecuacidn
[F s 2 +
- 3 Sn-1 - + A tn-1
I
T f equivalentemente por :
6 f
A tn-I + s, + - A t 1
En resumen, las pendientes s , . . . , s n ( sn = periddico f 1 que interpola las abcisas de 10s
Obtinen como soluci6n del sistema de ecuaciones:
expresa
s,) de1
datos,
donde
dl = 2 a, = At,.-l/(At, + Atn-,)
y el resto de 10s elementos de la matriz y el lado derecho
estzn dados por (2.3-5)
De forma analogs las pendientes s,, . . . , sn-, del spline peri6dico f, que inter~ola las ordenadas de 10s datos se
calculan como solucibn de un sistema lineal con la misma
matriz que (2.3.8) donde el lado derecho b est5 dado por ,i b 4 (2.3.6) para i = 2,--=,n-l Y 9
L 4
B
La matriz del sistema (2.3.8) (y el similar para f,) f
4 es tridiagonal ciclica Y de diagonal dominante por f ilas. -4 Luego el mismo Se ~uede resolver por metodo de elirninacibn ' i 1
de Gauss sin pivoteo. En el anexo, presentamos tambign una .b
3 descripcibn sencilla del metodo de Gauss adaptado a este
tipo de sistema.
Cada una de las secciones ctibicas de 10s splines
pi(t) = CO(i,l) + CO(i,2)(xoti) + Co(i,3)(x-ti)2/2 + + CO(i, 4) (~-t,)~/6
(2.3.10)
por :
i = 1, ..., n-1
Axi i , 3 ) = - - ( 2 % + Si+1 - 3 -
A t
Axi (si + Si+l - 2 -1
* t i
ntras que en el caso de f, basta con sustituir en
Ndtese que el cglculo del spline (periddico o no) que
erpola datos de una curva requiere la solucidn de dos
temas de ecuaciones lineales con la misma matriz y
stintos tgrminos independientes. Esta clase de
oblema se presenta ademss cuando uno dispone de m juegos
datos, todos con las mismas abcisas: x i y , , ) , i = 1 , . . . , n . Entonces la
truccidn de 10s m splines de interpolacidn exige
olver m sistemas lineales cuyas matrices coinciden.
En este caso, se logra una mayor eficiencia realizando
sdla vez la descomposicidn LU de la matriz y resolviendo
pugs 10s dos sistemas lineales que se derivan de la
ma, para cada lado derecho (Vea [For], [Spa] ) . Acerca del spline periddico de interpolacidn el lector
de consultar 10s libros [Spa], [Ahl] y [Pre]. En
ticular H. Spath presenta la deduccidn completa del
ine periddico, per0 utilizando como incdgnitas las
undas derivadas del spline en 10s puntos de
Este mismo tipo de deduccidn se puede
el resto de las condiciones de frontera
estudiamos en la seccidn anterior. Por Gltimo, 10s
ros [Bool] y [Shu] tambign tratan el tema de 10s splines
iddicos, per0 usando la llamada base de B-splines, para
105
represen
const ruy
continuacidn ofrecemos un &jemplo de c
el spline cGbico periddico que interpola
:dm0
var
puntos de una curva cerrada. d -
E jemplo
Los datos de la tabla 2.4 representan 10s valores de la 4 lemnisca . p = J2 cos 2 0 101 5 n/4 para diferentes dn
. Vamos a construir el spline ctibico periddico y paramgtrico
que interpola estos datos.
Fig. 2.8 Spline cabico peri6dlco
Los datos aparecen organlzados en el sentido de recorrldo
de la curva.
Ndtese que como la lemniscata tiene dos lazos es muY
30 45
210
180 150 135 330
0
~- 1 .B
43 0 $+">$ 4
1 *7@ ..,q *221 z*
1 0
1 s?pd
d-2 >*<
.; Tabla 2.4 Puntos de la lemniscata. $
Tabla 2.7 Puntos por donde debe pasar el spline f 2.
Para calcular las pendientes del "spline f, usamos las
expresiones (2.3.5) y (2.3.9) que nos permiten construir 10s
elementos de la matriz y el lado derecho del sistema
(2.3.8), obtenigndose:
Utilizando el programa TRIDCSIS que presentamos en el
anexo se puede verificar que la soluci6n de este sistema
(aproximando a 3 cifras decimales) es:
Las inclinaciones del spline f, que interpola las
ordenadas se obtienen resolviendo un sistema con la misma
matriz que (2.3.12), pero donde el lado derecho se sustituye
por el vector.
W g: R Mediante TRIDCSIS se obtuvo tambign la solucidn de este
ktema que es: 'f .-
[ti,ti+, I CO(i, 1) CO(i,2) CO(i,3) CO(i,4)
[O, 0.741 1.414 0 -3.245 5.036 [0.74,1.74] 0.866 -1.022 0.468 -0.468 [1.74, 2.741 0 -0.788 0 -0.468 [2.74, 3.481 -0.866 -1.022 -0.482 5.036 [3.48, 4.221 -1.414 0 3.245 -5.036 [4.22, 5.221 -0.866 1.022 -0.468 0.468 [5.22, 6.221 0 0.788 0.001 0.468 [6.22, 6.961 0.866 1.022 0.482 -5.036
i
Las tablas 2 . 8 y 2 . 9 muestran la matriz CO de 10s
qficientes de fl y f2 respectivamente. Por medio de estas c blas se puede reconstruir la expresidn de 10s polinomios p
constituyen cada spline.
Tabla 2.8 Coeficientes de la representaci6n por tramos del
spline f,.
Tabla 2.9 Coeficientes de la representaci6n por tramos del
spline f2.
Para construir un grgfico del spline de int
podemos tomar, por ejemplo, 1 0 0 puntos equidisi
intervalo [t,, t,] = [ 0 , 6 . 9 6 ] :
Entonces si t* estg en el interval0 j
evaluamos 10s splines f , y f, en este punto,
calculamos
x* j = fly) = P i , , ( t * ) J
donde P i , , y Pi, , es el iesimo polinomio que const
y f, respectivamente . De esta forma obtenemos 100 puntos (x*, y;)
j
100 que pertenecen a la curva que representa
.erpolaci6n
cantes del
[ t i , t i + , ]
es decir
ituye a f,
j = 1, ..., el spline
peri6dico y paramgtrico (vea la fig. 2.8).
Fig. 2 . 9 Spl ine cdbico p e r i d d i c o
Los dotos oporecen orqonizodos en el sentido de
recorrido de lo curvo.
Diga si existen a , b, c y d tales que la funci6n
[-x + 2 -2 5 x '- -1
% c un spline ctibico natural.
:Determine 10s valores que deben tomar 10s parsmetros a,b,
$ d para que la funcidn:
a el spline ctibico cornpleto que interpola 10s datos
Calcule 10s coeficientes a, b, c y d que garantizan que
funcidn
$a el spline ctibico que en x = 1 vale 2.
- 0
4 . Construya explicitamente el spline cfibico natural que
interpola una tabla que s6io posee dos elementos:
* 5. Construya un spline cfibico paramgtrico y per6dico que
interpole:
a> 4 puntos equidistribuidos sobre un circulo de radio 2
con centro ( 0 , O ) .
b) 6 puntos sobre una elipse con centro en ( 0 , O ) y semiejes
de longitud 2 y 3.
Para resolver este problema utilice el programa SPLCUB del
anexo 2. a partir del f ichero de resultados que se obtiene
de cada corrida de1 mismo, reconstruya la expresi6n
analitica de 10s polinomios, que constituyen cada spline.
6. Construya el interpolante cfibico de Hermite para 10s
datos de la siguiente tabla.
6 dy/dx -28 -2 0 2
a> Utilice el programa SPLCUB de1 anexo 2 par
reconstruir, a partir del fichero de resultados, 1
expresi6n analitica de 10s 3 polinomios cfibicos qu
conforman el interpolante.
) Calcule la matriz CO de 10s coeficientes del spline
fibico y reconstruya, a partir de la misma, la expresi6n
nalitica de cada uno de 10s 4 polinomios que constituyen el
pline.
- .)
~valfie el interpolante en 10 puntps equidistantes del
rvalo [ - 2 , 11 y compare 10s resultados obtenidos con 10s
res en 10s mismos puntos de la funci6m x2(x2 - 1 ) .
fico del interpolante de Hermite y comp6relo
e la funci6n x2(x2 - 1 ) . i
Sea f ( x ) un spline cfibico con puntos de ruptura
x,. Suponga que f ( x ) se reduce a una recta [x , , x,] y en [x,, x,] . ~QU& puede decirse entonces de f
Construya un spline sfibico con nodos -1, 0 , 1 y 2 que sea
drdtico en [ - 1 , 0 ] y [ 1 , 2 ] y cfibico en [ 0 , 1 ] .
struya usando una calculadora el spline cfibico natural
e interpola 10s datos de la siguiente tabla.
0 .89
0.7918
x 0 . 1 5
y 0 .1680
Escriba la matriz y el lado derecho del sistema ( 2 . 2 . 9 )
e nos permite calcular las pendientes s , , s,, s, y s, del
line en 10s puntos de interpolaci6n.
) Resuelva el sistema de ecuaciones lineales utilizando el
rograma TRIDSIS que aparece en el anexo 1.
0 . 2 7
0.2974
0 .76
0.7175
10. Construya el ' spline cfibico completo que interpola a la
funci6n f ( x ) = c o s ( l O x ) en -2, -1, -0.5, 0,0.5, l y 2 .
Haga un grdfico de f y del spline y comp6relos. -*(
\ 11. Ademas de la deducci6n que presentamos en la secci6n
2 . 2 , un spline cfibico f se puede calcular expresando cada
polinomio cfibico pi en tgrminos de sus valores en xi y y de sus segundas derivadas mi y mi+, en e,sos puntos. En
este caso, las incdgnitas m,, . . . ,m, se determinan exigiendo
que I
P ; _ , ( X , ) = pix,) i = 2,. . . ,n-1
a) Exprese cada polinomio cfibico Pi (x ) en tgrminos de 11 11
Pi ( x i ) Pi (xi+l) , mi = Pi(x i ) Y m i + l = Pi (x i+ l ) . 11
Sugerencia: escriba Pi ( x ) en tgrminos de mi y mi+, e
integre dos veces.
b) Obtenga el sistema de ecuaciones lineales (para las
incdgnitas mi . i = 2,. . . - 1 que resulta de exigir la
condici6n de continuidad de f I , P ~ ( X ) = Pi ( x i ) i =
- 1 2 . Supongamos que se dispone de 10s valores g ( x i ) i - l , , n de una funcidn g cuya expresi6n analitica se
desconoce. Construya un interpolante cfibico por tramos para
10s datos x i g ( x i ) ) i = 1,. . . ,n .
a) Calcule la pendiente s, del interpolante en xi como la pendiente de la pardbola que interpola a g en 10s puntos
Xi-1, Xi Y X i + l .
. 0
Verifique que si s61o depende de l a s t r e
t i p o de funci6n cGbica por tramos se
rpolante de Bessel y l a propiedad b) nos
o t i ene un carsc ter local , o sea que su
t o depende exclusivamd- e de 10s puntos de i r
canos a e s t e . "t
s parejas
conoce c
dice que
valor en
nterpolaci
omo
e l
un
6n