Interpolación por Splines Función Spline • • • • Ajusta una curva suave a los puntos Sigue la idea de la spline flexible de un dibujante Consiste de polinomios definidos sobre subintervalos Los polinomios se unen entre sí satisfaciendo ciertas condiciones de continuidad Aplicación: spline natural Grados de una spline Supongamos (n 1) puntos (no necesariam ente igualmente espaciados) (x i , y i ) i 0,1,...n Deseamos ajustar un conjunto de polinomios de grado n g i (x) desde x i hasta x i 1 Spline lineal • Pendiente discontinua en los puntos Polinomios de más alto grado • F es chata (excepto entre -1 y 1) • Se requieren ceros fuera de [-1,1] • Así se crean las oscilaciones • SOLUCIÓN? Ajustar distintos polinomios Ajuste mixto • Se ajustó una cuadrática en [-0.65, 0.65] • P(x)=0 fuera de esa región • Discontinuidad en las pendientes donde se unen los polinomios Definición Una función spline de grado k con nodos t 0 t1 t 2 ... t n es una función S tal que a) en cada intervalo t i-1 , t i S es un polinomio de grado menor o igual que k b) S tiene (k - 1) derivadas continuas en t 0 , t n Splines cúbicas k 3 x t0 , t1 S 0 ( x) S ( x) 1 S ( x) S n 1 ( x) x t1 , t 2 x t n 1 , t n Si ( x) ai x bi x ci x d i 3 Incognitas 2 i 0, n 1 (coeficient es ) ? 4n Se necesitan 4n ecuaciones Balance de Ecuaciones • Condiciones de interpolación • Para los puntos interiores: 2(n-1) ecuaciones • Para los extremos: 2 ecuaciones • Condiciones de continuidad • 2(n-1) ecuaciones • Condiciones de extremo (terminales) • • • • Spline cúbica natural ó Spline enclavada ó Spline periódica 2 ecuaciones Condiciones de Interpolación a) para los puntos interiores Si 1 (ti ) yi Si (ti ) b) para los extremos S 0 (t0 ) y0 S n 1 (t n ) yn 1 i n 1 Condiciones de Continuidad Si1 (ti ) Si(ti ) Si1 (ti ) Si(ti ) 1 i n 1 1 i n 1 Condiciones de Extremo: Spline Cúbica Natural S 0(t0 ) 0 S n1 (t n ) 0 • Derivada segunda igual a cero en los extremos=> derivada primera constante • => función lineal en los extremos • La curva se “achata” cerca de los extremos Condiciones de Extremo: Spline Enclavada (clamped) S 0 (t0 ) y0 S n 1 (t n ) yn Aplicación: splines enclavadas Condiciones de Extremo: Spline Periódica y0 y n S 0 (t0 ) S n 1 (t n ) S 0(t0 ) S n1 (t n ) Ventaja: evita el fenómeno de Runge Algoritmo de splines cúbicas Ecuaciones Dados ( xi , yi ) ( xi 1 , yi 1 ) se tiene la ecuación : g i ( x) ai ( x xi )3 bi ( x xi ) 2 ci ( x xi ) d i Se desea una spline de la forma : g ( x) g i ( x) para [ xi , xi 1 ] i 0,1,...n 1 (1) Condiciones g i ( xi ) yi i 0,1,..., n 1 (a) g n 1 ( xn ) yn 1 g i ( xi 1 ) g i 1 ( xi 1 ) g i( xi 1 ) g i1 ( xi 1 ) i 0,1,..., n 2 (b) g i( xi 1 ) g i1 ( xi 1 ) i 0,1,..., n 2 (d ) i 0,1,..., n 2 (c) Solución de (a) d i yi de (b) i 0,1,..., n 1 (a ) yi 1 ai ( xi 1 xi ) 3 bi ( xi 1 xi ) 2 ci ( xi 1 xi ) yi ai hi bi hi ci hi yi 3 2 i 0,1,..., n 1 hi xi 1 xi derivando : g i( x) 3ai hi2 2bi hi ci g i( x) 6ai hi 2bi i 0,1,..., n 1 (e) Simplificación del desarrollo zi g i( xi ) zn g n1 ( xn ) i 0,1,..., n 1 Coeficientes de (e) zi 2bi zi 1 6ai hi 2bi Entonces zi bi 2 zi 1 zi ai 6hi (f) (g) Sustituyendo … bi de ( f ) ai de ( g ) d i de (a) en (1) y resolvemos para ci : zi 1 zi 3 zi 2 hi hi ci hi yi yi 1 2 6hi yi 1 yi 2hi zi hi zi 1 ci hi 6 Invocando iguales pendientes … de (c) (igualdad de derivadas primeras en x xi ) 2 yi 3ai ( xi xi ) 2bi ( xi xi ) ci ci en el intervalo anterior : yi 3ai 1 ( xi xi 1 ) 2 2bi 1 ( xi xi 1 ) ci 1 yi 3ai 1hi 1 2bi 1hi 1 ci 1 igualando las yi y reemplazando los coeficient es : 2 Ecuación general yi yi 1 yi 2hi zi hi zi 1 hi 6 zi zi 1 2 zi 1 yi yi 1 2hi 1 zi 1 hi 1 zi 3 hi 1 2 hi 1 2 hi 1 6 6hi 1 Ordenando : yi 1 yi yi yi 1 h i-1 zi 1 2hi 1 2hi zi hi zi 1 6 hi 1 hi h i-1 zi 1 2hi 1 2hi zi hi zi 1 6 f [ xi , xi 1 ] f [ xi 1 , xi ] En forma matricial: h0 0 0 0 z0 2(h0 h1 ) h1 z1 h1 2(h1 h2 ) h2 z2 0 h2 2(h2 h3 ) h3 z3 hn 2 2(hn 2 hn 1 ) hn 1 z n 1 zn f [ x1 , x2 ] f [ x0 , x1 ] f [x , x ] f [x , x ] 2 3 1 2 6 f [ x3 , x4 ] f [ x2 , x3 ] f [ xn 1 , xn ] f [ xn 2 , xn 1 ] n 1 ecuaciones n 1 incógnitas Condiciones para Extremos 1. Spline natural z0 0 zn 0 2. Spline enclavada f ( x0 ) A f ( xn ) B a la izquierda : 2h0 z0 h1 z1 6( f [ x0 , x1 ] A) a la derecha : hn 1 z n 1 2hn z n 6( B f [ xn 1 , xn ]) La matriz de coeficientes queda así: Condición 1 (natural) : z0 z n 0 h1 2( h0 h1 ) h1 2( h1 h2 ) h2 h2 2( h2 h3 ) h3 2( hn 2 hn 1 ) Condición 2 (clamped) : f ( x0 ) A f ( xn ) B 2h0 h 0 h1 2( h0 h1 ) h1 h1 2( h1 h2 ) h2 hn 2 2hn 1 Condiciones para extremos 3. Parábolas en los extremos z0 z1 zn 1 zn 4. Extrapolaciones lineales z0 es extrapolación lineal de z1 y z2 a la izquierda : z1 z0 z 2 z1 h0 h1 z0 (h0 h1 ) z1 h0 z 2 h1 (4.1) zn es extrapolación lineal de z n 1 y zn -2 zn zn 1 zn 1 z n 2 a la derecha : hn 1 hn 2 (hn 2 hn 1 ) z n 1 hn 1 zn 2 zn hn 2 (4.2) La matriz de coeficientes queda así: Condición 3 : z0 z1 z n z n 1 h1 (3h0 2h1 ) h 2 ( h h ) h 1 1 2 2 h2 2(h2 h3 ) h3 hn 2 (2hn 2 3hn 1 ) Condición 4 : z0 y z n son extrapolaciones lineales usar (4.1) z0 g(z1,z 2 ) y (4.2) z n g(zn-1,z n-2 ) (h0 h1 )(h0 2h1 ) h1 h1 h12 h02 h1 2(h1 h2 ) h2 h2 2(h2 h3 ) h3 hn2 2 hn21 hn 2 (hn 1 hn 2 )(hn 1 2hn 2 ) hn 2 Observaciones • Después de obtener los z, se pueden calcular los coeficientes a, b, c para cada cúbica • Matrices simétricas • Datos igualmente espaciados, las matrices se reducen a formas simples Lectura obligatoria • Gerald C.F., Wheatley P.O. Applied Numerical Analysis, Addison Wesley, 7a Ed., 2004 - págs 168-179