Análisis Numérico para Ingeniería Clase Nro. 12
Aproximación de Funciones Temas a tratar: Interpolación por Splines Cúbicos. Aproximación por ínimos Cuadrados. Criterios de elección: Tipo de Aproximación Polinomio resultante Ventajas y desventajas de los métodos. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 2
Aproximación por Splines Cúbicos SPLINES Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 3
Interpolación por Splines Cúbicos Dada una función f definida en [a, b] y un conjunto de números, llamados nodos, a = x 0 < x 1 < x 2 < < x n = b, un polinomio interpolante cúbico spline S, para f, es una función que satisface las siguientes condiciones: a) S es un polinomio cúbico denotado S j en el subintervalo [x j, x j+1 ], para cada j=0, 1,..., n-1. b) S(x j ) = f(x j ), para cada j=0, 1,..., n. c) S j+1 (x j+1 ) = S j (x j+1 ), para cada j=0, 1,..., n-2. d) S' j+1 (x j+1 ) = S' j (x j+1 ), para cada j=0, 1,..., n-2. e) S'' j+1 (x j+1 ) = S'' j (x j+1 ), para cada j=0, 1,..., n-2. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 4
Interpolación por Splines Cúbicos Además dicha función debe satisfacer alguna de las siguientes condiciones de frontera: i. FRONTERA LIBRE S''(x 0 ) = S''(x n ) = 0 ii. FRONTERA SUJETA S'(x 0 ) = f '(x 0 ) y S'(x n ) = f '(x n ) Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 5
Polinomio de Spline Cúbico La forma general de un polinomio de Spline Cúbico es: S j x =a j b j x x j c j x x j 2 d j x x j 3 Aplicando la condición S(x j ) = f(x j ), es evidente que: S j x j = a j = f x j Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 6
Interpolación por Splines Cúbicos S j x j = f x j = a j S j+1 S j a j = f(x j ) x j x j+1 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 7
Polinomio de Spline Cúbico Luego, aplicando la condición S j (x j+1 ) = S j+1 (x j+1 ), se tiene que: a j+1 =S j (x j+1 )=S j+1 (x j+1 ) = = a j +b j (x j+1 x j )+c j (x j+1 x j ) 2 +d j (x j+1 x j ) 3 Como utilizaremos frecuentemente (x j+1 - x j ), adoptaremos la siguiente notación para simplificar: h j = x j 1 x j Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 8
Polinomio de Spline Cúbico h j = x j 1 x j S j+1 a j+1 S j h j x j x j+1 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 9
Polinomio de Spline Cúbico Siendo a n = f(x n ), entonces para j=0, 1, 2,, n-1: a j+1 =S j (x j+1 )=S j+1 (x j+1 ) = = a j +b j (x j+1 x j )+c j (x j+1 x j ) 2 +d j (x j+1 x j ) 3 Y reemplazando, nos queda de la siguiente forma: a j 1 =S j x j 1 =S j 1 x j 1 = = a j b j h j c j h j 2 d j h j 3 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 10
Polinomio de Spline Cúbico Derivando el polinomio de Splines, obtenemos: S ' j (x) =b j +2 c j (x x j )+3 d j (x x j ) 2 Lo cual implica : S ' j (x j ) =b j para j = 0, 1, 2,, n-1 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 11
Polinomio de Spline Cúbico S ' j x j 1 =S ' j 1 x j 1 a j+1 S j+1 S j h j x j x j+1 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 12
Polinomio de Spline Cúbico Luego, aplicando la condición S' j+1 (x j+1 ) = S' j (x j+1 ), se tiene que: b j 1 =S ' j x j 1 =S ' j 1 x j 1 = = b j 2 c j x j 1 x j 3 d j x j 1 x j 2 Es decir: b j+ 1 =S ' j (x j+ 1 )=S ' j+ 1 (x j+ 1 ) = = b j + 2 c j h j + 3 d j h j 2 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 13
Polinomio de Spline Cúbico Derivando nuevamente la expresión S' j (x), obtenemos: S ' ' j (x) =2 c j +6 d j (x x j ) Por lo tanto: c j = S ' ' j(x j ) 2 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 14
Polinomio de Spline Cúbico Por lo tanto, si: S j ' '(x j+1 ) =2 c j +6 d j (x j+1 x j ) Y como S'' j+1 (x j+1 ) = 2.c j+1 = S'' j (x j+1 ), nos queda: c j+ 1 =c j + 3 d j h j para j = 0, 1, 2,, n-1 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 15
Polinomio de Spline Cúbico Ahora despejando d j de la ecuación anterior, c j 1 =c j 3 d j h j Nos queda: d j = c j+ 1 c j 3 h j para j = 0, 1, 2,, n-1 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 16
Polinomio de Spline Cúbico Y reemplazando d j en a j+1 tenemos: a j 1 =S j x j 1 =S j 1 x j 1 = = a j b j h j c j h j 2 d j h j 3 Por lo tanto : a j 1 =a j b j h j 2 c 2 j c j 1 h j 3 para j = 0, 1, 2,, n-1 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 17
Polinomio de Spline Cúbico Y reemplazando d j en b j+1 tenemos: b j 1 =S ' j x j 1 =S ' j 1 x j 1 = = b j h j 2 c j h j 3 d j h j 2 Por lo tanto : b j 1 =b j h j c j c j 1 para j = 0, 1, 2,, n-1 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 18
Polinomio de Spline Cúbico Por último, a partir de la ecuación de a j+1 obtenemos : a j 1 =a j b j h j 2 c j c j 1 h j 2 3 Y despejando b j, obtenemos: b j = (a j+ 1 a j ) h j (2 c j+ c j+ 1 ) h j 3 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 19
Polinomio de Spline Cúbico Y a partir de la ecuación de b j anteriormente obtenida: b j = a j 1 a j h j 2 c j c j 1 h j 3 Si disminuimos en 1, el índice de b j, nos queda: b j 1 = a j a j 1 h j 1 2 c j 1 c j h j 1 3 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 20
Polinomio de Spline Cúbico Realizamos la misma disminución en la siguiente expresión: b j 1 =b j h j c j c j 1 Con lo que obtenemos: b j =b j 1 h j 1 c j 1 c j Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 21
Polinomio de Spline Cúbico Y reemplazando en : b j 1 = a j a j 1 h j 1 2 c j 1 c j h j 1 3 Arribamos al siguiente sistema de ecuaciones lineales: h j 1 c j 1 +2 (h j 1 +h j ) c j +h j c j+1 = 3 (a j+1 a j ) h j 3 (a j a j 1 ) h j 1 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 22
Polinomio de Spline Cúbico El sistema planteado posee n ecuaciones y n+1 incógnitas, por lo tanto, es preciso utilizar las condiciones de frontera. Por ejemplo, para el caso de frontera libre o SPLINE CÚBICO NATURAL, tenemos : S ' ' x 0 = S ' ' x n = 0 c n = S ' ' x n 2 = 0 porque S ' ' x n =0 S ' ' x 0 = 2 c 0 6 x 0 x 0 = 0 por lo tanto c 0 =0 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 23
[ Coeficientes de Spline Cúbico De esta forma, queda conformada una matriz tri-diagonal : A = 1 0 0 0 0 h 0 2 h 0 h 1 h 1 0 0 0 h 1 2 h 1 h 2 h 2 0 0 0 h n 2 2 h n 2 h n 1 h n 1 0 0 0 0 1 ] Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 24
Coeficientes de Spline Cúbico Y su correspondiente vector de términos independientes : b = [ 0 3 a 2 a 1 3 a a 1 0 h 1 h 0 ] 3 a n a n 1 3 a n 1 a n 2 h n 1 h 0 0 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 25
Procedimiento de Cálculo 1.Los valores de a j y h j se obtienen a partir de los datos y con ellos se arma el sistema. 2.Resolviendo el sistema tri-diagonal planteado, se obtienen los valores de c j. 3.Con los valores de a j y c j se calculan los valores de b j. 4.Con los valores de c j y h j se calculan los valores de d j. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 26
Subrutina DGTSV SUBROUTINE DGTSV( N, NRHS, DL, D, DU, B, LDB, INFO ) * * *.. Argumentos Escalares.. INTEGER INFO, LDB, N, NRHS *.. *.. Argumentos atriciales.. DOUBLE PRECISION B( LDB, * ), D( * ), DL( * ), DU( * ) * * * Propósito * ======= * * DGTSV resuelve el sistema de ecuaciones lineales A*X = B, * donde A es una matriz tri-diagonal de NxN, por eliminación * Gaussiana con pivoteo parcial. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 27
Código de Splines Cúbicos SUBROUTINE splinecubico(a, b, c, d, h) REAL(8) a(0:), h(0:) REAL(8), ALLOCATABLE :: b(:), c(:), d(:), ud(:), dd(:), ld(:) INTEGER n, i n = SIZE(a)-1 print *, n ALLOCATE(b(0:n), c(0:n), d(0:n)) ALLOCATE(uD(0:n-1), dd(0:n), ld(0:n-1)) ud(0) = 0 dd(0) = 1 ld(0) = h(0) c(0) = 0 Sique en la próxima página Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 28
Código de Splines Cúbicos DO i=1, n-1 ud(i) = h(i) dd(i) = 2*(h(i-1)+h(i)) ld(i) = h(i) c(i) = 3*((a(i+1)-a(i))/h(i) - (a(i)-a(i-1))/h(i-1)) END DO dd(n) = 1 ld(n-1) = 0 c(n) = 0 CALL DGTSV( n, 1, ld, dd, ud, c, n, INFO ) DO i=0, n-1 b(i) = (a(i+1)-a(i))/h(i) - h(i)*(2*c(i)+c(i+1))/3 d(i) = (c(i+1)-c(i))/(3*h(i)) ENDDO DEALLOCATE(uD, dd, ld) END SUBROUTINE Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 29
Ejemplo: Perfil de Snoopy El perfil de la figura se divide en tres trazadores independientes, para evitar aquellos puntos en los que la derivada cambia abruptamente. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 30
Ejemplo: Trazador 1 x i f(x i ) 1,00 3,00 2,00 3,70 5,00 3,90 6,00 4,20 7,00 5,70 8,00 6,60 10,00 7,10 13,00 6,70 17,00 4,50 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 31
Ejemplo: Trazador 2 x i f(x i ) 17,00 4,50 20,00 7,00 23,00 6,10 24,00 5,60 25,00 5,80 27,00 5,20 27,70 4,10 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 32
Ejemplo: Trazador 3 x i f(x i ) 27,70 4,10 28,00 4,30 29,00 4,10 30,00 3,00 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 33
Ejemplo: Perfil de Snoopy TRAZADORES Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 34
Aplicaciones de Splines Se utilizan cuando es necesario que la/las funciones de interpolación pasen no solamente por los puntos dato, sino que además, copien fielmente la forma enmarcada por los mismos. Por esta razón son ampliamente utilizados en programas de dibujo y sistemas de Diseño Asistido por Computadora (CAD). Su principal ventaja es que los polinomios resultantes son de grado bajo. La desventaja es que se trata de un tipo de interpolación segmentada. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 35
Aproximación ínimo-cuadrática Se utiliza un polinomio de grado n como función aproximante. Para determinar los coeficientes del polinomio, se establece como criterio de aproximación, que la diferencia entre los valores de la función y los del polinomio evaluado en cada uno de los puntos dato debe ser mínima. El grado del polinomio se elige y no está determinado por la cantidad de puntos dato. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 36
Polinomio de ínimos Cuadrados Función aproximante : p x = a 0 a 1 x a 2 x 2 a n x n Criterio de aproximación: inimizar la siguiente función F a 0, a 1,,a n = y k p x k 2 = k 2 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 37
Polinomio de ínimos Cuadrados Dada la función F : F a 0, a 1,,a n = y k p x k 2 = k 2 Para obtener el mínimo, calculamos las derivadas de F, con respecto a cada coeficiente y las igualamos a cero. F a i = 0 para i = 0, 1, 2,, n Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 38
Polinomio de ínimos Cuadrados Para i = 0 : [ a 0 n y k i=0 a i x k i 2 ] = = [ a 0 ( y k (a 0 +a 1 x k +a 2 x k 2 + +a n x k n )) 2 ] = = 2 [ y k (a 0 +a 1 x k +a 2 x k 2 + +a n x k n )] = 0 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 39
Polinomio de ínimos Cuadrados Para i = 1 : [ a 1 n y k i=0 a i x k i 2 ] = = [ a 1 ( y k (a 0 +a 1 x k +a 2 x k 2 + +a n x k n )) 2 ] = = 2 [ y k (a 0 +a 1 x k +a 2 x k 2 + +a n x k n ) x k ] = 0 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 40
Polinomio de ínimos Cuadrados Para i = n : [ a n n y k i=0 a i x k i 2 ] = = [ a n ( y k (a 0 +a 1 x k +a 2 x k 2 + +a n x k n )) 2 ] = = 2 [ y k (a 0 +a 1 x k +a 2 x k 2 + +a n x k n ) x k n ] = 0 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 41
Polinomio de ínimos Cuadrados Generalizando para cualquier valor de i, nos queda: F = 2 a i [ y k (a 0 +a 1 x k +a 2 x k 2 + +a n x k n ) x k i ]=0 Para i = 0, 1, 2,, n Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 42
Polinomio de ínimos Cuadrados Operando algebraicamente, obtenemos: n y k j=0 a j x k j x k i = 0 n y k x i k j=0 n y k x i k j=0 n y k x i k j=0 a j x k j x k i = 0 a j x k j+i a j ( = 0 x k j+i ) = 0 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 43
Polinomio de ínimos Cuadrados Con lo que finalmente obtenemos el siguiente sistema de ecuaciones lineales : n j=0 a j ( x j+i k ) = y k x k i Para i = 0, 1, 2,, n Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 44
Sistema resultante [ x k 2 x k 3 x k x k 2 x k 2 x k 3 x k 4 x k x k n x k n 1 x k n 2 n x k ] [a0 n 1 x a 1 k n]=[ n 2 a x 2 k 2n x k a k =1 k =1 k =1 y k y k x k n] 2 y k x k y k x k Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 45
Aproximación de Grado 1 p 1 x = 61.882678 x 80.06244 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 49
Aproximación de Grado 2 p 2 x =126.91394 x 2 188.79661 x 98.57073 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 50
Aproximación de Grado 3 p 3 x = 35.30559 x 3 179.87232 x 2 208.76633 x 99.72919 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 51
Aproximación de Grado 4 p 4 x = 3.00755 x 4 29.29048 x 3 176.03302 x 2 208.03458 x 99.71157 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 52
Valor edio Cuadrático (RS) Una vez calculados los coeficientes del polinomio de aproximación de orden n, podemos calcular su Valor edio Cuadrático. RS = k 2 El Valor edio Cuadrático, o Error edio Cuadrático, mide el ajuste del polinomio con referencia a los datos únicamente. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 53
Varianza al cuadrado Una vez calculados los coeficientes del polinomio de aproximación de orden n, podemos calcular su varianza al cuadrado. 2 n = k 2 n 1 Este valor no sólo mide cuánto se aproxima el polinomio a los datos, sino que tiene en cuenta el esfuerzo computacional involucrado. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 54
Aplicaciones de ínimos Cuadrados Sirven para aproximar grandes conjuntos de puntos, pudiendo elegir el grado del polinomio aproximante. Esto permite obtener un modelo matemático simplificado del fenómeno representado por los datos. Como el criterio de aproximación del método se basa en minimizar el error entre los datos y el aproximante, es posible que dicho polinomio, no coincida exactamente con ninguno de los puntos dato. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 55
PREGUNTAS... Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNDP - 2016 56