Interpolación polinomial y ajuste polinomial.
Transcripción
Interpolación polinomial y ajuste polinomial.
CAPÍTULO 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL INTRODUCCIÓN En este capítulo trataremos básicamente dos problemas, el primero de los cuales es el siguiente: Problema 1: Dados n + 1 puntos de R2 (x 0 , y 0 ), (x 1, y1 ),..., (x n , y n ) en los cuales x 0 , x 1 ,..., x n son números distintos, se quiere encontrar un polinomio pn (x) de grado menor o igual que n tal que pn (xk ) = yk , k = 0,1,...,n Probaremos que un tal polinomio pn (x) siempre existe y además es único. A tal polinomio se le denomina polinomio de interpolación, polinomio interpolante o polinomio de colocación para los puntos (datos) dados. En este contexto los números x 0 , x 1 ,..., x n son llamados nodos. Cuando n = 1, es decir, sólo tenemos dos puntos, el polinomio de interpolación correspondiente se denomina también polinomio de interpolación lineal. El caso de mayor interés para nosotros es aquel en el cual yk = f (xk ) siendo f una cierta función de la que posiblemente no se conoce una fórmula explícita, o bien es muy complicada para evaluarla, derivarla, integrarla, hallarle ceros, etc. En este caso el polinomio de interpolación pn (x) puede usarse como aproximación de la función f y, en particular, para aproximar valores de la función f en puntos intermedios entre los nodos x 0 , x 1 ,..., x n . Nos referiremos a esta manera de aproximar una función dada, mediante un polinomio de interpolación, como interpolación polinomial; cuando usemos sólo dos nodos, nos referiremos a la correspondiente interpolación como interpolación lineal. En este contexto el polinomio de interpolación pn (x) se dirá el polinomio que interpola a la función f en los nodos x 0 , x 1 ,..., x n . El otro problema a tratar es: Problema 2: Dados n + 1 puntos de R2 (x 0 , y 0 ), (x 1, y1 ),..., (x n , y n ) en los cuales x 0 , x 1 ,..., x n son números distintos, y dado un entero no-negativo m, con m < n , se trata de encontrar un polinomio pm (x) = a 0 + a1x+...+ am xm 184 MÉTODOS NUMÉRICOS __________________________________________________________________________________ tal que la suma de cuadrados n ∑ (p (x ) − y ) 2 m k k k =0 sea mínima. El criterio mediante el cual se elige el polinomio pm (x) es conocido como criterio de los mínimos cuadrados. Probaremos que tal polinomio pm (x) existe y es único; se le denomina polinomio de ajuste según mínimos cuadrados para los datos dados. Nótese que esta vez, a diferencia de lo que ocurre con el polinomio de colocación, pm (xk ) no necesariamente es igual a y k para todo k = 0,1,..., n . El polinomio pm (x) lo que da es un ajuste razonable a los datos dados. Este tipo de aproximación mediante el polinomio de ajuste pm (x) se conoce como ajuste polinomial. Aunque el ajuste polinomial según mínimos cuadrados es el caso más usado, también consideraremos el caso de ajuste exponencial, logarítmico y de potencia según mínimos cuadrados. 4.1 INTERPOLACIÓN POLINOMIAL Teorema 4.1 (existencia y unicidad del polinomio interpolante) Dados los n + 1 puntos (x 0 , y 0 ), (x 1, y1 ),..., (x n , y n ) de R 2 , con x 0 , x 1 ,..., x n números distintos, existe un único polinomio pn (x) = a0 + a1x + a2 x2 +...+ an xn de grado menor o igual que n, que interpola los puntos dados, es decir, tal que pn (xk ) = y k , k = 0,1,...,n Demostración: Existe un único polinomio pn (x) = a 0 + a1x + a 2 x 2 +...+ an xn tal que pn (xk ) = y k , k = 0,1,...,n si y sólo si existen números reales únicos a0 , a1, a 2 ,..., an tales que a 0 + a1x 0 + a 2 x 02 +...+ an xn0 = y 0 a 0 + a1x1 + a 2 x12 +...+ an x1n = y1 ! 2 n a 0 + a1xn + a 2 xn +...+ an xn = y n Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 185 __________________________________________________________________________________ El sistema anterior, de n + 1 ecuaciones lineales en las n + 1 incógnitas a 0 , a1, a 2 ,..., an , escrito en forma matricial es 1 x 0 x 02 " xn0 2 " x1n 1 x1 x1 ! ! ! ! 2 " xnn 1 xn xn #%%%%% %$%%%%%% & A a0 y0 a 1 y1 = ! ! an yn #$ % % & #$ % % & X b Ahora bien, como det A = 1 x0 x 02 1 x1 x12 ! ! ! 1 xn xn2 " " xn0 x1n ! " = ∏( xi 0 ≤j<i≤n − xj ) xnn entonces det A ≠ 0 (porque si i ≠ j , entonces xi ≠ x j ), y por tanto el sistema en consideración tiene solución única. Esto prueba la existencia de un único polinomio interpolante de grado menor o igual que n para los n + 1 datos dados. ∇ Una forma de encontrar el polinomio interpolante para los puntos (x 0 , y 0 ), (x 1, y 1 ),..., (x n , y n ) es resolviendo directamente el sistema AX = b que aparece en la prueba del teorema anterior; pero este procedimiento no se acostumbra porque, por lo general, la matriz de coeficientes de este sistema resulta mal condicionada, lo que puede ocurrir si dos abscisas están relativamente cerca. Lo que resta de esta sección lo dedicaremos a otras formas de encontrar el polinomio interpolante. 4.1.1 Forma de Lagrange del polinomio interpolante: Supongamos, para ilustración del método de Lagrange, que se tienen los puntos (x 0 , y 0 ), (x 1, y 1 ), (x 2 , y 2 ) con x0 , x1 y x2 números distintos y queremos encontrar el polinomio interpolante de grado menor o igual que dos p2 (x) = a0 + a1x + a2 x2 para dichos puntos. , , entonces Como p 2 (xk ) = yk , k = 0,12 186 MÉTODOS NUMÉRICOS __________________________________________________________________________________ p 2 (x 0 ) = a 0 + a1x 0 + a 2 x 02 = y 0 2 p 2 (x1 ) = a 0 + a1x1 + a 2 x1 = y1 p (x ) = a + a x + a x 2 = y 0 1 2 2 2 2 2 2 que es un sistema de tres ecuaciones lineales cuyas incógnitas son a0 , a1 y a2 . Veamos que el determinante de la matriz de coeficientes de este sistema es, como ya se dijo, (x1 − x0 )(x2 − x 0 )(x2 − x1 ) . En efecto: 1 x0 ∆ = 1 x1 1 x2 x 02 1 x12 = 0 x 22 x0 x 02 x1 − x 0 x12 − x 20 0 x2 − x0 x 22 − 1 x0 x 20 x 02 1 x0 = (x1 − x 0 )(x2 − x0 ) 0 1 x1 + x 0 0 0 x 2 − x1 x 02 = (x1 − x 0 )(x 2 − x0 ) 0 1 x1 + x 0 0 1 x2 + x0 = (x1 − x 0 )(x 2 − x0 )(x2 − x1 ) ≠ 0 (Así que el sistema tiene solución única). De acuerdo con la regla de Cramer a0 = y0 x0 x02 y1 x1 x12 y2 x2 x 22 ∆ de donde y0 x0 ∆ ⋅ a 0 = y1 x1 y2 x2 x02 ( ) x12 = y 0 x1x22 − x 2 x12 − y1 x0 x22 − x2 x02 + y 2 x0 x12 − x1x02 x22 (Desarrollando el determinante por los cofactores de la primera columna) Análogamente, 1 y0 ∆ ⋅ a1 = 1 y1 1 y2 x 02 ( ) x12 = − y 0 x 22 − x12 + y1 x 22 − x 20 − y 2 x12 − x 20 x 22 (Desarrollando el determinante por los cofactores de la segunda columna) y Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 187 __________________________________________________________________________________ 1 x0 y0 ∆ ⋅ a 2 = 1 x1 y1 1 x2 y2 = y 0 (x2 − x1 ) − y1 ( x2 − x0 ) + y 2 ( x1 − x0 ) (Desarrollando el determinante por los cofactores de la tercera columna) Por tanto ∆ ⋅ p 2 (x) = ∆ ⋅ a 0 + ∆ ⋅ a1x + ∆ ⋅ a 2 x 2 = y 0 x1x2 (x2 − x1 ) − y1x0 x2 (x2 − x0 ) + y 2 x0 x1(x1 − x0 ) [ +[y 0 (x 2 − x1 ) − y1(x2 − x0 ) + y 2 (x1 − x0 )]x 2 ] + − y 0 (x2 − x1 )(x2 + x1 ) + y1(x2 − x0 )(x2 + x0 ) − y 2 (x1 − x0 )(x1 + x0 ) x [ ] [ = (x 2 − x1 )y 0 x1x2 − (x2 + x1 )x + x 2 − (x 2 − x0 )y1 x0 x2 − (x2 + x0 )x + x2 [ +(x1 − x 0 )y 2 (x2 − x1 ) x 0 x1 − (x1 + x0 )x + x Total que 2 ] ∆ ⋅ p 2 (x) = y 0 (x 2 − x1 )(x − x1 )(x − x2 ) + y1(x0 − x2 )(x − x0 )(x − x2 ) + y 2 (x1 − x 0 )(x − x0 )(x − x1 ) y entonces p 2 (x) = y 0 (x − x1 )(x − x2 ) + y (x − x0 )(x − x2 ) + y (x − x0 )(x − x1 ) (x0 − x1 )(x0 − x2 ) 1 (x1 − x0 )(x1 − x2 ) 2 (x2 − x0 )(x2 − x1 ) Si definimos los polinomios de grado dos L 0 (x) = (x − x1 )(x − x2 ) (x0 − x1 )(x0 − x2 ) L1(x) = (x − x0 )(x − x2 ) (x1 − x0 )(x1 − x2 ) L 2 (x) = (x − x0 )(x − x1) (x2 − x0 )(x2 − x1) entonces p 2 (x ) = y 0 L 0 (x ) + y1 L1 (x ) + y 2 L 2 (x ) Observe que 1 L j ( xk ) = 0 si k = j , j = 0,1,2, si k ≠ j , . y que, como era de esperarse, p 2 (xk ) = yk , k = 0,12 k = 0,1,2 ] 188 MÉTODOS NUMÉRICOS __________________________________________________________________________________ Los polinomios L 0 (x ), L 1 (x ) y L 2 (x ) , se denominan polinomios fundamentales de Lagrange y el polinomio p 2 (x) , obtenido de la manera anterior, se denomina polinomio de interpolación de Lagrange o forma de Lagrange del polinomio interpolante para los datos dados. En general se tiene que: Dados n + 1 puntos (x 0 , y 0 ), (x 1, y1 ),..., (x n , y n ) con x 0 , x 1 ,..., x n números distintos, el polinomio de interpolación de Lagrange o la forma de Lagrange del polinomio interpolante para los datos dados es el polinomio p n (x ) = y 0 L 0 (x ) + y 1 L1 (x ) + ... + y j L j (x ) + ... + y n L n (x ) = n ∑y L j (x ) j j= 0 donde L j (x) = (x − x0 )(x − x1 )... (x − x j−1)(x − x j+1)... (x − xn ) (x j − x0 )(x j − x1)...(x j − x j−1)(x j − x j+1 n ( x − xk ) )...(x − x ) ∏ (x j = n k =0 k≠j j − xk ) , j = 0,1,...,n Los polinomios L j (x) , anteriores, se denominan polinomios fundamentales de Lagrange. Nótese que si se trata de n + 1 puntos, tales polinomios son de grado n. Observe que 1 si k = j L j ( xk ) = 0 si k ≠ j , j = 0,1,2,...,n, k = 0,1,2,...,n y que para cada k = 0,1,...,n, pn (xk ) = y 0 L 0 (xk ) + y1L 1(xk )+...+ y k L k (xk )+...+ y n L n (xk ) #$& #$& #$& #$& 0 0 1 0 = yk En el caso en que yk = f (xk ), k = 0,1,..., n , la expresión para el polinomio de interpolación de Lagrange se convierte en ( ) pn (x) = f (x 0 )L 0 (x) + f (x1 )L1(x)+...+ f x j L j (x)+...+ f (xn )L n (x) Caso particular: Calculemos el polinomio de interpolación lineal, correspondiente a los puntos (x0 ,y 0 ), (x1,y1 ) con x0 ≠ x1 , usando la forma de Lagrange: En este caso, el polinomio de interpolación de Lagrange es Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 189 __________________________________________________________________________________ p1 (x ) = y 0 L 0 (x ) + y 1 L1 (x ) siendo L 0 (x) = x − x1 x 0 − x1 L 1(x) = y x − x0 x1 − x0 es decir, p1(x) = y 0L 0 (x) + y1L1(x) = y 0 = = = y 0 (x1 − x) + y1(x − x0 ) x1 − x0 x1 − x0 1 (x 0 , y 0 ) y 0 x1 − y 0 x + y1x − y1x0 x1 − x0 y 0 (x1 − x0 ) + (y1 − y 0 )(x − x0 ) p (x) = y 0 + y = p1(x) = y 0 x1 − y 0 x0 + y 0 x0 − y 0 x + y1x − y1x0 x1 − x0 Luego Nótese que x − x1 x − x0 + y1 x 0 − x1 x1 − x0 ( y1 − y 0 ) x − x ( 0) (x1 − x0 ) es la ecuación de la recta determinada por los puntos y (x1, y1 ) . ∇ Ejemplo 4.1 Supongamos que queremos aproximar la función f (x) = cosx sobre el intervalo π π − 2 , 2 mediante un polinomio de interpolación. Una forma razonable de hacerlo es mediante un polinomio de interpolación de Lagrange de grado menor o igual que dos, p 2 (x) , π π usando como nodos los números x 0 = − , x1 = 0 y x2 = . 2 2 Como p 2 (x ) = f (x 0 )L 0 (x ) + f (x 1 )L1 (x ) + f (x 2 )L 2 (x ) y π π f (x 0 ) = cos − = 0, f (x1 ) = cos 0 = 1 y f (x2 ) = cos = 0 2 2 entonces p 2 (x) = L1(x) , donde π π π2 x + x − x2 − (x − x0 )(x − x2 ) = 2 2 = 4 = 1 − 4 x2 L1(x) = 2 π π (x1 − x0)(x1 − x2 ) π π2 − − 2 2 4 Total que el polinomio de interpolación de Lagrange para la función f (x) = cos x en los nodos π π x 0 = − , x1 = 0 y x2 = , es 2 2 190 MÉTODOS NUMÉRICOS __________________________________________________________________________________ p 2 (x) = 1 − 4 x2 π2 π π Observe que p 2 − = 0 = p2 y p2 (0) = 1 , como era de esperarse 2 2 La FIGURA 4.1 siguiente, muestra las gráficas de y = cos x y del polinomio interpolante 4 obtenido y = p 2 (x) = 1 − 2 x2 . π FIGURA 4.1 Si usamos el polinomio interpolante de Lagrange, p 2 (x) , para aproximar 2 π π f = cos = ≈ .71 , obtenemos 4 4 2 2 4 π 1 3 π π cos ≈ p 2 = 1 − 2 = 1 − = = .75 4 4 4 4 π 4 Instrucción en DERIVE: Dados los n + 1 datos M:= [ [x0 , y 0 ],[x1, y1],...,[xn , yn ] ] : POLY_INTERPOLATE( M , x ): Simplifica o aproXima en el polinomio interpolante de grado menor o igual que n, pn (x) , para los n + 1 datos dados en la matriz M. Para el ejemplo π π anterior, Simplifique la expresión POLY_INTERPOLATE( − ,0 , [0,1], ,0 , x ). ◊ 2 2 Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 191 __________________________________________________________________________________ Nota: Con el propósito de comparar el polinomio p 2 (x) , obtenido en el ejemplo anterior, con el polinomio de Taylor de grado dos para f (x) = cos x , alrededor de cero (polinomio de Maclaurin), calculamos este último a continuación: Como f (x) = cos x, f (0) = cos 0 = 1 f ′(x) = − sen x, f ′(0) = − sen 0 = 0 f ′′(x) = − cos x, f ′′(0) = − cos 0 = −1 entonces el polinomio de Maclaurin, ya mencionado, es p(x) = 1 − x2 . 2 π π Si usamos el polinomio de Maclaurin p(x) para aproximar el valor f = cos , 4 4 obtenemos π 4 π π cos ≈ p = 1 − 4 4 2 2 ≈ .69 π Nótese que, en este caso, la aproximación que da el polinomio de Maclaurin para cos es 4 mejor que la que da el polinomio de interpolación. Como ejercicio compare los valores π π π p 2 y p con el valor exacto cos . ♦ 2 2 2 En relación con el ejemplo anterior, tenemos que los otros dos polinomios fundamentales de π π Lagrange de grado dos para f usando los nodos x 0 = − , x1 = 0 y x2 = , son 2 2 π x x − x x − x1 )(x − x2 ) ( 2 = L 0 (x) = = (x0 − x1)(x0 − x2 ) − π (− π) 2 2 π x 2 = 2 x2 − 1 x π π2 π2 2 − y π x + x x x − x 0 )(x − x1 ) ( 2 = L 2 (x) = = (x2 − x0 )(x2 − x1) π π 2 2 π x 2 = 2 x2 + 1 x π π2 π2 2 + Observe que L 0 (x) + L 1(x) + L 2 (x) = 2 π 2 x2 − 1 4 2 1 x + 1 − 2 x2 + 2 x2 + x = 1 π π π π 192 MÉTODOS NUMÉRICOS __________________________________________________________________________________ Instrucción en DERIVE: Dados los n + 1 datos M:= [ [x0 , y 0 ],[x1, y1],...,[xn , yn ] ] : LAGRANGE_POLY(M): Simplifica o aproXima en el polinomio de interpolación de Lagrange para los datos dados en la matriz M. LAGRANGE_POLYS( M ): Simplifica o aproXima en los n + 1 polinomios fundamentales de Lagrange de grado n, L j (x), j = 0,1,..., n , para los datos dados en la matriz M, y vienen en la expresión [ [L (x)],[L (x)],...,[L (x)] ] . 0 1 Para el ejemplo anterior, Simplifique la expresión n π π LAGRANGE_POLYS( − , 0 , [0 ,1] , , 0 ). ◊ 2 2 En general, los polinomios fundamentales de Lagrange L j (x), j = 0,1,..., n , correspondientes a n + 1 puntos dados, tienen la propiedad n ∑ L (x) = 1 para todo j x j= 0 A continuación nos referiremos al error involucrado en la interpolación polinomial. Si pn (x) es el polinomio que interpola a una función f en los números distintos x0 , x1,..., xn , y si x es un punto intermedio entre dichos números, entonces el error al aproximar f (x) mediante pn (x) es E(x) = f (x) − pn (x) En relación con este error se tiene el siguiente resultado cuya demostración puede ser consultada en Burden, 1985, páginas 103 y 104: Teorema 4.2 Sea f una función definida en un intervalo [a, b] y sea pn (x) el polinomio que interpola a f en los números distintos x0 , x1,..., xn de dicho intervalo. Si f tiene sus primeras n + 1 derivadas continuas en [a, b] , entonces para cada x ∈[a, b] , el error E(x) = f (x) − pn (x) puede expresarse en la forma E(x) = (x − x0 )(x − x1)... (x − xn ) f (n+1) ξ x ( ( )) (n + 1)! donde ξ(x) es un número que depende de x y ξ(x) ∈ (a, b) . ∇ Esta fórmula para el error es un resultado teórico importante, pues los polinomios de interpolación se usan por ejemplo, para deducir fórmulas de integración numérica y a partir de dicha fórmula de error se pueden obtener cotas para el error en la integración; sin embargo, en la práctica la fórmula del error en la interpolación es de uso muy restringido pues sólo se puede aplicar a funciones que tengan derivadas fácilmente acotables. Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 193 __________________________________________________________________________________ π π En relación con el ejemplo 4.1 tenemos que, si x ∈ − , , entonces el error al aproximar 2 2 4 f (x) = cos x mediante el polinomio de interpolación p 2 (x) = 1 − 2 x2 , obtenido usando los π π π nodos x 0 = − , x1 = 0 y x2 = , es 2 2 E(x) = (x − x0 )(x − x1)(x − x2 ) f ′′′ ξ x ( ( )) 3! π π con ξ(x) ∈ − , 2 2 es decir, E(x) Como π π x + (x − 0) x − 2 2 = f ′′′ ξ(x) 6 ( π π con ξ(x) ∈ − , 2 2 ) f (x) = cos x , f ′(x) = − sen x , f ′′(x) = − cos x y f ′′′(x) = sen x entonces ( ) f ′′′ ξ(x) ( ) = sen ξ(x) π π ≤ 1 para toda ξ(x) ∈ − , 2 2 y por tanto E(x) En particular, para x = ≤ 1 2 π2 x x − 6 4 π π para todo x ∈ − , 2 2 π , se tiene que 4 π 3π 2 π3 1 π π2 π2 π = = ≈ .24 − E ≤ 4 6 4 16 4 24 16 128 Observe que el error real es π π π E = cos − p 2 = 4 4 4 1 2 − 3 ≈ .043 4 que está por debajo de la cota teórica de error, ya calculada. ♦ Ejercicio 4.1 Use el polinomio interpolante de Lagrange para la función f (x) = cos x con π π nodos x 0 = − , x1 = 0 y x2 = , para estimar 2 2 π 2 i) ∫ cos xdx 0 π ii) f ′ 4 ♦ 194 MÉTODOS NUMÉRICOS __________________________________________________________________________________ Ejemplo 4.2 Use los polinomios interpolantes de Lagrange de grados uno, dos y tres, más apropiados, para aproximar f (2.5) , si f (2.0) = .5103757 , f (2.2) = .5207843 , f (2.4) = .5104147 , f (2.6) = .4813306 y f (2.8) = .4359160 . Solución: Como 2.5 ∈[2.4,2.6] , entonces el polinomio de interpolación de Lagrange de grado uno, más apropiado, es el que se obtiene tomando los nodos x 0 = 2.4 y x1 = 2.6 , ya que éstos son los dos nodos más cercanos a 2.5. Así que p1(x) = f (x0 )L 0 (x) + f (x1 )L1(x) = f (x0 ) y entonces x − x1 x − x0 + f (x1 ) x 0 − x1 x1 − x 0 2.5 − 2.6 2.5 − 2.4 + .4813306 2.4 − 2.6 2.6 − 2.4 = .2552074 + .2406653 p1(2.5 ) = .5104147 = .4958727 ≈ f (2.5 ) Para el caso de grado dos, hay dos polinomios interpolantes igualmente apropiados: Un primer polinomio se obtiene tomando los nodos x 0 = 2.2, x1 = 2.4 y x 2 = 2.6 , lo que nos da p 2 (x) = f (x0 )L 0 (x) + f (x1 )L1(x) + f (x2 )L 2 (x) = f (x0 ) (x − x1)(x − x2 ) + f x (x − x0 )(x − x2 ) + f x (x − x0 )(x − x1) ( 1) x − x x − x ( 2) x − x x − x ( 1 0 )( 1 2 ) ( 2 0 )( 2 1) (x0 − x1)(x0 − x2 ) y entonces (2.5 − 2.4)(2.5 − 2.6) +.5104147 (2.5 − 2.2)(2.5 − 2.6) (2.4 − 2.2)(2.4 − 2.6) (2.2 − 2.4)(2.2 − 2.6) (2.5 − 2.2)(2.5 − 2.4) +.4813306 (2.6 − 2.2)(2.6 − 2.4) p 2 (2.5 ) =.5207843 = −.06509804 + .3828110 + .1804990 = −.06509804 + .5633100 = .4982120 ≈ f (2.5 ) El otro polinomio interpolante se obtiene tomando x0 = 2.4, x1 = 2.6 y x 2 = 2.8 , y se tiene que Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 195 __________________________________________________________________________________ (2.5 − 2.6)(2.5 − 2.8) +.4813306 (2.5 − 2.4)(2.5 − 2.8) (2.6 − 2.4)(2.6 − 2.8) (2.4 − 2.6)(2.4 − 2.8) (2.5 − 2.4)(2.5 − 2.6) +.4359160 (2.8 − 2.4)(2.8 − 2.6) p2 (2.5 ) =.5104147 = .1914055 + .3609980 − .05448950 = .5524035 − .05448950 = .4979140 ≈ f (2.5) Para grado tres el polinomio interpolante, más apropiado, se obtiene tomando los nodos x 0 = 2.2 , x1 = 2.4 , x2 = 2.6 y x3 = 2.8 , ya que 2.5 ∈[2.2,2.8] y 2.2, 2.4, 2.6 y 2.8 son los nodos más cercanos a 2.5. Así que (x − x1)(x − x2 )(x − x3 ) + f x (x − x0 )(x − x2 )(x − x3 ) ( 1) x − x x − x x − x (x0 − x1)(x0 − x2 )(x0 − x3 ) ( 1 0 )( 1 2 )( 1 3 ) (x − x0 )(x − x1 )(x − x3 ) + f x (x − x0 )(x − x1)(x − x2 ) + f (x2 ) ( 3) x − x x − x x − x (x2 − x0 )(x2 − x1 )(x2 − x3 ) ( 3 0 )( 3 1)( 3 2 ) p 3 (x) = f (x0 ) y entonces (2.5 − 2.4)(2.5 − 2.6)(2.5 − 2.8) + (2.2 − 2.4)(2.2 − 2.6)(2.2 − 2.8) (2.5 − 2.2)(2.5 − 2.4)(2.5 − 2.8) + + .4813306 (2.6 − 2.2)(2.6 − 2.4)(2.6 − 2.8) p 3 (2.5) = .5207843 (2.5 − 2.2)(2.5 − 2.6)(2.5 − 2.8) (2.4 − 2.2)(2.4 − 2.6)(2.4 − 2.8) (2.5 − 2.2)(2.5 − 2.4)(2.5 − 2.6) .4359160 (2.8 − 2.2)(2.8 − 2.4)(2.8 − 2.6) .5104147 = − .03254902 + .2871083 + .2707485 − .02724475 = .5578568 − .0597977 = .4980630 ≈ f (2.5 ) Cuál es la aproximación obtenida, mediante el polinomio de interpolación, usando los nodos x 0 = 2.0 , x1 = 2.2 , x 2 = 2.4 y x 3 = 2.6 ? (ejercicio) Cuál de todas las aproximaciones calculadas es la mejor ? Como la cota para el error en la interpolación requiere conocer hasta la cuarta derivada de la función f (la función de donde provienen los datos), y no disponemos de esa información, pues no conocemos una fórmula explícita para f, no podemos decidir cuál de las aproximaciones calculadas es la mejor. Sin embargo, de dos aproximaciones calculadas que utilicen el mismo número de nodos, se espera que sea mejor la que use los nodos más cercanos al dato a interpolar. ♦ Ejemplo 4.3 Suponga que se quiere construir una tabla para la función logaritmo natural, desde x = 1 hasta x = 10 , de tal manera que la interpolación lineal usando dos nodos consecutivos de la tabla, tenga una precisión de seis cifras decimales exactas. Determine el tamaño de paso h más grande posible para dicha tabla. Solución: Podemos suponer, sin pérdida de generalidad, que los nodos x0 ,x1,..., xn en el intervalo [1,10] están igualmente espaciados. Entonces el tamaño de paso es 196 MÉTODOS NUMÉRICOS __________________________________________________________________________________ h = xk +1 − xk , k = 0,1,...,n − 1 con x0 = 1 y xn = 10 Por lo tanto x0 = 1, x1 = 1 + h, x2 = 1 + 2h,..., xk = 1 + kh,..., xn = 1 + nh = 10 y entonces para x con xk ≤ x ≤ xk +1 , se tiene que el error en la interpolación lineal, usando los nodos xk y xk +1 , es E(x) = f (x) − p(x) = ( E(x ) ≤ = Si (x − xk )(x − xk +1 ) 2! para algún ξ(x) ∈ (xk , xk +1 ) . Como f (x) = lnx , entonces f ′(x) = ) f ′′ ξ(x) 1 1 , f ′′(x) = − 2 , y entonces para x ∈[xk , xk +1 ] , se tiene x x 1 Máx f ′′(x ) 2 x∈[xk ,xk +1] Máx [ ] x∈ x k ,x k 1 + (x − x k )(x − x k +1 ) 1 1 (x − x k )(x − x k +1 ) Máx Máx 2 x∈[xk ,xk +1] x 2 x∈[xk ,xk +1] g(x) = (x − xk )(x − xk +1 ) = x 2 − (xk + xk +1 )x + xk xk +1 entonces g′(x) = 2x − (xk + xk +1 ) = 0 ⇔ x = x k + x k +1 2 Como g(xk ) = 0 = g(xk +1 ) , y h2 x + x k +1 x − x k x k − x k +1 h h x + x k +1 x k + x k +1 ≠0 − xk k − x k +1 = k +1 g k = − = − = 2 2 2 2 2 2 2 4 entonces Máx [ ] x∈ xk ,x k 1 + (x − x k )(x − x k +1 ) = h 2 4 , k = 0, 1,..., n − 1 Por otro lado, como Máx [ 1 ] x2 x∈ xk ,x k +1 = 1 (x k )2 , k = 0, 1,..., n − 1 entonces para x ∈[xk , xk +1 ] , se tiene que E(x) ≤ 1 1 h2 , k = 0,1,..., n − 1 2 ( x k )2 4 Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 197 __________________________________________________________________________________ , ] , k = 0,1,..., n, entonces Finalmente, como xk ∈[110 E(x) ≤ 1 1 h2 h2 = para todo x ∈[110 , ] 2 12 4 8 Para encontrar el tamaño de paso h más grande para la tabla, basta entonces resolver la desigualdad h2 ≤ 5 × 10 −7 (porque se quieren 6 cifras decimales exactas) 8 lo que nos da h ≤ 2 × 10 −3 = .002 . De acuerdo con este resultado, el tamaño de paso más grande para construir la tabla es h = .002 . Así que si se toma, por ejemplo, el tamaño de paso h = .001 para construir la tabla, la interpolación lineal correspondiente (para dos nodos consecutivos), será exacta en por lo menos seis cifras decimales. Es claro que una tabla con estas características debe ser escrita con por lo menos siete cifras decimales. ♦ Otra forma de obtener el polinomio interpolante de grado menor o igual que n para una función f, a partir de n + 1 datos conocidos, (x 0 , f (x 0 )), (x 1, f (x 1 )),..., (x n , f (x n )) , es la siguiente: 4.1.2 Forma de Newton del polinomio interpolante: Dados n + 1 puntos (x 0 , y 0 ), (x 1, y1 ),..., (x n , y n ) con x 0 , x 1,..., x n números distintos y yk = f (xk ) , k = 0,1,...,n para alguna función f definida en algún intervalo [a,b] que contiene a los nodos distintos x 0 , x 1,..., x n . El polinomio pn (x) de grado menor o igual que n que interpola a f en los datos dados, puede expresarse en la forma pn (x) = b 0 + b1(x − x 0 ) + b 2 (x − x0 )(x − x1 ) + ... + bn (x − x0 )(x − x1 )... (x − xn−1 ) para ciertas constantes b 0 , b1,..., b n . Cómo determinar los coeficientes b 0 , b1,..., bn ? Puesto que p n (x k ) = y k = f (x k ), k = 0, 1,..., n , entonces pn (x0 ) = b0 = f (x0 ) , así que b 0 = f (x 0 ) pn (x1 ) = b0 + b1(x1 − x0 ) = f (x1 ) , así que b1 = f (x1 ) − f (x0 ) x1 − x 0 pn (x2 ) = b 0 + b1(x2 − x0 ) + b 2 (x2 − x0 )(x2 − x1 ) = f (x2 ) , así que 198 MÉTODOS NUMÉRICOS __________________________________________________________________________________ b2 = f ( x 2 ) − f (x 0 ) − f (x1 ) − f (x0 ) x1 − x0 (x2 − x0 )(x2 − x1 ) (x 2 − x 0 ) y después de realizar algunas manipulaciones algebraicas se tiene que f (x2 ) − f (x1 ) b2 = x 2 − x1 − f (x1 ) − f (x0 ) x1 − x 0 x2 − x0 Los otros coeficientes b 3 , b 4 ,..., b n se pueden obtener consecutivamente, siguiendo el método anterior. Para facilitar la escritura de los coeficientes b 0 , b1,..., b n , del polinomio interpolante obtenido de esta manera, se introduce la siguiente notación de diferencia dividida hacia adelante (progresiva) de Newton. Definición 4.1 Dados n + 1 puntos (x0 ,f (x0 )), (x1,f (x1)),...,(xn ,f (xn )) con x 0 , x 1,..., x n números distintos y f alguna función, definimos: a) La diferencia dividida cero de f con respecto a xk es f [ xk ] = f ( xk ) , k = 0,1,2,...,n (Así que, con respecto al polinomio interpolante pn (x) , se tiene que b 0 = f [x0 ] ) b) La diferencia dividida uno de f con respecto a xk y x k +1 es f[xk ,xk +1 ] = f [xk +1 ] − f[xk ] x k +1 − x k , k = 0,1,...,n − 1 Observe que las diferencias divididas uno dependen de las diferencias divididas cero y que, mientras hay n + 1 diferencias divididas cero, hay n diferencias divididas uno. f[x1 ] − f [x0 ] ) (También observe que b1 = f [x 0 , x1 ] = x1 − x0 c) La diferencia dividida dos de f con respecto a xk , xk +1 y xk + 2 es f[xk ,xk +1, xk + 2 ] = f[xk +1,xk + 2 ] − f [xk ,xk +1 ] xk + 2 − xk , k = 0,1,...,n − 2 Observe que las diferencias divididas dos dependen de las diferencias divididas uno y que, mientras hay n diferencias divididas uno, hay n − 1 diferencias divididas dos. Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 199 __________________________________________________________________________________ (También observe que b 2 = f [x0 , x1,x2 ] = f [x1, x2 ] − f [x0 , x1 ] x2 − x0 ) d) En general, conocidas las n − (i − 1) + 1 = n − i + 2 diferencias divididas i − 1 de f con respecto a x k , x k +1 ,..., x k +i−1 , f [x k , x k +1,..., x k +i−1 ], k = 0, 1,..., n − (i − 1) , se definen las n − i + 1 diferencias divididas i de f con respecto a x k , x k +1,..., x k +i , así f[xk ,xk +1,...,xk +i ] = f[xk +1,xk + 2 ,...,xk +i ] − f [xk ,xk +1,...,xk +i−1 ] xk + i − xk , k = 0,1,...,n − i ∇ Con esta notación de diferencia dividida se tiene que bi = f[x0 ,x1,...,xi ], i = 0,1,...,n y así el polinomio interpolante toma la forma pn (x) = f [x0 ] + f[x0 ,x1 ](x − x0 ) + f [x0 ,x1,x2 ](x − x0 )(x − x1 )+... + f[x0 ,x1,...,xn ](x − x0 )(x − x1 )... (x − xn−1 ) Esta forma del polinomio interpolante se conoce como fórmula de diferencia dividida (progresiva) interpolante de Newton o forma progresiva de Newton del polinomio interpolante, y se usa en los cálculos numéricos cuando se interpola en un punto x que está más cerca de x0 que de xn (suponemos ordenados los nodos x 0 , x 1,..., x n ) . Si el punto x en el cual vamos a interpolar está más cerca de xn que de x0 se usa la fórmula de diferencia dividida (regresiva) interpolante de Newton: pn (x) = f [xn ] + f [xn −1,xn ](x − xn ) + f[xn − 2 , xn −1, xn ](x − xn )(x − xn −1 )+... + f[x0 ,x1,...,xn ](x − xn )(x − xn −1 )... (x − x1 ) Es muy importante tener en cuenta que el polinomio progresivo y el polinomio regresivo de Newton son el mismo polinomio (siempre y cuando se usen los mismos datos); lo que ocurre es que en la fórmula progresiva el dato que más "pesa" es f [x0 ] , mientras que en la regresiva el que más "pesa" es f [xn ] . En el caso en que el dato a interpolar esté más cerca del nodo central (o los nodos centrales), se recomiendan otras diferencias divididas llamadas centradas, que no estudiaremos aquí. La forma de Newton del polinomio interpolante es más ventajosa que la forma de Lagrange, pues el cálculo de los coeficientes en la forma de Newton va usando la información anterior, lo que no sucede con la forma de Lagrange. Observe que dados n + 1 datos (x 0 , f (x 0 )), (x 1, f (x 1 )),..., (x n , f (x n )) , Newton del polinomio interpolante tiene la propiedad la forma progresiva de 200 MÉTODOS NUMÉRICOS __________________________________________________________________________________ pi (x) = pi−1(x) + f [x0 , x1,..., xi ](x − x0 )(x − x1 )... (x − xi−1 ), i = 2,3,...,n Una propiedad análoga se tiene para la forma regresiva del polinomio interpolante de Newton. La TABLA 4.1 siguiente, muestra las diferencias divididas que hay que calcular para determinar los coeficientes del polinomio interpolante de Newton. Diferencias divididas 0 Diferencias divididas 1 f (xk ) = f [xk ] f [xk ,xk +1] f [x0 ,x1 ] = b1 … K xk 0 x0 f [x0 ] = b 0 1 x1 f[x1] f[x1,x2 ] … 2 x2 f [x2 ] f[x2 ,x3 ] … 3 x3 f [x3 ] ! ! ! ! n−1 xn−1 f [xn−1] n xn f [xn ] Diferencias divididas n f [x0 ,...,xn ] … f[x0 ,...,xn ] = bn f [xn−1,xn ] TABLA 4.1 Observe que en la misma tabla pueden leerse los coeficientes para la forma progresiva y para la forma regresiva de Newton del polinomio interpolante. En el caso particular n = 1, la forma de Newton del polinomio interpolante es p1(x) = f [x0 ] + f[x0 ,x1 ](x − x0 ) = f (x0 ) + f (x1 ) − f (x0 ) x1 − x0 (x − x0 ) que coincide con la fórmula deducida para p1(x) en el caso de la forma de Lagrange del polinomio interpolante. Recuerde que el polinomio de interpolación es único. Con respecto al error en la interpolación al usar la forma de Newton, tenemos: Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 201 __________________________________________________________________________________ Dada una función f definida en [x0 ,x1 ] . Si f es continua en [x0 ,x1 ] y f ′ existe en (x0 ,x1 ) , entonces el teorema del valor medio implica que existe x ∈ (x0 ,x1 ) tal que f ′(x) = f[x0 ,x1 ] . En general, se tiene el siguiente resultado cuya demostración puede ser consultada en Burden, 1985, páginas 117 y 118: Teorema 4.3 Si f es una función de valor real definida sobre el intervalo [a,b] , n veces continuamente diferenciable en entonces existe ξ ∈[a, b] tal que [a,b] y x 0 , x1,..., xn son números distintos en f[x 0 , x1,..., xn ] = n f ( ) (ξ ) [a,b] , ∇ n! Usando esta fórmula se puede llegar a una expresión para estimar el error al aproximar una función f mediante el polinomio interpolante de Newton, pn (x) , a partir de los puntos x 0 , x1,..., xn , x , como se indica a continuación: De la fórmula del error E(x) , dada al estudiar la forma de Lagrange del polinomio interpolante, tenemos que f (x) = pn (x) + (x − x0 )(x − x1 )... (x − xn ) f (n+1) ξ x ( ( )) ! (n + 1)% #%%%%%% $%%%%%%% & (4.1) () Ex donde ξ(x) es un número que depende de x y ξ(x) ∈(a, b) . De otro lado, usando la forma de Newton del polinomio interpolante de grado menor o igual que n + 1 para f en los nodos x0 , x1,..., xn , x , tenemos que f (x) = pn+1(x) = pn (x) + f [x0 , x1,..., xn , x](x − x0 )(x − x1)... (x − xn ) (4.2) Igualando las ecuaciones (4.1) y (4.2), concluimos que E(x) = f (x) − pn (x) = f[x0 , x1,..., xn , x](x − x0 )(x − x1 )... (x − xn ) (4.3) donde para calcular f [x0 , x1,..., xn , x] usamos pn (x) ≈ f (x) . ∇ La ecuación (4.3) nos da una fórmula alternativa para estimar el error al usar un polinomio interpolante. Ejemplo 4.4 Considere la siguiente tabla de datos 202 MÉTODOS NUMÉRICOS __________________________________________________________________________________ f (x) x 2.0 2.2 2.4 2.6 2.8 .5103757 .5207843 .5104147 .4813306 .4359160 TABLA 4.2 Si queremos obtener una aproximación de f (2.1) usando todos los datos dados, debemos elegir la forma progresiva del polinomio interpolante de Newton con todos los datos dados, y una escogencia adecuada para los nodos es x 0 = 2.0 , x1 = 2.2 , x2 = 2.4 , x3 = 2.6 y x 4 = 2.8 , ya que x = 2.1 está más cerca de x0 que de x4 . Veamos qué resultados obtenemos si usamos los polinomios interpolantes de Newton más apropiados de grados uno, dos, tres y cuatro, para aproximar f (2.1) . Empezamos calculando las diferencias divididas que se muestran en la TABLA 4.3 siguiente, −3 donde el valor correspondiente a la diferencia dividida cuatro es 8.34125 × 10 = b 4 (que no aparece en la tabla). k xk f (xk ) = f[xk ] 0 2.0 .5103757 = b0 1 2 3 4 2.2 2.4 2.6 2.8 .5207843 .5104147 .4813306 .4359160 Diferencias divididas 1 .052043 = b1 −.051848 −.1454205 −.227073 Diferencias divididas 2 .2597275 − = b2 Diferencias divididas 3 .04299367 = b 3 −.2339313 −.2041313 .04966667 TABLA 4.3 Instrucción en DERIVE: Dados los n + 1 puntos M:= [ [x , f(x )],[x ,f (x )],...,[x ,f (x )] ] : 0 0 1 1 n n DIFERENCIAS_DIV( M ): aproXima o Simplifica en las n + 1 diferencias divididas progresivas de Newton, f[x0 ], f[x0 , x1 ],..., f[x0 , x1,..., xn ] , correspondientes a los n + 1 puntos dados en la [ ] matriz M. Para este ejemplo, tome la matriz M: = [2.0 , 0.5103757],[2.2 , 0.5207843],[2.4 , 0.5104147],[2.6 , 0.4813306],[2.8 , 0.4359160] y [ aproXime la expresión DIFERENCIAS_DIV(M). ◊ Entonces p1(x) = f[x0 ] + f [x0 , x1 ](x − x0 ) = .5103757 + .052043(x − 2.0) así que p1(2.1) = .5103757 + .052043(2.1 − 2.0) = .5155800 ≈ f (2.1) ] Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 203 __________________________________________________________________________________ Si usamos el polinomio más apropiado de grado dos p 2 (x) = f[x0 ] + f [x0 ,x1 ](x − x0 ) + f [x0 , x1,x2 ](x − x0 )(x − x1 ) = p1(x) + f [x 0 , x1,x2 ](x − x 0 )(x − x1 ) obtenemos p 2 (2.1) = p1(2.1) − .2597275(2.1 − 2.0)(2.1 − 2.2) = .5155800 +.002597275 = .5181773 ≈ f (2.1) Si usamos el polinomio más apropiado de grado tres p 3 (x) = f[x0 ] + f [x0 , x1 ](x − x0 ) + f[x0 ,x1, x2 ](x − x0 )(x − x1 ) + f[x0 , x1,x2 , x3 ](x − x0 )(x − x1 )(x − x2 ) = p 2 (x) + f[x0 ,x1,x2 , x3 ](x − x0 )(x − x1 )(x − x2 ) entonces p 3 (2.1) = p 2 (2.1) + .04299367(2.1 − 2.0)(2.1 − 2.2)(2.1 − 2.4 ) . = .5181773 + 1289810 × 10 −4 = .5183063 ≈ f (2.1) Finalmente, si usamos el polinomio de grado cuatro p 4 (x) = f [x0 ] + f[x0 , x1 ](x − x0 ) + f [x0 ,x1, x2 ](x − x0 )(x − x1 ) + f[x0 ,x1,x2 ,x3 ](x − x0 )(x − x1 )(x − x2 ) + f[x0 ,x1,x2 ,x3 ,x4 ](x − x0 )(x − x1 )(x − x2 )(x − x3 ) = p 3 (x) + f[x0 , x1,x2 ,x3 ,x4 ](x − x0 )(x − x1 )(x − x2 )(x − x3 ) obtenemos p 4 (2.1) = p 3 (2.1) + 8.341125 × 10 −3 (2.1 − 2.0)(2.1 − 2.2)(2.1 − 2.4 )(2.1 − 2.6) . = .5183063 − 1251169 × 10 −3 = .5182938 ≈ f (2.1) Si estamos interesados en aproximar f (2.7) mediante el polinomio interpolante más apropiado de grado menor o igual que tres, a partir de los datos dados en la TABLA 4.3, debemos usar la forma regresiva de Newton del polinomio interpolante con los nodos x4 = 2.8 , x 3 = 2.6 , x 2 = 2.4 y x1 = 2.2 , lo que nos da en este caso p3 (x) =.4359160 −.227073(x − 2.8)−.2041313(x − 2.8)(x − 2.6 ) +.04966667(x − 2.8)(x − 2.6)(x − 2.4) así que 204 MÉTODOS NUMÉRICOS __________________________________________________________________________________ p3 (2.7 ) =.4359160 −.227073(2.7 − 2.8)−.2041313(2.7 − 2.8)(2.7 − 2.6 ) +.04966667(2.7 − 2.8)(2.7 − 2.6)(2.7 − 2.4 ) . =.4359160 +.0227073 + 2.041313 × 10 −3 − 1490000 × 10 −4 . =.4606646 − 1490000 × 10 −4 =.4605156 Como un ejercicio encuentre el polinomio interpolante regresivo de grado menor o igual que cuatro para los datos dados, p4 (x) , y úselo para estimar f (2.7) . También estime f (2.7) usando el polinomio p 4 (x) y compare los valores p 4 (2.7) y p4 (2.7) . f (2.5) usando p 4 (2.5 ) y p4 (2.5 ) . Aproxime también ♦ Un algoritmo para encontrar los coeficientes b 0 , b1,..., b n de la forma de Newton del polinomio interpolante es el siguiente. Algoritmo 4.1 (Diferencias divididas progresivas) Para obtener los coeficientes b 0 , b1,..., b n de la forma de Newton del polinomio interpolante usando diferencias divididas progresivas, conocidos n + 1 puntos (x 0 , f (x 0 )), (x 1, f (x 1 )),..., (x n , f (x n )) con x 0 , x 1,..., x n números distintos: Entrada: Los números x 0 , x 1,..., x n , los valores f (x 0 ), f (x 1 ),..., f (x n ) . Salida: Los coeficientes b 0 , b1,..., bn de la forma progresiva de Newton del polinomio interpolante pn (x) = b 0 + b1(x − x0 ) + b2 (x − x0 )(x − x1 )+...+bn (x − x0 )(x − x1)... (x − xn−1) Paso 1: Tomar b 0 = f (x0 ) . Paso 2: Para i = 12 , ,..., n , hacer: Para k = 0,1,..., n − i, tomar f ( xk ) = f ( x k +1 ) − f ( x k ) xk + i − xk bi = f (x 0 ) Paso 3: Salida: "Los coeficientes del polinomio interpolante progresivo de Newton son b 0 , b1,..., bn ". Terminar. Ejercicio 4.2 La siguiente tabla corresponde a la función f (x) = e x : Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 205 __________________________________________________________________________________ x f (x) 0 1.00000 .5 1.64872 1.0 2.71828 2.0 7.38906 a) Aproxime f (.25) usando interpolación lineal con x0 = 0 y x1 = .5 . . . b) Aproxime f (.75) usando interpolación lineal con x0 = .5 y x1 = 10 c) Aproxime f (.25) y f (.75) usando interpolación de grado menor o igual que dos con . y x 2 = 2.0 . x0 = 0, x1 = 10 d) Cuál de las aproximaciones calculadas es la mejor? Por qué? e) Aproxime f (.25) usando el polinomio de interpolación de Newton de grado menor o igual que tres para los datos dados. ♦ Ejercicio 4.3 La siguiente tabla corresponde a la función f (x) = sen x : x f (x) .30 .29552 .32 .31457 .33 .32404 .35 .34290 a) Encuentre una aproximación de sen(.34) , usando el polinomio de interpolación de Lagrange de grado menor o igual que tres para los datos dados. b) Encuentre una aproximación de sen(.34) , usando el polinomio de interpolación de Newton más apropiado de grado menor o igual que tres. c) Encuentre una cota para el error en cada aproximación. Cuál de las aproximaciones calculadas en a) y b) es mejor? ♦ Hasta aquí se han construido polinomios de grado menor o igual n para interpolar entre n + 1 puntos dados. Como cuando n aumenta el polinomio interpolante pn (x) tiene más oscilaciones y ocurre a menudo que no aproxima bien a la función f, esto sugiere que se intente la interpolación pero localmente, es decir, por subintervalos. La idea es que el intervalo que se tiene para interpolar los datos se descompone en una serie de subintervalos y se usan aproximaciones separadas para cada subintervalo, sujetas a que las aproximaciones deben coincidir, en algún sentido, en los extremos de los subintervalos. Este proceso de aproximación sobre subintervalos se conoce como interpolación segmentaria o por segmentos. 206 MÉTODOS NUMÉRICOS __________________________________________________________________________________ 4.2 INTERPOLACIÓN SEGMENTARIA CÚBICA (CUBIC SPLINES) Dados n + 1 puntos (x 0 , f (x 0 )), (x 1, f (x 1 )),..., (x n , f (x n )) con x 0 , x 1,..., x n números distintos y f alguna función de valor real definida en un intervalo [a,b] que contiene a los nodos x 0 , x 1,..., x n , se trata de aproximar la función f por segmentos o tramos, como se indica a continuación. Aquí se supone que x0 < x1 < ... < xn Una primera forma es aproximar la función f en cada subintervalo [x k , x k +1 ], k = 0, 1,..., n − 1 , mediante un polinomio lineal, lo que se conoce como interpolación segmentaria lineal. Una segunda posibilidad es aproximar la función f en cada subintervalo [x k , x k +1 ], k = 0, 1,..., n − 1 , mediante un polinomio cuadrático, lo que se conoce como interpolación segmentaria cuadrática, esta vez imponiendo algunas condiciones sobre el comportamiento de los polinomios aproximantes en cada segmento. Finalmente tenemos la interpolación segmentaria cúbica, que es la más usada, la cual consiste en lo siguiente: Se aproxima la función f en cada subintervalo [xk , xk +1 ] mediante un polinomio de grado menor o igual que tres, el cual suponemos de la forma 2 3 (k ) p3 (x) ≡ pk (x) = ak + bk (x − xk ) + c k (x − xk ) + dk (x − xk ) , k = 0,1,...,n − 1 FIGURA 4.2 Son n polinomios de grado menor o igual que tres y cada uno con cuatro coeficientes incógnitas, así que tenemos un total de 4n incógnitas por determinar. Las condiciones que deben satisfacer tales polinomios son: p (x ) = f (xk ) , k = 0,1,..., n − 1 i) k k pn −1(xn ) = f (xn ) (Condiciones de interpolación. Estas condiciones producen n + 1 ecuaciones) Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 207 __________________________________________________________________________________ ii) pk (xk +1 ) = pk +1(xk +1 ) , k = 0,1,..., n − 2 (Condiciones de continuidad en los nodos interiores. Estas condiciones producen n − 1 ecuaciones) iii) pk′ (xk +1 ) = pk′ +1(xk +1) , k = 0,1,..., n − 2 (Condiciones de derivabilidad en los nodos interiores. Estas condiciones producen n − 1 ecuaciones) iv) pk′′(xk +1 ) = pk′′+1(xk +1) , k = 0,1,..., n − 2 (Condiciones de continuidad de la primera derivada en los nodos interiores: se conserva la concavidad en la vecindad del nodo interior, a no ser que la segunda derivada sea cero en el nodo interior. Estas condiciones dan lugar a n − 1 ecuaciones) Hasta aquí tenemos n + 1 + 3(n − 1) = 4n − 2 condiciones. v) Se satisface uno de los siguientes pares de condiciones de frontera: a) p′′0 (x0 ) = 0 y pn′′−1(xn ) = 0 b) p′0 (x0 ) = f ′(x0 ) y pn′ −1(xn ) = f ′(xn ) Las condiciones dadas en a) se llaman de frontera libre (no dependen de condiciones adicionales sobre la función f ). Observe que en el caso a), basta tener una lista de datos (xk , yk ) con x 0 , x 1,..., x n números distintos para poder realizar la interpolación segmentaria cúbica. Las condiciones dadas en b) se llaman de frontera sujeta, requieren que se conozca f ′(x0 ) y f ′(xn ) , y fijan al polinomio p 0 (x), x ∈[x0 , x1 ] , en el punto extremo x0 , y al polinomio pn −1(x), x ∈[xn −1, xn ] , en el punto extremo xn ; como en este caso se usa más información acerca de la función f las aproximaciones obtenidas suelen ser mas exactas. Si no se dispone de esta información sobre f se usarán las condiciones de frontera libre o unas buenas aproximaciones para f ′(x0 ) y f ′(xn ) . Si definimos T:[x 0 , xn ] → x R → T(x) = pk (x) , si x ∈[xk , xk +1 ] 208 MÉTODOS NUMÉRICOS __________________________________________________________________________________ y p k (x ), k = 0, 1,..., n − 1 , satisfaciendo las condiciones i)-v), entonces T se dice un Trazador o adaptador cúbico para f en [x 0 , x n ] . Si el Trazador cúbico satisface las condiciones v), a), se llama natural, y si satisface las condiciones v), b) se llama de frontera sujeta. ∇ Nota: Si no se da una tabla de datos correspondiente a una cierta función f, ni condiciones de frontera, se entiende que un Trazador cúbico es una función como se definió antes, pero satisfaciendo las condiciones ii), iii) y iv). Una forma de construir un Trazador cúbico para una función f en [x0 , xn ] es la siguiente: De acuerdo con la condición i) pk (xk ) = ak = f (xk ) , k = 0,1,..., n − 1 y pn−1(xn ) = f (xn ) y si aplicamos la condición ii), tenemos para k = 0,1,..., n − 2 , a k +1 = p k +1 ( x k +1 ) = p k ( x k +1 ) = ak + bk (xk +1 − xk ) + c k (xk +1 − xk ) + dk (xk +1 − xk ) 2 3 Si notamos hk = x k +1 − x k , k = 0, 1,..., n − 1 , usamos que ak = f (xk ) , para k = 0,1,..., n − 1 y definimos an = f (xn ) , entonces ak +1 = ak + bk hk + c k hk2 + dk hk3 , k = 0,1,..., n − 1 (4.4) 2 3 (ya que an = f (xn ) = pn−1(xn ) = an−1 + bn−1hn−1 + c n−1hn−1 + dn−1hn−1 ) De otro lado pk′ (xk ) = bk para k = 0,1,...,n − 1, y si aplicamos la condición iii), obtenemos bk +1 = pk′ +1(xk +1) = pk′ (xk +1 ) = bk + 2c k hk + 3dk hk2 , k = 0,1,...,n − 2 Si definimos bn = pn′ −1(xn ) , entonces bk +1 = bk + 2c k hk + 3dk hk2 , k = 0,1,..., n − 1 2 ( ya que pn′ −1(xn ) = bn−1 + 2c n−1hn−1 + 3dn−1hn−1 ) Ahora, entonces pk′′ (x) = 2c k + 6 dk (x − xk ) , k = 0,1,..., n − 1 pk′′(xk ) = 2c k , k = 0,1,..., n − 1 (4.5) Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 209 __________________________________________________________________________________ y si aplicamos la condición iv), obtenemos 2c k +1 = pk′′+1(xk +1) = pk′′(xk +1) = 2c k + 6dk hk o sea c k +1 = c k + 3 dk hk , k = 0,1,..., n − 2 Si definimos pn′′−1(xn ) = 2c n , entonces c k +1 = c k + 3dk hk , k = 0,1,...,n − 1 (4.6) ( ya que pn′′−1(xn ) = 2c n−1 + 6dn−1hn−1 = 2c n o sea c n = c n−1 + 3dn−1hn−1 ) Despejando dk de la ecuación (4.6), obtenemos dk = c k +1 − c k , 3hk k = 0,1,..., n − 1 (4.7) y sustituyendo en las ecuaciones (4.4) y (4.5), obtenemos ak +1 = ak + bk hk + c k hk2 + c k +1 − c k 3 hk 3hk o sea a k +1 = a k + b k h k + hk2 (2ck + ck +1 ) , k = 0,1,...,n − 1 3 (4.8) y bk +1 = bk + 2c k hk + 3 c k +1 − c k 2 hk 3hk es decir, bk +1 = bk + hk (c k + c k +1) , k = 0,1,..., n − 1 (4.9) Despejando bk en (4.8), obtenemos bk = a k +1 − a k h k − (2ck + ck +1) , 3 hk k = 0,1,..., n − 1 y aumentando el índice en uno en la ecuación (4.10), se tiene que b k +1 = a k + 2 − a k +1 h k +1 − (2ck +1 + ck + 2 ) 3 h k +1 y sustituyendo en (4.9), se tiene que (4.10) 210 MÉTODOS NUMÉRICOS __________________________________________________________________________________ a k + 2 − a k +1 h k +1 a − ak hk 2c k +1 + c k + 2 ) = k +1 − − ( (2ck + ck +1 ) + hk (ck + ck +1) h k +1 hk 3 3 o sea a k + 2 − a k +1 a k +1 − a k h k h c k + 2c k +1 ) + k +1 (2c k +1 + c k + 2 ) − = ( h k +1 hk 3 3 lo que nos lleva finalmente a que hk c k + 2(hk + hk +1 )c k +1 + hk +1c k + 2 = 3 3 (ak + 2 − ak +1) − h (ak +1 − ak ) h k +1 k (4.11) para k = 0,1,..., n − 2 En este sistema final las incógnitas son c k , k = 0,1,..., n , ya que a k = f (x k ), k = 0, 1,..., n , y hk = xk +1 − xk , k = 0, 1,..., n − 1 , son conocidos. Este sistema es de n − 1 ecuaciones con n + 1 incógnitas, pero si usamos las condiciones de frontera se introducen dos nuevas ecuaciones, con lo cual obtenemos un sistema de n + 1 ecuaciones con n + 1 incógnitas. La pregunta que surge es si este sistema tiene solución y si la tiene saber si es única. La respuesta la dá el siguiente teorema. Teorema 4.4 Si f es una función de valor real definida en un intervalo [a,b], entonces f tiene un único Trazador cúbico natural T en [a,b], o sea un trazador cúbico T que satisface las condiciones T ′′(a) = 0 y T ′′(b) = 0 . Demostración: Haciendo a = x 0 < x1 < ... < xn = b y usando las condiciones de frontera libre 2c 0 = p0′′ (a) = T ′′(a) y 2cn = pn′′−1(b) = T ′′(b) obtenemos c 0 = 0 y c n = 0 . Estas dos ecuaciones junto con las ecuaciones en (4.11) nos producen un sistema lineal AX = b de n + 1 ecuaciones con n + 1 incógnitas, donde 1 h0 0 A= ! 0 0 0 2(h 0 + h1 ) h1 0 0 " h1 0 2(h1 + h 2 ) h 2 " " " hn − 2 2(hn − 2 + hn −1 ) 0 0 0 0 0 ! , 0 h n −1 1 c0 c1 c 2 X= ! c n −1 cn Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 211 __________________________________________________________________________________ 0 3 3 a 2 − a1 ) − a1 − a 0 ) ( ( h1 h0 3 3 − − − a a a a ( ) ( ) 3 2 2 1 b= h2 h1 ! 3 3 a n − a n −1 ) − an −1 − an − 2 ) ( ( h n −1 hn − 2 0 Como se ve la matriz A de coeficientes de este sistema es tridiagonal estrictamente dominante diagonalmente por filas, en consecuencia el sistema dado tiene solución única para c 0 , c 1,..., c n . Conocidos los valores de c 0 , c 1,..., c n , podemos obtener los valores b 0 , b1,... bn−1 usando las ecuaciones (4.10) y los valores de d0 , d1,... dn−1 usando las ecuaciones (4.7), con lo cual se obtiene el único Trazador cúbico T(x) . ∇ También se tiene el siguiente resultado: Teorema 4.5 Si f está definida en [a,b], entonces f tiene un único Trazador cúbico T en [a,b], que satisface T ′(a) = f ′(a) y T ′(b) = f ′(b) . En este caso los valores de c 0 , c 1,..., c n se determinan encontrando la única solución del sistema tridiagonal AX = b , donde 2h 0 h0 0 A= ! 0 0 h0 2(h 0 + h1 ) h1 0 0 h1 0 " 2(h1 + h 2 ) h 2 " " " hn − 2 2(hn − 2 + hn −1 ) 0 h n −1 3 (a1 − a0 ) − 3f ′(a) h 0 3 3 (a2 − a1) − h (a1 − a0 ) h1 0 b= ! 3 3 (an−1 − an−2 ) h (an − an −1 ) − h n−2 n −1 3 − − 3 ′ f b a a ( ) h ( n n−1 ) n −1 0 0 0 ! , 0 h n −1 2hn −1 c0 c1 c 2 X= ! c n −1 cn 212 MÉTODOS NUMÉRICOS __________________________________________________________________________________ que tiene, como en el teorema anterior, matriz de coeficientes estrictamente dominante diagonalmente por filas. ∇ Conocidos los puntos (x 0 , f (x 0 )), (x 1, f (x 1 )),..., (x n , f (x n )) , Trazador cúbico para f en [x0 , xn ] , un algoritmo para encontrar un debe empezar por hacer: a k = f (x k ), k = 0, 1,..., n , calcular hk = x k +1 − x k , k = 0, 1,..., n − 1 , resolver el sistema AX = b correspondiente y obtener a k , b k , c k y dk , k = 0 , 1,..., n − 1 . Recuerde que para cada k = 0, 1,..., n − 1 , pk (x) = ak + bk (x − xk ) + c k (x − xk ) + dk (x − xk ) 2 3 es el polinomio interpolante para f en [xk , xk +1] . Ejemplo 4.5 Dada la función f definida por f (x) = 3 xe x − 2e x y la tabla siguiente: k xk 1.00 1.05 1.07 1.10 TABLA 4.4 0 1 2 3 f (xk ) 2.718282 3.286299 3.527609 3.905416 . ). Encontrar el Trazador cúbico natural T para f en [1.0,1.10] y usarlo para estimar f (103 Solución: Como los nodos x 0 , x 1, x 2 y x 3 no están igualmente espaciados, debemos empezar encontrando h 0 , h1 y h 2 : De acuerdo con los datos de la tabla, se tiene que h0 = x1 − x0 = .05, h1 = x2 − x1 = .02, h 2 = x3 − x2 = .03 Ahora, como p′′0 (x0 ) = 2c 0 = 0 y p2′′ (x3 ) = 2c 3 = 0 , entonces c 0 = 0 y c 3 = 0 , así que debemos resolver el siguiente sistema: c0 .05c 0 + 2(.07 )c1 + .02c 2 .02c 1 + 2(.05)c 2 + .03c 3 c3 La solución de este sistema es =0 3 (3.527609 − 3.286299) − 3 (3.286299 − 2.718282) .02 .05 3 = (3.905416 − 3.527609) − 3 (3.527609 − 3.286299) .03 .02 =0 = Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 213 __________________________________________________________________________________ c 0 = 0 , c1 = 13.22529 , c 2 = 13.19694 , c 3 = 0 Usando las ecuaciones (4.10), obtenemos . . b0 = 1113992 , b1 = 1180118 , b 2 = 12.32963 y usando las ecuaciones (4.7), obtenemos d0 = 88.16863 , d1 = −.4725490 , d2 = −146.6327 y como a 0 = 2.718282 , a1 = 3.286299 , a2 = 3.527609 (ya que a k = f (x k ), k = 0, 1,..., n ), entonces el Trazador cúbico natural T para f en [x0 , x3 ] es T:[x0 ,x3 ] → R x → T(x) = pk (x) = ak + bk (x − xk ) + c k (x − xk ) + dk (x − xk ) , 2 3 si x ∈[xk ,xk +1 ] , k = 0,1,2 siendo . . ) + 0(x − 100 . ) + 88.16863(x − 100 . ) , p 0 (x) = 2.718282 + 1113992 (x − 100 2 3 . . ) + 13.22529(x − 105 . ) − .4725490(x − 105 . ) , p1(x) = 3.286299 + 1180118 (x − 105 2 3 p 2 (x) = 3.527609 + 12.32963(x − 107 . ) + 13.19694(x − 107 . ) − 146.6327(x − 107 . ) 2 3 . ∈[10 . ,105 . ] , entonces Como x = 103 f (103 . ) ≈ T(103 . ) = p 0 (103 . ) . . − 100 . ) + 88.16863(103 . − 100 . ) = 2.718282 + 1113992 (103 3 = 3.054860. Instrucción en DERIVE: Dados los n + 1 puntos M:= [ [x0 , y 0 ],[x1, y1],...,[xn , yn ] ] : TRAZADOR( M ): Simplifica o aproXima en el Trazador cúbico natural correspondiente a los datos dados en la matriz M. El resultado es la matriz x , p 0 (x) , x , p1(x) ,..., x , pn −1(x) . [[ ][ ] [ ]] Después de aproximar el TRAZADOR( M ), se puede graficar el resultado, entrando los números xk y xk +1 , correspondientes a los extremos del dominio del polinomio pk (x) , para cada k, cuando DERIVE le solicite los valores Min y Max. Para el ejemplo anterior, tome la . , 2.718282],[105 . , 3.286299],[107 . , 3.527609 ],[110 . , 3.905416] y aproXime la matriz M:= [10 [ expresión TRAZADOR ( M ). ◊ ] 214 MÉTODOS NUMÉRICOS __________________________________________________________________________________ Como ejercicio use el polinomio interpolante de Newton para f en los datos dados en el . ) y compare el resultado con el obtenido usando el Trazador ejemplo 4.5, para estimar f (103 cúbico natural. ♦ Dados cuatro o menos puntos, sabemos que existe un único polinomio de grado tres o menor que interpola a los datos dados, así que usaremos Trazadores cúbicos cuando tengamos cinco o más puntos. Ejemplo 4.6 Determine todos los valores de a, b, c, d y e para los cuales la siguiente función es un Trazador cúbico a (x − 2)2 + b (x − 1)3 , x ∈ (− ∞,1] 2 T (x ) = c (x − 2) , x ∈ [1,3] 2 3 d (x − 2) + e (x − 3 ) , x ∈ [3,+∞ ) Además, determine los valores de los parámetros de modo que el trazador interpole la siguiente tabla x y 1.0 7.0 0 26.0 4.0 25.0 Solución: Para que T(x) sea un trazador cúbico en (−∞,+∞) , debe satisfacer: i) T(x) debe ser continua en todo punto de (−∞,+∞) , y como lo es en (−∞,1) , (1,3) y (3,+∞) , por ser polinómica en cada uno de estos intervalos, debemos imponer condiciones para que sea continua en los números 1 y 3. Debe tenerse que lim T(x) = T(1) = lim T(x) y x→1− x→1+ lim T(x) = T(1) = lim T(x) x→3 − x→ 3 + es decir, a(1 − 2) + b(1 − 1) = T(1) = c(1 − 2) 2 3 2 y c(3 − 2) = T(3) = d(3 − 2) + e(3 − 3 ) 2 2 3 o sea que debe tenerse a = c y c = d . ii) T(x) debe ser derivable en todo punto de (3,+∞) , (−∞,+∞) , y como lo es en (−∞,1) , (1,3) y por ser polinómica en cada uno de estos intervalos, debemos imponer condiciones para que sea derivable en los números 1 y 3, lo cual se tiene si T−′ (1) = T+′ (1) y T−′ (3) = T+′ (3) es decir, si 2a(1 − 2) + 3b(1 − 1) = 2c(1 − 2) y 2c(3 − 2) = 2d(3 − 2) + 3e(3 − 3 ) 2 2 Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 215 __________________________________________________________________________________ o sea, si −2a = −2c y 2c = 2d , o equivalentemente si a = c y c = d , que como vemos son las mismas condiciones obtenidas en i). iii) T(x) debe tener primera derivada continua en todo punto de (−∞,+∞) , y como la derivada es continua en (−∞,1) , (1,3) y (3,+∞) , por ser polinómica en cada uno de estos intervalos, sólo hay que considerar los casos x = 1 y x = 3 , es decir, debe tenerse T ′′(1) = 2a + 6b(1 − 1) = 2c y T ′′(3) = 2d + 6e(3 − 3) = 2c , o sea a = c y c = d . Hasta aquí, sin condiciones de interpolar una tabla de datos dada, los coeficientes a, b, c, d y e del Trazador cúbico T(x) , deben satisfacer a = c = d y b, e arbitrarios. Para que el Trazador cúbico interpole la tabla de datos dada, los parámetros a, b, c, d y e deben satisfacer las siguientes ecuaciones T(0 ) = a(0 − 2) + b(0 − 1) = 26 2 3 T(1) = a(1 − 2) + b(1 − 1) = c(1 − 2) = 7 2 3 2 T(4 ) = d(4 − 2) + e(4 − 3) = 25 2 3 lo que nos conduce al siguiente sistema lineal 4a − b = 26 a = c = 7 4d + e = 25 cuya solución es a = c = 7, b = 2 y e = −3 Pero de las condiciones obtenidas antes, se tiene que a = c = d , así que en definitiva el Trazador cúbico que interpola la tabla de datos dada es 7(x − 2)2 + 2(x − 1)3 , x ∈ (−∞,1] 2 T(x) = 7(x − 2) , x ∈[13 , ] 2 3 7(x − 2) − 3(x − 3) , x ∈[3,+∞) Es el Trazador cúbico obtenido un Trazador cúbico natural? Como T ′′(1) = 14 ≠ 0 , entonces el Trazador cúbico obtenido no es natural. ♦ 216 MÉTODOS NUMÉRICOS __________________________________________________________________________________ 4.3 AJUSTE DE UN POLINOMIAL) POLINOMIO POR MÍNIMOS CUADRADOS (REGRESIÓN Hasta ahora hemos estudiado el problema de aproximar una función y = f (x) por un polinomio interpolante a partir . (x 0 , f (x 0 )), (x 1, f (x 1 )),..., (x n , f (x n )) de una serie de datos conocidos En esta parte se estudiará el siguiente problema: Supongamos que existe una relación funcional y = f (x) entre dos cantidades x e y, con f desconocida y se conocen valores y k que aproximan a f (xk ) , es decir, f (x k ) = y k + ∈k , k = 0, 1,..., n con ∈k desconocido. Se trata de recuperar la función f a partir de los datos aproximados y k , k = 0, 1,..., n . Este problema se conoce como un problema de "ajuste de datos" o "ajuste de curvas" (caso discreto). Trabajaremos básicamente el caso en el que f es una función polinómica. Si f es una función polinómica, digamos f (x) = pm (x) , entonces el problema se convierte en: Dados n + 1 puntos (x 0 , y 0 ), (x 1, y 1 ),..., (x n , y n ) con x 0 , x 1,..., x n números reales distintos, se trata de encontrar un polinomio p m (x ) = a 0 + a1x + ... + a m x m , con m < n que "mejor se ajuste" a los datos. Lo de "mejor ajuste" se entenderá en el sentido de que n p m (x k ) − y k k = 0 ∑( 1 ) 22 sea mínimo, es decir, que n ∑ (p (x ) − y ) 2 m k k k =0 sea mínimo. Este criterio de mejor ajuste, como ya se mencionó antes, se conoce como mínimos cuadrados, y el método para obtener los polinomios que mejor se ajustan según mínimos cuadrados se llama Regresión polinomial. 4.3.1 Regresión polinomial: Supongamos que se conocen los datos (x 0 , y 0 ), (x 1, y1 ),..., (x n , y n ) , con x 0 , x 1,..., x n números distintos y se desea encontrar un polinomio Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 217 __________________________________________________________________________________ pm (x) = a 0 + a1x+...+ am xm , con m < n tal que S(a 0 , a1,..., am ) = n ∑( p m ( xk ) − y k k =0 n ) ∑ (a0 + a1xk + a2 xk2 +...+am xk m − yk ) 2 = 2 k =0 sea mínima. El grado m del polinomio pm (x) se puede escoger previamente con base en algún resultado teórico, alguna expectativa o por la aplicación que se le pretenda dar al polinomio. En cualquier caso estamos "libres" de elegir el grado que parezca mejor. En muchos casos el grado será uno y el polinomio obtenido se llamará la recta que mejor se ajusta o la recta de mínimos cuadrados para la tabla de datos. Volviendo a la función S (a 0 , a 1,..., a m ) , una condición necesaria para la existencia de un mínimo relativo de esta función es que las derivadas parciales de S (a 0 , a 1,..., a m ) con respecto a a j , j = 0,1,..., m sean cero. Resultan entonces las siguientes m + 1 ecuaciones lineales en las incógnitas a0 , a1,..., am : n ∑( ) ∂S = 2 a 0 + a1xk + a 2 xk2 +...+am xkm − y k = 0 ∂ a0 k =0 n ∑( ) ∂S m = 2 a 0 + a1xk + a 2 xk2 +...+ am xk − y k (xk ) = 0 ∂ a1 k = 0 n ∑( )( ) ∂S = 2 a 0 + a1xk + a 2 xk2 +...+am xkm − y k xk2 = 0 ∂ a2 k =0 ! ! n ∑( )( ) ∂S = 2 a 0 + a1xk + a 2 xk2 +...+am xkm − y k xkj = 0 ∂ a j k =0 ! ! n ∑( )( ) ∂S = 2 a 0 + a1xk + a 2 xk2 +...+am xkm − y k xm k =0 ∂ am k = 0 Si en las ecuaciones anteriores cancelamos el 2, desarrollamos los paréntesis y usamos que n ∑ a = (n + 1)a 0 k =0 0 , obtenemos 218 MÉTODOS NUMÉRICOS __________________________________________________________________________________ n n n m xk am = yk ... + k=0 k =0 (n + 1)a0 + ∑ xk a1 + k =0 ∑ ∑ n n n 2 n m +1 x a x a x a xk y k + + + = ... k 0 k 1 k m k =0 k =0 k =0 k =0 ∑ ∑ ∑ ∑ ! n j 1+ j m+ j x a x a ... x a xkj y k + + + = k 1 k 0 k m k =0 k =0 k =0 k =0 n n ∑ n ∑ ∑ ∑ ! n n 1+m n 2m n m x a x a ... x a xm + + + = k 0 k k m k yk 1 k =0 k =0 k =0 k =0 ∑ ∑ ∑ ∑ Este es un sistema de m + 1 ecuaciones lineales en las m + 1 incógnitas a 0 , a1,..., a m , que se llama sistema de ECUACIONES NORMALES. Este sistema de ecuaciones normales se puede escribir en forma simplificada como sigue: n m ∑a ∑x i i= 0 k =0 i+ j k n = ∑x y j k k , j = 0,1,..., m k =0 Estas ecuaciones se pueden reproducir a partir de pm (xk ) = a0 + a1xk +...+ am xm k = yk j multiplicando a ambos lados por xk , j = 0,1,..., m , +j = xkj y k a 0 xkj + a1x1k+ j +...+ am xm k y luego sumando sobre k n a0 ∑ k =0 xkj + a1 n ∑ k =0 x1k+ j +...+ am n ∑ k =0 +j = xm k m ∑x y j k k , j = 0,1,..., m k =0 La matriz de coeficientes del sistema de ecuaciones normales es simétrica y no singular, siempre que las xk , k = 0,1,..., n , sean distintas, por lo tanto el sistema tiene solución única. Aunque la matriz puede estar mal condicionada cuando m es grande. Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 219 __________________________________________________________________________________ Para ver que la matriz A de coeficientes del mostraremos que la matriz 1 x0 1 x1 B = ! ! 1 xn sistema de ecuaciones normales es no-singular, xm 0 m x1 ! m xn x 02 " x12 " ! xn2 " es tal que B TB = A y B tiene todas sus columnas linealmente independientes. En efecto: 1 x0 B TB = x 20 ! m x0 1 x1 x12 ! x1m n+1 n xk k 0 = B TB = n xk2 k =0 ! n xm k k =0 1 1 x0 " xn 1 x1 " xn2 ! ! ! 1 xn m " xn ( m +1) × ( n +1) " n n ∑x k =0 n ∑ ∑ ∑ ∑x ∑ n k xk2 k =0 n 3 k k =0 k =0 n 2 k ∑x 3 k ∑x 4 k k =0 n k =0 ! ∑x ∑x m +1 k k =0 n ! ∑x k =0 m+ 2 k x 02 " xm 0 m 2 x1 " x1 ! ! xn2 " xnm ( n +1) × ( m +1) k =0 n +1 " xm k k=0 n =A m+2 " xk k =0 ! n " xk2m ( m +1) × ( m +1) k=0 n " ∑x m k ∑ ∑ ∑ Ahora, las columnas de B son x20 xm x0 1 0 2 m x1 1 x1 x1 X0 = , X 1 = , X 2 = ,..., X m = con x0 , x1,..., xn distintos y m < n ! ! ! ! 2 m 1 xn x n xn Sean c 0 , c 1,..., c m ∈ R c 0 = c1 =... = c m = 0 . Como tales que c 0 X 0 + c1X 1 +...+ c m X m = 0 y veamos que 220 MÉTODOS NUMÉRICOS __________________________________________________________________________________ c 0 X 0 + c 1X 1 + c 2 X 2 + ... + c m X m x 02 xm x0 1 0 2 m x x x 1 = c 0 + c 1 1 + c 2 1 + ... + c m 1 ! ! ! ! x x2 xm 1 n n n c 0 + c 1x 0 + c 2 x 02 + ... + c m x m 0 0 2 m c 0 + c 1x 1 + c 2 x 1 + ... + c m x 1 0 = = ! ! c + c x + c x 2 + ... + c x m 0 1 n 2 n m n 0 entonces c 0 + c1x0 + c 2 x02 +...+ c m xm 0 =0 2 m c 0 + c1x1 + c 2 x1 +...+ c m x1 = 0 ! 2 m c 0 + c1xn + c 2 xn +...+c m xn = 0 y si qm (x) = c 0 + c1x + c 2 x 2 +...+ c m xm con m < n (4.12) y no todos los coeficientes nulos, entonces el sistema (4.12) dice que la ecuación polinómica qm (x) = 0 tiene por lo menos n raíces distintas x0 , x1,...., xn (m < n) , lo cual es imposible. Así que c 0 = c1 =... = c m = 0 y entonces las columnas de la matriz B son linealmente independientes, y usando el hecho de que rango de BT B = rango de B, entonces la matriz A = B TB es invertible, lo que implica que el sistema de ecuaciones normales tiene solución única. De este modo se garantiza la existencia de un único polinomio de ajuste según mínimos cuadrados, si x 0 , x1,..., xn son todos distintos. ∇ En el caso particular en que m = 1, p1(x) = a0 + a1x es la recta de mínimos cuadrados donde a 0 y a1 se obtienen resolviendo el sistema lineal de dos ecuaciones con dos incógnitas n n 0 n 1 a0 + a1 = x x yk k k k =0 k =0 k =0 # %$% & n+1 ∑ ∑ ∑ n n 1 n 2 a0 + a1 = x x xk y k k k k =0 k =0 k =0 ∑ ∑ ∑ (No se recomienda usar la regla de Cramer para resolver el sistema anterior, porque la regla de Cramer es fuertemente inestable) Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 221 __________________________________________________________________________________ Una manera de medir el error para estimar la bondad del ajuste según mínimos cuadrados, es a través de: n i) El error E = ∑ (p (x ) − y ) 2 m k k ,o k=0 ii) El error cuadrático medio E R M S n (p (x ) − y k )2 k =0 m k = n+1 ∑ 1 2 . Ejemplo 4.7 Dada la tabla siguiente k xk yk 0 1 2 3 0 2 3 5 TABLA 4.5 −1 0 2 1 1) Encuentre: a) La recta de mínimos cuadrados para la tabla y su error E y E R M S . b) La parábola de mínimos cuadrados para la misma tabla y su error E y E R M S . 2) Cuál será el polinomio cúbico de mínimos cuadrados para dicha tabla? Cuál es su error E y ER MS ? Solución: Para dar respuesta a la pregunta 1) debemos resolver dos sistemas de ecuaciones lineales: Para la parte a) la recta es p1(x) = a0 + a1x donde a 0 y a1 se obtienen resolviendo el sistema 3 3 3 1 0 a1 = + x a x yk 0 k k k = 0 k =0 k =0 3 3 3 2 1 a1 = + x a x xk y k 0 k k k=0 k =0 k = 0 ∑ ∑ ∑ ∑ ∑ (4.13) ∑ Para la parte b) la parábola es p 2 (x) = b 0 + b1x + b 2 x 2 donde b 0 , b1 y b 2 se determinan resolviendo el sistema 222 MÉTODOS NUMÉRICOS __________________________________________________________________________________ 3 0 3 1 x b xk b1 + + k 0 k =0 k =0 3 2 xk b 2 k =0 3 1 3 2 x b xk b1 + + k 0 k =0 k =0 3 3 xk b 2 k =0 3 3 3 2 xk b 0 + xk b1 + k =0 k=0 3 4 xk b 2 k =0 ∑ ∑ ∑ ∑ ∑ ∑ ∑ ∑ ∑ 3 = ∑y k k =0 3 = ∑x y (4.14) k k k =0 3 = ∑x y 2 k k k =0 Una manera conveniente de disponer todas las sumatorias necesarias para los dos sistemas es como se muestra en la siguiente tabla k xk xk2 xk3 xk4 yk xk y k xk2 y k 0 1 2 3 0 2 3 5 0 4 9 25 0 8 27 125 0 16 81 625 -1 0 2 1 0 0 6 5 0 0 18 25 10 38 160 722 2 11 43 3 ∑ k =0 TABLA 4.6 De modo que los sistemas (4.13) y (4.14) son 4a 0 + 10a1 = 2 10a 0 + 38a1 = 11 4b 0 + 10b1 + 38b 2 = 2 10b 0 + 38b1 + 160b 2 = 11 38b + 160b + 722b = 43 0 1 2 La solución del sistema (4.13') es a 0 = − (4.13') (4.14') 17 6 , a1 = , y la solución del sistema (4.14') es 26 13 15 101 1 , b1 = y b 2 = − . Luego la recta de mínimos cuadrados para los datos dados 13 78 6 6 x , y el polinomio cuadrático de mínimos cuadrados para los datos dados es p1(x) = − 17 + 26 13 15 101 1 es p 2 (x) = − + x − x2 . 13 78 6 b0 = − Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 223 __________________________________________________________________________________ , ,3 , llamados datos La TABLA 4.7 siguiente, muestra los valores de p1(xk ) y p 2 (xk ) , k = 0,12 suavizados, y las diferencias yk − p1(xk ) , yk − p2 (xk ) . xk 0 2 3 5 yk −1 0 2 1 − .654 .269 .731 1.65 − .346 − .269 1.27 − .65 . −115 .769 1.23 1.15 .15 − .769 .77 − .15 p1(xk ) yk − p1(xk ) p 2 ( xk ) y k − p 2 ( xk ) TABLA 4.7 El error para la recta de mínimos cuadrados es 3 E= . ) + (−.65) ∑ (p (x ) − y ) = (−.346) + (−.269) + (127 2 1 k 2 2 2 2 k ≈ 2.23 k=0 y el error cuadrático medio es ER M S . 3 (p (x ) − y k )2 k =0 1 k = 4 ∑ 1 2 1 2.23 2 ≈ ≈ .747 4 Análogamente, para la parábola de mínimos cuadrados se obtiene que 3 E= ∑ (p 2 (x k ) − y k )2 ≈ 1.23 y ER M S k =0 3 (p (x ) − y k )2 k =0 2 k = 4 ∑ 1 2 ≈ .555 Para la respuesta a la pregunta 2), recordemos que hay un único polinomio de grado menor o igual que tres que pasa por los cuatro puntos dados y es el polinomio de interpolación, así que el polinomio cúbico de mínimos cuadrados debe ser este polinomio. El polinomio de interpolación para los datos dados es . − 2.1x + p 3 (x) = −10 11 2 4 3 x − x 6 15 que se puede obtener usando, por ejemplo, diferencias divididas. Es claro que el error E = 0 y el error ERMS = 0 . 224 MÉTODOS NUMÉRICOS __________________________________________________________________________________ Un dibujo de los puntos dados, la recta, la parábola y el polinomio cúbico según mínimos cuadrados, se muestra en la FIGURA 4.3 siguiente. ♦ FIGURA 4.3 4.3.2 Regresión exponencial, logarítmica y de potencia: Aunque la regresión polinomial es la más usada, también hay casos de interés en los cuales la relación funcional entre las variables x y y es de alguno de los tipos siguientes: y = a + b ln x y = aebx y = ax b ( Regresión logarítmica ) ( Regresión exponencial ) (Regresión de potencia) (4.15) (4.16) (4.17) Estos problemas se tratan como un problema de ajuste lineal, así: En el caso (4.15), lineal entre las variables ln x e y; en el caso (4.16), como y = aebx ⇔ ln y = ln a + bx , se trata como un caso lineal entre las variables x y ln y ; en el caso (4.17), como y = axb ⇔ ln y = ln a + b ln x , se trata como un caso lineal entre las variables ln x y ln y . Las soluciones para a y b en el caso (4.15), para lna y b en los casos (4.16) y (4.17), pueden encontrarse modificando apropiadamente las ecuaciones obtenidas en el caso de regresión lineal. Debe tenerse en cuenta que la aproximación obtenida de esta manera no es la aproximación de mínimos cuadrados del problema inicial y que, incluso, esta aproximación puede, en algunos casos, diferir significativamente de la aproximación de mínimos cuadrados del problema original. Ejemplo 4.8 Encuentre la recta logarítmica y = a + b ln x para la siguiente tabla Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 225 __________________________________________________________________________________ k xk 0 1 2 3 4 yk 1.6 23.5 38.0 46.4 48.9 29 50 74 103 118 TABLA 4.8 y úsela para estimar el valor de y cuando x = 80 . Solución: Para encontrar los valores de a y b , hacemos zk = ln xk , k = 0,12 , ,3,4 , y resolvemos el siguiente sistema 4 4 zk b = yk 5a + k =0 k =0 4 4 4 2 + = z a z b zk y k k k k =0 k=0 k = 0 ∑ ∑ ∑ ∑ ∑ Para calcular los coeficientes a y b , modificamos los datos dados como se indica en la TABLA 4.9. Los datos suavizados, que aparecen en la última columna de la TABLA 4.9, se obtienen una vez que se conoce la recta logarítmica, que en este caso es . y = −111123688 + 34.019025lnx k xk zk = ln xk zk2 yk zk y k Datos suavizados 0 1 2 3 4 29 50 74 103 118 3.367296 3.912023 4.304065 4.634729 4.770685 11.338682 15.303924 18.524976 21.480713 22.759435 1.6 23.5 38.0 46.4 48.9 5.387674 91.932541 163.55447 215.051426 233.286497 3.428433 21.959520 35.29641 46.545273 51.170352 374 20.988798 89.40773 158.4 709.212608 4 ∑ k =0 TABLA 4.9 De acuerdo con la TABLA 4.9 el sistema a resolver es 5 a + 20.988798b = 158.4 20.988798 a + 89.40773b = 709.212608 La solución del sistema es . a = −111123688 b = 34.019025 . ERMS ≈ 1907944 226 MÉTODOS NUMÉRICOS __________________________________________________________________________________ . así que la recta logarítmica es y = −111123688 + 34.019025lnx . Si x = 80 , entonces . y = −111123688 + 34.019025ln80 = 37.835394 . ♦ Ejercicio 4.4 Encuentre la curva y = aebx usando mínimos cuadrados para la TABLA 4.10 siguiente. Úsela para calcular el valor de y cuando x = 16 . Cuál es el error E? xk 6.9 12.9 19.8 26.7 35.1 yk 21.4 15.7 12.1 8.5 5.2 TABLA 4.10 Ejercicio 4.5 Encuentre la curva y = axb usando mínimos cuadrados para la TABLA 4.11 siguiente y úsela para calcular el valor de y cuando x = 36 . Cuál es el error ? xk 28 30 33 35 38 yk −2410 −3033 −3895 −4491 −5717 TABLA 4.11 TALLER 4. 1. Use la forma de Lagrange del polinomio interpolante para encontrar los polinomios interpolantes más apropiados de grados uno, dos y tres para aproximar f (.2) , a partir de los siguientes datos x f (x) −.2 −.163746 .1 .110517 .3 .404958 .7 1.40963 2. Use la forma de Lagrange del polinomio interpolante y todos los datos de la tabla siguiente, . ) . La función que se está aproximando es f (x) = e x para aproximar f (125 2 −1 . Use esta información para encontrar una cota teórica para el error en esta aproximación. x f (x) 1.0 1.00000 1.1 1.23368 1.2 1.55271 1.3 1.99372 1.4 2.61170 3. Suponga que se desea construir una tabla de valores para la función f (x) = senx , en el π dominio 0, , con tamaño de paso h. Si se usa interpolación lineal con cada dos datos 2 consecutivos de la tabla, y suponemos que el error total, incluyendo el efecto de los −6 errores de redondeo en las entradas de la tabla, es a lo más de 10 . Cuál es el valor Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 227 __________________________________________________________________________________ más grande posible para h, y cuántas cifras decimales se deben usar para los datos de la tabla? 4. Demuestre que n ∑ L (x) = 1 para toda x j j= 0 donde cada L j (x) es el polinomio fundamental de Lagrange de grado n, correspondiente a n + 1 números x 0 , x 1,..., x n . Sugerencia: Considere la forma de Lagrange del polinomio interpolante de grado menor o igual que n para la función f (x) ≡ 1 . 5. Sea w(x) = n ∏ (x − x ) . Demuestre que el polinomio interpolante de grado menor o igual k k =0 que n para una función f en los nodos x 0 , x 1,..., x n , puede escribirse como f (x k ) n ∑ ( x − x )w ′ ( x ) pn (x) = w(x) k =0 k k 1 , − 5 ≤ x ≤ 5 , genere el polinomio interpolante pn (x) usando 1 + x2 n + 1 nodos igualmente espaciados en el intervalo [−5,5] . Calcule pn (x) para distintos 6. Para la función f (x) = valores de n y grafíquelos junto con Max f (x) − pn (x) → 0 cuando n → ∞? la función f. Es cierto que x∈[−5,5 ] 7. Encuentre un polinomio que tome los siguientes valores x y 1 3 2 2 0 −4 3 5 8. Encuentre las formas de Lagrange y de Newton del polinomio interpolante para los siguientes datos x 0 1 −2 0 1 −1 f (x) Escriba ambos polinomios en la forma a + bx + cx2 para verificar que éllos son idénticos. 228 MÉTODOS NUMÉRICOS __________________________________________________________________________________ 9. Use la forma deLagrange y la forma de Newton del polinomio interpolante para encontrar los polinomios interpolantes más apropiados de grado dos, para aproximar f (.4) y f (.6) a partir de los siguientes datos, y calcule la aproximación en cada caso x f (x) .1 11.052 10. Demuestre que si .3 4.4995 (z 0 , z1,..., zn ) .5 3.2974 1.0 2.7183 .7 2.8768 es una permutación de f [z0 ,z1,...,zn ] = f [x0 ,x1,..., xn ]. (x 0 , x 1,..., x n ) , entonces Sugerencia: Use la unicidad del polinomio interpolante. 11. Los siguientes datos son tomados de un polinomio de grado menor o igual que cinco. Cuál es dicho polinomio y cuál es su grado? −2 −5 x y −1 1 12. Verifique que el polinomio 0 1 1 1 2 7 3 25 p(x) = 2 − (x + 1) + x(x + 1) − 2x(x + 1)(x − 1) interpola los primeros cuatro puntos de la tabla siguiente: x y −1 2 0 1 1 2 2 −7 3 10 Adicionando únicamente un término al polinomio p(x) , encuentre un polinomio que interpole la tabla completa. 13. Encuentre el polinomio de menor grado que pasa por los puntos (12 , ) , (21 , ) , (3,12) y (7,146) . 14. Un vehículo que viaja en una carretera recta es cronometrado en algunos puntos. Los datos de las observaciones se dan en la siguiente tabla donde el tiempo está dado en segundos y la distancia en metros Tiempo Distancia 0 0 3 225 5 383 8 623 Encuentre el polinomio que interpola estos datos y úselo para aproximar la distancia, la velocidad y la aceleración del vehículo a los seis segundos. Capítulo 4. INTERPOLACIÓN POLINOMIAL Y AJUSTE POLINOMIAL 229 __________________________________________________________________________________ 15. Determine todos los valores de a, b y c tales que 3 + x − 9x 3 , T (x ) = a + b (x − 1) + c (x − 1)2 + d (x − 1)3 , x ∈ [0,1] x ∈ [1,2] es un Trazador cúbico con nodos 0, 1, 2. Ahora, determine el valor de d tal que 2 ∫ [T ′′(x)] dx 2 0 sea mínima. Finalmente, encuentre el valor de d que haga de T un Trazador cúbico natural en [0,2] , y explique por qué este valor es distinto del obtenido previamente. 16. Determine si el Trazador cúbico natural que interpola la siguiente tabla xk 0 1 2 3 yk 1 1 0 10 es o no la función 1 + x − x3 , 2 3 T(x) = 1 − 2(x − 1) − 3(x − 1) + 4(x − 1) , 2 3 4(x − 2) + 9(x − 2) − 3(x − 2) , x ∈[0,1] x ∈[1,2] x ∈[2,3] 17. Determine si la siguiente función es un Trazador cúbico natural 2(x + 1) + (x + 1)3 , T(x) = 3 + 5 x + 3 x 2 , 2 3 11 + 11(x − 1) + 3(x − 1) − (x − 1) , x ∈[−10 , ] x ∈[0,1] x ∈[12 , ] 18. Cuáles propiedades de un Trazador cúbico natural posee la siguiente función y cuáles no? (x + 1) + (x + 1)3 , T(x) = 3 4 + (x − 1) + (x − 1) , x ∈[−10 , ] x ∈[0,1] 230 MÉTODOS NUMÉRICOS __________________________________________________________________________________ 19. Determine los coeficientes a, b, c y d tales que la función 1 − 2 x, S(x) = a + bx + cx2 + dx 3 , 157 − 32x, x ∈ (−∞,−3] x ∈[−3,4] x ∈[4,+∞) es un Trazador cúbico natural para el intervalo [−3,4] . 20. Se pueden definir a y b de modo que la función (x − 2)3 + a(x − 1)2 , x ∈ (−∞,2] 3 2 T(x) = (x − 2) − (x − 3 ) , x ∈[2,3 ] 3 2 (x − 3) + b(x − 2) , x ∈[3,+∞) sea un Trazador cúbico natural en (−∞,+∞) ? Por qué sí o por qué no? 21. Qué valores de a, b, c y d hacen de la siguiente función un Trazador cúbico? x3 , , ] x ∈[−10 T(x) = 2 3 a + bx + cx + dx , x ∈[0,1] b 22. Construya la aproximación de mínimos cuadrados de la forma y = ax para la siguiente tabla, y calcule su error E. xk 4.0 4.2 4.5 4.7 yk 102.56 113.18 130.11 142.05 bx 23. Encuentre la curva y = ae que mejor se ajusta según mínimos cuadrados a la siguiente tabla de datos y calcule su error ERMS . xk 1.0 2.0 2.5 3.0 yk . −1108 . −8190 −222.6 −605.1