Interpolación seccional: SPLINES Laboratori de Càlcul Numèric (LaCàN) Departament de Matemàtica Aplicada III Universitat Politècnica de Catalunya (Spain) http://www-lacan.upc.es Motivación: problemas en aproximación funcional 1. Interpolación polinómica pura oscilaciones para número elevado de datos Splines · 2 Motivación: problemas en aproximación funcional 2. Mínimos cuadrados La aproximación no pasa por los puntos Splines · 3 Motivación: problemas en aproximación funcional 3. Modificaciones locales afectan globalmente Splines · 4 Solución Cambiar el tipo de aproximación Cualidades deseables de la aproximación (dibujo, resolución EDPs…): 1. Control sobre la suavidad del aproximante 2. Posibilidad de interpolar 3. Desarrollo en función de una base 4. Interpolante local Aproximación polinómica a trozos (spline) Splines · 5 Definición SPLINE: función definida a trozos, generalmente polinómica en cada tramo Splines · 6 Algunos tipos de Spline Spline lineal C0 Spline parabólico C1 Spline cúbico C1 Spline cúbico C2 El tipo de Spline viene dado por el grado de polinomio en cada intervalo y la regularidad en los puntos/nodos interiores Spline natural Interpolación de Hermite Splines · 7 1. SPLINE LINEAL C0 Función polinómica lineal a trozos Continua (en los puntos base xi) ¿La aproximación se puede expresar en función de una base? Splines · 8 BASE LOCAL Splines · 9 Base del espacio de splines lineales C0 • Depende de los puntos base {x0, x1,...,xn} • De todas las bases posibles escogemos la que permite variar con facilidad los valores fi Con la base que cumple el interpolante (spline) se escribe Observación: el espacio de Splines lineales C0 es un espacio vectorial de dimensión n+1 (número de puntos base) Splines · 10 2. SPLINE C1 PARABOLICO En cada intervalo: • Número de coeficientes 3n • Número de condiciones: continuidad del spline y de la primera derivada en los n-1 puntos interiores 2(n-1) • Diferencia: 3n – 2(n-1) = n+2 parámetros libres, dimensión del espacio Podemos imponer el valor de la función en n+1 puntos base y una condición adicional Splines · 12 Ejemplo Spline C1 parabólico (recurrente) Fijando el valor de la derivada en el punto inicial, S (0)=0, y los n+1 valores de la función (2)=1 SS(2)=1 (x)=x SS11(x)=x SS22(x)=1.5x +7x-6 (x)=1.5x22+7x-6 SS(3)=-2 (3)=-2 S (1)=1 S (1)=1 (0) S S(0)=0 22+1)/2 S (x)=(x S (x)=(x +1)/2 0 0 =0 S3(x)=1.5x2-11x+21 Splines · 13 La base de splines parabolicos C1 es no local S’(x0) = β, 2β, -β S(x0) = α, 2α, -α Elección de s’0: • Dejar s’0 libre y modificar interactivamente • Interpolar polinomio con N+1 puntos en el entorno de x0: s’0 = pendiente del polinomio en x0, • Tomar s’1 = (f2 – f0)/(x2 – x0) (diferencia centrada) e interpolar un subintervalo en sentido contrario poco utilizado Splines · 14 3. SPLINE C1 CÚBICO Se conoce como interpolación de Hermite En cada intervalo: • Número de coeficientes: 4n • Número de condiciones: continuidad del spline y de la primera derivada en los n-1 puntos interiores 2(n-1) • Diferencia: 4n – 2(n-1) = 2(n+1) parámetros libres, dimensión del espacio Podemos imponer el valor de la función y su derivada en los n+1 puntos base. Splines · 15 SPLINE C1 CÚBICO En cada subintervalo, dados los 2 valores de la función y los 2 valores de la derivada hay una único polinomio de grado 3 que cumple las 4 condiciones s fi i s i+1 fi+1 xi xi+1 Splines · 16 Aproximación de las derivadas Si las derivadas s i no son conocidas, se pueden aproximar a partir de los valores de la función fi-1 fi fi+1 xi-1 xi xi+1 Base del espacio de splines C2 cúbicos El interpolante (spline cúbico) se escribe como si y son las funciones de la base de splines (definidas en todo [x0,xn]) que verifican Splines · 18 BASE LOCAL Splines · 19 BASE LOCAL Splines · 20 Spline C1 parabólico (no local) S’(x0) = β, 2β, -β Ejemplo S(x0) = α, 2α, -α Spline C1 cúbico (local) S’(x0) = β, 2β, -β S(x0) = α, 2α, -α Splines· 21 4. SPLINE C2 CÚBICO En cada intervalo: • Número de coeficientes: 4n • Número de condiciones: continuidad del spline y de la primera y segunda derivada en los n-1 puntos interiores 3(n-1) • Diferencia: 4n – 3(n-1) = (n+1) + 2 parámetros libres, dimensión del espacio Podemos imponer el valor de la función en los n+1 puntos base y dos condiciones adicionales Splines · 22 Condiciones adicionales Curvaturas prescritas en los extremos: s’’0 y s’’n dadas Formulación en curvaturas Caso particular: s’’0=s’’n=0 (spline natural) Pendientes prescritas en los extremos: s’0 y s’n dadas Formulación en pendientes (derivadas) Imposición de una pendiente y una curvatura. Spline periódico: Si se verifica f0=fn puede ser interesante exigir s’0=s’n y s’’0=s’’n Interpolación cuadrática en los dos subintervalos extremos: s’’0=s’’1 y s’’n-1=s’’n Interpolación con la misma cúbica en los dos primeros subintervalos y en los dos últimos subintervalos Splines · 23 Formulación en derivadas Spline cúbico (de momento con continuidad C1) Sólo podemos imponer el valor de S(xi)=fi y dos condiciones adicionales Las pendientes s’i no son datos, son parámetros a determinar imponiendo continuidad de S’’(x) y las dos condiciones adicionales. detalles Splines · 24 Formulación en curvaturas Se expresa el spline en función de fi y de las segundas derivadas en los puntos base si’’ Las curvaturas s’’i no son datos, son parámetros a determinar imponiendo continuidad de S’(x) y las dos condiciones adicionales. detalles Splines · 25 SPLINE NATURAL El Spline natural es el spline C2 cúbico con s’’0=s’’n=0 Teorema De todas las funciones C2 que pasan por {xi,fi}i=0,...,n, la más suave es el spline natural. La suavidad de una función se mide con el funcional Es decir, el spline natural minimiza el funcional I en C2. Splines · 26 Demostración Sea h∈C 2 cualquiera y S(x) el spline natural. La diferencia del funcional I es donde Splines · 27 Por lo tanto, siendo S(x) el spline natural (s’’0=s’’n=0) Splines · 28 Observación De la ecuación también se deduce que el spline cúbico C2 es la función C2 más suave para pendientes fijadas en los extremos (h’0= s’0, h’n= s’n) Splines · 29 Base de splines naturales donde Base no local, pero con amortiguamiento muy rápido Splines · 30 Ejemplo Spline C1 parabólico (no local) Spline C1 cúbico (local) S(x0) = α, 2α, -α S(x0) = α, 2α, -α Spline C2 cúbico (no local, amortiguamiento rápido) S(x0) = α, 2α, -α Splines · 31 Ejemplo: paradoja de Runge n=4 n=8 Splines · 32 THE END Splines· 35 Formulación en derivadas Spline cúbico (de momento con continuidad C1) Sólo podemos imponer el valor de S(xi)=fi y dos condiciones adicionales Las pendientes s’i no son datos, son parámetros a determinar imponiendo continuidad de S’’(x) y las dos condiciones adicionales Splines · 36 Segundas derivadas del spline: Splines · 37 Imponiendo continuidad de la segunda derivada: = Splines · 38 Sistema de ecuaciones sistema (n-1)x(n+1) donde Hay que añadir las dos condiciones adicionales Splines · 39 Pendientes prescritas en los extremos: s’0 y s’n dadas (matriz n-1 × n-1, tridiagonal, no simétrica y estrictamente diagonalmente dominante) Splines · 40 Formulación en curvaturas Se expresa el spline en función de fi y de las segundas derivadas en los puntos base si’’ Cúbica en cada subintervalo [xi, xi+1] Segunda derivada: Imponemos valores S(xi)=fi y S’’(xi)=si’’: Splines · 41 Spline cúbico C2 (formulación en curvaturas) Sólo podemos imponer el valor de fi y dos condiciones adicionales Las curvaturas s’’i no son datos, son parámetros a determinar imponiendo continuidad de S’(x) y las dos condiciones adicionales Splines · 42 Primeras derivada del spline: Splines · 43 Imponiendo continuidad de la primera derivada: = Splines · 44 Sistema de ecuaciones sistema (n-1)x(n+1) donde Hay que añadir las dos condiciones adicionales Splines · 45 Curvaturas prescritas en los extremos: s’’0 y s’’n dadas matriz n-1 × n-1, tridiagonal, no simétrica y estrictamente diagonalmente dominante Splines · 46 Condiciones adicionales: s 0 ys n Formulación en curvaturas (análogamente se puede hacer para la formulación en derivadas) con sistema (n-1)x(n+1) Splines · 47 Imponemos la derivada s’0 El sistema resultante es Splines · 48