Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CLASE 3interpolación Por Splines 24 de Mayo de 2023
CLASE 3interpolación Por Splines 24 de Mayo de 2023
( x 0 , y 0 ) , ( x 1 , y 1 ) , ( x 2 , y 2 ) , , , ,, , , , , ( x N , y N )
N puntos
Entre cada pareja de puntos vamos a interpolar utilizando una función cúbica
y= y 0 f 0 ( x ) + y 1 f 1 ( x ) + y 0 ' g0 ( x )+ y1 ' g1 ( x )
Para la ecuación
y= y 0 f 0 ( x ) + y 1 f 1 ( x ) + y 0 ' g0 ( x )+ y1 ' g1 ( x )
Se tendría que
2 3
f 0 ( x )=1−3 x +2 x
2 3
f 1 ( x )=3 x −2 x
2 3
g0 ( x )=x−2 x + x
2 3
g1 ( x ) =−x + x
y= y 0 f 0 ( x ) + y 1 f 1 ( x ) + y 0 ' g0 ( x )+ y1 ' g1 ( x )
Pero si se puede hacer la adaptación en el caso en que los datos no estén distribuidos de esta
forma.
Se tiene continuidad en los valores de “y” y en los valores “ y’ “ en los puntos donde coinciden los
splines
Lo que se buscaría para determinar los valores de las pendientes en el spline es que también se
tenga continuidad en los valores de “ y’’ “.
f 1 ( x )=3 x 2−2 x3
g0 ( x )=x−2 x2 + x 3
2 3
g1 ( x ) =−x + x
Sus derivadas serian:
2
f 0 ' ( x )=−6 x+6 x
2
f 1 ' ( x )=6 x−6 x
2
g0 ' ( x )=1−4 x+ 3 x
2
g1 ' ( x ) =−2 x +3 x
f 0 ' '=6
f 1 ' '=−6
g0 ' '=2
g1 ' '=4
En el caso en que el tramo esta entre 1 y 2, aquí lo que se tiene es que el origen esta desplazado, si
queremos poner estas ecuaciones en el mismo origen del sistema de coordenadas se tendría que:
f 0 ' '=−6
f 1 ' ' =6
g1 ' '=−2
Lo que se tiene una ecuación que involucra las incógnitas que en este caso son las pendientes.
Consecutivamente
Se requieren otras dos ecuaciones. Dar un valor para la pendiente en los extremos.
'
y 0=a
'
y N =b
[ ( )][ ] [ ]
y0 ' a
1 0 0 0 0 0
⋯ y1 ' 3 ( y 2− y 0 )
1 4 1 0 0 0
0 1 4 0 0 0 y2 ' 3 ( y 3− y 1 )
⋮ ⋱ ⋮ ⋮ = ⋮
0 0 0 4 1 0 y N −2 ' 3 ( y N−1− y N−3 )
0 0 0 ⋯ 1 4 1 y N −1 ' 3 ( y N − y N −2 )
0 0 0 0 0 1 yN' b
Para esta clase de problemas se tendría una matriz tridiagonal (los elementos diferentes de cero
están en la diagonal principal y en las dos adyacentes).
[( ) ] [( )]
b0 c0 0 0 0 0 1 p0 0 0 0 0
a1 b 1 c1 ⋯ 0 0 0 0 1 p1 ⋯ 0 0 0
0 a2 b2 0 0 0 0 0 1 0 0 0
⋮ ⋱ ⋮ → ⋮ ⋱ ⋮
0 0 0 b N−2 c N−2 0 0 0 0 1 p N−2 0
0 0 0 ⋯ a N−1 b N −1 c N −1 0 0 0 ⋯ 0 1 p N−1
0 0 0 0 aN bN 0 0 0 0 0 1
Pasar de matriz con valores en tres diagonales a una matriz con valores en dos diagonales.
[( ) ][ ] [ ]
b0 c0 0 0 0 0 y0 ' d0
a1 b 1 c1 ⋯ 0 0 0 y1 ' d1
0 a2 b2 0 0 0 y2 ' d2
⋮ ⋱ ⋮ ⋮ = ⋮
0 0 0 b N−2 c N−2 0 y N −2 ' d N −2
0 0 0 ⋯ a N−1 b N −1 c N −1 y N −1 ' d N −1
0 0 0 0 aN bN yN ' dN
Se convertiría en
[( )] [ ] [ ]
1 p0 0 0 0 0 y0' q0
0 1 p1 ⋯ 0 0 0 y1' q1
0 0 1 0 0 0 y2' q2
⋮ ⋱ ⋮ ⋮ = ⋮
0 0 0 1 p N−2 0 y N −2 ' q N −2
0 0 0 ⋯ 0 1 p N−1 y N −1 ' q N −1
0 0 0 0 0 1 yN' qN
Si lo tenemos de la forma de la segunda matriz, ya sería muy fácil encontrar las incógnitas.
[( ) ][ ] [ ]
b0 c0 0 0 0 0 y0 ' d0
a1 b 1 c1 ⋯ 0 0 0 y1 ' d1
0 a2 b2 0 0 0 y2 ' d2
⋮ ⋱ ⋮ ⋮ = ⋮
0 0 0 b N−2 c N−2 0 y N −2 ' d N −2
0 0 0 ⋯ a N−1 b N −1 c N −1 y N −1 ' d N −1
0 0 0 0 aN bN yN ' dN
'
y1 +
[ c1
b1−a0 p 0
'
y 2=
]
d 1−a0 q0
b1−a0 p 0
c1
p1=
b1−a0 p 0
d 1−a 0 q0
q 1=
b1−a 0 p0
'
y1 +
[ cn
bn−an p n−1
'
y 2=
]
d n −an q n−1
bn −an p n−1
cn
pn =
b n−a n pn−1
d n−an qn−1
q n=
bn−an p n−1
[( ) ] [( )]
b0 c0 0 0 0 0 1 p0 0 0 0 0
a1 b 1 c1 ⋯ 0 0 0 0 1 p1 ⋯ 0 0 0
0 a2 b2 0 0 0 0 0 1 0 0 0
⋮ ⋱ ⋮ → ⋮ ⋱ ⋮
0 0 0 b N−2 c N−2 0 0 0 0 1 p N−2 0
0 0 0 ⋯ a N−1 b N −1 c N −1 0 0 0 ⋯ 0 1 p N−1
0 0 0 0 aN bN 0 0 0 0 0 1
Pasar de matriz con valores en tres diagonales a una matriz con valores en dos diagonales.
Se convertiría en
[( )] [ ] [ ]
1 p0 0 0 0 0 y0' q0
0 1 p1 ⋯ 0 0 0 y1' q1
0 0 1 0 0 0 y2' q2
⋮ ⋱ ⋮ ⋮ = ⋮
0 0 0 1 p N−2 0 y N −2 ' q N −2
0 0 0 ⋯ 0 1 p N−1 y N −1 ' q N −1
0 0 0 0 0 1 yN' qN
Si lo tenemos de la forma de la segunda matriz, ya sería muy fácil encontrar las incógnitas.
Y asi sucesivamente
' '
y n=qn− p n y n +1
Tarea: programar este tipo de splines para un problema, (la elección del problema es a su
elección).
Interpolación con segmentos cúbicos paramétricos
x2,y2
x0,y0
x3,y3
x1,y1
3 2 2 3
x ( t )=( 1−t ) x 0+ 3t ( 1−t ) x 1+ 3t (1−t ) x 2+ t x 3
Así estarían definidos los valores de “x” y de “y” en función del parámetro “t”.
x ( 0 )=x 0
y ( 0 )= y 0
x ( 1 ) =x3
y ( 1 )= y 3
Si derivamos
dx ( t )
=−3 ( 1−t )2 x 0 +3 [ ( 1−t )2−2 t ( 1−t ) ] x1 +3 [ 2 t ( 1−t )−t 2 ] x 2 +3 t 2 x 3
dt
dy (t )
=−3 ( 1−t )2 y 0 +3 [ ( 1−t )2−2t ( 1−t ) ] y 1 +3 [ 2t ( 1−t )−t 2 ] y 2 +3 t 2 y 3
dt
Si tenemos que t=0
dx ( t )
=3 ( x 1−x 0 )
dt
La ecuación y es una ecuación similar por lo que se llega a
dy (t )
=3 ( y 1− y 0 )
dt
Entonces la derivada
dy ( t )
dy (t ) dt 3 ( y 1 − y 0 ) y 1− y 0
= = =
dx ( t ) dx ( t ) 3 ( x 1−x 0 ) x 1−x 0
dt
dx ( t )
=3 ( x 3−x 2 )
dt
La ecuación y es una ecuación similar por lo que se llega a
dy (t )
=3 ( y 3− y 2 )
dt
Entonces la derivada
dy ( t )
dy (t ) dt 3 ( y 3 − y 2 ) y 3− y 2
= = =
dx ( t ) dx ( t ) 3 ( x 3−x 2 ) x 3−x 2
dt
Integración numérica
y=∑ y n Ln ( x )
∏
i≠n
( x −xi )
Ln ( x ) =
∏ ( x n−x i )
i ≠n