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 Mí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 - UNMDP - 2015 2 Aproximación por Splines Cúbicos SPLINES Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 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 = x0 < x1 < x2 < … < xn = 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 Sj en el subintervalo [xj , xj+1 ], para cada j=0, 1,..., n-1. b) S(xj) = f(xj), para cada j=0, 1,..., n. c) Sj+1(xj+1) = Sj(xj+1), para cada j=0, 1,..., n-2. d) S'j+1(xj+1) = S'j(xj+1), para cada j=0, 1,..., n-2. e) S''j+1(xj+1) = S''j(xj+1), para cada j=0, 1,..., n-2. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 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''(x0) = S''(xn) = 0 ii. FRONTERA SUJETA S'(x0) = f '(x0) y S'(xn) = f '(xn) Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 5 Polinomio de Spline Cúbico La forma general de un polinomio de Spline Cúbico es: 2 3 S j x=a jb j⋅ x−x j c j⋅ x−x j d j⋅ x−x j Aplicando la condición S(xj) = f(xj), es evidente que: S j x j = a j = f x j Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 6 Interpolación por Splines Cúbicos S j x j = f x j = a j Sj+1 Sj aj = f(xj) xj Ing. Francisco A. Lizarralde xj+1 Facultad de Ingeniería - UNMDP - 2015 7 Polinomio de Spline Cúbico Luego, aplicando la condición Sj(xj+1) = Sj+1(xj+1), se tiene que: a j+1 =S j (x j+1 )=S j+1 ( x j +1) = 2 3 = a j +b j⋅( x j +1−x j )+c j⋅( x j +1−x j ) +d j⋅( x j+1− x j ) Como utilizaremos frecuentemente (xj+1 - xj ), adoptaremos la siguiente notación para simplificar: h j = x j1−x j Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 8 Polinomio de Spline Cúbico Siendo an = f(xn), entonces para j=0, 1, 2,…, n-1: a j+1 =S j (x j+1 )=S j+1 ( x j +1) = 2 3 = a j +b j⋅( x j +1−x j )+c j⋅( x j +1−x j ) +d j⋅( x j+1− x j ) Y reemplazando, nos queda de la siguiente forma: a j1 =S j x j1 =S j1 x j1 = 2 3 = a j b j⋅h j c j⋅h j d j⋅h j Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 9 Polinomio de Spline Cúbico h j= x j1−x j Sj+1 aj+1 Sj hj xj Ing. Francisco A. Lizarralde xj+1 Facultad de Ingeniería - UNMDP - 2015 10 Polinomio de Spline Cúbico Derivando el polinomio de Splines, obtenemos: 2 S ' j ( x) =b j +2⋅c j⋅( x−x j )+3⋅d j⋅( x−x j ) Lo cual implica : S ' j ( x j ) =b j Ing. Francisco A. Lizarralde para j = 0, 1, 2, …, n-1 Facultad de Ingeniería - UNMDP - 2015 11 Polinomio de Spline Cúbico S ' j x j1 =S ' j1 x j1 Sj+1 aj+1 Sj hj xj Ing. Francisco A. Lizarralde xj+1 Facultad de Ingeniería - UNMDP - 2015 12 Polinomio de Spline Cúbico Luego, aplicando la condición S'j+1(xj+1) = S'j(xj+1), se tiene que: b j1 =S ' j x j1 =S ' j1 x j1 = 2 = b j 2⋅c j⋅ x j1−x j 3⋅d j⋅ x j1−x j Es decir: b j+ 1 =S ' j ( x j+ 1 )=S ' j+ 1 ( x j+ 1) = 2 = b j + 2⋅c j⋅h j + 3⋅d j⋅h j Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 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: S ' ' j ( x j) cj = 2 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 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(xj+1) = 2.cj+1 = S''j(xj+1) , nos queda: c j+ 1 =c j + 3⋅d j⋅h j Ing. Francisco A. Lizarralde para j = 0, 1, 2, …, n-1 Facultad de Ingeniería - UNMDP - 2015 15 Polinomio de Spline Cúbico Ahora despejando dj de la ecuación anterior, c j1 =c j 3⋅d j⋅h j Nos queda: c j+ 1−c j dj = 3⋅h j para j = 0, 1, 2, …, n-1 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 16 Polinomio de Spline Cúbico Y reemplazando en aj+1 tenemos: a j1 =S j x j1 =S j1 x j1 = 2 3 = a j b j⋅h j c j⋅h j d j⋅h j Por lo tanto : 2⋅c jc j1 ⋅h a j1=a j b j⋅h j 3 2 j para j = 0, 1, 2, …, n-1 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 17 Polinomio de Spline Cúbico Y reemplazando en bj+1 tenemos: b j1 =S ' j x j1 =S ' j1 x j1 = 2 = b j⋅h j 2⋅c j⋅h j 3⋅d j⋅h j Por lo tanto : b j1=b j h j⋅c j c j1 para j = 0, 1, 2, …, n-1 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 18 Polinomio de Spline Cúbico Por último obtenemos, a partir de la ecuación de aj+1 : 2⋅c jc j1 ⋅h a j1=a j b j⋅h j 3 2 j Y despejando bj , obtenemos: (a j+ 1−a j ) (2⋅c j + c j+ 1 )⋅h j bj = − hj 3 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 19 Polinomio de Spline Cúbico Y a partir de la ecuación de bj anteriormente obtenida: a j1−a j 2⋅c j c j1 ⋅h j bj = − hj 3 Si disminuimos en 1, el índice de bj, nos queda: b j−1 a j−a j−1 2⋅c j−1c j ⋅h j−1 = − h j−1 3 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 20 Polinomio de Spline Cúbico Realizamos la misma disminución en la siguiente expresión: b j1=b j h j⋅c j c j1 Con lo que obtenemos: b j =b j−1h j−1⋅c j−1c j Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 21 Polinomio de Spline Cúbico Y reemplazando en : b j−1 a j−a j−1 2⋅c j−1c j ⋅h j−1 = − 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 Ing. Francisco A. Lizarralde 3⋅(a j +1−a j ) 3⋅(a j −a j−1 ) = − hj h j−1 Facultad de Ingeniería - UNMDP - 2015 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 S ' ' x n cn = = 0 2 porque S ' ' x n =0 S ' ' x 0 = 2⋅c 0 6⋅ x 0 −x 0 = 0 Ing. Francisco A. Lizarralde por lo tanto c 0 =0 Facultad de Ingeniería - UNMDP - 2015 23 Coeficientes de Spline Cúbico De esta forma, queda conformada una matriz tri-diagonal : [ 1 0 0 0 0 h0 2h0 h1 h1 0 0 0 h1 2h1h2 h2 0 A = ⋮ ⋮ ⋮ ⋱ ⋮ ⋮ 0 0 hn−2 2hn−2hn−1 h n−1 0 0 0 0 1 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 ] 24 Coeficientes de Spline Cúbico Y su correspondiente vector de términos independientes : [ 0 3 a2−a1 3 a1−a0 − h1 h0 ⋮ b = ⋮ 3 a n−a n−1 3 an−1−an−2 − hn−1 h0 0 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 ] 25 Procedimiento de Cálculo 1.Los valores de aj y hj 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 cj. 3.Con los valores de aj y cj se calculan los valores de bj. 4.Con los valores de cj y hj se calculan los valores de dj. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 26 Subrutina DGTSV SUBROUTINE DGTSV( N, NRHS, DL, D, DU, B, LDB, INFO ) * * * * * * * * * * * * * .. Argumentos Escalares .. INTEGER INFO, LDB, N, NRHS .. .. Argumentos Matriciales .. 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 - UNMDP - 2015 27 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 - UNMDP - 2015 30 Ejemplo: Trazador 1 xi 1,00 2,00 5,00 6,00 7,00 8,00 10,00 13,00 17,00 f(xi ) 3,00 3,70 3,90 4,20 5,70 6,60 7,10 6,70 4,50 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 31 Ejemplo: Trazador 2 xi 17,00 20,00 23,00 24,00 25,00 27,00 27,70 f(xi ) 4,50 7,00 6,10 5,60 5,80 5,20 4,10 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 32 Ejemplo: Trazador 3 xi 27,70 28,00 29,00 30,00 f(xi ) 4,10 4,30 4,10 3,00 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 33 Ejemplo: Perfil de Snoopy TRAZADORES Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 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 - UNMDP - 2015 35 Aproximación Mí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 - UNMDP - 2015 36 Polinomio de Mínimos Cuadrados Función aproximante : 2 p x = a 0a1⋅xa2⋅x ⋯an⋅x n Criterio de aproximación: Minimizar la siguiente función M F a0, a1, ⋯, an = Ing. Francisco A. Lizarralde 2 ∑ y k − p x k k=1 Facultad de Ingeniería - UNMDP - 2015 M = ∑ k=1 2 k 37 Polinomio de Mínimos Cuadrados Dada la función F : M F a0, a1, ⋯, an = 2 ∑ y k − p x k k=1 M = ∑ k=1 2 k Para obtener el mínimo, calculamos las derivadas de F, con respecto a cada coeficiente y las igualamos a cero. ∂F = 0 ∂ ai Ing. Francisco A. Lizarralde para i = 0, 1, 2, …, n Facultad de Ingeniería - UNMDP - 2015 38 Polinomio de Mínimos Cuadrados Para i = 0 : M n ∂ [ y − a ⋅x i 2 ] = ∑ k ∑ i k ∂ a0 k=1 i=0 M 2 n 2 ∂ = [ ∑ y k −a0a1⋅xa2⋅x ⋯an⋅x ] = ∂ a0 k =1 M = ∑ −2⋅[ y k −a0a1⋅xa2⋅x ⋯an⋅x ] 2 n = 0 k =1 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 39 Polinomio de Mínimos Cuadrados Para i = 1 : M n ∂ [ y − a ⋅x i 2 ] = ∑ k ∑ i k ∂ a1 k =1 i=0 M 2 n 2 ∂ = [ ∑ y k −a0a1⋅xa2⋅x ⋯a n⋅x ] = ∂ a1 k =1 M = ∑ −2⋅[ y k −a0a1⋅xa2⋅x ⋯an⋅x ⋅x k ] 2 n = 0 k =1 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 40 Polinomio de Mínimos Cuadrados Para i = n : M n ∂ [ y − a ⋅x i 2 ] = ∑ k ∑ i k ∂ a n k =1 i=0 M 2 n 2 ∂ = [ ∑ y k −a0a1⋅xa2⋅x ⋯an⋅x ] = ∂ an k=1 M = ∑ −2⋅[ y k −a0a1⋅xa2⋅x ⋯an⋅x ⋅x 2 k =1 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 n n k ] = 0 41 Polinomio de Mínimos Cuadrados Generalizando para cualquier valor de i, nos queda: M ∂F 2 n i =−2⋅∑ [ y k −(a0 +a1⋅x+a2⋅x +⋯+an⋅x )⋅x k ]=0 ∂ ai k=1 Para i = 0, 1, 2, …, n Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 42 Polinomio de Mínimos Cuadrados Operando algebraicamente, obtenemos: M n j k ∑ y k −∑ a j⋅x ⋅x k =1 j=0 M n i k = 0 ∑ y k⋅x −∑ a j⋅x ⋅x i k k =1 M i k j k j=0 M n ∑ y k⋅x −∑ ∑ a j⋅x k =1 M i=1 j=0 n M i k = 0 ji k = 0 ∑ y k⋅x −∑ a j⋅ ∑ x k =1 Ing. Francisco A. Lizarralde i k j=0 i=1 ji k = 0 Facultad de Ingeniería - UNMDP - 2015 43 Polinomio de Mínimos Cuadrados Con lo que finalmente obtenemos el siguiente sistema de ecuaciones lineales : n M ∑ a j⋅(∑ x j=0 k =1 j+i k M ) = ∑ y k⋅x k =1 i k Para i = 0, 1, 2, …, n Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 44 Sistema resultante [ M ∑ xk M k=1 M M ∑ xk k=1 M 2 x ∑ k k=1 2 x ∑ k k=1 M 3 x ∑ k k=1 ⋮ M ∑x k=1 M n k M k=1 Ing. Francisco A. Lizarralde 2 k 3 x ∑ k 4 x ∑ k ⋯ M ∑x k=1 ∑x k=1 M ⋯ ⋯ k=1 a1 ⋮ ⋮ M ⋯ ][ ] [ ] a0 ⋅ a2 = n2 ∑ xk ⋱ n2 k n k n1 x ∑ k k=1 M k=1 ⋮ n1 k M k=1 M ⋮ ∑x ∑x k=1 M ∑x k=1 2n k an Facultad de Ingeniería - UNMDP - 2015 M ∑ yk k=1 M ∑ y k⋅x k k =1 M ∑ y k⋅x k =1 2 k ⋮ M ∑ k =1 y k⋅x nk 45 Aproximación de Grado 1 p 1 x=−61.882678⋅x80.06244 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 49 Aproximación de Grado 2 p2 x =126.91394⋅x 2−188.79661⋅x98.57073 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 50 Aproximación de Grado 3 p3 x =−35.30559⋅x 3179.87232⋅x 2 −208.76633⋅x99.72919 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 51 Aproximación de Grado 4 p 4 x =−3.00755⋅x 4 −29.29048⋅x 3 176.03302⋅x 2−208.03458⋅x99.71157 Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 52 Valor Medio Cuadrático (RMS) Una vez calculados los coeficientes del polinomio de aproximación de orden n, podemos calcular su Valor Medio Cuadrático. RMS = M ∑ k =1 2 k M El Valor Medio Cuadrático, o Error Medio Cuadrático, mide el ”ajuste” del polinomio con referencia a los datos únicamente. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 53 Varianza al cuadrado Una vez calculados los coeficientes del polinomio de aproximación de orden n, podemos calcular su varianza al cuadrado. M 2 2 ∑ k n = k =1 M −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 - UNMDP - 2015 54 Aplicaciones de Mí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 - UNMDP - 2015 55 PREGUNTAS ... Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2015 56