4.. Spline Cúbico clase 1 Una función como la de (4.9) se dice que es un spline cúbico clase 1 si cada s i = s i (x) es un polinomio de grado y la función es continua y derivable en todo el intervalo; es decir, para i =1,,,n 1 s i (x i ) = s i +1 (x i ). s i (x i ) = s i +1 (x i ) Al conjunto de funciones de este tipo lo notamos por: Proposición 4. El conjunto S(,1; { x 0,x 1,,x n }) satisface las propiedades siguientes: S(,1; { x 0,x 1,,x n }) ( ( { })) = (n +1); 1 Es un espacio vectorial con dim S,1; x 0,x 1,,x n Una base de tal espacio es: 1,x,x,x { ; ( x x 1 ) +, ( x x1 ) +,, ( x xn 1 ) +, ( x xn 1 ) + } La propiedad nos permite escribir una función spline cúbico clase 1, en forma global, como: n 1 ( ) + + β i ( x x i ) + i =1[ ] s(x) = a + bx + cx + dx + α i x x i (4.1) Interpolación con spline cúbicos clase 1. Como la dimensión del espacio es (n+1), tomaremos en cada nodo de interpolación dos datos; es decir, valor ( y i ) y derivada ( d i ). Así, el problema es: Hallar s(x) S(,1; { x 0,x 1,,x n }) verificando: s(x i ) = y i i = 0,1,,n s (x i ) = d i i = 0,1,,n (4.14) El problema (4.14) admite una única solución que puede obtenerse trozo a trozo ( s i (x)) como sigue: s i (x i 1 ) = y i 1 s i (x i ) = y i s i (x i 1 ) = d i 1 s i (x i ) = d i 15
Este problema se resuelve como en el caso del interpolante cúbico de Hermite sin más que intercambiar los papeles de x 0, x 1 por los de x i 1, x i (es decir, 0 i 1 y 1 i). Calculados los trozos se escribe la solución en la forma: s 1 x 0 x < x 1 s x 1 x < x s(x) = s n x n 1 x x n con s i = y i 1 + d i 1 (x x i 1 ) + P i d i 1 (x x h i 1 ) + d i 1 + d i P i (x x i 1 ) (x x i ) i h i Aquí, P 1, P,,P n son las diferencias divididas de orden 1 (o pendientes) para los datos iniciales y d 0, d 1, d,,d n son derivadas o aproximaciones de derivadas en los nodos x i ( h i = x i x i 1 i=1,,,n). En la práctica habitual no se conocen las derivadas pues los datos suelen ser de tipo experimental, en cuyo caso, se utilizan valores que representen aproximaciones de ellas (razones de cambio de una magnitud respecto de la otra). Una forma común es la siguiente: Conocidos los datos {(x i,y i ) i = 0,1,,n}, se toman los valores siguientes para las derivadas (desde las D.D.1 o pendientes): d 0 = P 1 d i = h i P i+1 + h i+1 P i h i + h i+1 = si h i =h i P i+1 + P i para i =1,,,n -1 d n = P n También puede utilizarse la base del espacio de spline cúbicos clase 1 para resolver el problema (4.14). 16
Ejemplo 4.6 Calcular el spline cúbico clase 1 para los datos (con derivadas conocidas) siguientes: Solución Método Global (uso de una base) x i 1 0 1 y i 1 5 7 d i 0 1 0 { } El espacio que usamos es: S(,1; { 1,0,1 }) cuya base es: 1,x,x,x ; x +,x+ Para dar una expresión global hemos de escribir el spline como: s(x) = a + bx + cx + dx +αx + + βx+ Imponemos las condiciones de interpolación en todos los nodos resultando el sistema: s( 1) =1 a b + c d =1 s(0) = 5 a = 5 s(1) = 7 a + b + c + d +α + β = 7 s ( 1) = 0 b c + d = 0 s (0) =1 b =1 s (1) = 0 b + c + d + α + β = 0 cuya solución es: a = 5, b =1, c = -10, d = -7, α =14, β = 4. Por lo tanto la solución se escribe como: s(x) = 5 + x -10x - 7x +14x + + 4x+ Método Local (trozo a trozo) La construcción a trozos es la que sigue (usando la tabla de D.D. con argumentos repetidos): x i y i D.D.1 D.D. D.D. -1 1 - - -1 1 0-0 5 4 4-0 5 1 - -7 x i y i D.D.1 D.D. D.D. 0 5 - - 0 5 1-1 7 1-1 7 0 - - Tabla D.D. para s 1 (x) Tabla D.D. para s (x) 17
Desde aquí se deduce la expresión, a trozos, del spline interpolante siguiente: s(x) = s 1 =1 + 4(x +1) 7(x +1) x 1 x 0 s = 5 + x + x x (x 1) 0 x 1 Cuando no se dispone de las derivadas, éstas se han de obtener antes de calcular las D.D. asociadas a cada trozo. 4.. Spline Cúbico clase Una función como la de (4.9) se dice que es un spline cúbico 1 clase si cada s i = s i (x) es un polinomio de grado y la función es continua y derivable veces en todo el intervalo; es decir, para i =1,,,n 1 s i (x i ) = s i +1 (x i ) s i (x i ) = s i +1 (x i ). s i (x i ) = s i +1 (x i ) Al conjunto de funciones de este tipo lo notamos por: Proposición 4.4 ( ) satisface las propiedades siguientes: El conjunto S,; { x 0,x 1,,x n } 1. Es un espacio vectorial con dim S,; x 0,x 1,,x n S(,; { x 0,x 1,,x n }) ( ( { })) = n + ;. Una base de tal espacio es: 1,x,x,x ; x x 1 { ( ) +,, ( x xn 1 ) + } La propiedad nos permite escribir una función spline cúbico, en forma global, como: n 1 ( ) + s(x) = a + bx + cx + dx + α i x x i (4.15) i =1 Interpolación con spline cúbicos clase. Como la dimensión del espacio es n+, tendremos dos libertades en la resolución del problema de interpolar n+1 datos {(x i,y i ); i = 0,1,...,n}. 1 En la literatura especializada sobre spline, cuando se menciona "spline cúbico" se está hablando del spline cúbico clase. 18
Así, un problema clásico es: Hallar s(x) S(,; { x 0,x 1,,x n }) verificando: s(x i ) = y i i = 0,1,,n s (x 0 ) = 0 = s (x n ) (4.16) El problema (4.16) admite una única solución llamada: "SPLINE CÚBICO NATU- RAL". Esta solución puede obtenerse desde la construcción del Spline Cúbico clase 1. Para ello, hemos de generar las derivadas d 0, d 1, d,,d n usando, para ello, las condiciones necesarias para que tal spline sea dos veces derivable y cumpla las dos condiciones agregadas ( s (x 0 ) = 0 = s (x n ) ) a las de interpolación básica ( s(x i ) = y i i ). Más concretamente, el SPLINE s 1 x 0 x < x 1 s x 1 x < x s(x) = s n x n 1 x x n con s i = y i 1 + d i 1 (x x i 1 ) + P i d i 1 (x x h i 1 ) + d i 1 + d i P i (x x i 1 ) (x x i ) i h i será solución de (4.16) si las derivadas d 0, d 1, d,,d n son la única solución del S.E.L. de orden ( n +1) ( n +1) siguiente (forma matricial): 1 0 0 h (h 1 + h ) h 1 0 0 h n (h n 1 + h n ) h n 1 0 0 1 d 0 d 1 d n 1 d n P 1 ( h P 1 + h 1 P ) = ( h n P n 1 + h n 1 P n ) P n (4.17) Aquí, de nuevo, P 1, P,,P n son las diferencias divididas de orden 1 (o pendientes) para los datos iniciales {(x i,y i ) i = 0,1,,n} La unicidad de la solución es debida a la propiedad que la matriz de coeficientes satisface; a saber: Es una matriz E.D.D. (estrictamente diagonal dominante) y por lo tanto tiene inversa. 19
También puede usarse la base del espacio de spline cúbicos para resolver el problema (4.16). Ejemplo 4.7 Calcular el SPLINE NATURAL para los datos siguientes: Solución Método Global (uso de una base) x i 1 0 1 y i 1 5 7 { } El espacio que usamos es: S(,; { 1,0,1 }) cuya base es: 1,x,x,x ; x + Una expresión del spline es: s(x) = a + bx + cx + dx +αx + Imponemos las condiciones de interpolación básica y las condiciones adicionales sobre la derivada segunda en los extremos resultando el sistema: s( 1) =1 a b + c d =1 s(0) = 5 a = 5 s(1) = 7 a + b + c + d +α = 7 s ( 1) = 0 c 6d = 0 s (1) = 0 c + 6d + 6α = 0 cuya solución es: a = 5, b = c =, d = 1 α =1 Por lo tanto la solución se escribe como: s(x) = 5 + x - x - 1 x + x + Método Local (trozo a trozo) Para la construcción a trozos lo primero es calcular las derivadas necesarias resolviendo el sistema (4.17) que en este caso particular (aquí h i =1 i) es: 1 0 1 4 1 0 1 d 0 d 1 d 1 = 18 6 cuya solución es: d 0 = 9, d 1 =, d = Así, usando estas derivadas podemos proceder como en el Ejemplo 4.6 (las tablas de D.D. con nodos repetidos se verán afectadas por las nuevas derivadas): 0
x i y i D.D.1 D.D. D.D. -1 1 - - -1 1 9/ - 0 5 4-1/ - 0 5-1 -1/ Tabla 4 D.D. para s 1 (x) x i y i D.D.1 D.D. D.D. 0 5 - - 0 5-1 7-1 - 1 7 / -1/ 1/ Tabla 5 D.D. para s (x) Desde aquí se deduce la expresión, a trozos, del SPLINE NATURAL siguiente: s 1 =1 + 9 (x +1) 1 (x +1) 1 (x +1) x 1 x 0 s(x) = s = 5 + x x + 1 x (x 1) 0 x 1 1