Derivación Numérica CAPITULO 9 DERIVACION NUMERICA 1. Introducción 2. Derivación numérica 3. Métodos de diferencias finitas 3.1. Formulas de diferencias finitas hacia adelante 3.1.1. Primera diferencia 3.1.2. Segunda diferencia Ejemplo 1 3.2. Formulas de diferencias finitas hacia atrás 3.2.1. Primera diferencia 3.2.2. Segunda diferencia Ejemplo 2 3.3. Formulas de diferencias centrales 3.3.1. Primera diferencia 3.3.2. Segunda diferencia Ejemplo 3 4. Inestabilidad numérica de las formulas de diferencias finitas 4.1. Diferencias centrales Derivación numérica por diferencia centrada de orden 𝑂(ℎ2 ) Fórmulas de las diferencias centradas de los tres puntos Derivación numérica por diferencia centrada de orden 𝑂(ℎ4 ) Fórmula de los tres puntos Fórmula de los cinco puntos Ejercicios resueltos Ejercicios de fijación Cálculo Numérico – Lic. R. Riveros 1 Derivación Numérica 2 CAPÍTULO 9 DERIVACIÓN NUMÉRICA Introducción La derivada es de uso común en la matemática y la ingeniería, sin embargo, en la práctica, de muchas funciones con las que se trabaja, no se conoce su expresión analítica y solamente se dispone de valores en un conjunto de puntos. En algunos casos es necesario proceder a calcular el valor de alguna derivada de algunas funciones en un punto concreto. En este tipo de situaciones no se puede utilizar el concepto riguroso de derivada por desconocimiento de la expresión de la función. De esta manera surge la necesidad de diseñar métodos numéricos que permitan aproximar el valor de las derivadas de una función en algún punto a partir del conocimiento de los valores de la función en un soporte dado. Los métodos de derivación numérica desarrollados con el fin de aproximar algún valor buscado, muestran un buen comportamiento en numerosos casos. Es por ello que algunas veces, aun disponiendo de la expresión analítica de las funciones a derivar, se opta por aproximar los valores de las derivadas mediante fórmulas numéricas suficientemente precisas. La diferenciación numérica es muy útil en casos en los cuales se tiene una función cuya derivada es difícil o complicada de hallar, o en casos en los cuales no se tiene una función explícita sino una serie de datos experimentales. El problema de la derivación numérica consiste en la evaluación de la derivada de la función en un punto, cuando únicamente conocemos los valores de la función en una colección de puntos x0, x1,... xn. Aunque, en apariencia se trata de un problema similar al de la Integración numérica; de hecho la derivación es más complicada ya que, en la integración los errores tienden a cancelarse, y, como vimos, no necesitamos que la aproximación describa con fidelidad la función localmente. Sin embargo, la derivada es una propiedad esencialmente local, por lo cuál deberemos aproximar la función lo más fielmente posible en el entorno inmediato del punto en el que la queramos calcular. Las fórmulas de derivación numérica aparecen en el desarrollo de algoritmos para la solución de problemas de contorno en ecuaciones diferenciales ordinarias (y en ecuaciones en derivadas parciales). En general, podemos obtener aproximaciones numéricas de la derivada en un punto derivando alguna función interpolante, por ejemplo un polinomio de Lagrange, algún trazador cúbico, etc. Sin embargo, en la práctica pequeños errores en los datos pueden producir malos resultados en las derivadas. Aquí vamos a experimentar con fórmulas que se obtienen derivando el polinomio interpolante de Lagrange. Cálculo Numérico – Lic. R. Riveros Derivación Numérica 3 Derivación numérica 𝑓(𝑥) Secante 𝑓(𝑥0 + ℎ) 𝑓(𝑥0 ) 𝑥0 (𝑥0 + ℎ) Por definición la derivada de una función f(x) es: 𝑓(𝑥 + ℎ) − 𝑓(𝑥) ℎ→0 ℎ 𝑓 ′ (𝑥) = lim Las posibles aproximaciones numéricas de la derivada en un punto que podrían calcularse tomando una sucesión {ℎ𝑘 }, Tal que {ℎ𝑘 } → 0, se tienen las siguientes expresiones. Diferencia hacia adelante: 𝑓 ′ (𝑥0 ) ≈ 𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 ) ℎ Diferencia hacia atrás: 𝑓 ′ (𝑥0 ) ≈ 𝑓(𝑥0 ) − 𝑓(𝑥0 − ℎ) ℎ La aproximación de la derivada por este método entrega resultados aceptables con un determinado error. Para minimizar los errores se estima que el promedio de ambas entrega la mejor aproximación numérica al problema dado. Método de Diferencias Finitas El método de diferencias finitas consiste en aproximar la función por polinomios. Las fórmulas resultantes pueden clasificarse de las siguientes maneras: a) En base al orden de la derivada, obteniéndose 𝑓 ′ (𝑥0 ), 𝑓 ′′ (𝑥0 ), 𝑓 ′′′ (𝑥0 ), … , 𝑓 𝑛 (𝑥0 ) b) En base al orden de la diferencia, pueden ser primera, segunda, tercera, etc. c) En base a los puntos de apoyo de la formula en la tabla, es decir, si se emplean puntos antes, después o ambos lados de algún punto de interés. Existen tres tipos y son: 1) Diferencias hacia adelante, cuando se usan puntos anteriores del punto de interés. Cálculo Numérico – Lic. R. Riveros Derivación Numérica 4 2) Diferencias hacia atrás, cuando se emplean puntos posteriores al punto de interés. 3) Diferencias centrales. Cuando se usan puntos tanto antes como después del punto de interés. Referencias para las fórmulas de diferencias finitas: 𝑥0 : Indica el punto de interés, de estudio o de análisis. ℎ: Espaciamiento constante de la tabla. 𝑓(𝑥0 ): Función evaluada en el punto de análisis. 𝑓(𝑥0+1 ) = 𝑓(𝑥0 + ℎ) y 𝑓(𝑥0−1 ) = 𝑓(𝑥0 − ℎ) 𝑓(𝑥0+𝑛 ) = 𝑓(𝑥0 + 𝑛ℎ) y 𝑓(𝑥0−𝑛 ) = 𝑓(𝑥0 − 𝑛ℎ) Fórmulas de diferencias finitas hacia adelante Primera diferencia 𝑓′(𝑥0 ) = 𝑓(𝑥0+1 ) − 𝑓(𝑥0 ) ℎ 𝑓′′(𝑥0 ) = 𝑓(𝑥0+2 ) − 2𝑓(𝑥0+1 ) + 𝑓(𝑥0 ) ℎ2 𝑓′′′(𝑥0 ) = 𝑓(𝑥0+3 ) − 3𝑓(𝑥0+2 ) + 3𝑓(𝑥0+1 ) − 𝑓(𝑥0 ) ℎ3 𝑓 𝑖𝑣 (𝑥0 ) = 𝑓(𝑥0+4 ) − 4𝑓(𝑥0+3 ) + 6𝑓(𝑥0+2 ) − 4𝑓(𝑥0+1 ) + 𝑓(𝑥0 ) ℎ4 Segunda diferencia 𝑓′(𝑥0 ) = −𝑓(𝑥0+2 ) + 4𝑓(𝑥0+1 ) − 3𝑓(𝑥0 ) 2ℎ 𝑓′′(𝑥0 ) = −𝑓(𝑥0+3 ) + 4𝑓(𝑥0+2 ) − 5𝑓(𝑥0+1 ) + 2𝑓(𝑥0 ) ℎ2 𝑓′′′(𝑥0 ) = −3𝑓(𝑥0+4 ) + 14𝑓(𝑥0+3 ) − 24𝑓(𝑥0+2 ) + 18𝑓(𝑥0+1 ) − 5𝑓(𝑥0 ) 2ℎ3 𝑓 𝑖𝑣 (𝑥0 ) = −2𝑓(𝑥0+5 ) + 11𝑓(𝑥0+4 ) − 24𝑓(𝑥0+3 ) + 26𝑓(𝑥0+2 ) − 14𝑓(𝑥0+1 )3𝑓(𝑥0 ) ℎ4 Ejemplo 9.1. Sea la función ln 𝑥, calcular las derivadas por métodos numéricos en el punto 𝑥 = 5, en base a la siguiente tabla, con ℎ = 0.1, aplicando la formula de la primera diferencia finita hacia adelante. 𝑥 4.7 4.8 4.9 5.0 5.1 Cálculo Numérico – Lic. R. Riveros 5.2 5.3 Derivación Numérica 5 𝑓(𝑥) 1.54756 1.56862 1.58922 1.60944 1.62924 1.64866 1.6677 Solución: Para 𝑓(𝑥) = 𝑙𝑛 𝑥. El valor verdadero de 𝑓 ′ (5) = 𝟎. 𝟐 𝑦 𝑓 ′′ (5) = −𝟎. 𝟎𝟒 𝑓′(𝑥0 ) = 𝐸𝑟 = | 𝑓(𝑥0+1 ) − 𝑓(𝑥0 ) 𝑓(5.1) − 𝑓(5) 1.62924 − 1.60944 = = = 𝟎. 𝟏𝟗𝟖 ℎ 0.1 0.1 𝑉𝑣 − 𝑉𝑎 0.2 − 0.198 |=| | = 0.01, 𝐸% = |𝐸𝑟 × 100%| = (0.01) × 100% = 1% 𝑉𝑣 0.2 Segunda derivada 𝑓 ′′ (𝑥0 ) = 𝑓 ′′ (𝑥0 ) 𝐸𝑟 = | 𝑓(𝑥0+2 ) − 2𝑓(𝑥0+1 ) + 𝑓(𝑥0 ) 𝑓(5.2) − 2𝑓(5.1) + 𝑓(5) = ℎ2 (0.1)2 1.64866 − 2(1.62924) + 1.60944 3.8 × 10−4 = = = −𝟎. 𝟎𝟑𝟖 0.01 0.01 𝑉𝑣 − 𝑉𝑎 −0.04 − (−0.038) |=| | = 0.05, 𝐸% = |𝐸𝑟 × 100%| = (0.05) × 100% = 5% 𝑉𝑣 −0.04 Ejemplo 9.2. Sea la función ln 𝑥, calcular las derivadas por métodos numéricos en el punto 𝑥 = 5, en base a la siguiente tabla, con ℎ = 0.1, aplicando la formula de la segunda diferencia finita hacia adelante. 𝑥 4.7 4.8 4.9 5.0 5.1 5.2 5.3 𝑓(𝑥) 1.54756 1.56862 1.58922 1.60944 1.62924 1.64866 1.6677 Solución: Para 𝑓(𝑥) = 𝑙𝑛 𝑥. El valor verdadero de 𝑓 ′ (5) = 𝟎. 𝟐 𝑦 𝑓 ′′ (5) = −𝟎. 𝟎𝟒 Primera derivada 𝑓′(𝑥0 ) = −𝑓(𝑥0+2 ) + 4𝑓(𝑥0+1 ) − 3𝑓(𝑥0 ) −𝑓(5.2) + 4𝑓(5.1) − 3𝑓(5) = 2ℎ 2(0.1) 𝑓′(𝑥0 ) = −1.64866 + 4(1.62924) − 3(1.60944) −1.64866 + 6.51696 − 4.82832 = 0.2 0.2 𝑓′(𝑥0 ) = 0.03998 = 𝟎. 𝟏𝟗𝟗𝟗 0.2 Cálculo Numérico – Lic. R. Riveros Derivación Numérica 𝐸𝑟 = | 6 𝑉𝑣 − 𝑉𝑎 0.2 − 0.1999 |=| | = 1 × 10−4 , 𝐸% = |1 × 10−4 × 100%| = 0.01% 𝑉𝑣 0.2 Segunda derivada 𝑓′′(𝑥0 ) = −𝑓(𝑥0+3 ) + 4𝑓(𝑥0+2 ) − 5𝑓(𝑥0+1 ) + 2𝑓(𝑥0 ) ℎ2 𝑓′′(𝑥0 ) = −𝑓(5.3) + 4𝑓(5.2) − 5𝑓(5.1) + 2𝑓(5) (0.1)2 𝑓′′(𝑥0 ) = −1.6677 + 4(1.64866) − 5(1.62924) + 2(1.60944) 0.01 𝑓 ′′(𝑥0 ) 𝐸𝑟 = | −1.6677 + 6.59464 − 8.1462 + 3.21888 −3.8 × 10−4 = = = −𝟎. 𝟎𝟑𝟖 0.01 0.01 𝑉𝑣 − 𝑉𝑎 −0.04 − (−0.038) |=| | = 0.05, 𝐸% = |0.05 × 100%| = 𝟓% 𝑉𝑣 −0.04 Comentarios: La aproximación lograda presenta errores muy elevados, pues 1% para la primera derivada y 5% para la segunda derivada, en la primera diferencia hacia adelante es prácticamente intolerable en un cálculo de este tipo. En la segunda diferencia de este mismo método (diferencias finitas hacia adelante) presenta igualmente un error elevado del 0.01% para la primera derivada, que parecería un resultado bastante aceptable, sin embargo esto es debido a la inestabilidad del método, y para la segunda derivada el error es del 5%, valor igual obtenido con la aplicación de la primera diferencia. Los resultados obtenidos por este método son engañosos, por la inestabilidad que presentan debido a la simplicidad de su forma y a los parámetros reducidos considerados para el cálculo. Si el resultado procurado necesita de cierta exactitud respecto del valor real, este método no es recomendable, ya que casi aleatoriamente puede presentar buena precisión en algunos casos, mientras que en otros producir errores muy grandes. Fórmulas de diferencias finitas hacia atrás Primera diferencia 𝑓′(𝑥0 ) = 𝑓(𝑥0 ) − 𝑓(𝑥0−1 ) ℎ 𝑓′′(𝑥0 ) = 𝑓(𝑥0 ) − 2𝑓(𝑥0−1 ) + 𝑓(𝑥0−2 ) ℎ2 𝑓′′′(𝑥0 ) = 𝑓(𝑥0 ) − 3𝑓(𝑥0−1 ) + 3𝑓(𝑥0−2 ) − 𝑓(𝑥0−3 ) ℎ3 Cálculo Numérico – Lic. R. Riveros Derivación Numérica 𝑓 𝑖𝑣 (𝑥0 ) = 7 𝑓(𝑥0 ) − 4𝑓(𝑥0−1 ) + 6𝑓(𝑥0−2 ) − 4𝑓(𝑥0−3 ) + 𝑓(𝑥0−4 ) ℎ4 Segunda diferencia 𝑓′(𝑥0 ) = 3𝑓(𝑥0 ) − 4𝑓(𝑥0−1 ) + 𝑓(𝑥0−2 ) 2ℎ 𝑓′′(𝑥0 ) = 2𝑓(𝑥0 ) − 5𝑓(𝑥0−1 ) + 4𝑓(𝑥0−2 ) − 𝑓(𝑥0−3 ) ℎ2 𝑓′′′(𝑥0 ) = 5𝑓(𝑥0 ) − 18𝑓(𝑥0−1 ) + 24𝑓(𝑥0−2 ) − 14𝑓(𝑥0−3 ) + 3𝑓(𝑥0−4 ) 2ℎ3 𝑓 𝑖𝑣 (𝑥0 ) = 3𝑓(𝑥0 ) − 14𝑓(𝑥0−1 ) + 26𝑓(𝑥0−2 ) − 24𝑓(𝑥0−3 ) + 11𝑓(𝑥0−4 ) − 2𝑓(𝑥0−5 ) ℎ4 Ejemplo 9.3. Sea la función ln 𝑥, calcular las derivadas por métodos numéricos en el punto 𝑥 = 5, en base a la siguiente tabla, con ℎ = 0.1, aplicando la formula de la primera diferencia finita hacia atrás. 𝑥 4.7 4.8 4.9 5.0 5.1 5.2 5.3 𝑓(𝑥) 1.54756 1.56862 1.58922 1.60944 1.62924 1.64866 1.6677 Solución: Para 𝑓(𝑥) = 𝑙𝑛 𝑥. El valor verdadero de 𝑓 ′ (5) = 𝟎. 𝟐 𝑦 𝑓 ′′ (5) = −𝟎. 𝟎𝟒 Diferencias finitas hacia atrás (primera diferencia) Primera derivada 𝑓′(𝑥0 ) = 𝐸𝑟 = | 𝑓(𝑥0 ) − 𝑓(𝑥0−1 ) 𝑓(5) − 𝑓(4.9) 1.60944 − 1.58922 = = = 𝟎. 𝟐𝟎𝟐𝟐 ℎ 0.1 0.1 𝑉𝑣 − 𝑉𝑎 0.2 − 0.2022 |=| | = 0.011, 𝐸% = |𝐸𝑟 × 100%| = (0.011) × 100% = 𝟏. 𝟏% 𝑉𝑣 0.2 Segunda derivada 𝑓′′(𝑥0 ) = 𝑓(𝑥0 ) − 2𝑓(𝑥0−1 ) + 𝑓(𝑥0−2 ) 𝑓(5) − 2𝑓(4.9) + 𝑓(4.8) = ℎ2 (0.1)2 𝑓′′(𝑥0 ) = 𝐸𝑟 = | 1.60944 − 2(1.58922) + 1.56862 −3.8 × 10−4 = = −𝟎. 𝟎𝟑𝟖 0.01 0.01 𝑉𝑣 − 𝑉𝑎 −0.04 − (−0.038) |=| | = 0.05, 𝐸% = |𝐸𝑟 × 100%| = (0.05) × 100% = 𝟓% 𝑉𝑣 −0.04 Cálculo Numérico – Lic. R. Riveros Derivación Numérica 8 Ejemplo 9.4. Sea la función ln 𝑥, calcular las derivadas por métodos numéricos en el punto 𝑥 = 5, en base a la siguiente tabla, con ℎ = 0.1, aplicando la formula de la segunda diferencia finita hacia atrás. 𝑥 4.7 4.8 4.9 5.0 5.1 5.2 5.3 𝑓(𝑥) 1.54756 1.56862 1.58922 1.60944 1.62924 1.64866 1.6677 Solución: Para 𝑓(𝑥) = 𝑙𝑛 𝑥. El valor verdadero de 𝑓 ′ (5) = 𝟎. 𝟐 𝑦 𝑓 ′′ (5) = −𝟎. 𝟎𝟒 3𝑓(𝑥0 ) − 4𝑓(𝑥0−1 ) + 𝑓(𝑥0−2 ) 3𝑓(5) − 4𝑓(4.9) + 𝑓(4.8) = 2ℎ 2(0.1) 𝑓′(𝑥0 ) = 𝑓 ′(𝑥0 ) = 𝐸𝑟 = | 3(1.60944) − 4(1.58922) + 1.56862) 0.04006 = = 𝟎. 𝟐𝟎𝟎𝟑 0.2 0.2 𝑉𝑣 − 𝑉𝑎 0.2 − 0.2003 |=| | = 0.0015, 𝐸% = |0.0015 × 100%| = 𝟎. 𝟏𝟓% 𝑉𝑣 0.2 𝑓′′(𝑥0 ) = 𝑓 ′′(𝑥0 ) = 𝐸𝑟 = | 2𝑓(𝑥0 ) − 5𝑓(𝑥0−1 ) + 4𝑓(𝑥0−2 ) − 𝑓(𝑥0−3 ) 2𝑓(5) − 5𝑓(4.9) + 4𝑓(4.8) − 𝑓(4.7) = ℎ2 (0.1)2 2(1.60944) − 5(1.58922) + 4(1.56862) − 1.54756 −3 × 10−4 = = −𝟎. 𝟎𝟑 0.01 0.001 𝑉𝑣 − 𝑉𝑎 −0.04 − (−0.03) |=| | = 0.25, 𝐸% = |0.25 × 100%| = 𝟐𝟓% 𝑉𝑣 −0.04 Comentarios: La aproximación presentada por este método de diferencias hacia atrás presenta resultados muy parecidos al método de diferencias hacia adelante; sin embargo para la segunda derivada se nota que el error producido es del 25%, totalmente intolerable en un cálculo donde normalmente se pretende precisión y exactitud. Los resultados obtenidos por este método son igualmente engañosos, debido también a la inestabilidad del método. Cálculo Numérico – Lic. R. Riveros Derivación Numérica 9 Fórmulas de diferencias finitas centrales Primera diferencia 𝑓′(𝑥0 ) = 𝑓(𝑥0+1 ) − 𝑓(𝑥0−1 ) 2ℎ 𝑓′′(𝑥0 ) = 𝑓(𝑥0+1 ) − 2𝑓(𝑥0 ) + 𝑓(𝑥0−1 ) ℎ2 𝑓′′′(𝑥0 ) = 𝑓(𝑥0+2 ) − 2𝑓(𝑥0+1 ) + 2𝑓(𝑥0−1 ) − 𝑓(𝑥0−2 ) 2ℎ3 𝑓 𝑖𝑣 (𝑥0 ) = 𝑓(𝑥0+2 ) − 4𝑓(𝑥0+1 ) + 6𝑓(𝑥0 ) − 4𝑓(𝑥0−1 ) + 𝑓(𝑥0−2 ) ℎ4 Segunda diferencia 𝑓′(𝑥0 ) = −𝑓(𝑥0+2 ) + 8𝑓(𝑥0+1 ) − 8𝑓(𝑥0−1 ) + 𝑓(𝑥0−2 ) 12ℎ 𝑓′′(𝑥0 ) = −𝑓(𝑥0+2 ) + 16𝑓(𝑥0+1 ) − 30𝑓(𝑥0 ) + 16𝑓(𝑥0−1 ) − 𝑓(𝑥0−2 ) 12ℎ2 𝑓′′′(𝑥0 ) = −𝑓(𝑥0+3 ) + 8𝑓(𝑥0+2 ) − 12𝑓(𝑥0+1 ) + 12𝑓(𝑥0−1 ) − 8𝑓(𝑥0−2 ) + 𝑓(𝑥0−3 ) 8ℎ3 𝑓 4 (𝑥0 ) = −𝑓(𝑥0+3 ) + 12𝑓(𝑥0+2 ) − 39𝑓(𝑥0+1 ) + 56𝑓(𝑥0 ) − 39𝑓(𝑥0−1 ) + 12𝑓(𝑥0−2 ) − 𝑓(𝑥0−3 ) 6ℎ4 Ejemplo 9. 5. Sea la función ln 𝑥, calcular las derivadas por métodos numéricos en el punto 𝑥 = 5, en base a la siguiente tabla, con ℎ = 0.1, aplicando la formula de la primera diferencia finita central. 𝑥 4.7 4.8 4.9 5.0 5.1 5.2 5.3 𝑓(𝑥) 1.54756 1.56862 1.58922 1.60944 1.62924 1.64866 1.6677 Solución: Para 𝑓(𝑥) = 𝑙𝑛 𝑥. El valor verdadero de 𝑓 ′ (5) = 𝟎. 𝟐 𝑦 𝑓 ′′ (5) = −𝟎. 𝟎𝟒 Primera derivada 𝑓′(𝑥0 ) = 𝐸𝑟 = | 𝑓(𝑥0+1 ) − 𝑓(𝑥0−1 ) 𝑓(5.1) − 𝑓(4.9) 1.62924 − 1.58922 0.04002 = = = = 0.2001 2ℎ 2(0.1) 0.2 0.2 𝑉𝑣 − 𝑉𝑎 0.2 − 0.2001 |=| | = 5 × 10−4 , 𝐸% = |𝐸𝑟 × 100%| = 𝟎. 𝟎𝟓% 𝑉𝑣 0.2 Cálculo Numérico – Lic. R. Riveros Derivación Numérica 10 Segunda derivada 𝑓′′(𝑥0 ) = 𝑓 ′′(𝑥0 ) = 𝐸𝑟 = | 𝑓(𝑥0+1 ) − 2𝑓(𝑥0 ) + 𝑓(𝑥0−1 ) 𝑓(5.1) − 2𝑓(5) + 𝑓(4.9) = ℎ2 (0.1)2 1.62924 − 2(1.60944) + 1.58922 1.62924 − 3.21888 + 1.58922 = = −𝟎. 𝟎𝟒𝟐 0.01 0.01 𝑉𝑣 − 𝑉𝑎 −0.04 − (−0.042) |=| | = 0.05, 𝐸% = |𝐸𝑟 × 100%| = (0.05) × 100% = 𝟓% 𝑉𝑣 −0.04 Ejemplo 9. 6. Sea la función ln 𝑥, calcular las derivadas por métodos numéricos en el punto 𝑥 = 5, en base a la siguiente tabla, con ℎ = 0.1, aplicando la formula de la segunda diferencia finita central. Primera derivada 𝑓′(𝑥0 ) = −𝑓(𝑥0+2 ) + 8𝑓(𝑥0+1 ) − 8𝑓(𝑥0−1 ) + 𝑓(𝑥0−2 ) 12ℎ 𝑓′(𝑥0 ) = −𝑓(5.2) + 8𝑓(5.1) − 8𝑓(4.9) + 𝑓(4.8) 12(0.1) 𝑓′(𝑥0 ) = −1.64866 + 13.03392 − 12.71376 + 1.56862 0.24012 = = 𝟎. 𝟐𝟎𝟎𝟏 1.2 1.2 𝐸𝑟 = | 𝑉𝑣 − 𝑉𝑎 0.2 − 0.2001 |=| | = 5 × 10−4 , 𝐸% = |5 × 10−4 × 100%| = 𝟎. 𝟎𝟓% 𝑉𝑣 0.2 Segunda derivada 𝒂) 𝑓′′(𝑥0 ) = −𝑓(𝑥0+2 ) + 16𝑓(𝑥0+1 ) − 30𝑓(𝑥0 ) + 16𝑓(𝑥0−1 ) − 𝑓(𝑥0−2 ) 12ℎ2 𝑓′′(𝑥0 ) = −𝑓(5.2) + 16𝑓(5.1) − 30𝑓(5) + 16𝑓(4.9) − 𝑓(4.8) 12 × (0.1)2 𝑓′′(𝑥0 ) = −1.64866 + 16(1.62924) − 30(1.60944) + 16(1.58922) − (1.56862) 0.12 Cálculo Numérico – Lic. R. Riveros Derivación Numérica 𝑓′′(𝑥0 ) = 𝐸𝑟 = | 11 −1.64866 + 26.06784 − 48.2772 + 25.42752 − 1.56862 8.8 × 10−4 = = 0.0073 0.12 0.12 𝑉𝑣 − 𝑉𝑎 −0.04 − 0.0073 |=| | = 1.1825, 𝐸% = |𝐸𝑟 × 100%| = 𝟏𝟏𝟖. 𝟐𝟓% 𝑉𝑣 −0.04 b) Se buscará de nuevo la derivada segunda, pero con un valor de h menor que el anterior, reduciendo dicha amplitud o peso de h a la mitad, o sea: de ℎ = 0.1 a ℎ = 0.05 𝑥 4.85 4.90 4.95 5.00 5.05 5.10 5.15 𝑓(𝑥) 1.578979 1.589235 1.599388 1.60944 1.619388 1.62924 1.638997 𝑓′′(𝑥0 ) = −𝑓(𝑥0+2 ) + 16𝑓(𝑥0+1 ) − 30𝑓(𝑥0 ) + 16𝑓(𝑥0−1 ) − 𝑓(𝑥0−2 ) 12ℎ2 𝑓′′(𝑥0 ) = −𝑓(5.1) + 16𝑓(5.05) − 30𝑓(5.00) + 16𝑓(4.95) − 𝑓(4.90) 12(0.05)2 𝑓′′(𝑥0 ) = −1.62924 + 16(1.619388) − 30(1.60944) + 16(1.599388) − 𝑓(1.589235) 0.03 −1.62924 + 25.9102 − 48.2832 + 25.5902 − 1.589235 = 0.03 −1.275 × 10−3 ) 𝑓′′(𝑥0 = = −0.0425 0.03 𝑓′′(𝑥0 ) = 𝐸𝑟 = | 𝑉𝑣 − 𝑉𝑎 −0.04 − (−0.0425) |=| | = 0.0625, 𝐸% = |𝐸𝑟 × 100%| = 6. 𝟐𝟓% 𝑉𝑣 −0.04 Comentarios La primera diferencia de estas diferencias finitas centrales presenta resultados parecidos a los anteriores, sin embargo, la segunda derivada de la segunda diferencia de diferencias centrales presenta un error mucho mayor que el 100% (118,25%), razón por la cual ni siquiera necesita ser estudiado, no es que la fórmula empleada sea errónea, sino que la inestabilidad que produce este grupo de formulas no presenta garantías de buen resultados en el cálculo de diferencias, agregándose a esto la amplitud de h, que en este caso particular parece ser muy elevado, que en vez de converger hacia el resultado exacto, diverge; sin embargo, al reducir el valor de h a la mitad, el resultado obrtenido se hacerca bastante al valor verdadero, pues el error porcentual producido es solamente del 6,25%, pero aun así, sigue siendo un error muy grande. Por lo tanto, a modo de conclusión general respecto a estas formulas de diferencias finitas, cuando se desea precisión, estas formulas de diferencias finitas no son las recomendadas y se tomaran simplemente a modo didáctico. Cálculo Numérico – Lic. R. Riveros Derivación Numérica 12 Inestabilidad numérica de las fórmulas de diferencias finitas Las formulas presentadas anteriormente como tablas, son inestables por naturaleza, debido a la operación de dividir entre números cercanos a 0. El problema aumenta para las fórmulas de mayor orden de derivación, debido a la división entre potencias de h cada vez mayores. Estas fórmulas no son recomendadas en los procesos en que se desean resultados relativamente precisos, pues como se dijo, presentan inestabilidad inherente en la formula, por lo tanto, su uso no es recomendado, sin embargo, para fines didácticos son totalmente aceptables la presentación de esta tabla. La precisión de la fórmula aumenta cuando mayor sea el orden de la diferencia, por otro lado, cuanto mayor sea el orden de la derivada la formula se vuelve menos confiable. Por último es bueno indicar que las formulas centrales presentan mayor confiabilidad que cualquiera de las otras dos. La deducción de las fórmulas puede hacerse empleando las fórmulas de interpolación, o directamente la serie de Taylor. DIFERENCIAS CENTRALES Este método de aproximación numérica presenta la característica de que los valores de (𝑥 + ℎ) y (𝑥 − ℎ) se sitúan a ambos lados de 𝑥 tanto a la derecha como a la izquierda de 𝑥. Derivación numérica por diferencia centrada de orden 𝑶(𝒉𝟐 ) Teorema 9.1. Suponiendo que 𝑓 ∈ 𝐶 3 [𝑎, 𝑏], (𝑥0 − ℎ), (𝑥0 + ℎ) ∈ [𝑎, 𝑏], entonces 𝑓 ′ (𝑥0 ) ≈ 𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 − ℎ) 2ℎ Además existen 𝜉 = 𝜉(𝑥) ∈ [𝑎, 𝑏], tal que 𝑓 ′ (𝑥0 ) = 𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 − ℎ) + 𝐸𝑡 (𝑓, ℎ) 2ℎ 𝑐𝑜𝑛 𝐸𝑡 (𝑓, ℎ) = − ℎ2 𝑓 ′′′ (𝜉) = 𝑶(ℎ2 ) 6 Este Teorema se presenta sin demostración:1 1 La demostración de este teorema se encuentra en: Velázquez Zapateiro, Jorge. (2007). Análisis Numérico (pág. 162). Notas de clase. Edición Uninorte. Barranquilla. Colombia Cálculo Numérico – Lic. R. Riveros Derivación Numérica 13 Derivación numérica por diferencia centrada de orden 𝑶(𝒉𝟒 ) Teorema 9.2. Suponiendo que 𝑓 ∈ 𝐶 5 [𝑎, 𝑏], (𝑥0 − 2ℎ), (𝑥0 − ℎ), (𝑥0 + ℎ), (𝑥0 + 2ℎ) ∈ [𝑎, 𝑏], entonces: −𝑓(𝑥0 + 2ℎ) + 8𝑓(𝑥0 + ℎ) − 8𝑓(𝑥0 − ℎ) + 𝑓(𝑥0 − 2ℎ) 𝑓 ′ (𝑥) ≈ 12ℎ Además existe 𝜉 = 𝜉(𝑥0 ) ∈ [𝑎, 𝑏], tal que 𝑓 ′ (𝑥) ≈ −𝑓(𝑥0 + 2ℎ) + 8𝑓(𝑥0 + ℎ) − 8𝑓(𝑥0 − ℎ) + 𝑓(𝑥0 − 2ℎ) + 𝐸𝑡 (𝑓, ℎ), 12ℎ con 𝐸𝑡 (𝑓, ℎ) = ℎ4 𝑓 5 (𝜉) = 𝑂(ℎ4 ) 30 Este Teorema se presenta sin demostración:2 Ejemplo 9.7. Si 𝑓(𝑥) = 𝑐𝑜𝑠 𝑥, calcular la aproximación de 𝑓 ′ (6), usando las fórmulas de las diferencias centradas de orden 𝑂(ℎ2 ) con ℎ = 0.1 Solución a) Con La formula de diferencias centradas de orden 𝑂(ℎ2 ) 𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 − ℎ) 2ℎ 𝑓(6.1) − 𝑓(5.9) 0.983268 − 0.927478 0.005579 𝑓 ′ (6) = = = = 𝟎. 𝟐𝟕𝟖𝟗𝟓 2(0.1) 0.2 0.2 𝑓 ′ (𝑥0 ) = El valor exacto de 𝑓(𝑥) = 𝑐𝑜𝑠 𝑥, para 𝑓(6) = 0.2794154982 𝐸𝑟 = | 𝑉𝑣 − 𝑉𝑎 0.279415 − 0.27895 |=| | = 1.6642 × 10−3 , 𝐸% = |𝐸𝑟 × 100%| = 𝟎. 𝟏𝟔𝟔% 𝑉𝑣 0.279415 Ejemplo 9.8. Si 𝑓(𝑥) = 𝑐𝑜𝑠 𝑥, calcular la aproximación de 𝑓 ′ (6), usando las fórmulas de las diferencias centradas de orden 𝑂(ℎ4 ) con ℎ = 0.1 Solución 𝑓 ′ (𝑥) = −𝑓(𝑥0 + 2ℎ) + 8𝑓(𝑥0 + ℎ) − 8𝑓(𝑥0 − ℎ) + 𝑓(𝑥0 − 2ℎ) 12ℎ 𝑓 ′ (6) = −𝑓(6.2) + 8𝑓(6.1) − 8𝑓(5.9) + 𝑓(5.8) 12(0.1) 2 La demostración de este teorema se encuentra en: Velázquez Zapateiro, Jorge. (2007). Análisis Numérico. Notas de clase. Edición Uninorte. Barranquilla. Colombia Cálculo Numérico – Lic. R. Riveros Derivación Numérica 𝑓 ′ (6) = −0.996542 + 8(0.983264) − 8(0.927478) + 0.885520 1.2 𝑓 ′ (6) = −0.996542 + 7.866112 − 7.419824 + 0.885520 0.335266 = = 𝟎. 𝟐𝟕𝟗𝟑𝟖𝟖 1.2 1.2 14 El valor exacto de 𝑓(𝑥) = 𝑐𝑜𝑠 𝑥, para 𝑓(6) = 0.2794154982 𝐸𝑟 = | 𝑉𝑣 − 𝑉𝑎 0.279415 − 0.279388 2.7 × 10−5 | = 9.663 × 10−5 , |=| |=| 𝑉𝑣 0.279415 0.279415 𝐸% = |𝐸𝑟 × 100%| = |9.663 × 10−5 × 100%| = 𝟎. 𝟎𝟎𝟗𝟔𝟔% Comentarios A primera vista parecería ser que estas formulas de diferencias centrales se acercan bastante al valor verdadero de la derivada de la función buscada, ya que con las diferencias centradas de orden 𝑂(ℎ2 ) el error producido en el ejemplo es de apenas 0.166%, error bastante pequeño; sin embargo en error producido con la formulas de diferencias centradas de orden 𝑂(ℎ4 ) es aun menor, tan solo de 0.0096%. De nuevo vale repetir que estas formulas de diferencias centradas parecen bastantes precisas. La formula de diferencias centradas de orden 𝑂(ℎ4 ) es una de las recomendadas para hallar la primera derivada de 𝑓(𝑥). Fórmulas de las diferencias centradas de los tres puntos 𝑓 ′ (𝑥) = 1 ℎ2 𝑓 ′′′ (𝜉1 ) [𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 − ℎ)] − 2ℎ 6 𝑓 ′ (𝑥) = 𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 − ℎ) ℎ2 𝑓 ′′′ (𝜉1 ) − 2ℎ 6 𝑓 ′ (𝑥0 ) = 1 𝑓 3 (𝜉2 )ℎ2 [−3𝑓(𝑥0 ) + 4𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 + 2ℎ)] + 2ℎ 3 𝑓 ′ (𝑥0 ) = −3𝑓(𝑥0 ) + 4𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 + 2ℎ) 𝑓 3 (𝜉2 )ℎ2 + 2ℎ 3 (𝟗. 𝟏) (𝟗. 𝟐) Las ecuaciones (9.1) y (9.2) son las llamadas fórmulas de los tres puntos de derivación numérica, aun cuando la formula (9.1) solamente utiliza dos puntos y no aparece en ella el punto central 𝑥0 . El error presentado en la ecuación (9.1) es aproximadamente la mitad que en la ecuación (9.2), esta situación se debe a que en la ecuación (9.1) se usan datos Cálculo Numérico – Lic. R. Riveros Derivación Numérica 15 que están a ambos lados de 𝑥0 , mientras que en la ecuación (9.2.) se considera solo un lado y se desconoce el valor del otro lado que está fuera del intervalo. La ventaja que presenta la ecuación (9.1) es su simplicidad, ya que 𝑓 solamente se evalúa en dos puntos, mientras que la ecuación (9.2) necesita tres puntos. Ejemplo 9.9. Aproximar el valor de la función 𝑓 ′ (3) si 𝑓(𝑥) = 𝑙𝑛𝑥 𝑠𝑒𝑛 𝑥, utilizando la fórmula (9.1) de los tres puntos, con ℎ = 0.1 Solución: Se parte de la fórmula: 𝑓 ′ (𝑥) = 𝑓(𝑥 + ℎ) − 𝑓(𝑥 − ℎ) 2ℎ 𝑓 ′ (3) = 𝑓(3 + 0.1) − 𝑓(3 − 0.1) 𝑓(3.1) − 𝑓(2.9) ln 3.1 × 𝑠𝑒𝑛3.1 − ln 2.9 × 𝑠𝑒𝑛2.9 = = 2(0.1) 0.2 0.2 𝑓 ′ (3) = 1.131402× 0.041581 − 1.064712× 0.239249 0.047044 − 0.254731 = 0.2 0.2 𝑓 ′ (3) = 0.207687 = −𝟏. 𝟎𝟑𝟖𝟒𝟑𝟕 0.2 Estimación de error: El valor verdadero de la derivada de la función 𝑓(𝑥) = 𝑙𝑛𝑥 𝑠𝑒𝑛 𝑥 es 𝑓 ′ (3) = −𝟏. 𝟎𝟒𝟎𝟓𝟕𝟖 𝐸 = |𝑉𝑣 − 𝑉𝑎 | = |−1.040578 – (−1.038437)| = 2.141 × 10−3 = 0.002141 𝐸𝑟 = | 𝑉𝑣 − 𝑉𝑎 𝐸 0.002141 | = | || | = 2.0575 × 10−3 = 0.0020575 𝑉𝑣 𝑉𝑣 −1.040578 𝐸% = 𝐸𝑟 × 100% = 0.0020575 × 100% = 𝟎. 𝟐% Comentarios: La aproximación lograda es bastante buena, pues el error porcentual es solamente del 0.2%, y este valor es aceptable para cualquier cálculo promedio. Además, debe tenerse siempre en cuenta el tipo de cálculo que se realiza y la precisión que se requiera para estimar el error. Ejemplo 9.10. Aproximar el valor de la función 𝑓 ′ (3) si 𝑓(𝑥) = 𝑙𝑛𝑥 𝑠𝑒𝑛 𝑥, utilizando la fórmula (9.2) de los tres puntos, con ℎ = 0.1 Solución: La solución inicia con la formula de los tres puntos (9.2) 1 [−3𝑓(𝑥0 ) + 4𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 + 2ℎ)] 𝑓 ′ (𝑥0 ) = 2ℎ 𝑓 ′ (3) = 1 1 [−3𝑓(3) + 4𝑓(3 + 0.1) − 𝑓(3 + 2 × 0.1)] = [−3𝑓(3) + 4𝑓(3.1) − 𝑓(3.2)] 0.2 0.2 Cálculo Numérico – Lic. R. Riveros Derivación Numérica 16 𝑓 ′ (3) = 1 [−3(𝑙𝑛3 × 𝑠𝑒𝑛3) + 4(𝑙𝑛3.1 × 𝑠𝑒𝑛3.1) − (𝑙𝑛3.2 × 𝑠𝑒𝑛3.2)] 0.2 𝑓 ′ (3) = 1 [−3(1.09861 × 0.14112) + 4(1.13140 × 0.04158) − (1.16315 × (−0.05837)] 0.2 𝑓 ′ (3) = 1 [−3(0.155036) + 4(0.0470436) − (−0.067893)] 0.2 𝑓 ′ (3) = 1 1 [−0.465108 + 0.1881744 + 0.067893] = [−0.2090406] = −𝟏. 𝟎𝟒𝟓𝟐𝟎𝟑 0.2 0.2 Estimación de error: El valor verdadero de la derivada de la función 𝑓(𝑥) = 𝑙𝑛𝑥 𝑠𝑒𝑛 𝑥 es 𝑓 ′ (3) = −1.040578 𝐸 = |𝑉𝑣 − 𝑉𝑎 | = |−1.040578 – (−1.045203)| = 4.625 × 10−3 = 0.004625 𝐸𝑟 = | 𝑉𝑣 − 𝑉𝑎 𝐸 0.004625 | = | || | = 4.4446 × 10−3 = 0.0044446 𝑉𝑣 𝑉𝑣 −1.040578 𝐸% = 𝐸𝑟 × 100% = 0.0044446 × 100% = 𝟎. 𝟒𝟒% Comentarios: En este caso, con la aplicación de la formula (9.2) de los tres puntos la aproximación lograda es de menor precisión que la de (9.1), aun así, sigue siendo bastante buena la aproximación lograda, pues el error porcentual es de 0.44%. Comparando los dos ejercicios resueltos se nota claramente que la ecuación (9.1) presenta menor error, aproximadamente la mitad de error producido por (9.2), lo que se había ya indicado al definir las dos fórmulas de los tres puntos. Importante: Recodar siempre que el error puede ser pequeño o grande dependiendo siempre de la precisión que se desee al evaluar una determinada función. Fórmula de los tres puntos 1 𝑓 (3) 𝜉 2 [−3𝑓(𝑥0 ) + 4𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 + 2ℎ)] + 𝑓 ′ (𝑥0 ) = ℎ , 2ℎ 3 𝑓 ′ (𝑥0 ) = 1 𝑓 (3) 𝜉 2 [𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 − ℎ)] + ℎ , 2ℎ 3! 𝜉 ∈ [𝑥0 , 𝑥0 + 2ℎ] 𝜉 ∈ [𝑥0 − ℎ, 𝑥0 + ℎ] Ejemplo 9.11. Aproximar el valor de la función 𝑓 ′ (3) si 𝑓(𝑥) = 𝑙𝑛𝑥 𝑠𝑒𝑛 𝑥, utilizando la fórmula de los tres puntos, con ℎ = 0.1 Solución: La solución inicia con la formula de los tres puntos 𝑓 ′ (𝑥0 ) = 1 [𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 − ℎ)] 2ℎ Cálculo Numérico – Lic. R. Riveros Derivación Numérica Se parte de la fó rmula: 𝑓 ′ (𝑥) = 17 𝑓(𝑥 + ℎ) − 𝑓(𝑥 − ℎ) 2ℎ 𝑓 ′ (3) = 1 1 [𝑓(3 + 0.1) − 𝑓(3 − 0.1)] = [−3𝑓(3) + 4𝑓(3.1) − 𝑓(3.2)] 2 × 0.1 0.2 𝑓 ′ (3) = 1 [−3(𝑙𝑛3 × 𝑠𝑒𝑛3) + 4(𝑙𝑛3.1 × 𝑠𝑒𝑛3.1) − (𝑙𝑛3.2 × 𝑠𝑒𝑛3.2)] 0.2 𝑓 ′ (3) = 1 [−3(1.09861 × 0.14112) + 4(1.13140 × 0.04158) − (1.16315 × (−0.05837)] 0.2 𝑓 ′ (3) = 1 [−3(0.155036) + 4(0.0470436) − (−0.067893)] 0.2 𝑓 ′ (3) = 1 1 [−0.465108 + 0.1881744 + 0.067893] = [−0.2090406] = −1.045203 0.2 0.2 Estimación de error: El valor verdadero de la derivada de la función 𝑓(𝑥) = 𝑙𝑛𝑥 𝑠𝑒𝑛 𝑥 es 𝑓 ′ (3) = −1.040578 𝐸 = |𝑉𝑣 − 𝑉𝑎 | = |−1.040578 – (−1.045203)| = 4.625 × 10−3 = 0.004625 𝐸𝑟 = | 𝑉𝑣 − 𝑉𝑎 𝐸 0.004625 | = | || | = 4.4446 × 10−3 = 0.0044446 𝑉𝑣 𝑉𝑣 −1.040578 𝐸% = 𝐸𝑟 × 100% = 0.0044446 × 100% = 0.44446% Comentarios: En este caso, con la aplicación de la formula de los tres puntos la aproximación lograda es de menor precisión que la de las diferencias centradas, aun así, sigue siendo bastante buena la aproximación lograda, pues el error porcentual es de 0.44%, un poco mayor que la de las diferencias centradas de tan solo del 0.2%. Fórmula de los cinco puntos 𝑓 ′ (𝑥0 ) = 1 [−25𝑓(𝑥0 ) + 48𝑓(𝑥0 + ℎ) − 36𝑓(𝑥0 + 2ℎ) + 16𝑓(𝑥0 + 3ℎ) − 3𝑓(𝑥0 + 4ℎ)] 12ℎ 𝑓 (5) (𝜉0 )ℎ4 + , 𝟗. 𝟓) 5 1 [−3𝑓(𝑥0 − ℎ) − 10𝑓(𝑥0 ) + 18𝑓(𝑥0 + ℎ) − 6𝑓(𝑥0 + 2ℎ) + 𝑓(𝑥0 + 3ℎ)] 12ℎ 𝑓 (5) (𝜉1 )ℎ4 − , 5 1 𝑓 (5) (𝜉2 )ℎ4 [𝑓(𝑥0 − 2ℎ) − 8𝑓(𝑥0 − ℎ) + 8𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 + 2ℎ)] + 𝑓 ′ (𝑥0 ) = , 12ℎ 30 𝑓 ′ (𝑥0 ) = Cálculo Numérico – Lic. R. Riveros Derivación Numérica 𝑓 ′ (𝑥0 ) = 𝑓 ′ (𝑥0 ) = 18 1 [4𝑓(𝑥0 − 3ℎ) + 6𝑓(𝑥0 + 2ℎ) − 8𝑓(𝑥0 − ℎ) + 34𝑓(𝑥0 ) + 3𝑓(𝑥0 + ℎ) 12ℎ 𝑓 (5) (𝜉3 )ℎ4 + 34𝑓(𝑥0 )] + , 30 1 [𝑓(𝑥0 − 4ℎ) − 3𝑓(𝑥0 − 3ℎ) + 4𝑓(𝑥0 − 2ℎ) − 36𝑓(𝑥0 − ℎ) + 25𝑓(𝑥0 )] 12ℎ 𝑓 (5) (𝜉4 )ℎ4 + , 5 Entre las distintas fórmulas de cinco puntos, las más utilizadas son: 𝑓 ′ (𝑥0 ) = 𝑓 ′ (𝑥0 ) = 1 [−25𝑓(𝑥0 ) + 48𝑓(𝑥0 + ℎ) − 36𝑓(𝑥0 + 2ℎ) + 16𝑓(𝑥0 + 3ℎ) − 3𝑓(𝑥0 + 4ℎ)] 12ℎ 𝑓 (5) (𝜉0 )ℎ4 + , 𝟗. 𝟓) 5 1 𝑓 (5) (𝜉2 )ℎ4 [𝑓(𝑥0 − 2ℎ) − 8𝑓(𝑥0 − ℎ) + 8𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 + 2ℎ)] + , 12ℎ 30 𝟗. 𝟔 Ejemplo 9.12. Aproximar el valor de la función 𝑓 ′ (3) si 𝑓(𝑥) = 𝑙𝑛𝑥 𝑠𝑒𝑛 𝑥, utilizando la fórmula de los cinco puntos, con ℎ = 0.1 Solución: Se inicia el cálculo de la solución partiendo de la formula de los cinco puntos 1 [𝑓(𝑥0 − 2ℎ) − 8𝑓(𝑥0 − ℎ) + 8𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 + 2ℎ)] 𝑓 ′ (𝑥0 ) = 12ℎ 𝑓 ′ (3) = 1 [𝑓(3 − 0.2) − 8𝑓(3 − 0.1) + 8𝑓(3 + 0.1) − 𝑓(3 + 0.2)] 12 × 0.1 𝑓 ′ (3) = 1 [𝑓(2.8) − 8𝑓(2.9) + 8𝑓(3.1) − 𝑓(3.2)] 1.2 𝑓 ′ (3) = 1 [(𝑙𝑛2.8 × 𝑠𝑒𝑛2.8) − 8(𝑙𝑛2.91 × 𝑠𝑒𝑛2.9) + 8(𝑙𝑛3.1 × 𝑠𝑒𝑛3.1) − (𝑙𝑛3.2 1.2 × 𝑠𝑒𝑛3.2)] Cálculo Numérico – Lic. R. Riveros Derivación Numérica 𝑓 ′ (3) = 19 1 [1.029619 × (0.334988) − 8(1.06471 × 0.239249) + 8(1.1314 × 0.04158) 1.2 − (1.16315 × (−0.058374)] 𝑓 ′ (3) = 1 [(0.34491) − 8(0.25473) + 8(0.047044) − (−0.0678977)] 1.2 𝑓 ′ (3) = 1 [(0.34491) − 2.03784 + 0.376352 + 0.0678977] 1.2 𝑓 ′ (3) = 1 [1.24868] = −1.0405669 1.2 Estimación de error: El valor verdadero de la derivada de la función 𝑓(𝑥) = 𝑙𝑛𝑥 𝑠𝑒𝑛 𝑥 es 𝑓 ′ (3) = −𝟏. 𝟎𝟒𝟎𝟓𝟕𝟖 𝐸 = |𝑉𝑣 − 𝑉𝑎 | = |−1.040578 – (−1.0405669)| = 1.111 × 10−4 = 0.0001111 𝐸𝑟 = | 𝑉𝑣 − 𝑉𝑎 𝐸 0.0001111 | = | || | = 1.06768 × 10−4 = 0.000106768 𝑉𝑣 𝑉𝑣 −1.040578 𝐸% = 𝐸𝑟 × 100% = 0.000106768 × 100% = 0.0106% Comentarios: La aproximación lograda con la formula de los cinco puntos es excelente, puede notarse en este ejercicio que el error porcentual es de apenas 0.01%, y que la aproximación lograda puede considerarse un valor totalmente valido, demostrando que este método es el mejor que cualquiera de lo empleado anteriormente. Conclusiones generales EJERCICIOS RESUELTOS Ejercicio resuelto 9.13. Para estudiar un determinado fenómeno físico, se registran los cambios producidos en él en la siguiente tabla. Aproxima el valor de la derivada a 𝑓 ′ (1.3) utilizando la formula de derivación numérica por diferencia centrada de orden 𝑂(ℎ2 ) x 1 1.1 1.2 1.3 1.4 1.5 1.6 𝑓(𝑥) 2.5 2.436851 2.372895 2.308785 2.245066 2.182179 2.120472 Cálculo Numérico – Lic. R. Riveros Derivación Numérica 20 Solución 𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 − ℎ) 2ℎ 𝑓(1.4) − 𝑓(1.2) 2.245066 − 2.372895 −0.127829 𝑓 ′ (1.3) = = = = −𝟎. 𝟔𝟑𝟗𝟏𝟒𝟓 2(0.1) 0.2 0.2 𝑓 ′ (𝑥0 ) = El valor exacto de 𝑓(1.3) = −0.639962 𝑉𝑣 − 𝑉𝑎 −0.639962 − (−0.639145) 8.17 × 10−4 𝐸𝑟 = | = 1.277 × 10−3 , |=| |= 𝑉𝑣 −0.639962 0.639962 𝐸% = |𝐸𝑟 × 100%| = |1.277 × 10−3 × 100%| = 𝟎. 𝟏𝟐𝟖% Ejercicio resuelto 9.14. Para estudiar un determinado fenómeno físico, se registran los cambios producidos en él en la siguiente tabla. Aproxima el valor de la derivada a 𝑓 ′ (1.3) utilizando la formula de derivación numérica por diferencia centrada de orden 𝑂(ℎ4 ) x 1 1.1 1.2 1.3 1.4 1.5 1.6 𝑓(𝑥) 2.5 2.436851 2.372895 2.308785 2.245066 2.182179 2.120472 Solución 𝑓 ′ (𝑥) = −𝑓(𝑥0 + 2ℎ) + 8𝑓(𝑥0 + ℎ) − 8𝑓(𝑥0 − ℎ) + 𝑓(𝑥0 − 2ℎ) 12ℎ 𝑓 ′ (𝑥) = −𝑓(1.5) + 8𝑓(1.4) − 8𝑓(1.2) + 𝑓(1.1) 12(0.1) 𝑓 ′ (𝑥) = −2.182179 + 8(2.245066) − 8(2.372895) + 𝑓(2.436851) 1.2 𝑓 ′ (𝑥) = −2.182179 + 17.960528 − 18.98316 + 2.436851 −0.76796 = = −𝟎. 𝟔𝟑𝟗𝟗𝟔𝟕 1.2 1.2 El valor exacto de 𝑓(1.3) = −0.639962 𝐸𝑟 = | 𝑉𝑣 − 𝑉𝑎 −0.639962 − (−0.639967) 5 × 10−6 = 7.813 × 10−6 , |=| |= 𝑉𝑣 −0.639962 0.639962 𝐸% = |𝐸𝑟 × 100%| = |1.813 × 10−6 × 100%| = 𝟎. 𝟎𝟎𝟎𝟕𝟖% Cálculo Numérico – Lic. R. Riveros Derivación Numérica 21 Ejercicio resuelto 9.15. Aproximar el valor de la función 𝑓 ′ (5.7) si 𝑓(𝑥) = 2𝑥 𝑐𝑜𝑠 𝑥, utilizando la fórmula de los tres puntos (9.2), con ℎ = 0.1 Solución 𝑓 ′ (𝑥0 ) −3𝑓(𝑥0 ) + 4𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 + 2ℎ) 𝑓 3 (𝜉2 )ℎ2 = + 2ℎ 3 𝑥 𝑓(𝑥) = 2𝑥 cos 𝑥 5.7 5.8 5.9 9.515726 10.272026 10.944245 𝑓 ′ (5.7) = −3𝑓(5.7) + 4𝑓(5.8) − 𝑓(5.9) −3(9.515726) + 4(10.272026) − (10.944245) = 2(0.1) 2(0.1) 𝑓 ′ (5.7) = , −28.547178 + 41.088104 − 10.944245 1.596681 = = 𝟕. 𝟗𝟖𝟑𝟒𝟎𝟓 0.2 0.2 Estimación de error: El valor verdadero de la derivada de la función 𝑓(𝑥) = 2𝑥 𝑐𝑜𝑠 𝑥 es 𝑓 ′ (5.7) = 7.947241 𝐸𝑟 = | 𝑉𝑣 − 𝑉𝑎 𝐸 7.947241 − 7.983405 | = | || | = 4.55 × 10−3 = 0.00455 𝑉𝑣 𝑉𝑣 7.947241 𝐸% = 𝐸𝑟 × 100% = 0.00455 × 100% = 𝟎. 𝟒𝟓% Ejercicio resuelto 9.15. Aproximar a 𝑓′(4.2) la función 𝑓(𝑥) = ln 𝑥 𝑡𝑔 𝑥, utilizando la fórmula de los cinco puntos, con ℎ = 0.1 Solución 𝑓 ′ (𝑥0 ) = 𝑓(𝑥0 − 2ℎ) − 8𝑓(𝑥0 − ℎ) + 8𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 + 2ℎ) 𝑓 (5) (𝜉2 )ℎ4 + , 12ℎ 30 𝑥 𝑓(𝑥) = 𝑙𝑛𝑥 𝑡𝑔𝑥 4.0 4.1 4.2 4.3 4.4 4.5 1.605081 2.008577 2.551264 3.334172 4.587527 6.974906 𝑓 ′ (4.2) = 𝑓(4.0) − 8𝑓(4.1) + 8𝑓(4.3) − 𝑓(4.4) 12(0.1) 𝑓 ′ (4.2) = 1.605081 − 8(2.008577) + 8(3.334172) − (4.587527) 1.2 Cálculo Numérico – Lic. R. Riveros Derivación Numérica 22 1.605081 − 16.068616 + 26.673376 − 4.587527 7.622314 = = 𝟔. 𝟑𝟓𝟏𝟗𝟐𝟖 1.2 1.2 El valor verdadero de la derivada de la función 𝑓(𝑥) = 𝑙𝑛𝑥 𝑡𝑔𝑥 es 𝑓 ′ (4.2) = 𝟔. 𝟑𝟗𝟑𝟗𝟓𝟏 𝑓 ′ (4.2) = 𝐸𝑟 = | 𝑉𝑣 − 𝑉𝑎 𝐸 6.393951 − 6.351928 | = | || | = 6.5723 × 10−3 = 0.0065723 𝑉𝑣 𝑉𝑣 6.393951 𝐸% = 𝐸𝑟 × 100% = 0.0065723 × 100% = 𝟎. 𝟔𝟓𝟕% Ejercicio resuelto 9.8 Por el método de diferencia hacia adelante encontrar la derivada de la función f(x) para x=2, o sea encontrar f´(x). Para resolver este ejercicio utilize la siguiente tabla de x y f(x). Ejercicio medio (Respuesta) Derivación lineal de Newton 1. Dada la función , aproxima el valor de su derivada en el punto , con la fórmula de derivación lineal de Newton. a).- Establece la fórmula de derivación lineal de Newton para este problema. b).- Calcula el valor de la derivada con incremento constante . c).- Calcula el error absoluto de la aproximación, con el valor real de Nota: Para los cálculos utiliza hasta 6 cifras después del punto decimal. Solución a).- Para establecer la fórmula de derivación de Newton, se recurre a la fórmula de interpolación de Newton: , En donde: Cálculo Numérico – Lic. R. Riveros Derivación Numérica , 23 es el incremento constante, y la k-ésima diferencia en la posición i. Derivando con respecto a x, por la regla de la cadena tenemos (expresión 5.8 del libro página 237): Finalmente se llega a la fórmula de derivación lineal por Newton: b).- Con base en la fórmula anterior se calcula el valor de la derivada con incremento constante . Evaluando la función en cada uno de los puntos: y Luego: c).- Para el error absoluto de la aproximación, con el valor real de Ejercicio resuelto Nº 7 La carga en un circuito eléctrico con base en el tiempo está dada por: t q 0.000 2.5000 0.002 2.5523 0.004 2.6087 0.006 2.6682 0.008 2.7299 0.010 2.7931 En donde t es el tiempo en segundos y q la carga en coulombios. Se sabe que la corriente instantánea es igual a la derivada de la carga en ese instante; determina por derivación lineal de Newton la corriente del circuito en t 0.005 segundos. a) Establece la fórmula de derivación lineal de Newton para este problema. b) Calcula el valor de la derivada con incremento constante h 0.002 . Cálculo Numérico – Lic. R. Riveros Derivación Numérica 24 Nota: Para los cálculos utiliza hasta 4 cifras después del punto decimal. Ejercicio resuelto Nº 8 Aplicación a la medicina Para estudiar la tasa de crecimiento de una bacteria se hacen cultivos y se registran sus cambios periódicamente durante 7 días obteniéndose los valores de la siguiente tabla: Tiempo en días Bacterias 0 35 1 52 2 95 3 140 4 198 5 266 6 342 7 465 Empleando los valores de la tabla anterior aproxima por derivación de Newton la tasa de crecimiento al cuarto día. a) Establece la fórmula de derivación lineal de Newton para este problema. b) Calcula el valor de la derivada con incremento constante h 1 . Nota: Para los cálculos utiliza hasta 4 cifras después del punto decimal. Ejercicio resuelto Nº 9 1. Dada la función 3.4 1 3.5 () 2 2 0.25 xx xe fx x , aproxima el valor de su derivada en el punto x 1.25 , con la fórmula de derivación lineal de Newton. a) Establece la fórmula de derivación lineal de Newton para este problema. b) Calcula el valor de la derivada con incremento constante h 0.05 . c) Calcula el error absoluto de la aproximación, con el valor real de f (1.25) 1.079616... Nota: Para los cálculos utiliza hasta 6 cifras después del punto decimal. 2. Dada la siguiente tabla de valores obtenidos en observaciones en diferentes tiempos de un experimento: ty 0 38.20 0.20 35.25 0.50 30.45 0.60 27.80 0.85 24.90 1.10 22.75 Por medio de la diferenciación de Lagrange de segundo grado hacia delante aproxima el Cálculo Numérico – Lic. R. Riveros Derivación Numérica valor de rapidez de decrecimiento del fenómeno en estudio en el tiempo t 0.55 . a) Establece la fórmula de la derivación de Lagrange de segundo grado para este problema. b) Aproxima la derivada numérica en t 0.55 . Nota: Para los cálculos utiliza hasta 3 cifras después del punto decimal. Ejercicio resuelto Nº 10 1. La siguiente tabla contiene los datos de f(x) = senh(x) correctos hasta las cifras dadas. x 1.2 1.3 1.4 1.5 1.6 f(x) 1.5095 1.6984 1.9043 2.1293 2.3756 Calcular f0(1.4) mediante las tres f´ormulas de 3 puntos. Comparar los resultados obtenidos con la soluci´on f0(1.4) = 2.150898. Obtener tambi´en f00(1.4) y compararla con la real. 2. Con los datos x 1 1.01 1.02 fi 1.27 1.32 1.38 a) Aproximar f0(1.005) y f0(1.015) b) Aproximar f00(1.01) usando los resultados del apartado a). c) Obtener f00(1.01) con la f´ormula de la derivada segunda 3. La siguiente tabla contiene los valores de f(x) = 1 _ R_ 0 cos(xsen t)dt x 0 0.2 0.4 0.6 0.7 0.9 fi 1 0.990025 0.960398 0.912005 0.881201 0.807524 Sabemos que f 2 C1(lR) y 8n 2 lN y __ fn)(x) __ _1 a) Mediante interpolaci´on con 3 puntos estimar f0(0.5) y acotar el error cometido. b) Mediante interpolaci´on con cinco puntos estimar f0(0.4) y acotar el error cometido. c) Mediante interpolaci´on con 3 puntos estimar f00(0.2) y acotar el error cometido. d) Mediante interpolaci´on con 5 puntos estimar f00(0.4) y acotar el error cometido. 4. De cierta funci´on f 2 C1(lR) se conoce los datos x 1.2 1.3 1.4 1.5 1.6 fi 1.5095 1.6984 1.9043 2.1293 2.3756 y que para todo n´umero natural n y para todo x 2 [1, 2] se tiene que __ fn)(x) __ _ e2 + e−1 Cálculo Numérico – Lic. R. Riveros 25 Derivación Numérica 26 2 . Aproximar f0(1.4) y f00(1.4) mediante f´ormulas de 5 puntos y estimar el error cometido. Ejercicio resuelto Nº 11 EJEMPLO. Consideremos la siguiente tabla de datos 0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 Estimar y 1.00 1.010050167 1.02020134 1.030454534 1.040810774 1.051271096 1.061836547 1.072508181 1.083287068 1.094174284 . SOLUCIÓN. Para estimar se puede usar la fórmula de cinco puntos mientras que para estimar podemos usar una fórmula de tres puntos, para ser exactos, la fórmula apropiada es la fórmula para Ejercicio EJERCICIOS 1. Considere la tabla Cálculo Numérico – Lic. R. Riveros . Derivación Numérica 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 27 1.042236692 1.082222055 1.120140413 1.156156396 1.190417757 1.223057566 1.254195979 1.283941742 i.) En Excel, estimar con el valor real. ii.) En Excel, estimar con el valor real. , y , y comparar y y comparar 2. Implementar una hoja en Excel, con o sin macros, para que poder calcular la aproximación de cada una de las derivadas usando las cinco fórmulas vistas en la teoría. EJERCICIOS DE FIJACIÓN 11) 12) 13) 14) Cálculo Numérico – Lic. R. Riveros Derivación Numérica 28 15) Método de los 5 pasos Tenemos una función f(x) y se quiere hallar la derivada en el punto a Para calcular la derivada por definición se utiliza este método que consiste en los 5 siguientes pasos: 1- calcular 𝑓(𝑎) 2. Calcular 𝑓(𝑎 + ℎ) 3. Calcular ∆𝑓 que es 𝑓(𝑎 + ℎ) − 𝑓(𝑎) 4. Calcular ∆𝑓 ℎ ∆𝑓 h→0 ℎ 5. Calcular lim Ejemplo Calcular la derivada de f(x) = x3 en el punto a 1- calcular 𝑓(𝑎) = 𝑎3 2. Calcular 𝑓(𝑎 + ℎ) = (𝑎 + ℎ)3 = 𝑎3 + 3𝑎2 ℎ + 3𝑎ℎ2 + ℎ3 3. Calcular ∆𝑓 = 𝑎3 + 3𝑎2 ℎ + 3𝑎ℎ2 + ℎ3 − 𝑎3 = 3𝑎2 ℎ + 3𝑎ℎ2 + ℎ3 = ℎ(3𝑎2 + 3𝑎ℎ + ℎ2 ) Cálculo Numérico – Lic. R. Riveros Derivación Numérica 29 Se ha sacado el factor común h para que el siguiente paso sea fácil. 4. Calcular: ∆𝑓 ℎ(3𝑎2 + 3𝑎ℎ + ℎ2 ) = = 3𝑎2 + 3𝑎ℎ + ℎ2 ℎ ℎ ∆𝑓 = lim( 3𝑎2 + 3𝑎ℎ + ℎ2 ) = 𝟑𝒂𝟐 h→0 ℎ ℎ→0 5. Calcular lim Diferenciación numérica Como cualquier tipo de operación numérica, la diferenciación numérica refiere a una función 𝑓 ∈ 𝐶 2 [𝑎, 𝑏] y un punto arbitrario 𝑥0 en [𝑎, 𝑏]. Se necesita un método para aproximar 𝑓 ′ (𝑥0 ), con 𝑥1 = x0 + h para algún ℎ ≠ 0, lo suficientemente pequeña para asegurar que 𝑥1 ∈ [𝑎, 𝑏], se calcula 𝑃0,1 (𝑥). Usando la siguiente notación: 2. Fórmulas de derivación numérica Sea f(x) una función derivable en un cierto intervalo I de la recta real y sea x* un punto de dicho intervalo. Consideremos además un soporte de (n+1) puntos {x0, x1, ..., xn} del intervalo I en el que se suponen conocidos los valores de la función f(x). Por simplicidad supondremos además, en todo cuanto sigue, que los puntos del soporte son todos ellos distintos y están ordenados de menor a mayor es decir que: x0 < x1 < ... < xn. Definición 2.1. Siendo f(x) una función de la que se conocen sus valores en el soporte de (n+1) puntos {x0 , x1, ...., xn} del intervalo I, se denomina fórmula de derivación numérica para aproximar el valor de la primera derivada f’(x) en el punto x* sobre el soporte de puntos considerado, a toda expresión de la forma: f’(x*) ≈ ' * f = c0.f(x0) + c1.f(x1)+ …. + cn.f(xn) = n ii i0 c .f(x ) =Σ donde c0, c1, …, cn son (n+1) escalares denominados coeficientes (o pesos) de la fórmula de derivación NOTA: La fórmula de derivación que se acaba de definir puede decirse que es una fórmula lagrangiana pues en ella sólo intervienen valores de la función f en los Cálculo Numérico – Lic. R. Riveros Derivación Numérica puntos del soporte. Podrían considerarse fórmulas más generales, hermitianas, en las que el valor de f’(x*) fuese aproximado a partir del valor de la función f y de algunas de sus derivadas en los puntos del soporte. No obstante, estas últimas fórmulas tienen un uso mucho más esporádico que las de tipo lagrangiano y es por ello que en este tema nos limitaremos a considerar como fórmulas de derivación numérica tan sólo a las que hacen intervenir los valores de la función en los puntos del soporte. En general el valor aproximado '* f y el valor exacto f’(x*) diferirán, cometiéndose un error en la aproximación de f’(x*). Es por ello que junto a la definición de una fórmula numérica conviene precisar de forma rigurosa la definición del error que con ella se comete. En este sentido se introduce la siguiente definición: Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 5 Definición 2.2. Siendo ' * f la aproximación de f’(x*) que se obtiene operando sin error de redondeo según la fórmula de derivación numérica: f’(x*) ≈ ' *f= n ii i0 c .f(x ) =Σ se denomina error de truncamiento de la fórmula en el punto x*y para la función f al valor Rf(x*) = f’(x*) - ' *f Obviamente se verificará que: ' f '(x*) = f*+Rf(x*) por lo que considerando la fórmula en cuestión aplicada a todos los puntos x de un dominio dado puede definirse la función error de truncamiento de la fórmula derivación numérica para la función f considerada como la función: Rf : I � R x � Rf(x) = f’(x) - '* f En el análisis del error de truncamiento de las fórmulas de derivación numérica se perseguirá encontrar cotas del valor de esta función de error Rf(x) en el intervalo I sobre el que se trabaje. Ejemplo: Siendo {x0 , x1 } un soporte formado por dos puntos tales que x1 = x0 + h, y considerando que x* = x0, la sustitución de la expresión de f’(x0) por el cociente incremental: '10 Cálculo Numérico – Lic. R. Riveros 30 Derivación Numérica 0 f(x ) f(x ) f h − = conduce a una fórmula en la que sus coeficientes son c0 = (-1/h) y c1 = (1/h). Una forma de acotar el error de truncamiento de esta fórmula, si se supone que f(x) es al menos de clase C2([x0, x1]) consiste en considerar el desarrollo en serie de Taylor siguiente: f(x1) = f(x0+h) = f(x0) + h.f’(x0) + 2 0 h .f "(x .h) 2 + θ θ ∈ (0,1) de donde: − =01−+ 00 f '( x ) f ( x ) f ( x ) h .f "( x .h) h2 θ θ ∈ (0,1) Por tanto: = − '=− + f0000 R (x ) f '(x ) f h .f "(x .h) 2 θ θ ∈ (0,1) expresión que puede acotarse por: Programación y Métodos Numéricos Derivación Numérica 6 {} ∈ =−≤ 01 ' f000 x (x ,x ) R (x ) f '( x ) f h . Sup f "( x ) 2 Para el caso particular de la función f(x) = x2 el cociente incremental considerado conduce a la expresión: +− ==+ 22 '00 Cálculo Numérico – Lic. R. Riveros 31 Derivación Numérica 32 00 f ( x h) x 2.x h h por lo que el error de truncatura cometido es en este caso Rf(x0) = h. Obsérvese que la acotación antes realizada conduciría (para esta función x2) a la acotación |Rf(x0)| ≤ h coincidente con el error de truncatura realmente cometido1. Las fórmulas que conducen al valor exacto de la derivada se denominan fórmulas exactas. Más concretamente: Definición 2.3. Se dice que la fórmula de derivación numérica f’(x*) ≈ ' *f= n ii i0 c .f(x ) =Σ es exacta para la función f(x) en el punto x* y para el soporte {x0, ..., xn} cuando el error de truncatura Rf(x*) es nulo. Ejemplo: Dado un soporte {x0 < x1 } y denotando por h = x1 – x0, la fórmula: −− ≈==+ − 10 *01 10 f(x*) f ' f(x ) f(x ) 1·f(x ) 1·f(x ) xxhh es una fórmula exacta para la función f(x) = x2, en el punto x* = 1 y para el soporte {x0 = 0, x1 = 2}. En efecto, f’(1) = 2 y: − = = = 2+ 2= * 2 f'(1) f ' 1·0 1·2 2 22 Ahora bien esta fórmula no tiene que ser exacta si se cambia de punto x* (por ejemplo f’(1.5) = 3 ≠ f*’ = 2) o si se cambia de soporte (por ejemplo para x0 = -1 y x1 = 2 , siendo f(x) = x2 y x* = 1 se tiene que f’(1) = 2 ≠ f*’ = 1) o si se cambia de función (por ejemplo si f(x) = x3 con el soporte {x0 = 0 y x2 = 2} y para x* = 1 se tiene que: 3 = f’(1) ≠ f*’ = 4) 1 No siempre las acotaciones del error de truncatura que se obtendrán serán tan “finas” como la que se acaba de describir. Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid Cálculo Numérico – Lic. R. Riveros Derivación Numérica . 7 De poco serviría tener fórmulas que sólo fuesen exactas para funciones concretas con soportes concretos y en puntos concretos pues la aplicabilidad de dichas fórmulas sería escasa. Por ello, las fórmulas de derivación numérica suelen diseñarse de forma que sean exactas para determinadas familias de funciones con independencia de cuáles sean los (n+1) puntos del soporte que se elijan y para cualquier punto x* en el que se apliquen. Más concretamente puede darse la definición siguiente: Definición 2.4. Se dice que la fórmula de derivación numérica: n ' *ii i0 f '(x*) f c .f(x ) = ≈=Σ es exacta de orden k para la familia de funciones de clase C1([x0 , xn]): {φ0(x),φ1(x),...,φk(x),....} cuando es nulo el error de truncatura cometido al aplicar la fórmula para la estimación de la primera derivada de cualquiera de las (k+1) primeras funciones de la familia y en cualquier punto x* perteneciente al intervalo [x0 , xn]: k 0 n R (x) 0 x [x ,x ] ϕ = ∀ ∈ Propiedad 2.1. Si la fórmula de derivación numérica n ' *ii i0 f '(x*) f c .f(x ) = ≈ = Σ es exacta de orden k para la familia de funciones { } 0 1 k ϕ (x),ϕ(x),...,ϕ (x),.... entonces es exacta para cualquier combinación lineal de las (k+1) primeras funciones de la familia Demostración: Si la fórmula es exacta de orden k para la familia de funciones consideradas se podrá escribir que: [] = ϕ = ϕ ∀ ∈ Σn ' jiji0n i0 (x*) c . (x ) x* x ,x (j = 0, ..., k) Por otra parte, una función cualquiera que sea combinación lineal de las (k+1) Cálculo Numérico – Lic. R. Riveros 33 Derivación Numérica primeras funciones de la familia será de la forma: k 0011kkjj j0 f(x) (x) (x) ..... (x) (x) = = α ⋅ ϕ + α ⋅ ϕ + + α ⋅ ϕ = Σα ⋅ ϕ por lo que su primera derivada en cualquier punto x* del intervalo [x0, xn]se puede expresar como: Programación y Métodos Numéricos Derivación Numérica 8 ====== ⎛⎞⎛⎞ = α ⋅ϕ = α ⋅⎜ ⋅ϕ ⎟= ⋅⎜ α ⋅ϕ ⎟= ⋅ ⎝⎠⎝⎠ ΣΣΣΣΣΣkknnkn ' jjjijiijjiii j0j0i0i0j0i0 f '(x*) (x*) c (x ) c (x ) c f(x ) y puesto que la aplicación de la fórmula de derivación numérica a la función f(x) en cualquier punto x* conduce a que: n ' xii i0 f c.f(x) = =Σ puede concluirse que: [ ] f 0n R (x*)=0 ∀x*∈x ,x Esto demuestra que la fórmula es exacta para cualquier función f(x) que sea combinación lineal de las (k+1) primeras funciones de la familia de funciones considerada. c.q.d. Las fórmulas de derivación numérica más utilizadas en la práctica son exactas, de algún orden k, para la familia de funciones formada por los monomios, es decir: {1, x, x2, ...,xk, ....}. En este tema nos referiremos en exclusiva a esta familia de funciones y por ello cuando digamos que una fórmula es de orden k se sobreentenderá que “es de orden k para la familia de los monomios”, es decir que permite estimar sin error alguno la primera derivada de cualquier función polinómica de grado menor o igual que k en cualquier punto x*. Ejemplo: La fórmula que se ha utilizado en ejemplos anteriores consistente en sustituir el límite con el que se define la derivada por el cociente incremental en un soporte de dos puntos consecutivos es una fórmula exacta de orden 1. En efecto, para la función f(x) = 1 se verifica que: Cálculo Numérico – Lic. R. Riveros 34 Derivación Numérica '00[] x00 f f(x h) f(x ) 1 1 0 f '(x) x x ,x h hh +−− ====∀∈+ Asimismo para la función g(x) = x se tiene que: +−+−[] '=00=00==∀∈+ x00 g g(x h) g(x ) x h x 1 g'(x) x x ,x h hh Pero para la función q(x) = x2, en general, ya no coincidirá el valor de la primera derivada y el valor estimado mediante la fórmula de derivación: Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 9 +−+−[] ===⋅+≠∀∈+ 22 '0000 x000 q q(x h) q(x ) (x h) x 2 x h q'(x) x x ,x h hh por lo que sólo se puede afirmar que el error de la fórmula es nulo para los monomios {1, x}. En consecuencia, como se señaló anteriormente, la fórmula es de orden 1. NOTA: Para facilitar el seguimiento de todo cuanto hasta aquí se ha dicho, nos hemos referido únicamente a fórmulas que permiten estimar el valor de la primera derivada de una función. Análogo tratamiento podría realizarse para las fórmulas de derivación numérica que permiten estimar derivadas de orden mayor (segundas derivadas, terceras derivadas, etc...). A ellas nos referiremos en el apartado 7º de este tema. Programación y Métodos Numéricos Derivación Numérica 10 3. Fórmulas de derivación numérica de tipo interpolatorio para aproximar la primera derivada de una función. Como se ha comentado en el apartado anterior, las fórmulas más utilizadas en la práctica se buscan de forma que sean exactas para polinomios de grado menor o igual que n (es decir fórmulas de orden de exactitud n). Una manera natural de construir fórmulas exactas de orden n consiste en recordar que el polinomio pn(x) que interpola en el sentido de Lagrange y sobre un soporte de (n+1) puntos a una función f(x) que sea polinómica de grado menor o igual que n coincide con dicha función2. Por ello es equivalente derivar la función polinómica f(x) que derivar la su polinomio interpolador pn(x). A todas las Cálculo Numérico – Lic. R. Riveros 35 Derivación Numérica 36 fórmulas de derivación que se obtienen derivando la expresión del polinomio interpolador de Lagrange se las denomina fórmulas de derivación de tipo interpolatorio. Definición 3.1. Se denomina fórmula de derivación numérica de tipo interpolatorio (de Lagrange) para aproximar derivadas de primer orden a cualquier fórmula obtenida derivando una vez la expresión del polinomio interpolador de Lagrange construido sobre un soporte de (n+1) puntos distintos. NOTA: Obsérvese que en la definición anterior se ha escrito entre paréntesis “de Lagrange”. En efecto podría pensarse en derivar también la expresión del polinomio interpolador de Hermite obteniéndose otros tipos de fórmulas de derivación de tipo interpolatorio. Puesto que nosotros sólo nos vamos a referir a las fórmulas que se obtienen al derivar la expresión del polinomio interpolador de Lagrange omitiremos en lo sucesivo la coletilla “de Lagrange” y simplemente diremos fórmula de derivación numérica de tipo interpolatorio. • Una fórmula de derivación numérica de tipo interpolatorio puede obtenrse de cualquiera de las expresiones del polinomio interpolador. Recordando la expresión del polinomio interpolador en función de los polinomios de base de Lagrange puede deducirse la expresión de los pesos que intervienen en dicha fórmula. En efecto: 2 Consúltese, por ejemplo, el tema dedicado a la Interpolación de Lagrange elaborado por A. Hidalgo y C. Conde en estos mismos apuntes. Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 11 Propiedad 3.1. La condición necesaria y suficiente para que la fórmula de derivación numérica n ' x* i i i0 f c.f(x) = = Σ que sea de tipo interpolatorio es que sus coeficientes satisfagan las igualdades: ' ci=Li(x*) (i = 0, 1, ..., n) donde se ha denotado por Li(x) a los (n+1) polinomios de base de Lagrange3 sobre el soporte {x0, x1, ..., xn}. Demostración: a) Demostremos en primer lugar que si la fórmula es de tipo interpolatorio Cálculo Numérico – Lic. R. Riveros Derivación Numérica entonces sus pesos satisfacen la relación ci = L’i(x*). En efecto, la expresión detallada del polinomio interpolador de Lagrange pn(x) de una función f(x) sobre el soporte de (n+1) puntos {x0, x1, ..., xn} en función de los (n+1) polinomios de base de Lagrange { }n i i 0 L (x) = es: n nii i0 f(x) p (x) f(x ) L (x) = ≈ =Σ ⋅ de donde, en cualquier punto x* se puede considerar la aproximación: n '' nii i0 f '(x*) p (x*) L (x*) f(x ) = ≈ =Σ ⋅ Esta fórmula es una fórmula de derivación numérica en la que sus coeficientes están dados por la expresión: ' i i c =L(x*) (i = 0, ..., n) b) Demostremos que si la fórmula de derivación numérica satisface ' i i c =L(x*) (i = 0, ..., n) entonces es de tipo interpolatorio. En efecto, considerando que el polinomio interpolador de Lagrange de f(x) sobre el soporte {x0, ..., xn} se puede expresar como: pn(x) = = Σn ii i0 f(x )·L (x) se tiene que si se verifican las igualdades consideradas para los coeficientes: 3 Recuérdese que: nn ijij j0j0 jiji L (x) (x x ) (x x ) == ≠≠ ⎛⎞⎛⎞ =⎜⎜⎜ − ⎟⎟⎟ ⎜⎜⎜ − ⎟⎟⎟ ⎝⎠⎝⎠ Π Π (i = 0, 1, ..., n) Programación y Métodos Numéricos Derivación Numérica 12 Cálculo Numérico – Lic. R. Riveros 37 Derivación Numérica f’(x*) ( ) ( ) ==== ⎛⎞ ≈ = = =⎜ ⎟ = ⎝⎠ ΣΣΣΣ nnnn' iiiiiiiin i0i0i0i0 c f(x ) L' (x*)f(x ) L (x*)f(x ) ' L (x*)f(x ) p' (x*) lo que demuestra que el valor de la primera derivada en x* se aproxima con el valor de la primera derivada del polinomio interpolador en x*. c.q.d. La propiedad anterior caracteriza a las fórmulas de derivación numérica de tipo interpolatorio que permiten aproximar primeras derivadas. Además nos permite obtener otras propiedades que deben satisfacer los coeficientes de las fórmulas de tipo interpolatorio. Por ejemplo: Propiedad 3.2. En toda fórmula de derivación numérica de tipo interpolatorio n ' x* i i i0 f c.f(x) = = Σ se verifica que: n i i1 c0 = Σ= Demostración: Puesto que según las propiedades de los polinomios de base de Lagrange se verifica que: n i i0 L (x) 1 = Σ = ∀x , es obvio que: n'n ' ii i0i0 L (x) L (x) 0 == Cálculo Numérico – Lic. R. Riveros 38 Derivación Numérica ⎛⎞ ⎜⎟== ⎝⎠ ΣΣx∀ En particular para el punto x* se tendrá que: nn ' ii i0i0 L (x*) c 0 == Σ =Σ = c.q.d. Ocupémonos ahora de analizar el error en las fórmulas de derivación numérica de tipo interpolatorio. Denotando por ε(x) a la función error de interpolación cometido al aproximar una función f(x) por su polinomio interpolador de Lagrange pn(x) sobre el soporte de (n+1) puntos considerado, se verifica que: f(x) = pn(x) + ε(x) 0 n ∀x∈(x ,x ) por lo que: 'n f '(x*)=p (x*)+ε'(x*) Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 13 lo cual nos conduce a poder expresar el error en el punto x* de la fórmula de derivación numérica mediante: Rf(x*) = ε'(x*) En el caso particular en que f(x) sea un polinomio de grado menor o igual que n se verificará que f(x) ≡ pn(x) y por tanto ε(x) = 0 ∀x , de donde resulta que la fórmula de derivación numérica de tipo interpolatorio construida sobre un soporte de (n+1) puntos es exacta para cualquier polinomio de grado menor o igual que n. En resumen es exacta de orden n. Este hecho nos permite incluir a las fórmulas de derivación numéricas de tipo interpolatorio en el conjunto de fórmulas de derivación exactas de orden n. Pero aún puede precisarse más, puesto que además toda fórmula exacta de orden n construida sobre un soporte de (n+1) puntos debe ser necesariamente de tipo interpolatorio. Este hecho se demuestra en el siguiente teorema. Teorema 3.1. La condición necesaria y suficiente para que una fórmula de derivación numérica construida sobre un soporte de (n+1) puntos, n ' x* i i i0 f c.f(x) = Cálculo Numérico – Lic. R. Riveros 39 Derivación Numérica =Σ, sea exacta de orden n es que sea de tipo interpolatorio. Demostración: a) Demostremos en primer lugar que la condición recogida en el enunciado del teorema es suficiente, es decir que si la fórmula construida sobre el soporte de (n+1) puntos es de tipo interpolatorio entonces es exacta de orden n. Para ello basta con recapitular los razonamientos anteriormente realizados. En efecto, si f(x) es una función polinómica de grado menor o igual que n su polinomio interpolador de Lagrange sobre el soporte de (n+1) puntos coincide con la función y por tanto: f(x) = pn(x) x ∀ por lo que f’(x) = p’n(x) ∀x . En particular para cualquier punto x* se tendrá que: '' n x* f '(x*) = p (x*) ≡ f Programación y Métodos Numéricos Derivación Numérica 14 Ello demuestra que la fórmula es exacta sea cual sea el polinomio f(x) de grado menor o igual que n al que se aplique y el punto x* en el que se aproxime la primera derivada.. En particular lo será cuando se aplique a los (n+1) primeros monomios {1, x, ..., xn} y por ello es exacta de grado n. b) Demostremos ahora que la condición anterior también es necesaria, es decir que si la fórmula construida sobre el soporte de (n+1) puntos es exacta de orden n entonces tiene que ser de tipo interpolatorio. Para ello partimos del hecho de que, al ser la fórmula exacta de orden n, para cualquier función polinómica de grado menor o igual que n, p(x), se debe verificar que: n ii i0 p'(x*) c .p(x ) = =Σ Por otra parte, puesto que hemos considerado que p(x) es un polinomio de grado menor o igual que n, se verificará que el polinomio interpolador de p(x) en el soporte de (n+1) puntos coincidirá con p(x) y por tanto p(x) se puede expresar como: n ii i0 p(x) p(x ).L (x) = =Σ de donde su primera derivada en el punto x* estará dada por: n ' Cálculo Numérico – Lic. R. Riveros 40 Derivación Numérica ii i0 p'(x*) L (x*).p(x ) = =Σ Identificando las dos expresiones de la primera derivada de p(x) en x* se tiene que: nn ' iiii i0i0 c .p(x ) L (x*).p(x ) == Σ =Σ Esta igualdad debe ser satisfecha para cualquier polinomio p(x) que sea de grado menor o igual que n. Por tanto deberá verificarse también en el caso de que consideremos como p(x) cualquiera de los (n+1) polinomios de base de Lagrange construidos sobre el soporte { }n i i 0 x = . Recordemos además que los polinomios de base de Lagrange verifican: Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 15 ij 0 si i j L (x ) 1 si i=j ⎧≠ =⎨⎩ Por tanto, particularizando la igualdad antes obtenida para L0(x) se tiene que: nn '' i0ii0i00 i0i0 c.L (x ) L(x*).L (x ) c L (x*) == Σ =Σ ⇒ = Al hacerlo para el polinomio L1(x) resultará que: nn '' i1ii1i11 i0i0 c .L (x ) L (x*).L (x ) c L (x*) == Σ =Σ ⇒ = Cálculo Numérico – Lic. R. Riveros 41 Derivación Numérica Y en general al particularizar para cualquier polinomio de base Lj(x) obtendremos que: nn '' ijiijijj i0i0 c .L (x ) L (x*).L (x ) c L (x*) == Σ =Σ ⇒ = c.q.d. Ejemplos: 1º) Si se considera un único punto de soporte {x0} el polinomio interpolador de una función f(x) en dicho soporte será el polinomio: p0(x) = f(x0). La figura 1 recoge, junto al grafo de la función f(x) el grafo de p0(x) y la tangente geométrica a la curva en (x0, f(x0)). La pendiente de esta tangente geométrica será la derivada f’(x0). Figura 1: Interpretación gráfica del proceso de aproximación de la derivada primera de una función mediante la fórmula de tipo interpolatorio con soporte de un punto. Programación y Métodos Numéricos Derivación Numérica 16 Ello nos conduciría a que, para cualquier punto x*, la fórmula de derivación de tipo interpolatorio de una función con un soporte de un único punto es: '' f '(x*)≈ fx* =p0(x*)=0 =0.f(x0 ) Obviamente esta fórmula sólo sería exacta en el caso de derivar constantes (es decir, polinomios de grado 0). 2º) Si se considera un soporte de 2 puntos {x0, x1} el polinomio interpolador de la función f(x) en el sentido de Lagrange está dado por: 10 101 0110 p (x) f(x ). (x x ) f(x ). (x x ) (x x ) (x x ) −− =+ −− La derivada de este polinomio es: '10 101 011010 p (x) f(x ). 1 f(x ). 1 f(x ) f(x ) (x x ) (x x ) (x x ) − =+= −−− Al no depender del punto en el que se evalúe la derivada podemos concluir que para cualquier abscisa x* el valor de la primera derivada de la función en ella, Cálculo Numérico – Lic. R. Riveros 42 Derivación Numérica f’(x*), se aproximará mediante: '10 x* 10 f(x ) f(x ) f '(x*) f xx − ≈= − Esta expresión se corresponde con el cociente incremental que se utilizó en los ejemplos de los apartados anteriores. Puede observarse que los pesos de la fórmula son: c0 = -1/(x1 – x0) y c1 = 1/(x1 – x0) por lo que su suma se anula. La gráfica de la figura 2 representa junto a los grafos del polinomio interpolador y de la función f(x) la tangente geométrica al grafo de f(x) en un punto (x*, f(x*)). Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 17 Figura 2: Interpretación gráfica del proceso de aproximación de la derivada primera de una función mediante la fórmula de tipo interpolatorio con soporte de dos puntos. Obviamente esta fórmula de derivación numérica será exacta sobre cualquier polinomio de grado menor o igual que 1 (es decir sobre líneas rectas). • Otras relaciones entre los pesos y los puntos del soporte de las fórmulas de derivación numérica de tipo interpolatorio se recogen en la propiedad siguiente: Propiedad 3.3 En toda fórmula de derivación numérica de tipo interpolatorio n ' x* i i i0 f c.f(x) = = Σ , construida sobre un soporte de (n+1) puntos, se verifica que: ()n kk1 ii i1 c x k· x* − = Σ = (k = 1, ...n) Demostración: Por ser la fórmula de tipo interpolatorio es exacta para todo polinomio de grado menor o igual que n. En particular lo será para la función f(x) = xk sea cual sea el valor del entero positivo k siempre que k < n. Puesto que f’(x*) = k·(x*)(k-1), la Cálculo Numérico – Lic. R. Riveros 43 Derivación Numérica exactitud de la fórmula implica que: ()− = = Σn kk1 ii i1 c x k· x * ( 0 < k < n) c.q.d. Programación y Métodos Numéricos Derivación Numérica 18 EJERCICIO PROPUESTO: Demuéstrese que para cualquier función f(x) que sea derivable en todo punto del intervalo [x0, x1] siempre existe algún punto x* de dicho intervalo para el que la fórmula de derivación numérica de tipo interpolatorio construida sobre el soporte {x0 ,x1} proporciona el valor exacto f’(x*). Nótese que, si esto es así, en particular se puede afirmar que siempre existirá algún punto x* en el intervalo [x0, x1] para el que la fórmula construida con dos puntos de soporte proporciona el valor exacto de la derivada de xk sea cual sea el valor que le demos al entero no negativo k. ¿Contradice esto la afirmación de que la fórmula es de orden 1?. A la luz de este comentario ¿no sería más preciso decir que la fórmula es de orden infinito?. Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 19 4. Expresiones del error de las fórmulas de derivación numérica de tipo interpolatorio que aproximan la primera derivada de una función. El proceso seguido para obtener las fórmulas de derivación numérica de tipo interpolatorio nos conduce de forma natural a que el error de cada fórmula Rf(x*) de derivación así determinada es igual a la primera derivada de la función de error interpolación ε(x) particularizada en el punto x* en que se deriva: Rf(x*)= ε'(x*) . No obstante trabajar con la expresión del error de interpolación que se dedujo en los temas dedicados al estudio de las técnicas de interpolación4 no es cómodo en muchas ocasiones. Es por ello interesante obtener otras expresiones más cómodas para el análisis del error de las fórmulas de derivación numérica. Una primera forma de obtener otra expresión del error de derivación numérica se basa en utilizar diferencias divididas. Para ello, como es habitual, denotaremos por f[x0, x1, ..., xn, x] a la diferencia dividida de orden (n+1) de la función f(x) en los puntos {x0, x1, ..., xn, x] y consideraremos una función g(x) que a todo punto x le haga corresponder el valor: g(x) = f[x0, x1, ..., xn, x] La primera derivada de esta función estará dada por: g’(x)= 0 1 n 0 1 n h0h001n limf[x ,x ,....,x ,x h] f[x ,x ,....,x ,x] limf[x ,x ,....,x ,x,x h] → (x h) x → Cálculo Numérico – Lic. R. Riveros 44 Derivación Numérica 45 +− =+ +− que representaremos por: 0 1 n g'(x) = f[x ,x ,....,x ,x,x] Más concretamente: Definición 10.4.1. Se define la diferencia dividida de orden (n+2 )de una función en el soporte {x0, x1, ..., xn, x, x} mediante: 01n 01n df[x ,x ,....,x ,x] f[x ,x ,...,x ,x,x] dx = 4 Recuérdese que la expresión obtenida era: (n 1 n x i i0 f() (x) . (x x ) (n 1)! + = ξ ε=− + Π donde x ξ era un punto dependiente de la abscisa x en la que se deseaba estimar el error de interpolación. Este error también se podía expresar usando las diferencias divididas como n 01ni i0 (x) f[x , x ,..., x , x] (x x ) = ε = ⋅Π − . Programación y Métodos Numéricos Derivación Numérica 20 Con ayuda de las diferencias divididas con puntos repetidos que se acaban de definir y partiendo de la expresión del error de interpolación que se obtuvo al trabajar con diferencias divididas, es sencillo demostrar la siguiente propiedad: Propiedad 4.1. La fórmula de derivación numérica de tipo interpolatorio n ' x* i i Cálculo Numérico – Lic. R. Riveros Derivación Numérica i0 f c.f(x) = = Σ tiene asociado un error de truncatura dado por la expresión [ ]n [ ] nn f01ni01nj i0i0j0 ji R ( x*) f x ,x ,...,x ,x*,x * . ( x * x ) f x ,x ,...,x ,x*,x * . ( x * x ) === ≠ ⎛ ⎛ ⎞⎞ = − + ⎜⎜⎝⎜ ⎜⎜⎝⎜ − ⎟⎟⎠⎟⎟⎟⎠⎟ Π ΣΠ Demostración: Basta con particularizar en x* la expresión obtenida al derivar una vez la función de error de interpolación: n 01ni i0 (x) f[x ,x ,...,x ,x]. (x x ) = ε=Π− c.q.d. La expresión anterior, teniendo un interés teórico, también es de difícil aplicación práctica. Es por eso que lo que resta de este apartado lo dedicaremos a determinar una expresión de fácil aplicación advirtiendo de antemano al lector que más que la fórmula que finalmente determinemos, en la práctica es el método que vamos a seguir el que tiene interés práctico. Consideremos que f(x) es una función de clase Cn+1((x0, xn)) y que para aproximar la primera derivada de la función f(x) en un punto x* perteneciente al intervalo [x0 , xn] se considera la fórmula de derivación numérica de tipo interpolatorio n ' x* i i i0 f c.f(x) = = Σ construida sobre un soporte de (n+1) puntos distintos {x0 < x1 < ....< xn}. Adviértase que, por ser la fórmula de tipo interpolatorio, al menos, será de orden n. Ello, en particular implica que servirá para determinar sin error de truncatura ninguno las derivadas de las funciones {1, x, x2, ..., xn}. Ello a su vez se traduce en que: nn k k' k *(k1) i i x x* i i Cálculo Numérico – Lic. R. Riveros 46 Derivación Numérica i0i0 c x (x ) c x k.(x ) − = == Σ ⋅ = ⇒Σ ⋅ = (k = 0,..., n) Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 21 Denotemos además por h al valor: h=Max( x *−x0, x * −xn) y sean { }n i i=0 θ (n+1) escalares de valor absoluto no superior a 1 y tales que: i i x =x*+θ ⋅h Para cada uno de estos puntos, al haber supuesto la función f(x) suficientemente regular, se puede considerar el desarrollo en serie de Taylor siguiente: 22nn i i (n iii f(x ) f(x * .h) f(x*) .h.f '(x*) .h .f "(x*) .... .h .f (x*) 2 n! θθ = +θ = +θ + + + + n1n1 i (n 1 i .h .f (x * .h) (n 1)! ++ +θ + +δ + Por tanto la fórmula de derivación numérica de tipo interpolatorio considerada podrá rescribirse en la forma: nnn2n '2 x* i i i i i i i i0i0i0i0 f c .f(x ) c .f(x*) h. c . .f '(x*) h . c . .f "(x*) ..... = = = 2! = ⎛⎞⎛⎞⎛⎞ = =⎜ ⎟ + ⎜ θ ⎟ + ⎜ θ ⎟ + + ⎝⎠⎝⎠⎝⎠ ΣΣΣΣ + ++ Cálculo Numérico – Lic. R. Riveros 47 Derivación Numérica == ⎛⎞ + ⎝⎜ θ ⎠⎟ + + θ +δ Σ Σ n n n1 n n (n (n 1) (n 1 iiiii i0i0 h. c. .f (x*) h . c. .f (x* .h) n! (n 1)! Simplifiquemos la expresión que se acaba de obtener. El coeficiente que multiplica a f(x*) es nulo pues es la suma de los pesos de la fórmula (véase la propiedad 3.2.). Para simplificar otros sumandos de la expresión utilizaremos las dos propiedades siguientes: Propiedad 4.2. Con la notación introducida anteriormente y siendo n ' x* i i i0 f c.f(x) = = Σ una fórmula de derivación numérica de tipo interpolatorio con n > 0, se verifica que: n ii i0 c.1 =h Σθ= Demostración: Con la notación que estamos utilizando se tiene que: Programación y Métodos Numéricos Derivación Numérica 22 i i x x* h − θ= de donde: nnnn iiiiiii i0i0i1i0 c . 1. c .(x x*) 1. c .x 1.x *. c = h= h = h = ⎛⎞ Cálculo Numérico – Lic. R. Riveros 48 Derivación Numérica θ = − = ⎜ ⎟− ⎝⎠ ΣΣΣΣ En esta última igualdad se sabe que n i i0 c0 = Σ = (véase la propiedad 3.2.). Por otra parte n ii i1 c .x =Σ se corresponde con la expresión de la derivada del monomio x en el punto x*. Por ello su valor será 1. En resumen: n ii i0 c .x 1 =h Σ= c.q.d. Propiedad 4.3. Con la notación introducida anteriormente y siendo n ' x* i i i0 f c.f(x) = = Σ una fórmula de derivación numérica de tipo interpolatorio, con n>1, se verifica que: n k ii i0 c.0 = Σ θ = (k=2,....,n) Demostración: Con la notación que se está utilizando y empleando la fórmula de Newton para desarrollar potencias de binomios5, se tiene que: nnnk Cálculo Numérico – Lic. R. Riveros 49 Derivación Numérica k k j (k j) j iikiikii i0i0i0j0 c . 1. c .(x x*) 1. c . ( 1) . k .x .(x*) hhj − ==== ⎛ ⎛ ⎛ ⎞ ⎞⎞ θ = − = ⎜⎜⎝ ⎜⎝ − ⎜⎝ ⎟⎠ ⎟⎠⎟⎟⎠= ΣΣΣΣ kn j j (k j) kii j0i0 1. ( 1). k .(x*). c.x hj − == ⎛ ⎛ ⎞ ⎛ ⎞⎞ = ⎜− ⎜ ⎟ ⎜ ⎟⎟ ⎝ ⎝ ⎠ ⎝ ⎠⎠ ΣΣ Al ser la fórmula de tipo interpolatorio será exacta para cualquier polinomio de grado menor o igual que n. En particular, al haber considerado n > 1 si se toman valores de k tales que 2 ≤ k ≤ n se debe verificar para todo valor del entero j comprendido entre 0 y (k-1) que el sumatorio n (k j) ii i0 c .x − =Σ coincide con el 5 Como es habitual, en dicha fórmula se utiliza la notación k j ⎛⎞ ⎜⎟ ⎝⎠ para representar a k! (k − j)!.j! Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 23 valor de la derivada del monomio x(k-j) particularizado en el punto x*. Es decir que: Cálculo Numérico – Lic. R. Riveros 50 Derivación Numérica n (k j) ( (k j))' (k j 1) ii i 0 x x* c .x − x − (k j).(x*) − − == ⎤ = = − ⎥⎦ Σ Para el caso en que j coincida con el valor de k el sumatorio quedará n i i0 c =Σ cuyo valor es nulo(véase la propiedad 3.2.). Por tanto: n k ii i0 c. = Σθ= (k 1) j j (k j 1) k j0 1 . ( 1) . k .(x*) .(k j).(x*) hj − −− = ⎛⎛⎞⎞ ⎜− ⎜ ⎟ − ⎟= ⎝⎝⎠⎠ Σ (k 1) (k 1) j k j0 1 .(x*) . ( 1) .(k j). k hj − − = ⎛ ⎛ ⎞⎞ = ⎜− − ⎜ ⎟⎟ ⎝ ⎝ ⎠⎠ Σ Cálculo Numérico – Lic. R. Riveros 51 Derivación Numérica 52 Puesto que6 se verifica que: − = ⎛⎞ − − ⎜ ⎟= ∀ ≥ ⎝⎠ Σ(k 1) j j0 k ( 1).(k j). 0 k 2 j puede concluirse que: n k ii i0 c.0 = Σ θ = (k = 2, ..., n) c.q.d. Estas dos propiedades junto a la expresión que obtuvimos antes de enunciarlas nos permiten demostrar fácilmente el siguiente teorema: Teorema 4.1. Dado el soporte de (n+1) puntos x0 < x1 < ... < xn , siendo f(x) una función de clase C(n+1)((x0 , xn)), siendo x* un punto del intervalo [x0 , xn], denotando hi = xi – x* , por h al valor h = máx(|x*-x0| , |x* - xn|) y por { }n i i=0 θ a los (n+1) escalares tales que hi = iθ .h , para toda fórmula de derivación numérica de tipo interpolatorio: n ' x* i i i0 f '(x*) f c .f(x ) = ≈=Σ existen (n+1) valores δ i pertenecientes al intervalo [-1 , 1] tales que: 6 El lector interesado puede encontrar la demostración en el anexo a este apartado (Lema 4.2.) Programación y Métodos Numéricos Derivación Numérica 24 ()+ = = − = θ +δ +Σnn Cálculo Numérico – Lic. R. Riveros Derivación Numérica ' n (n 1 f x* i i i i i0 R (x*) f(x*) f h . c . .h.f (x * .h) (n 1)! Demostración: Introduciendo el resultado de las propiedades 4.2. y 4.3. en la expresión antes obtenida resulta: nnn2n '2 x* i i i i i i i i0i0i0i0 f c .f(x ) c .f(x*) h. c . .f '(x*) h . c . .f "(x*) ..... = = = 2! = ⎛⎞⎛⎞⎛⎞ = =⎜ ⎟ + ⎜ θ ⎟ + ⎜ θ ⎟ + + ⎝⎠⎝⎠⎝⎠ ΣΣΣΣ + ++ == ⎛⎞ + ⎝⎜ θ ⎠⎟ + + θ +δ Σ Σ n n n1 n n (n (n 1) (n 1 iiiii i0i0 h. c. .f (x*) h . c. .f (x* .h) n! (n 1)! = ()+ = = + θ +δ +Σnn n (n1 iiii i0 f '(x*) h . c . .h.f (x * .h) (n 1)! c.q.d. NOTAS: 1ª) Obsérvese que en el término del error se ha descompuesto hn+1 en la forma hn·h, dejando sólo como factor común del sumatorio hn y expresando en cada uno de los sumandos del término de error θ i·h como hi. El motivo de ello es que los coeficientes ci de la fórmula de derivación dependen en general de los valores hi por lo que procediendo de esta manera el término de error podrá Cálculo Numérico – Lic. R. Riveros 53 Derivación Numérica expresarse en función de los valores de las derivadas f(n+1( ξ i) (siendo ξ i los puntos x*+ δ i·h), de hn y de (n+1) constantes γ i = ci· θ i n·hi/(n+1)!. En los ejemplos del siguiente apartado se ilustrará este hecho. 2ª) La expresión anterior se resume frecuentemente indicando que el error es de orden O(hn). 3ª) Para algunas funciones y en algunos puntos se verificará que el término que multiplica a la derivada de orden (n+1) en el desarrollo en serie de Taylor del que se partía también se anula. En dichos casos, si f(x) es lo suficientemente regular, puede ampliarse el desarrollo en serie considerado truncándolo en el primero de los términos que no se anule (que será posterior a aquel en el que interviene la derivada n-ésima). Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 25 4ª) Con todo, como ya señaló anteriormente, lo más interesante de esta forma de proceder no es tanto el resultado obtenido como el procedimiento seguido para determinar el error de la fórmula (combinando desarrollos en serie de Taylor). 5ª) Cuando el soporte es equidistante los cálculos anteriores suelen rehacerse designando como h a la distancia entre los puntos del soporte. • Habitualmente el error se acota en valor absoluto, |Rf(x*)|. A partir del teorema anterior es fácil obtener una cota de este error utilizando el lema siguiente: Lema 4.1. Si g(x) es una función continua en [a, b] y se consideran (n+1) coeficientes positivos, { }n i i=0 α , y (n+1) puntos { }n i i=0 ξ pertenecientes al intervalo [a, b], entonces existe un punto ξ ∈ [a,b] tal que: = α ξ = α ξ Σn ii i0 .g( ) .g( ) donde n i i=0 α = Σα . Demostración: Cálculo Numérico – Lic. R. Riveros 54 Derivación Numérica Denotemos por gm y por gM a los valores mínimo y máximo que toma la función g(x) en [a, b]. Por ser todos los coeficientes positivos se verifica que: i m i i i M α.g ≤α.g(ξ)≤α.g (i = 0, 1, ..., n) Sumando las expresiones anteriores se tiene que: nnnn imiiiMmiiM i0i0i0i0 .g .g( ) .g .g .g( ) .g ==== Σα ≤Σα ξ ≤Σα ⇒α ≤Σα ξ ≤α ⇒ n miiM i0 g 1. .g( ) g = ⇒≤αξ≤ αΣ Las desigualdades anteriores, junto a la hipótesis realizada sobre la continuidad de la función g(x) en el intervalo [a, b], nos muestran que, por aplicación del teorema del valor medio, existirá en [a, b] al menos un punto ξ para el que se verifique que: Programación y Métodos Numéricos Derivación Numérica 26 nn iiii i0i0 1 . .g( ) g( ) .g( ) .g( ) == αξ=ξ⇒αξ=αξ αΣ Σ c.q.d. El lema precedente y el teorema 4.1. nos permiten demostrar fácilmente el siguiente teorema: Teorema 4.2. Dado el soporte de (n+1) puntos x0 < x1 < .... < xn, siendo f(x) una función de clase C(n+1)((x0 , xn)), x* un punto del intervalo [x0 , xn] y denotando por h al valor h = máx( |x* – x0 |, |xn – x|), para toda fórmula de derivación numérica de tipo interpolatorio: n ' x* i i i0 f '(x*) f c .f(x ) = ≈ =Σ existe algún punto ξ ∈ [x0,xn] y alguna constante real positiva β para los que se verifica: Cálculo Numérico – Lic. R. Riveros 55 Derivación Numérica |Rf(x*)| ≤ β.hn.f(n+1(ξ) Demostración: Según el teorema 4.1., y utilizando la misma notación que en él, se tiene que: ()nn ' n (n 1 f x* i i i i i0 R (x*) f(x*) f h . c . .h .f (x * .h) (n 1)! + = = − = θ +δ +Σ de donde: ()nn ' n (n 1 f x* i i i i i0 R (x*) f(x*) f h . c . .h .f (x * .h) (n 1)! + = = − = θ +δ ≤ +Σ nn n (n1 iiii i0 h . c. .h.f (x* .h) (n 1)! + = ≤ θ +δ +Σ Aplicando el lema 4.1. (para la función g(x) = |f(n+1(x)|, evaluada en los puntos ξi = x* + δi.h, y con los coeficientes αi = |ci.θi n.hi| ) se puede concluir que existirá un valor x∈ [x0 , xn] para el que se verificará que: n i i 0 (n 1) (n 1 f R (x*) .h . f ( ) (n 1)! =++ ⎧⎫ ⎨ α⎬ ≤⎩⎭ξ Cálculo Numérico – Lic. R. Riveros 56 Derivación Numérica + Σ de donde se tiene el resultado de este teorema sin más que llamar β al escalar n i i0 1. (n 1)! = β= α +Σ c.q.d. Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 27 En el apartado siguiente se deducirán algunas fórmulas de derivación numérica y se detallará cómo obtener la expresión del error que con ellas se comete. ANEXO AL APARTADO 4º Lema 4.2. Para todo valor entero k superior o igua a 2 se verifica que: ( k 1) j j0 k ( 1) .(k j). 0 k 2 j − = ⎛⎞ − − ⎜ ⎟= ∀ ≥ ⎝⎠ Σ Demostración: Se tiene que: − ==== ⎛⎞⎛⎞⎛⎞⎛⎞ − − ⎜ ⎟= − − ⎜ ⎟= − ⎜ ⎟− − ⎜ ⎟ ⎝⎠⎝⎠⎝⎠⎝⎠ Σ Σ Σ Σ (k 1) k k k jjjj j0j0j0j0 kkkk ( 1) ·(k j)· ( 1) ·(k j)· k· ( 1) · ( 1) ·j· jjjj Analicemos, utilizando la fórmula del binomio de Newton7, el primero de los sumandos del lado derecho de esta igualdad: Cálculo Numérico – Lic. R. Riveros 57 Derivación Numérica = ⎛⎞ − ⎜ ⎟= − = = ⎝⎠ Σk jk j0 k k· ( 1) · k·(1 1) k·0 0 j Analicemos ahora el sumando que queda en el lado derecho: = ⎛⎞ −⎜⎟ ⎝⎠ Σk j j0 k ( 1)·j· j . Para ello procederemos por inducción. Para el valor k = 2 se tiene que el sumando anterior tiene el valor: = ⎛⎞ − ⎜ ⎟= + − + = ⎝⎠ Σ2 j j0 2 ( 1) ·j· 1· 0 ·1 ( 1) ·1· 2 1· 2 ·1 0 j Admitamos entonces que para algún valor (k-1) > 2 se verifica que: − = ⎛−⎞ − ⎜ ⎟= ⎝⎠ Σ(k 1) j j0 k1 ( 1)·j· 0 j 7 Recuérdese que la fórmula del binomio de Newton establece que: Cálculo Numérico – Lic. R. Riveros 58 Derivación Numérica ()− = ⎛⎞ +=⎜⎟ ⎝⎠ Σk k (k j) j j0 k a b ·a ·b j Programación y Métodos Numéricos Derivación Numérica 28 y demostremos que en ese caso también se anula el sumatorio para el entero k. En efecto, con esta suposición: ==== ⎛⎞ − ⎜⎝ ⎟⎠= − − = − − = − − − = ΣΣΣΣkkkk jjjj j0j0j1j1 ( 1) ·j· k ( 1) ·j· k! ( 1) ·j· k! ( 1) · k! j j!·(k j)! j!·(k j)! (j 1)!·(k j)! === −−⎛−⎞ = − − − = − − − = − ⎜⎝ ⎟⎠= ΣΣΣkkk jjj j1j0j0 k· ( 1) · (k 1)! k· ( 1) · (k 1)! k· ( 1) · k 1 0 (j 1)!·(k j)! j!·(k j 1)! j Por tanto: − === ⎛⎞⎛⎞⎛⎞ −−⎜⎟=−⎜⎟−−⎜⎟=−= ⎝⎠⎝⎠⎝⎠ Σ Σ Σ (k 1) k k jjj j0j0j0 kkk ( 1) ·(k j)· k· ( 1) · ( 1) ·j· 0 0 0 jjj c.q.d. Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . Cálculo Numérico – Lic. R. Riveros 59 Derivación Numérica 29 5. Algunas fórmulas de derivación numérica de tipo interpolatorio usuales para aproximar primeras derivadas. 5.1. Fórmula con dos puntos de soporte Si se considera el soporte {x0 , x1} y una función f(x) de la que se conoce su valor en los puntos del soporte, el polinomio interpolador de Lagrange de tal función sobre el soporte escogido está dado por: 10 01 0110 p(x) f(x ). (x x ) f(x ). (x x ) (x x ) (x x ) −− =+ −− Por tanto la expresión de la fórmula que permite aproximar f’(x*) se obtendrá derivando la expresión de este polinomio de manera que: 'x *0101 01101010 f '(x*) f p'(x*) 1 .f(x ) 1 .f(x ) 1 .f(x ) 1 .f(x ) (x x ) (x x ) (x x ) (x x ) − ≈==+=+ −−−− Es habitual en este caso denotar por H a la distancia entre puntos: H = (x1 – x0) con lo que la fórmula anterior puede expresarse como: ' x* 0 1 f(x*) f 1.f(x ) 1.f(x ) HH − ≈=+ siendo los coeficientes de la fórmula c0 = -(1 / H) y c1 = (1 / H). NOTAS: 1ª) Obsérvese que la fórmula obtenida coincide con el cociente incremental que nos sirvió para ilustrar las fórmulas de derivación numérica en la introducción a este tema (apartado 1º). 2ª) En la obtención de esta fórmula se ha partido de la expresión del polinomio interpolador que utiliza los polinomios de base de Lagrange. Cualquier otra expresión del polinomio interpolador nos hubiese conducido a idéntico resultado pues el polinomio interpolador de Lagrange, sobre un soporte dado, es el mismo se utilice el método que se utilice para determinarlo. Así por ejemplo si se hubiera partido de la fórmula de Newton en diferencias divididas: p(x) = f(x0) + f[x0, x1].(x-x0) Programación y Métodos Numéricos Derivación Numérica 30 Cálculo Numérico – Lic. R. Riveros 60 Derivación Numérica que al derivarlo, teniendo en cuenta la expresión de la diferencia dividida nos proporciona: p’(x) = f[x0, x1].(x-x0) = 1 0 0 10 f(x ) f(x ) .(x x ) xx − − − por lo que particularizando esta expresión en el punto x = x* y denotando por H a la distancia entre puntos se tiene finalmente que: ' x* 0 1 f(x*) f p'(x*) 1.f(x ) 1.f(x ) HH − ≈==+ En este caso, al haber sólo dos puntos de soporte, se puede considerar el soporte equidistante y podrían haberse utilizado las expresiones del polinomio interpolador en diferencias finitas (centradas, regresivas o progresivas) obteniéndose la misma fórmula. Se deja el desarrollo detallado de estos casos como ejercicio propuesto al lector. 3ª) La figura 2ª representada anteriormente (ver apartado 3º) recoge la interpretación gráfica de este proceso de aproximación. • La expresión del error de esta fórmula, admitiendo la hipótesis de que f(x) sea de clase C2 ((x0 , x1)) y que x* pertenezca a [x0, x*], puede obtenerse sin más que denotar por h al valor h = máx(|x0 – x*|, |x1 – x*|) y considerando entonces que: x0 - x* = 0 θ .h x1 - x* = 1θ .h por lo que: ' x* f = c0.f(x0) + c1.f(x1) = ( ) 1 0 1 . f(x ) f(x ) H −=()10 1. f(x* .h) f(x* .h) H +θ − +θ = 22 111 1. f(x*) .h.f '(x*)1. .h .f "(x * .h) H2 ⎡ = + θ + θ +δ − ⎢⎣ 22 Cálculo Numérico – Lic. R. Riveros 61 Derivación Numérica 000 f(x*) .h.f '(x*) 1. .h .f "(x * .h) 2 ⎤ − −θ − θ +δ = ⎥⎦ = 1 0.h.f '(x*) H θ−θ +2222 1100 1 .h .f "(x * .h) 1 .h .f "(x * .h) 2.H 2.H θ +δ − θ +δ = = 1 0 1. x x .h.f '(x*) Hh ⎛−⎞ ⎜⎟ ⎝⎠ +2222 1100 1 .h .f "(x * .h) 1 .h .f "(x * .h) 2.H 2.H θ +δ − θ +δ = = f’(x*) + ( ) 2 22 1100 h . .f"(x* .h) .f"(x* .h) 2.H θ +δ −θ +δ Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 31 Puesto que H se podrá expresar como γ.h con (γ > 1) resultará finalmente, aplicando el lema 4.1., que: Rf(x*) = h . 2.γ(2 2 ) 1 1 0 0 θ.f "(x *+δ.h)−θ.f "(x *+δ.h) = β.h.f "(ξ) En el caso de ser x* un punto cualquiera el orden del error de la fórmula de derivación numérica es 0(h) donde h representa la mayor de las distancias del punto x* a los extremos del intervalo. Más frecuente aún que la expresión del error anterior es la que se obtiene al expresar dicha fórmula en función de la distancia entre los puntos del soporte (H). Fácilmente se obtiene esta nueva expresión sin más que considerar que h = μ.H (con ½ < μ < 1) por lo que la expresión del error queda en el caso más general en la forma: Rf(x*) = ρ.H.f”(ξ) La fórmula de derivación con dos puntos de soporte suele utilizarse cuando x* es uno de los puntos extremos del intervalo o el punto medio del mismo (caso, Cálculo Numérico – Lic. R. Riveros 62 Derivación Numérica este último, en el que el orden del error de la fórmula se incrementa en una unidad). A continuación se desarrollan estos casos particulares de la fórmula de derivación con un soporte de dos puntos. 5.1.1. Casos particulares A) Caso en el que x* = x0 En este caso h = H, 0 θ = 0 y 1 θ = 1 y la fórmula se puede escribir en la forma: ' x* f f(x * h) f(x*) h +− = denominándose “aproximación mediante la diferencia finita progresiva de primer orden” (o en adelanto). El error de esta fórmula, si f(x) es suficientemente regular puede obtenerse particularizando en la expresión antes obtenida resultando: ' f x* R (x*) f(x*) f h.f "(x * .h) 2 = − =− +δ δ ∈[0,1] Por tanto en este caso la fórmula es exacta de orden 1. Programación y Métodos Numéricos Derivación Numérica 32 NOTA: Al mismo resultado sobre el error se llegaría sin más que considerar que: f(x*+h) = f(x*) + h.f’(x*) + (h2/ 2).f”(x*) + ..... de donde: f’(x*) = ' x* f(x * h) f(x*) 1.h.f "(x*) .... f 1.h.f "(x*) .... h22 +− −−=−− B) Caso en el que x* = x1 En este caso h = H, 0 θ = −1 y 1 θ = 1 y la fórmula se puede escribir en la forma: ' x* f f(x*) f(x * h) h −− = denominándose “aproximación mediante la diferencia finita regresiva de primer orden” (o en retroceso o upwind). El error de esta fórmula, si f(x) es suficientemente regular puede obtenerse particularizando en la expresión antes obtenida resultando: Cálculo Numérico – Lic. R. Riveros 63 Derivación Numérica ' f x* R (x*) f(x*) f h.f "(x * .h) 2 = − = −δ δ ∈[0,1] Por tanto, en este caso la fórmula es exacta de orden 1. NOTA: Al mismo resultado sobre el error se llegaría sin más que considerar que: f(x*-h) = f(x*) - h.f’(x*) + (h2/ 2).f”(x*) - ..... de donde: f’(x*) = ' x* f(x*) f(x * h) 1.h.f "(x*) .... f 1.h.f "(x*) .... h22 −− +−=+− C) Caso en que x* es el punto medio del intervalo: x* = (x0 + x1) / 2 En este caso h = H/2, 0 θ = −1 y 1 θ = 1 pudiéndose rescribir la fórmula de derivación numérica en la forma: ' x* f f(x * h) f(x * h) 2.h +−− = Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 33 denominándose “aproximación mediante la diferencia finita centrada de primer orden”. El error de esta fórmula, si f(x) es suficientemente regular puede obtenerse, en un primer intento, particularizando en la expresión antes obtenida resultando: '() f x* 1 0 R (x*) f(x*) f h . f "(x * .h) f "(x * .h) 4 = − = +δ − −δ [ ] 0 1 δ,δ ∈0,1 No obstante la expresión anterior nos deja con la duda de si no podrán anularse más términos del desarrollo en serie de Taylor a partir del cual se obtuvo la expresión del error. En efecto, en este caso si se admite que f(x) es suficientemente regular se podrían considerar los desarrollos en serie de Taylor de f(x) con más términos que los antes planteados, es decir: f(x0) = f(x*-h) = f(x*) – h.f’(x*) + (½).h2f”(x*) 34 h.f '''(x*) h.f(iv (x*) .... 6 24 Cálculo Numérico – Lic. R. Riveros 64 Derivación Numérica +− f(x1) = f(x*+h) = f(x*) + h.f’(x*) + (½).h2f”(x*) + 34 h.f '''(x*) h.f(iv (x*) .... 6 24 ++ por lo que: f(x+h) – f(x-h) = 2.h.f’(x*) + 35 h.f '''(x*) h.f(v (x*) ... 3 60 ++ de donde: 24 ' (v x* f f(x * h) f(x * h) f '(x*) h .f '''(x*) h .f (x*) .... 2.h 6 120 +−− ==+++ y por tanto: Rf(x*) = f’(x*) 24 ' (v x* f h.f '''(x*) h .f (x*) .... 6 120 =− − − En resumen, si f(x) es de clase C3((x0, x1)) puede afirmarse en este caso que: 2 f R (x*) h .f '''(x* h) 6 = − +δ δ ∈[0,1] por lo que en este caso la fórmula es exacta de orden 2. 5.2. Fórmula con tres puntos de soporte Sea ahora el soporte de tres puntos x0 < x1 < x2 y consideremos un punto x* perteneciente al intervalo [x0, x2]. Sea además f(x) una función de la que se conocen sus valores en los puntos del soporte. El polinomio interpolador de Lagrange de f(x) sobre este soporte puede expresarse, utilizando la fórmula de Newton en diferencias divididas, mediante: Programación y Métodos Numéricos Derivación Numérica 34 p2(x) = f(x0) + f[x0, x1].(x - x0) + f[x0 , x1, x2].(x – x0).(x – x1) por lo que: p’2(x) = f[x0, x1]+ f[x0 , x1, x2].((x – x0) + (x – x1)) Cálculo Numérico – Lic. R. Riveros 65 Derivación Numérica lo que nos conduce a que la fórmula de derivación numérica de tipo interpolatorio con este soporte está dada por: f’(x*) ' ' ≈__________fx* =p2(x*) = f[x0, x1]+ f[x0 , x1, x2].((x* – x0) + (x* – x1)) NOTAS: 1ª) En este caso se ha utilizado la fórmula de Newton del polinomio interpolador para inferir a partir de ella la fórmula de derivación de tipo interpolatorio. Puesto que, sobre un soporte dado, el polinomio interpolador de Lagrange es único podrían haberse utilizado otras expresiones de este polinomio para obtener el mismo resultado. No obstante es cómodo utilizar la fórmula de Newton en el caso general para no obtener expresiones que, desarrolladas, quedan muy “aparatosas” sin aportar nada para nuestros propósitos. 2ª) En la expresión anterior pueden sustituirse las diferencias divididas que intervienen por sus expresiones respectivas8. Ello hace que la fórmula tome un aspecto más “engorroso” para su manipulación. 3ª) En el sentido de lo expresado en la primera de estas “notas” el polinomio interpolador podría haberse expresado en la forma: p2(x) = f(x0).L0(x) + f(x1).L1(x) + f(x2).L2(x) con: 12 0 0102 L (x) (x x ).(x x ) (x x ).(x x ) −− = −− ,02 1 1012 (x x ).(x x ) L (x) (x x ).(x x ) −− = −− ,01 2 2021 (x x ).(x x ) L (x) (x x ).(x x ) −− = −− 8 Recuérdese que: [ ] − Cálculo Numérico – Lic. R. Riveros 66 Derivación Numérica = − 10 01 10 f(x)f(x) f x ,x xx ,[]21 12 21 f(x)f(x) f x ,x xx − = − y []1201 012 20 f [ x ,x ] f [ x ,x ] fx,x,x xx − = − Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 35 para así obtener la misma fórmula de derivación numérica pero ahora con la expresión ''''' x* 2 0 0 1 1 2 2 f(x*) f p (x*) L (x*).≈ = = f(x )+L (x*).f(x )+L (x*).f(x ) En esta última expresión los coeficientes de la fórmula aparecen de forma más explícita y toman la expresión: c0 ' 1 2 0 0102 L (x*) (x * x ) (x * x ) (x x ).(x x ) −+− == −− , c1 02 Cálculo Numérico – Lic. R. Riveros 67 Derivación Numérica 1 1012 (x * x ) (x * x ) L (x*) (x x ).(x x ) −+− == −− c2 0 1 2 2021 (x * x ) (x * x ) L (x*) (x x ).(x x ) −+− == −− 4ª) La interpretación gráfica del proceso de derivación numérica seguido con esta fórmula consiste en sustituir la tangente trigonométrica del ángulo formado entre el eje de abscisas y la tangente geométrica al grafo de f(x) en el punto (x*, f(x*)) por la tangente trigonométrica del ángulo formado entre el eje de abscisas y la tangente geométrica en el punto (x*, p2(x*)) al grafo de la parábola p2(x) que pasa por los puntos (x0 , f(x0)), (x1 , f(x1)) y (x2 , f(x2)). La figura 3 ilustra este proceso. • Figura 3: Interpretación gráfica del proceso de derivación numérica seguido con una fórmula de tipo interpolatorio con tres puntos de soporte. Programación y Métodos Numéricos Derivación Numérica 36 En lo que se refiere al error de truncatura de esta fórmula, su expresión puede acotarse, si f∈C3((x0 , x1)), utilizando el teorema 4.2. mediante: 2 ''' Rf(x*) ≤β.h . f (ξ) Los casos de aplicación más típicos para esta fórmula de derivación numérica son aquellos en los que el punto x* coincide con uno de los puntos del soporte siendo, además, el soporte equidistante. A continuación se analizan con detalle estas situaciones. 5.2.1. Casos particulares con soporte equidistante En este caso, denotando por H a la distancia entre puntos consecutivos del soporte las diferencias divididas que intervienen en la fórmula pueden ser expresadas mediante: 10 01 f(x ) f(x ) f[x ,x ] H − Cálculo Numérico – Lic. R. Riveros 68 Derivación Numérica =210 0122 f(x ) 2.f(x ) f(x ) f[x ,x ,x ] 2.H −+ = por lo que la fórmula de derivación numérica de tipo interpolatorio se convierte en: ' 1 0 2 1 0* x* 2 0 1 f '(x*) f f(x ) f(x ) f(x ) 2.f(x ) f(x ).((x x ) (x * x )) H 2.H −−+ ≈=+−+− A) Caso de soporte equidistante en el que x* = x0 Si se toma como punto x* el extremo izquierdo del soporte se tiene que: x0 = x*, x1 = x* + H y x2 = x* + 2.H. Con ello (x* - x0) = 0 y (x* - x1) = -H por lo que: x0 x1 x2 HH Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 37 '10210 x* f '(x*) f f(x ) f(x ) f(x ) 2.f(x ) f(x ) H 2.H −−+ ≈=−= 2 1 0 f(x ) 4.f(x ) 3.f(x ) f(x * 2.H) 4.f(x * H) 3.f(x*) 2.H 2.H −+−−+++− == La fórmula anterior se conoce con el nombre de fórmula de derivación numérica en diferencias progresivas de segundo orden. Si se admite que f(x) es una función suficientemente mente regular, el error de derivación puede obtenerse fácilmente combinando los desarrollos en serie de Taylor: f(x* + 2.H) = f(x*) + 2.H.f’(x*) +2.H2.f”(x*) + (8/6).H3.f’’’(x*) + … f(x* + H) = f(x*) + H.f’(x*) + (½ ) H2.f”(x*) + (1/6).H3.f’’’(x*) +... por lo que: -f(x*+2.H) + 4.f(x*+H) – 3.f(x*) = 2.H.f’(x*) – (2/3).H3.f’’’(x*) + …. de donde: f’(x*) f(x * 2.H) 4.f(x * H) 3.f(x*) 1.H2.f '''(x*) .... 2.H 3 Cálculo Numérico – Lic. R. Riveros 69 Derivación Numérica −+++− =++ pudiéndose concluir que si f(x) es al menos de clase C3((x0 , x1)) entonces: Rf(x*) = f(x*) – fx* ’ = (1/3).H2.f’’’(ξ) B) Caso de soporte equidistante en el que x* = x1 Si se toma como punto x* el punto medio del soporte se tiene que: x0 = x* - H, x1 = x* y x2 = x* + H. Con ello (x* - x0) = H y (x* - x1) = 0 por lo que: '1021020 x* f '(x*) f f(x ) f(x ) f(x ) 2.f(x ) f(x ) f(x ) f(x ) H 2.H 2.H −−+− ≈=+== f(x * H) f(x * H) 2.H +−− = Programación y Métodos Numéricos Derivación Numérica 38 fórmula que coincide con la que se obtuvo al utilizar un soporte de 2 puntos y aproximar la derivada en el punto medio de ellos. C) Caso de soporte equidistante en el que x* = x2 Si se toma como punto x* el punto derecho del soporte se tiene que: x0 = x* - 2.H, x1 = x*- H y x2 = x*. Con ello (x*-x0) = 2.H y (x*-x1) = H por lo que: '10210 x* 2 f '(x*) f f(x ) f(x ) f(x ) 2.f(x ) f(x ).(3.H) H 2.H −−+ ≈=+= 2 1 0 3.f(x ) 4.f(x ) f(x ) 3.f(x*) 4.f(x * H) f(x * 2.H) 2.H 2.H −+−−+− == expresión que se conoce como fórmula de derivación numérica en derivadas regresivas de segundo orden. Si f(x) es suficientemente regular pueden combinarse los desarrollos en serie de Taylor: f(x* - 2.H) = f(x*) - 2.H.f’(x*) +2.H2.f”(x*) - (8/6).H3.f’’’(x*) + … f(x* - H) = f(x*) - H.f’(x*) + (½ ) H2.f”(x*) - (1/6).H3.f’’’(x*) +... obteniendo: 3.f(x*) – 4.f(x*-H) + f(x*-2.H) = 2.H.f’(x*) – (2/3).H3.f’’’(x*) - .... de donde, si f(x) es al menos de clase C3((x0, x2) se obtiene que: Rf(x*) = f(x*) – fx* Cálculo Numérico – Lic. R. Riveros 70 Derivación Numérica ’ = (1/3).H2.f’’’(ξ) Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 39 6. Otros métodos para la obtención de fórmulas de derivación numérica de tipo interpolatorio. 6.1. Mediante la combinación de desarrollos en serie de Taylor. El proceso seguido en el apartado 4º para determinar el error de derivación numérica muestra otra manera de calcular las fórmulas de derivación. En efecto, una alternativa al proceso de obtención de fórmulas de derivación numérica mediante el cálculo de la primera derivada del polinomio interpolador de Lagrange de la función f(x) en los (n+1) puntos del soporte, consiste en combinar los desarrollos de Taylor en torno al punto x* de f(x0), f(x1), ..., f(xn) buscando que en dicha combinación se anulen el mayor número posible de los primeros términos salvo, obviamente, el que multiplica a f’(x*). Despejando después f’(x*) de esta combinación se obtendrá la fórmula de derivación y el término de error. De forma más detallada, si se denota por hi = xi – x* (i = 0, .., n) y se admite que f(x) posee la regularidad necesaria, se puede escribir que: f(xi) = f(x*+hi) = f(x*) + hi·f(x*) + + + + + 23k i i i (k h·f "(x*) h·f '''(x*) .... h ·f (x*) .... 2! 3! k! Por lo que: ==== ⎛⎞⎛⎞⎛⎞ α =⎜ α⎟ +⎜ α ⎟ + ⎜ α ⎟ + ⎝⎠⎝⎠⎝⎠ ΣΣΣΣnnnn 2 iiiiiii i0i0i0i0 ·f(x ) ·f(x*) ·h ·f '(x*) 1 ·h ·f "(x*) 2! == ⎛⎞⎛⎞ ⎜α⎟++⎜α⎟+ ⎝⎠⎝⎠ ΣΣnn 3 k(k iiii i0i0 1 ·h ·f '''(x*) ....1 ·h ·f (x*) ... 3! k! (1) Si se desea que la fórmula de derivación sea del mayor orden posible debe buscarse que, salvo el coeficiente de f’(x*), se anulen el mayor número de los Cálculo Numérico – Lic. R. Riveros 71 Derivación Numérica primeros sumandos del desarrollo anterior. Esto es, que: = α = Σn i i0 0 = α = Σn 2 ii i0 ·h 0 ......... = α = Σn k ii i0 ·h 0 En general el número de ecuaciones que así se pueden formar es de n ecuaciones quedando un sistema con (n+1) incógnitas (α0, ..., αn) y tan sólo n ecuaciones. Ello es debido a que con el coeficiente de f’(x*) se debe añadir la inecuación = α ≠ Σn ii i0 ·h 0 . Programación y Métodos Numéricos Derivación Numérica 40 Por ello los coeficientes (α0, ..., αn) que se determinen mediante la resolución del sistema: = α = Σn i i0 0 = α = Σn 2 ii i0 ·h 0 ........ = α = Σn n ii Cálculo Numérico – Lic. R. Riveros 72 Derivación Numérica i0 ·h 0 quedarán en función del valor que libremente se le asigne a uno de ellos. En todo caso, una vez calculados estos coeficientes, denotando por = α = α Σn ii i0 ·h se tendrá que los coeficientes de la fórmula de derivación se obtienen mediante: ci = αi / α (i = 0, ..., n) y que del primer término que no se haya podido anular en la expresión (1) se podrá inferir fácilmente la expresión del error de derivación. Ilustremos estos extremos con un ejemplo. Ejemplo: Determinemos la fórmula de derivación numérica del mayor orden de exactitud posible que permite calcular el valor aproximado de f’(x*) usando un soporte de la forma: {x0 = x* - 2·h, x1 = x* - (½)·h, x2 = x* + (½)·h, x3 = x* + (3/2)·h} donde h es un valor real estrictamente positivo. Para ello, si suponemos que f(x) es suficientemente regular en (x0, x3) podemos considerar los desarrollos en serie de Taylor: f(x*-2·h) =f(x*) –2·h·f’(x*) + − + 4·h2·f "(x*) 8·h3·f '''(x*) 26 − 4 16·h ·f(iv (x*) 24 −+ 5 32·h ·f(v (x*) ... 120 f(x*-(½)·h) =f(x*) – 1· 2 h·f’(x*) + − + h2·f "(x*) h3·f '''(x*) 8 48 − 4 h ·f(iv (x*) 384 −+ 5 h ·f(v (x*) ... 3840 Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid Cálculo Numérico – Lic. R. Riveros 73 Derivación Numérica . 41 f(x*+(½)·h) =f(x*) + 1· 2 h·f’(x*) + + + h2·f "(x*) h3·f '''(x*) 8 48 + 4 h ·f(iv (x*) 384 ++ 5 h ·f(v (x*) ... 3840 f(x*+ 3 2 ·h) =f(x*) + 3· 2 h·f’(x*) + + + 9·h2·f "(x*) 27·h3·f '''(x*) 8 48 + 4 91·h ·f(iv (x*) 384 ++ 5 273·h ·f(v (x*) ... 3840 de donde: α − +α − +α + +α + = 0 1 2 3 ·f(x * 2·h) ·f(x * 1·h) ·f(x * 1·h) ·f(x * 3·h) 222 =(α + α + α + α ) + 0 1 2 3·f(x*) +⎛⎜− α − α + α + α⎞⎟ + ⎝⎠0123 2· 1· 1· 3· ·h·f '(x*) 222 +⎛⎜ α + α + α + α⎞⎟ + ⎝⎠ 2 0123 2· 1· 1· 9· ·h ·f "(x*) 888 +⎛⎜− α − α + α + α⎞⎟ + ⎝⎠ Cálculo Numérico – Lic. R. Riveros 74 Derivación Numérica 3 0123 8. 1· 1· 27· ·h ·f '''(x*) 6 48 48 48 +⎛⎜ α + α + α + α⎞⎟ + ⎝⎠ 4 (iv 0123 16. 1· 1· 91· ·h·f(x*) 24 384 384 384 +⎛⎜− α − α + α + α⎞⎟ + ⎝⎠ 5 (v 0123 32 . 1 · 1 · 273 · ·h ·f (x*) .... 120 3840 3840 3840 Si se desea que la fórmula tenga el mayor orden posible se obligará a que: α+α+α+α=01230 0123 2· 1· 1· 9· 0 888 α+α+α+α= 0123 8. 1· 1· 27· 0 6 48 48 48 −α−α+α+α= Programación y Métodos Numéricos Derivación Numérica 42 de donde9, dejando como incógnita libre α1, se tiene: 012131 8· , 66· , 3· 455 65 91 −− α=αα=αα=α Si se asigna a α1 el valor α1 = 1 se tiene que: 0123 8, 1, 66 , 3 455 65 91 −− α=α=α=α= Para estos valores de los coeficientes α i, se tiene entonces que la combinación de desarrollo en serie de Taylor antes obtenida se convierte en: 8·f(x * 2·h) f(x *1·h) 66·f(x * 1·h) 3 ·f(x * 3·h) 455 2 65 2 91 2 −−+−−+++= = −12·h·f '(x*) − 1 ·h4·f(iv(x*) + .... Cálculo Numérico – Lic. R. Riveros 75 Derivación Numérica 76 13 208 por lo que: f’(x*) = ( ) ( h) ( h) ( 3·h ) 222 1· 2 ·f x * 2·h 13·f x * 11·f x * 1 ·f x * h 105 12 10 28 ⎛⎜ − − − + + − + ⎞⎟ ⎝⎠ − 1 ·h3·f(iv(x*)+..... 192 De esta igualdad se infiere que la fórmula buscada es: ( ) ( h) ( h) ( 3·h ) *222 f '(x*) f ' 1· 2 ·f x * 2·h 13·f x * 11·f x * 1·f x * h 105 12 10 28 ≈ =⎛⎜ − − − + + − + ⎞⎟ ⎝⎠ y que con ella, si f∈C4((x*-2·h, x*+3·h/2)), se comete un error dado por: =− 3 (iv ξ f R (x*) 1 ·h ·f ( ) 192 para algún valor ξ∈(x*-2·h, x*+3·h/2). Es decir un error de orden 3. 9 Obsérvese que si al sistema anterior se le añadiese la ecuación procedente de obligar a que se anulase el coeficiente de f’’’(x*) se tendría un sistema que sólo admite la solución trivial α0 = = α1 = α2 = α3 = 0. Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 43 6.2. M騁odo de coeficientes indeterminados. Este método de determinación de fórmulas de derivación de tipo interpolatorio soportadas en (n+1) puntos se basa en que, según el teorema 3.1. toda fórmula de tal tipo debe ser exacta para los monomios {1, x, ..., xn}. Por tanto, si se busca una fórmula con expresión: = ≈ =Σn *ii i0 f '(x*) f ' c f(x ) , su aplicación a cada uno de los (n+1) monomios xk (0 < k < n) nos conduce a que: = = Σn i Cálculo Numérico – Lic. R. Riveros Derivación Numérica i0 c0 ()− = = Σn k (k 1) ii i0 c x k· x * (k = 1, ..., n) es decir al sistema: ()− ⎡ ⎤⎧ ⎫ ⎧ ⎫ ⎢ ⎥⎪ ⎪ ⎪ ⎪ ⎢⎢ ⎥⎥⎨⎪⎪ ⎪⎪⎬ = ⎨⎪⎪ ⎪⎬⎪ ⎢ ⎥⎪ ⎪ ⎪ ⎪ ⎢ ⎥⎪ ⎪ ⎪ ⎪ ⎢⎣ ⎥⎦⎪⎩ ⎭⎪ ⎪⎩ ⎪⎭ 0 012n1 2222 012n2 n n n n (n 1) 012nn 1 1 1 ... 1 c 0 x x x ... x c 1 x x x ... x c 2x * ... ... ... ... ... ... ... x x x ... x c n x* Si los (n+1) puntos del soporte son diferentes puede asegurarse que el sistema anterior es compatible determinado. Su resolución proporciona los pesos de la fórmula de derivación buscada. Siendo “h” un valor estrictamente positivo en función del cual se puedan escribir, para valores convenientes de γi (i = 0, ...,n), los puntos del soporte en la forma xi = x* + γih, el sistema anterior puede simplificarse si en lugar de aplicar la fórmula a los monomios {1, x, ..., xn} se aplica a los polinomios: { 1, (x-x*), (x-x*)2, ...., (x-x*)n} En efecto, la aplicación de la fórmula a f(x) = 1 conduce a que: = = Σn i i0 c0 Si n > 0, su aplicación a f(x) = (x – x*) proporciona la ecuación: == Σ γ = ⇒Σ γ = n n iiii i0i0 Cálculo Numérico – Lic. R. Riveros 77 Derivación Numérica ch1c1 h Programación y Métodos Numéricos Derivación Numérica 44 Y si n > 1 , para valores del exponente menores o iguales que n se tiene que: ()− == − =Σ γ ⇒Σ γ = n n (k 1) k k k iiii i0i0 k x* x* c h c 0 En resumen, los coeficientes de la fórmula de tipo interpolatorio se obtienen resolviendo el sistema: ⎡ ⎤⎧ ⎫ ⎧ ⎫ ⎢⎢⎢γγ γγ γγ γγ⎥⎥⎥⎪⎪⎨⎪ ⎪⎪⎪⎬ = ⎨⎪⎪⎪ ⎪⎬⎪⎪ ⎢ ⎥⎪ ⎪ ⎪ ⎪ ⎢ ⎥⎪ ⎪ ⎪ ⎪ ⎢⎣γ γ γ γ⎥⎦⎪⎩ ⎭⎪ ⎪⎩ ⎪⎭ 0 1 012n1h 2222 012n2 nnnn 012nn 1 1 1 ... 1 c 0 ... c ... c 0 ... ... ... ... ... ... ... ... c 0 Una vez determinada la fórmula, su error puede también ser calculado si se busca en la forma Rf(x*) = K·h(m-1)·f(m(ξ) aplicándolo al primer binomio (x-x*)m (cuya derivada m-ésima es una constante no nula) para el que la fórmula deja de ser exacta (hecho que tendrá lugar para m > n). Ilustremos esta forma de proceder obteniendo nuevamente la fórmula de derivación numérica hallada en el subapartado anterior mediante combinaciones de desarrollos en serie de Taylor. Ejemplo: Determinemos la fórmula de derivación numérica de tipo interpolatorio que permite calcular el valor aproximado de f’(x*) usando un soporte de la forma: {x0 = x* - 2·h, x1 = x* - (½)·h, x2 = x* + (½)·h, x3 = x* + (3/2)·h} donde h es un valor real estrictamente positivo. Según se ha visto anteriormente, los coeficientes de la fórmula se pueden obtener resolviendo el sistema: − − Cálculo Numérico – Lic. R. Riveros 78 Derivación Numérica ⎡ ⎤⎧ ⎫ ⎧ ⎫ ⎢⎢⎢⎢⎣−− ⎥⎥⎥⎥⎦⎨⎪⎪⎪⎪⎩ ⎪⎭⎪⎪⎪⎬ = ⎪⎩⎨⎪⎪⎪ ⎪⎭⎪⎪⎪⎬ 0 1131 2221h 119 4442 1 1 27 8883 1111c0 2c 4c0 8c0 o, eliminando denominadores, el sistema equivalente: Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 45 ⎡ ⎤⎧ ⎫ ⎧ ⎫ ⎢⎢⎢⎢⎣−− −− ⎥⎥⎥⎥⎦⎨⎪⎪⎪⎪⎩ ⎪⎭⎪⎪⎪⎬ = ⎪⎩⎨⎪⎪⎪ ⎪⎭⎪⎪⎪⎬ 0 2 1h 2 3 1111c0 4113c 16 1 1 9 c 0 64 1 1 27 c 0 La solución del sistema anterior nos proporciona los valores: −− ====0124 c 2,c 13,c 11,c 1 105·h 12·h 10·h 28·h Para determinar el error de la fórmula consideraremos la función f(x) = (x-x*)4. La primera derivada de dicha función en x* es: f’(x*) = 4.(x*-x*)3 = 0 siendo el valor aproximado dado por la fórmula: − ( ) ( ) =⎛⎜ − − + − ⎞⎟= ⎝⎠ '41414343 *222 f 1 2 (2h) 13( h) 11 h 1 h 1h h 105 12 10 28 8 por lo que − = − = − =− 4 3 '3 Cálculo Numérico – Lic. R. Riveros 79 Derivación Numérica (x x*) * R (x*) f '(x*) f 0 h 1h 88 . Si se busca el error en la forma: = 3 (iv f R (x*) Kh f (x*) para la función considerada (cuya cuarta derivada es: f(iv(x*) = 24) se tiene que: K = -1/192 En resumen la fórmula buscada es: =⎛⎜ − − − + ( + )− ( + )⎞⎟ ⎝⎠ '113 *222 f 1 2 f(x * 2h) 13 f(x * h) 11f x * h 1 f x * h h 105 12 10 28 y el error de derivación numérica está dado por: − = 3 (iv ξ f R (x*) 1 h f ( ) 192 Programación y Métodos Numéricos Derivación Numérica 46 Ejercicio propuesto: a) Siendo h un parámetro estrictamente positivo, determinar la fórmula de derivación numérica que permite aproximar el valor de f’(x*) sobre el soporte: x0 = x* +h, x1 = x* + 2h y x2 = x* + (5 ) 2 h. Suponiendo que f(x) es suficientemente regular en el intervalo [x*, x2], determínese también la expresión de su error e indíquese la regularidad que se le debe exigir a f(x) para que dicha expresión sea válida. Obténgase la fórmula pedida y su error: i) Derivando el correspondiente polinomio interpolador de Lagrange, ii) Combinando desarrollos en serie de Taylor, y iii) Mediante el método de coeficientes indeterminados. b) Aplíquese la fórmula obtenida en el apartado anterior a la obtención de un valor aproximado de la primera derivada de la función f(x) = ecos(x) con los siguientes valores de h: h0 = 0.1, h1 = 0.01, h2 = 0.001, h3 = 0.0001 y h4 = 0.00001. Realícense los cálculos en coma flotante usando mantisas con 5 decimales significativos. c) Obténgase una cota del error de derivación numérica válida en el intervalo [x*, x2] para la función considerada en el apartado anterior. El error realmente cometido ¿es en todos los casos inferior a la cota hallada? Si no lo fuese justifíquese el motivo. Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López Cálculo Numérico – Lic. R. Riveros 80 Derivación Numérica ETSI Minas de la Universidad Politécnica de Madrid . 47 7. F 駻ica de tipo interpolatorio para la aproximaci Los métodos de obtención de fórmulas numéricas para aproximar primeras derivadas pueden extenderse fácilmente para deducir fórmulas de derivación numérica que permitan aproximar derivadas de orden superior al primero. Destinaremos este apartado a describir este proceso con detalle. Sea f(x) una función k veces derivable en un cierto intervalo I de la recta real y sea x* un punto de dicho intervalo. Consideremos además un soporte de (n+1) puntos {x0, x1, ..., xn} del intervalo I en el que se suponen conocidos los valores de la función f(x). Por simplicidad supondremos que los puntos del soporte son todos ellos distintos y están ordenados de menor a mayor es decir que: x0 < x1 < ... < xn. Definici Siendo f(x) una función de la que se conocen sus valores en el soporte de (n+1) puntos {x0 , x1, ...., xn} del intervalo I, se denomina fórmula de derivación numérica para aproximar el valor de la k-ésima derivada f(k(x) en el punto x* sobre el soporte de puntos considerado, a toda expresión de la forma: f(k(x*) ≈ (k * f = c0.f(x0) + c1.f(x1)+ …. + cn.f(xn) = n ii i0 c .f(x ) =Σ donde c0, c1, …, cn son (n+1) escalares denominados coeficientes (o pesos) de la fórmula de derivación. NOTA: La fórmula de derivación que se acaba de definir puede decirse que es una fórmula lagrangiana pues en ella sólo intervienen valores de la función f en los puntos del soporte. Podrían considerarse fórmulas más generales, hermitianas, en las que el valor de f(k(x*) fuese aproximado a partir del valor de la función f y de algunas de sus derivadas en los puntos del soporte. No obstante, estas últimas fórmulas tienen un uso mucho más esporádico que las de tipo lagrangiano y es por ello que nos limitaremos a considerar como fórmulas de derivación numérica tan sólo a las que hacen intervenir los valores de la función en los puntos del soporte. Programación y Métodos Numéricos Derivación Numérica 48 En general el valor aproximado (k * f y el valor exacto f(k(x*) diferirán, cometiéndose un error en la aproximación de f(k (x*). Es por ello que junto a la definición anterior conviene precisar la definición del error que con la fórmula se comete. En este sentido se introduce la siguiente definición: Cálculo Numérico – Lic. R. Riveros 81 Derivación Numérica Definici Siendo (k * f la aproximación de f(k(x*) que se obtiene operando sin error de redondeo según la fórmula de derivación numérica: f(k(x*) ≈ (k *f= n ii i0 c .f(x ) =Σ se denomina error de truncamiento de la fórmula en el punto x* al valor Rf(x*) = f (k(x*) - (k *f Obviamente se verificará que: (k (k f (x*)= f* +Rf(x*) por lo que considerando la fórmula en cuestión aplicada a todos los puntos x de un dominio dado puede definirse la función error de truncamiento de la fórmula derivación numérica para la función f considerada como la función: Rf : I � R x � Rf(x) En el análisis del error de truncamiento de las fórmulas de derivación numérica se perseguirá encontrar cotas del valor de esta función de error Rf(x) en el intervalo I sobre el que se trabaje. Ejemplo: Siendo {x0 , x1 , x2 } un soporte formado por tres puntos tales que x0 = x1 – h y x2 = x1 + h, considerando que x* = x1, la sustitución de la expresión de f”(x1) por: []−+ ≈"==210 110122 f "(x ) f 2·f x ,x ,x f(x ) 2·f(x ) f(x ) h conduce a una fórmula en la que sus coeficientes son c0 = (1/h2) , c1 = (-2/h2) y c2 = (1/h2). Una forma de acotar el error de truncamiento de esta fórmula, si se supone que f(x) es al menos de clase C3([x0, x1]) consiste en considerar los desarrollos en serie de Taylor siguientes: Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 49 f(x0) = f(x*-h) = f(x*) - h.f’(x*) + + 234 ( iv 0 h.f "( x*) h.f "'( x*) h .f ( x * .h) Cálculo Numérico – Lic. R. Riveros 82 Derivación Numérica 2 3! 4 ! − + +θ 0 θ ∈(−1,0) f(x2) = f(x*+h) = f(x*) + h.f’ x*) + + 234 ( iv 1 h.f "(x*) h.f '''( x*) h .f ( x * .h) 2 3! 4! + + +θ 1 θ ∈(0,1) de donde: 4 2 (iv ( iv 2001 f ( x ) f ( x ) 2·f ( x*) h ·f "( x*) h ·(f ( x * ·h) f ( x* ·h)) 24 + = + + +θ + +θ ⇒ ()2 ( iv ( iv *201 f " f ( x* h) 2·f ( x*) f ( x * h) f "( x*) h · f ( x * ·h) f (x* ·h) h 24 θθ +−+− ⇒==++++ Por tanto: ()2 ( iv ( iv f00001 R (x ) f "( x ) f " h · f (x* ·h) f ( x * ·h) 24 = − =− +θ + +θ expresión que puede acotarse por: {} 01 2 ( iv f000 x (x ,x ) R ( x ) f "( x ) f " h . Sup f ( x ) 12 ∈ =−≤ Para el caso particular de la función f(x) = x4 en que f”(x*) = 12·(x*)2 se tiene que: +−++ == 444 Cálculo Numérico – Lic. R. Riveros 83 Derivación Numérica 84 *2 f " (x * h) 2·(x*) (x * h) h 12·(x*)2+ 2·h2 por lo que el error de truncatura cometido es en este caso Rf(x0) = -2·h2. Obsérvese que la acotación antes realizada conduciría (para esta función x4) a la acotación |Rf(x0)| ≤ 2·h2 coincidente con el valor absoluto del error de truncatura realmente cometido10. 10 No siempre las acotaciones del error de truncatura que se obtendrán serán tan “finas” como la que se acaba de describir. Programación y Métodos Numéricos Derivación Numérica 50 Definici Se dice que la fórmula de derivación numérica: = ≈ =Σn (k (k *ii i0 f (x*) f c.f(x) es exacta de orden m para la familia de funciones de clase Ck([x0 , xn]): {ϕ ϕ ϕ } 0 1 m (x), (x),..., (x),.... cuando es nulo el error de truncatura cometido al aplicar la fórmula para la estimación de la k-ésima derivada de cualquiera de las (m+1) primeras funciones de la familia en cualquier punto x* perteneciente al intervalo [x0 , xn]: j 0 n R ( x ) 0 x [ x ,x ], ( j 0,...,m) ϕ = ∀ ∈ = Propiedad 7.1. Si la fórmula de derivación numérica = ≈ =Σn (k (k *ii i0 f (x*) f c.f(x) es exacta de orden m para la familia de funciones {ϕ ϕ ϕ } 0 1 m (x), (x),..., (x),.... entonces es exacta para cualquier combinación lineal de las (m+1) primeras funciones de la familia Demostraci Si la fórmula es exacta de orden m para la familia de funciones consideradas se podrá escribir que: [] = ϕ = ϕ ∀ ∈ Σn (k jiji0n i0 Cálculo Numérico – Lic. R. Riveros Derivación Numérica (x*) c . (x ) x* x ,x (j = 0, ..., m) Por otra parte, una función cualquiera que sea combinación lineal de las (m+1) primeras funciones de la familia será de la forma: = = α ⋅ ϕ + α ⋅ ϕ + + α ⋅ ϕ = α ⋅ ϕ Σm 0011mmjj j0 f(x) (x) (x) ..... (x) (x) por lo que su k-ésima derivada en cualquier punto x* del intervalo [x0, xn]se puede expresar como: ====== ⎛⎞⎛⎞ = α ⋅ϕ = α ⋅⎜ ⋅ϕ ⎟= ⋅⎜ α ⋅ϕ ⎟= ⋅ ⎝⎠⎝⎠ ΣΣΣΣΣΣmmnnmn (k (k jjjijiijjiii j0j0i0i0j0i0 f (x*) (x*) c (x ) c (x ) c f(x ) Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 51 y puesto que la aplicación de la fórmula de derivación numérica a la función f(x) en cualquier punto x* conduce a que: = =Σn (k xii i0 f c.f(x) puede concluirse que: Rf(x)=0 ∀x∈[x0,xn ] Esto demuestra que la fórmula es exacta para cualquier función f(x) que sea combinación lineal de las (m+1) primeras funciones de la familia de funciones considerada. c.q.d. Las fórmulas de derivación numérica más utilizadas en la práctica son exactas, de algún orden m, para la familia de funciones formada por los monomios, es decir: {1, x, x2, ...,xm, ....}. En este tema nos referiremos en exclusiva a esta familia de funciones y por ello cuando digamos que una fórmula es de orden de exactitud m se sobreentenderá que “es de orden de exactitud m para la familia de los monomios”, es decir que permite estimar sin error alguno la k-ésima derivada de cualquier función polinómica de grado menor o igual que m. Ejemplo: La fórmula que se ha utilizado en el ejemplo anterior " Cálculo Numérico – Lic. R. Riveros 85 Derivación Numérica *2 f "(x*) f f ( x* h) 2·f ( x*) f ( x* h) h +−+− ≈= es una fórmula exacta de orden 3. En efecto, para la función p(x) = 1 se verifica que: *2 p " 1 2·1 1 0 p"( x*) x * h −+ ===∀ Asimismo para la función p(x) = x se tiene que: *2 p " ( x * h) 2·(x*) (x* h) 0 p"( x*) x * h +−+− ===∀ También para la la función p(x) = x2 se tiene que: 222 *2 p " ( x * h) 2·(x*) (x* h) 2 p"( x*) x * h +−+− ===∀ Programación y Métodos Numéricos Derivación Numérica 52 Y para la función p(x) = x3 se verifica que: 333 x2 p " ( x * h) 2·(x*) (x* h) 6·x* p"( x ) x* h +−+− ===∀ Pero para la función q(x) = x4 se tiene que: 444 222 x2 q " ( x * h) 2·(x*) (x* h) 12·( x*) 2·h q"( x*) 2·h x* h +−+− ==+=+∀ por lo que sólo se puede afirmar que el error de la fórmula es nulo para los monomios {1, x, x2, x3}. En consecuencia, como se señaló anteriormente, la fórmula es de orden de exactitud 3. • Entre las fórmulas de derivación numérica para aproximar las derivadas de Cálculo Numérico – Lic. R. Riveros 86 Derivación Numérica orden k de una función f(x), las más frecuentemente utilizadas son aquellas que se pueden obtener derivando k veces el polinomio interpolador de la función f(x). A tales fórmulas se las denomina fórmulas de tipo interpolatorio. Definici Se denomina fórmula de derivación numérica de tipo interpolatorio (de Lagrange) para aproximar derivadas de orden k a cualquier fórmula obtenida derivando una vez la expresión del polinomio interpolador de Lagrange construido sobre un soporte de (n+1) puntos distintos. NOTAS: 1ª) Obsérvese que en la definición anterior se ha escrito entre paréntesis “de Lagrange”. En efecto podría pensarse en derivar también la expresión del polinomio interpolador de Hermite obteniéndose otros tipos de fórmulas de derivación de tipo interpolatorio. Puesto que nosotros sólo nos vamos a referir a las fórmulas que se obtienen al derivar la expresión del polinomio interpolador de Lagrange omitiremos en lo sucesivo la coletilla “de Lagrange” y simplemente diremos fórmula de derivación numérica de tipo interpolatorio. 2ª) Si el orden de derivación k fuese superior o igual al número de puntos (n+1) las fórmulas de tipo interpolatorio correspondientes se reducirían a f(k(x*) = 0, pues la derivada de orden k de un polinomio de grado menor o igual que n, si n es inferior a k, es nula. Por dicho motivo, en todo cuanto sigue, se supondrá que n > k. • Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 53 Una fórmula de derivación numérica de tipo interpolatorio puede obtenerse a partir de cualquiera de las expresiones del polinomio interpolador. Recordando la expresión del polinomio interpolador en función de los polinomios de base de Lagrange puede deducirse la expresión de los pesos que intervienen en dicha fórmula. En efecto: Teorema 7.1. Una condición necesaria y suficiente para que la fórmula de derivación numérica = =Σn (k x* i i i0 f c.f(x) sea de tipo interpolatorio es que sus coeficientes satisfagan las igualdades: (k ci=Li (x*) (i = 0, 1, ..., n) donde se ha denotado por Li(x) a los (n+1) polinomios de base de Lagrange11 sobre el soporte {x0, x1, ..., xn}. Demostraci a) Demostremos que en toda fórmula de tipo interpolatorio sus coeficientes Cálculo Numérico – Lic. R. Riveros 87 Derivación Numérica satisfacen las igualdades recogiodas en el enunciado. En efecto, la expresión detallada del polinomio interpolador de Lagrange pn(x) de una función f(x) sobre el soporte de (n+1) puntos {x0, x1, ..., xn} en función de los (n+1) polinomios de base de Lagrange { }n i i 0 L (x) = es: n nii i0 f(x) p (x) f(x ) L (x) = ≈ =Σ ⋅ de donde, en cualquier punto x* se puede considerar la aproximación: = ≈ = ⋅ Σn (k (k (k nii i0 f (x*) p (x*) L (x*) f(x ) Esta fórmula es una fórmula de derivación numérica en la que sus coeficientes están dados por la expresión: = (k i i c L (x*) 11 Recuérdese que: nn ijij j0j0 jiji L (x) (x x ) (x x ) == ≠≠ ⎛⎞⎛⎞ =⎜⎜⎜ − ⎟⎟⎟ ⎜⎜⎜ − ⎟⎟⎟ ⎝⎠⎝⎠ Π Π (i = 0, 1, ..., n) Programación y Métodos Numéricos Derivación Numérica 54 b) Demostremos que si la fórmula de derivación numérica satisface = (k i i c L (x*) (i = 0, ..., n) entonces es de tipo interpolatorio. En efecto, considerando que el polinomio interpolador de Lagrange de f(x) sobre el soporte {x0, ..., xn} se puede expresar como: pn(x) = = Σn ii i0 f(x )·L (x) se tiene que si se verifican las igualdades consideradas para los coeficientes: f’(x*) ( ) ( ) Cálculo Numérico – Lic. R. Riveros 88 Derivación Numérica ==== ⎛⎞ ≈ = = =⎜ ⎟ = ⎝⎠ ΣΣΣΣ n n n n (k (k (k (k iiiiiiiin i0i0i0i0 c f(x ) L (x*)f(x ) L (x*)f(x ) L (x*)f(x ) p (x*) lo que demuestra que el valor de la k-ésima derivada en x* se aproxima con el valor de la k-ésima derivada del polinomio interpolador en x*. c.q.d. De la propiedad anterior se deduce fácilmente la siguiente: Propiedad 7.2. En toda fórmula de derivación numérica de tipo interpolatorio = =Σn (k x* i i i0 f c.f(x) se verifica que: n i i1 c0 = Σ= Demostraci Puesto que según las propiedades de los polinomios de base de Lagrange se verifica que: n i i0 L (x) 1 = Σ = ∀x , es obvio que: == ⎛⎞ ⎜⎟== ⎝⎠ ΣΣ n (k n (k ii i0i0 L (x) L (x) 0 ∀x Cálculo Numérico – Lic. R. Riveros 89 Derivación Numérica En particular para el punto x* se tendrá que: == Σ =Σ = n n (k ii i0i0 L (x*) c 0 c.q.d. Denotando por ε(x) a la función error de interpolación cometido al aproximar una función f(x) por su polinomio interpolador de Lagrange pn(x) sobre el soporte de (n+1) puntos considerado, se verifica que: Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 55 f(x) = pn(x) + ε(x) 0 n ∀x∈(x ,x ) por lo que: (k = (k +ε(k n f (x*) p (x*) (x*) lo que nos conduce a poder expresar el error en el punto x* de la fórmula de derivación numérica mediante: = ε(k f R (x*) (x*) En el caso particular en que f(x) sea un polinomio de grado menor o igual que n se verificará que f(x) ≡ pn(x) y por tanto ε(x) = 0 ∀x , de donde resulta que la fórmula de derivación numérica de tipo interpolatorio construida sobre un soporte de (n+1) puntos es exacta para cualquier polinomio de grado menor o igual que n. En resumen es exacta, al menos, de orden n. Este hecho nos permite incluir a las fórmulas de derivación numéricas de tipo interpolatorio en el conjunto de fórmulas de derivación exactas de orden n. Pero aún puede precisarse más, puesto que además toda fórmula exacta de orden n construida sobre un soporte de (n+1) puntos debe ser necesariamente de tipo interpolatorio. Este hecho se demuestra en el siguiente teorema. Teorema 7.2. La condición necesaria y suficiente para que una fórmula de derivación numérica construida sobre un soporte de (n+1) puntos, = =Σn (k x* i i i0 f c.f(x), sea exacta de orden n es que sea de tipo interpolatorio. Demostraci : a) Demostremos en primer lugar que la condición recogida en el enunciado del teorema es suficiente, es decir que si la fórmula construida sobre el soporte de (n+1) puntos es de tipo interpolatorio entonces es exacta de Cálculo Numérico – Lic. R. Riveros 90 Derivación Numérica orden n. Para ello basta con recapitular los razonamientos anteriormente realizados. En efecto, si f(x) es una función polinómica de grado menor o igual que n su polinomio interpolador de Lagrange sobre el soporte de (n+1) puntos coincide con la función y por tanto: f(x) = pn(x) x ∀ Programación y Métodos Numéricos Derivación Numérica 56 por lo que f(k(x) = (k pn (x) ∀x. En particular, al ser la fórmula de derivación de tipo interpolatorio, para cualquier punto x* se tendrá que: (k = (k ≡ (k n x* f (x*) p (x*) f Ello demuestra que la fórmula es exacta sea cual sea el polinomio f(x) de grado menor o igual que n al que se aplique. En particular lo será cuando se aplique los (n+1) primeros monomios {1, x, ..., xn} y por ello es exacta de grado n. b) Demostremos ahora que la condición anterior también es necesaria, es decir que si la fórmula construida sobre el soporte de (n+1) puntos es exacta de orden n entonces tiene que ser de tipo interpolatorio. Para ello partimos del hecho de que, al ser la fórmula exacta de orden n, para cualquier función polinómica de grado menor o igual que n, p(x), se debe verificar que: = =Σn (k ii i0 p (x*) c.p(x) Por otra parte, puesto que hemos considerado que p(x) es un polinomio de grado menor o igual que n, se verificará que el polinomio interpolador de p(x) en el soporte de (n+1) puntos coincidirá con p(x) y por tanto p(x) se puede expresar como: n ii i0 p(x) p(x ).L (x) = =Σ de donde su k-ésima derivada en el punto x* estará dada por: = =Σn (k (k ii i0 p (x*) L (x*).p(x ) Identificando las dos expresiones de la primera derivada de p(x) en x* se tiene que: Cálculo Numérico – Lic. R. Riveros 91 Derivación Numérica == Σ =Σ n n (k iiii i0i0 c .p(x ) L (x*).p(x ) Esta igualdad debe ser satisfecha para cualquier polinomio p(x) que sea de grado menor o igual que n. Por tanto deberá verificarse también en el caso de que consideremos como p(x) cualquiera de los (n+1) polinomios Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 57 de base de Lagrange construidos sobre el soporte { }n i i 0 x = . Recordemos además que los polinomios de base de Lagrange verifican: ij 0 si i j L (x ) 1 si i=j ⎧≠ =⎨⎩ Por tanto, particularizando la igualdad antes obtenida para L0(x) se tiene que: == Σ =Σ ⇒ = n n (k (k i0ii0i00 i0i0 c.L (x ) L (x*).L (x ) c L (x*) Al hacerlo para el polinomio L1(x) resultará que: == Σ =Σ ⇒ = n n (k (k i1ii1i11 i0i0 c .L (x ) L (x*).L (x ) c L (x*) Y en general al particularizar para cualquier polinomio de base Lj(x) obtendremos que: == Σ =Σ ⇒ = n n (k (k ijiijijj i0i0 c .L (x ) L (x*).L (x ) c L (x*) c.q.d. Ejemplos: Cálculo Numérico – Lic. R. Riveros 92 Derivación Numérica 1º. Sobre un soporte de tres puntos {x0, x1, x2} el polinomio interpolador de Lagrange de una función f(x) puede expresarse como: = + [ ] − + [ ] − − 2 0 0 1 0 0 1 2 0 1 p (x) f(x ) f x ,x ·(x x ) f x ,x ,x ·(x x )·(x x ) por lo que la fórmula de derivación numérica que aproxima derivadas segundas sobre este soporte es: ≈ = = [ ] x* 2 0 1 2 f "(x*) f " p" (x) 2·f x ,x ,x 2º. Sobre un soporte de cuatro puntos {x0, x1, x2, x3} el polinomio interpolador de Lagrange de una función f(x) puede expresarse como: p x =f x +f[x x ] x−x +f[x x x ] x−x x−x + 3 0 0 1 0 0 1 2 0 1 ( ) ( ) , ·( ) , , ·( )·( ) +f[x x x x ] x−x x−x x−x 0 1 2 3 0 1 2 , , , ·( )·( )·( ) Programación y Métodos Numéricos Derivación Numérica 58 por lo que la fórmula que aproxima f”(x) es: '' [ ] x* 3 0 1 2 f "(x*)≈f = p" (x*)=2·f x ,x ,x + f[x x x x ] x −x −x −x 0 1 2 3 0 1 2 2· , , , ·(3· * ) y para la aproximación de la tercera derivada: ''' [ ] x* 3 0 1 2 3 f '''(x*)≈f = p''' (x*)=6·f x ,x ,x ,x • Propiedad 7.3 En toda fórmula de derivación numérica de tipo interpolatorio = =Σn (k x* i i i0 f c.f(x), construida sobre un soporte de (n+1) puntos con n > k, se verifica que: n j ii(jk) i1 0 si j k c x j ! ( x*) si k j n ( j k)! − = < ⎧⎪ = ⎨⎩⎪ − ≤ ≤ Σ (j = 1, ...n) Demostración: La demostración de esta propiedad se deja como ejercicio propuesto al lector y consiste simplemente en comparar el valor (exacto) proporcionado por la fórmula de derivación al ser aplicada a la función f(x) = xj (j = 0, ..., n) con el valor de f(k(x*) . c.q.d. En cuanto al error de las fórmulas de derivación que permiten aproximar Cálculo Numérico – Lic. R. Riveros 93 Derivación Numérica derivadas de orden mayor que 1 puede realizarse un análisis similar al descrito anteriormente para las fórmulas que aproximaban la primera derivada. Dejamos al lector interesado la tarea de adaptar las propiedades y teoremas desarrollados en el apartado 4º a este tipo de fórmulas. Nosotros nos centraremos en la descripción del proceso que permite obtener fórmulas de derivación de tipo interpolatorio, junto a la expresión de su error, combinando desarrollos en serie de Taylor para funciones que tengan la suficiente regularidad. Para ello siendo n > k consideremos el soporte de (n+1) puntos {x0 < x1 <... < xn} y siendo x* el punto en el que se desea aproximar f(k(x) denotemos por hi al Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 59 valor: hi = hi = xi – x* (i = 0, .., n). Suponiendo que f(x) es sufiecientemente regular pueden considerarse los desarrollos en serie de Taylor: f(xi) = f(x*+hi) = f(x*) + hi·f(x*) + + + + + 23k i i i (k h·f "(x*) h·f '''(x*) .... h ·f (x*) .... 2! 3! k! Por lo que: ==== ⎛⎞⎛⎞⎛⎞ α =⎜ α⎟ +⎜ α ⎟ + ⎜ α ⎟ + ⎝⎠⎝⎠⎝⎠ ΣΣΣΣnnnn 2 iiiiiii i0i0i0i0 ·f(x ) ·f(x*) ·h ·f '(x*) 1 ·h ·f "(x*) 2! == ⎛⎞⎛⎞ ⎜α⎟++⎜α⎟+ ⎝⎠⎝⎠ ΣΣnn 3 k(k iiii i0i0 1 ·h ·f '''(x*) ....1 ·h ·f (x*) ... 3! k! (1) Si se desea que la fórmula de derivación sea del mayor orden posible debe buscarse que, salvo el coeficiente de f(k(x*), se anulen el mayor número de los primeros sumandos del desarrollo anterior. Esto es, que: = α = Σn Cálculo Numérico – Lic. R. Riveros 94 Derivación Numérica j ii i0 ·h 0 (j = 0, 1,...,(k-1), (k+1), ...n) En general el número de ecuaciones que así se pueden formar es de n ecuaciones, obteniéndose un sistema con (n+1) incógnitas (α0, ..., αn) y tan sólo n ecuaciones. Ello es debido a que con el coeficiente de f(k(x*) se debe añadir la inecuación = α ≠ Σn k ii i0 ·h 0 . Por ello los coeficientes (α0, ..., αn) que se determinen mediante la resolución del sistema: = α = Σn i i0 0 = α = Σn ii i0 ·h 0 ........ − = α = Σn (k 1) ii i0 ·h 0 + = α = Σn (k 1) ii i0 ·h 0 ........ = α = Σn n ii i0 ·h 0 Cálculo Numérico – Lic. R. Riveros 95 Derivación Numérica quedarán expresados en función del valor que libremente se le asigne a uno de ellos. Programación y Métodos Numéricos Derivación Numérica 60 En todo caso, una vez calculados estos coeficientes, denotando por = α = α Σn ii i0 ·h se tendrá que los coeficientes de la fórmula de derivación se obtienen mediante: ci = αi / α (i = 0, ..., n) y que del primer término que no se haya podido anular en la expresión (1) se podrá inferir fácilmente la expresión del error de derivación. Ilustremos estos extremos con un ejemplo. Ejemplo: Determinemos la fórmula de derivación numérica del mayor orden de exactitud posible que permite calcular el valor aproximado de f’’’(x*) usando un soporte de la forma: {x0 = x* - 2·h, x1 = x* - ·h, x2 = x*, x3 = x* +h, x4 = x* + 2·h} donde h es un valor real estrictamente positivo. Para ello, si suponemos que f(x) es suficientemente regular en (x*-2·h, x*+2·h) podemos considerar los desarrollos en serie de Taylor: f(x*- 2·h) =f(x*) –2·h·f’(x*) + − + 4·h2·f "(x*) 8·h3·f '''(x*) 26 − 4 16·h ·f(iv (x*) 24 −+− 567 32·h ·f(v (x*) 64·h ·f(vi(x*) 128·h ·f(vii(x*)... 120 720 5040 f(x*-·h) =f(x*) - h·f’(x*) + − + h2·f "(x*) h3·f '''(x*) 26 − 4 h ·f(iv (x*) 24 −+− 567 h ·f(v (x*) h ·f(vi(x*) h ·f(vii(x*)... 120 720 5040 f(x*) = f(x*) f(x*+ h) =f(x*) + h·f’(x*) + + + h2·f "(x*) h3·f '''(x*) Cálculo Numérico – Lic. R. Riveros 96 Derivación Numérica 26 + 4 h ·f(iv (x*) 24 ++++ 567 h ·f(v (x*) h ·f(vi(x*) h ·f(vii(x*) ... 120 720 5040 f(x*+2·h) =f(x*) +2·h·f’(x*) + + + 4·h2·f "(x*) 8·h3·f '''(x*) 26 + 4 16·h ·f(iv (x*) 24 +++ 567 32·h ·f(v (x*) 64·h ·f(vi(x*) 128·h ·f(vii(x*)... 120 720 5040 Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 61 de donde: α − +α − +α +α + +α + = 0 1 2 3 4 ·f(x * 2·h) ·f(x * h) ·f(x*) ·f(x * h) ·f(x * 2·h) =(α + α + α + α + α) + 0 1 2 3 4·f(x*) +(− α − α + α + α) + 0 1 3 4 2· 2· ·h·f '(x*) +( α + α + α + α) + 2 0134 h 4· 4· · ·f "(x*) 2 +(− α − α + α + α) + 3 0134 h 8. 8· · ·f '''(x*) 6 +( α + α + α + α) + 4 (iv 0134 h 16. 16· · ·f (x*) 24 +(− α − α + α + α) + 5 (v Cálculo Numérico – Lic. R. Riveros 97 Derivación Numérica 98 0134 h 32. 32· · ·f (x*) .... 120 Si se desea construir una fórmula que con el soporte anterior aproxime el valor de f’’’(x*) y que tenga el mayor orden de exactitud posible se obligará a que: α + α + α + α + α = 0 1 2 3 4 0 (Coeficiente en h0 y f(x*)) − α − α + α + α = 0 1 3 4 2· 2· 0 (Coeficiente en h y f’(x*)) α + α + α + α = 0 1 3 4 4. 4· 0 (Coeficiente en h2 y f”(x*)) α + α + α + α = 0 1 3 4 16. 16· 0 (Coeficiente en h4 y f(iv (x*)) de donde12, dejando como incógnita libre α3, se tiene: α0= −α4 α1 = α4 α2 = α3 = − α4 α4 ∈R , 2· , 0 , 2· , Cualquier elección no nula de α4 nos conducirá a la fórmula buscada. Obsérvese que se descarta la opción α4 = 0 ya que ello anularía el coeficiente de f’’’(x) con lo que no lo podríamos despejar del desarrollo resultante. Si se asigna a α4 el valor α4 = 1 se tiene que: 12 Obsérvese que si al sistema anterior se le añadiese la ecuación procedente de obligar a que se anulase el coeficiente de f’(v(x*) se tendría un sistema que sólo admite la solución trivial α0 = = α1 = α2 = α3 = α4 = 0. Programación y Métodos Numéricos Derivación Numérica 62 α0=− α1= α2= α3=− α4=� 1, 2 , 0 , 2 , 1 Para estos valores de los coeficientes α i, se tiene entonces que la combinación de desarrollo en serie de Taylor antes obtenida se convierte en: −f(x *−2·h)+2·f(x *−h)−f(x *+h)+2·f(x *+2·h)= =++ 35 12·h·f '''(x*) 60·h·f(v (x*) .... 6 120 de donde: f’’’(x*) = − ( − )+ ( − )− ( + )+ ( + ) 3 3 3 3 1·f x * 2·h 1·f x * h 1 ·f x * h 1 ·f x * 2·h 2·h h h 2·h −1·h2·f(v(x*)+..... 4 De esta igualdad se infiere que la fórmula buscada es: ≈ =− ( − )+ ( − )− ( + )+ ( + ) * 3 3 3 3 f '''(x*) f ''' 1·f x * 2·h 1·f x * h 1 ·f x * h 1 ·f x * 2·h 2·h h h 2·h y que con ella, si f∈C5((x*-2·h, x*+2·h)), se comete un error dado por: =− 2 (vξ f R (x*) 1·h ·f ( ) 4 Cálculo Numérico – Lic. R. Riveros Derivación Numérica 99 para algún valor ξ∈(x*-2·h, x*+2·h). Es decir un error de orden 0(h2).13 13 No debe confundirse el orden de exactitud de una fórmula de derivación numérica con el orden del error de dicha fórmula. Mientras que el primero señala el máximo grado de los polinomios que pueden derivarse sin error con dicha fórmula, el segundo señala la potencia menor a la que aparece elevado el parámetro “h” en la expresión del error. Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 63 7.1. Obtenci el m騁odo de los coeficientes indeterminados. Un método alternativo para la determinación de fórmulas de derivación de tipo interpolatorio soportadas en (n+1) puntos se basa en que, según el teorema 7.2. toda fórmula de tal tipo debe ser exacta para los monomios {1, x, ..., xn}. Por tanto, si se busca una fórmula cuya expresión sea: = ≈ =Σn (k (k *ii i0 f (x*) f cf(x), su aplicación a los binomios (x-x*)j (0 < j < n) nos conduce a un sistema de ecuaciones cuya solución nos proporciona los pesos de la fórmula. De forma más concreta, siendo “h” un valor estrictamente positivo en función del cual se puedan escribir, para valores convenientes de γ i (i = 0, ...,n), los puntos del soporte en la forma xi = x* + γih, la aplicación de la fórmula a los binomios f(x) = (x-x*)j (j = 0, ..., n) conduce a que, si k < n: = ⎧≠ γ = ⎨⎩ = Σn j iij i0 0 sij k c j!/h si j k En resumen, los coeficientes de la fórmula de tipo interpolatorio se obtienen resolviendo el sistema: −−−− ++++ ⎡⎤ ⎢⎢γ γ γ γ ⎥⎥ ⎢γ γ γ γ ⎥⎧ Cálculo Numérico – Lic. R. Riveros Derivación Numérica ⎢ ⎥⎪ ⎢ ⎥⎪ ⎢⎢γ γ γ γ ⎥⎥⎨ ⎢γ γ γ γ ⎥ ⎢γ γ γ γ ⎥ ⎢⎥ ⎢⎥ ⎢⎢⎣γ γ γ γ ⎥⎥⎦ 012n 2222 012n0 1 (k 1) (k 1) (k 1) (k 1) 012n2 kkkk 012n (k 1) (k 1) (k 1) (k 1) 012nn nnnn 012n 1 1 1 ... 1 ... ... c ... ... ... ... ... c ... c ... ... ... c ... ... ... ... ... ... ⎧⎫ ⎪⎪ ⎪⎪ ⎫⎪⎪ ⎪⎪⎪ ⎪ ⎪⎬⎪ = ⎨⎪⎪ ⎪⎬⎪ ⎪⎪⎪⎪ ⎪⎪⎪⎪ ⎪⎩ ⎭⎪ ⎪ ⎪ ⎪⎪ ⎪⎪ ⎩⎪ ⎭⎪ k k! h 0 0 0 ... Cálculo Numérico – Lic. R. Riveros 100 Derivación Numérica 0 0 ... 0 Una vez determinada la fórmula, su error puede también ser calculado si se busca en la forma Rf(x*) = K·h(m-k)·f(m(ξ) aplicándolo al primer binomio (x-x*)m (cuya derivada m-ésima es m!) para el que la fórmula deja de ser exacta (hecho que tendrá lugar para m > n). Programación y Métodos Numéricos Derivación Numérica 64 Ilustremos esta forma de proceder obteniendo nuevamente la fórmula de derivación numérica hallada en el subapartado anterior mediante combinaciones de desarrollos en serie de Taylor. Ejemplo: Determinemos la fórmula de derivación numérica del mayor orden de exactitud posible que permite calcular el valor aproximado de f’’’(x*) usando un soporte de la forma: {x0 = x* - 2·h, x1 = x* - ·h, x2 = x*, x3 = x* +h, x4 = x* + 2·h} donde h es un valor real estrictamente positivo. Según se ha visto anteriormente, los coeficientes de la fórmula, soportada por 4 puntos, se pueden obtener resolviendo el sistema obtenido al aplicar la fórmula a los cuatro binomios {1, (x-x*), (x-x*)2, (x-x*)3} . Tal sistema es: c c c ch ⎡ ⎤⎧ ⎫ ⎧ ⎫ ⎢⎢⎢⎢⎣−− −− ⎥⎥⎥⎥⎦⎨⎪⎪⎪⎪⎩ ⎪⎭⎪⎪⎪⎬ = ⎪⎩⎨⎪⎪⎪ ⎪⎭⎪⎪⎪⎬ 0 1 2 3 3 11110 21120 41140 8 1 1 8 6/ cuya solución nos proporciona los valores: cccc hhhh −− ====03132343 1, 1, 1, 1 2· 2· Para determinar el error de la fórmula consideraremos la función f(x) = (x-x*)4. La tercera derivada de dicha función en x* es: f’’’(x*) = 4·3·2.(x*-x*) = 0 siendo el valor aproximado dado por la fórmula: Cálculo Numérico – Lic. R. Riveros 101 Derivación Numérica f h h (h) ( h) h = ⎛⎜− − + − − + ⎞⎟= ⎝⎠ ''' 4 4 4 4 *3 1 1( 2 ) ( ) 12 0 22 lo que nos indica que la fórmula es también exacta para los polinomios de orden 4º. Incrementemos una unidad el grado del binomio y apliquémosla a f(x) =(x – x*)5. El valor exacto de la tercera derivada de este binomio es: f’’’(x*) = 5·4·3.(x*-x*) = 0 Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 65 siendo ahora el valor aproximado: f h h (h) ( h) h h = ⎛⎜− − + − − + ⎞⎟= ⎝⎠ ''' 5 5 5 5 2 *3 1 1( 2 ) ( ) 12 30· 22 por lo que el error de derivación está dado, para esta función por: xxRxhh−=−=−5 22 ( *) ( *) 0 30· 30· Si buscamos la expresión genérica del error en la forma: v f R(x*)=K·h2·f( (ξ) es fácil verificar, aplicándolo a (x-x*)5, que: h Kh K −− −30· 2= · 2·5!⇒ = 30= 1 5! 4 por lo que en general: v fRxhfx − ( *)= 1 2 ( ( *) 4 En resumen la fórmula buscada es: f (fx h f x h f(x h) f(x h)) h '''= − − + − − + + + *3 Cálculo Numérico – Lic. R. Riveros 102 Derivación Numérica 1(*2)2(*)2**2 2 y el error de derivación numérica, si f∈C5([x*−2h,x*+2h]) está dado por: v fRxhfξ − ( *)= 1 2 ( ( ) 4 es decir un error de orden 2. Programación y Métodos Numéricos Derivación Numérica 66 Ejercicio propuesto: d) Siendo h un parámetro estrictamente positivo, determinar la fórmula de derivación numérica que permite aproximar el valor de f”(x*) sobre el soporte: x0 = x* -h, x1 = x*, x2 = x* + 2h y x3 = x* + (5 ) 2 h. Suponiendo que f(x) es suficientemente regular en el intervalo [x0, x3], determínese también la expresión de su error e indíquese la regularidad que se le debe exigir a f(x) para que dicha expresión sea válida. Obténgase la fórmula pedida y su error: i) Derivando el correspondiente polinomio interpolador de Lagrange, ii) Combinando desarrollos en serie de Taylor, y iii) Mediante el método de coeficientes indeterminados. e) Aplíquese la fórmula obtenida en el apartado anterior a la obtención de un valor aproximado de la segunda derivada de la función f(x) = ecos(x) con los siguientes valores de h: h0 = 0.1, h1 = 0.01, h2 = 0.001, h3 = 0.0001 y h4 = 0.00001. Realícense los cálculos en coma flotante usando mantisas con 5 decimales significativos. f) Obténgase una cota del error de derivación numérica válida en el intervalo [x0, x2] para la función considerada en el apartado anterior. El error realmente cometido ¿es en todos los casos inferior a la cota hallada? Si no lo fuese justifíquese el motivo. Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 67 8. Mejora de la precisi derivaci 駻ica. M騁odo de extrapolaci Como se presentó en apartados anteriores el error de las fórmulas de derivación numérica (ya sea para aproximar la primera derivada o derivadas de orden superior) responde a expresiones en las que interviene hp donde p es un número no negativo y “h” es una longitud característica del soporte (la distancia entre puntos consecutivos del soporte cuando este es equidistante, la distancia entre los puntos extremos del soporte, la mayor de las distancias del punto x* en el que se evalúa la derivada a los puntos del soporte, ....). Por ello, si se quiere mejorar la precisión de una fórmula de derivación numérica la primera Cálculo Numérico – Lic. R. Riveros 103 Derivación Numérica idea que surge intuitivamente es la de reducir el valor de h (lo que generalmente se traduce en tomar puntos más próximos entre sí y más cercanos al punto x*). En este sentido la forma habitual de proceder consiste en, siendo q un valor tal que 0 < q < 1, aplicar la fórmula numérica para los valores h0 = h, h1 = q·h, h2 = q·h1 = q2·h , ...., hj = q·hj-1 = qj·h, .... Se obtienen así diferentes valores V0, V1, ...., Vj, .... que aproximan la derivada en cuestión. Este proceso se finaliza cuando |Vj – Vj-1| sea lo suficientemente pequeño (menor que un cierto ε predefinido de antemano). Ejemplo: Si se utiliza la fórmula: ≈ = ( + )− ( + ) * f '(x*) f ' 1·f x * h 1·f x * h 2·h 2·h para aproximar el valor de la primera derivada de la función f(x) = ex en el punto x* = 0 ( cuyo valor exacto es f’(0) = 1) se obtendrán los siguientes valores para el valor aproximado de la derivada (calculados con el programa MAPLE 7 utilizando 20 dígitos), para diferentes valores de h: h0 = 0.5, V0 = 1.042190610987.... |Error|=0.0421906... h1 = 0.25, V1 = 1.010449267232.... |Error|=0.0104492... h2 = 0.125, V2 = 1.002606201928.... |Error|=0.0026062... h3 = 0.0625, V3 = 1.000651168835.... |Error|=0.0006511... h4 = 0.03125,V4 = 1.000162768364.... |Error|=0.0001627... pudiendo observarse como el error se reduce de una aproximación a la siguiente al reducir el paso a la mitad. Nótese que el error se reduce aproximadamente a la cuarta parte alreducir el paso a la mitad al ser el orden del error de la fórmula empleada O(h2). • Programación y Métodos Numéricos Derivación Numérica 68 La reducción del “paso” h utilizado en una fórmula que presente un error de orden p proporciona una sucesión de valores aproximados { }∞ j=0 V que, si se admite que f(x) es suficientemente regular, converge hacia el valor exacto con una velocidad de convergencia de orden p, es decir que el error obtenido con un paso (qjh) es aproximadamente qp veces menor que el que se produce con paso (qj-1h). En este sentido, cuanto mayor sea el orden del error del método más rápida será la convergencia hacia el valor exacto. Por ello esta reducción del paso se suele combinar con la denominada t馗nica de extrapolaci Richardson14 que, en síntesis, genera a partir de la sucesión { }∞ j=0 V otras sucesiones con mayor velocidad de convergencia hacia el valor exacto. Para describir este proceso, consideremos una fórmula de derivación numérica en la que el error sea de orden p y que pueda expresarse como: ++ = ⎛⎞ =⎜ ⎟+α + β + Cálculo Numérico – Lic. R. Riveros 104 Derivación Numérica 105 ⎝⎠ Σn (k (m p (m 1 p 1 ii i0 f (x*) c ·f(x ) ·f (x*)·h ·f (x*)·h ... y denominemos Ve al valor exacto que se está aproximando, V0 al valor obtenido con el paso h y V1 al obtenido con paso q·h (donde supondremos que q < 1). Se tendrá que: Ve = V0 + α·f(m(x*)·hp+β·f(m+1(x*)·hp+1 + ... Ve = V1 + α·f(m(x*)·qp·hp+β·f(m+1(x*)·qp+1·hp+1 + ... Restando ambas igualdades se obtiene: V1 – V0 = α·f(m(x*)·(1−qp )·hp + β·f(m+1(x*)·(1− qp+1)·hp+1 + ... ⇒ ⇒−(+++) α=−β−+ −− (m p 1 0 (m 1 p 1 p 1 pp ·f (x*)·h V V 1 · ·f (x*)·(1 q )·h ... 1q1q Sustituyendo esta expresión en la primera de las expresiones del valor exacto resulta que: + ++−⎛−⎞ = + − +β ⎜⎝ − − ⎟⎠ + p1 1 0 (m 1 p 1 e0pp V V V V ·f (x*)·1 1 q ·h ... 1q1q 14 En honor al matemático inglés Lewis Fry Richardson (1881 – 1953) que fue uno de los pioneros del cálculo científico (y en concreto el primero en aplicar métodos de diferencias finitas a la predicción del tiempo). Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 69 lo que nos indica que el valor: −− =+= −− p 1010 1,1 0 p p V V V V V q·V 1q1q aproxima al valor exacto Ve con un error de orden (p+1). Cálculo Numérico – Lic. R. Riveros Derivación Numérica Análogamente, si se considera el valor V1, obtenido con paso (q·h) y el valor V2 obtenido con paso (q2h) se tiene que: Ve = V1 + α·f(m(x*)·qp·hp+β·f(m+1(x*)·qp+1·hp+1 + ... Ve = V2 + α·f(m(x*)·q2p·hp+β·f(m+1(x*)·q2p+2·hp+1 + ... de donde un proceso análogo al que se acaba de describir nos conduce a que: () + ++−⎛−⎞ = + − +β ⎜⎝ − − ⎟⎠ + p1 2 1 (m 1 (p 1) e1pp V V V V ·f (x*)·1 1 q ·qh ... 1q1q lo que nos indica que −− =+= −− p 2121 1,2 1 p p V V V V V q·V 1q1q aproxima el valor exacto con un error de orden (p+1). De manera más general, si dado un valor del parámetro h se consideran las aproximaciones V0,j ( j = 0, 1, ...) obtenidas con un paso (qj·h) usando una fórmula de derivación numérica que presente un error de orden p, pueden construirse los valores: −− = − p 0,j 0,j 1 1,j p V q·V V 1q (j = 1, 2, ...) verificándose, si f(x) es suficientemente regular, que: ()++−+⎛−⎞ = +β ⎜⎝ − − ⎟⎠ + (m 1 p 1 ( j 1) p 1 e 1,j p V V ·f (x*)· 1 1 q · q h ... 1q Denotando por b al valor ·111 Cálculo Numérico – Lic. R. Riveros 106 Derivación Numérica 1 ⎛−+⎞ = β⎝⎜ − − ⎠⎟ p p bq q escribiremos la expresión anterior en la forma: ( ) = + + − + + (m 1 ( j 1) p 1 e 1,j V V b·f (x*)·q h ... Programación y Métodos Numéricos Derivación Numérica 70 Según lo anterior la sucesión de valores { } 1, 1 ∞ j j= V converge, cuando ha tiende hacia 0, hacia el valor exacto con un orden de convergencia (p+1) una unidad mayor que el orden de convergencia que presentaba la sucesión { } 0, 0 ∞ j j= V . Sobre la propia sucesión { } 1, 1 ∞ j j= V puede entonces volverse a actuar. En efecto, como: = + (m+1 p+1+ p+2 + e 1,1 V V b·f (x*)·h O(h ) ... y: ( ) = + + + + + + (m 1 (p 1) p 2 e 1,2 V V b·f (x*)·qh O(h ) ... se tiene que: 0 = V1,1 – V1,2 + b·f(m+1(x*)·hp+1·(1-qp+1) + O(hp+2) + .... ⇒ +++ + − ⇒=+ − (m 1 p 1 1,2 11 p 2 p1 VV b·f (x*)·h O(h ) 1q e introduciendo esta expresión en la primera de las que se han utilizado para obtenerla resulta que: + ++ ++ −− Cálculo Numérico – Lic. R. Riveros 107 Derivación Numérica =+++=+ −− p1 1,2 1,1 p 2 1,2 1,1 p 2 e 1,1 p 1 p 1 VVVqV V V O(h ) ... O(h ) 1q1q De manera más general, un razonamiento como el precedente muestra que si f(x) es suficientemente regular, la sucesión { }∞ 2,j j=2 V obtenida mediante: + − + − = − p1 1,j 1,j 1 2,j p 1 VqV V 1q (j = 2, 3, ....) converge hacia el valor exacto con un orden de convergencia (p+2). Estos nuevos valores { }∞ 2,j j=2 V pueden ser mejorados construyendo a partir de ellos una sucesión { }∞ 3,j j=3 V que converja con orden (p+3) y así sucesivamente. En general, si se parte de un método que converge con velocidad de orden p, el método de extrapolación de Richardson consiste en: 1º) Siendo 0 < q < 1 obtener las aproximaciones V0,j usando la fórmula con un paso (qjh) (j = 0, 1, ...N). 2º) Mejorar las aproximaciones calculando los valores { } = N k,j j k V para k = 1, 2, ...., N, mediante la fórmula de recurrencia: Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 71 +− −−− +− − = − Cálculo Numérico – Lic. R. Riveros 108 Derivación Numérica (p k 1) k 1,j k 1,j 1 k,j (p k 1) V q ·V V 1q Cuanto mayores sean los valores de los subíndices k y j más precisas serán las aproximaciones obtenidas. Ejemplo: Ilustremos el método de extrapolación de Richardson calculando el valor de la primera derivada de la función ⎛⎞ = ⎜⎜⎝ + ⎟⎟⎠ π x2 1 x f(x) e ·sen( x) en el punto x*= 1 mediante la fórmula: +− ≈=* f '(x*) f ' f(x * h) f(x*) h que presenta un error de orden 1 (es decir O(h)). Para ello partiremos inicialmente del paso h = ½ y posteriormente lo iremos reduciendo a la mitad diez veces. Con ello se obtienen los valores V0,j que figuran en la segunda columna de la tabla siguiente, siendo V0,j el valor obtenido para el paso hj =(½)(j+1). Las columnas 3ª, 4ª y 5ª de la tabla se corresponden con los valores V1,j , V2,j y V3,j respectivamente que proporciona la aplicación del método de extrapolación de Richardson. Para poder apreciar mejor la evolución del error, en la tabla siguiente se han recogido los valores de error cometido con cada una de las aproximaciones de esta tabla, es decir la diferencia entre valor exacto de f’(1) y el valor aproximado que figura en cada fila y columna de la tabla, siendo el valor exacto: = π π =− 1 f '(1) e 2· ·cos( ) 5.1796106318.... Los cálculos se han realizado con el programa MAPLE 7 utilizando una precisión de 20 dígitos (aunque en la tabla se muestran redondeados a 5 decimales significativos). Programación y Métodos Numéricos Derivación Numérica 72 Aproximaciones =−+ − −− −−− −−−− −−−− −−−− Cálculo Numérico – Lic. R. Riveros 109 Derivación Numérica −−− ( j 1) 0,j 1,j 2,j 3,j j (h 2 ) V V V V 0 4.91921 1 5.66420 6.40919 2 5.55380 5.44340 5.12148 3 5.39593 5.23805 5.16960 5.17648 4 5.29456 5.19320 5.17825 5.17948 5 5.23872 5.18288 5.17944 5.17960 6 5.20957 5.18041 5.17 − −−−− −−−− −−−− −−−− 959 5.17961 7 5.19469 5.17981 5.17961 5.17961 8 5.18717 5.17966 5.17961 5.17961 9 5.18340 5.17962 5.17961 5.17961 10 5.18151 5.17961 5.17961 5.17961 Error de las aproximaciones =−+−−−− − − −− −− − ( j 1) 0,j 1,j 2,j 3,j j (h 2 ) f '(1) V f '(1) V f '(1) V f '(1) V 0 0.260404 1 0.484587 1.22958 2 0.374191 0.263794 0.0581335 3 0.216317 0.058444 0.0100063 0.003131 4 0.114954 0.013590 0.0013613 0.000126 5 0.0591099 0.003266 0.00 − − − − −− − −− −− −− −− − 6 7 8 Cálculo Numérico – Lic. R. Riveros 110 Derivación Numérica 10 8 11 01752 5.728·10 6 0.0299549 0.000800 0.0000222 2.292·10 7 0.0150764 0.000198 0.0000028 1.621·10 8 0.0075628 0.000049 0.0000003 9.502·10 9 0.0037875 0.000012 4.364·10 5.743·10 10 0.0018953 0.000003 5.458·10−9 −3.529·10−12 La tabla de errores muestra cómo estos se reducen a, aproximadamente, la mitad ((1/2)1) al pasar de un valor al siguiente en la primera columna, la cuarta parte ((1/2)2) al pasar de un valor al siguiente en la segunda columna, la octava parte ((1/2)3) al pasar de un valor al siguiente en la tercera columna y la decimosexta parte ((1/2)4) al pasar de un valor al siguiente en la cuarta columna. Este hecho puede verse más claramente en la figura siguiente en la Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid . 73 que se representa la evolución del logaritmo decimal del valor absoluto del error frente al logaritmo decimal del tamaño de paso para las cuatro sucesiones de valores recogidos en la tabla anterior. Puede comprobarse en la gráfica como las pendientes (indicativas del orden de convergencia) de las curvas de error son más pronunciadas cuanto más se itera en la aplicación del método de extrapolación de Richardson. log10(h) log10(|f’(1)-Vk,j|) Valores proporcionados por la fórmula Valores corregidos aplicando el método de Richardson una vez Valores corregidos aplicando el método de Richardson dos veces Valores corregidos aplicando el método de Richardson tres veces Programación y Métodos Numéricos Derivación Numérica 74 BIBLIOGRAFÍA SOBRE EL TEMA [1]. BURDEN, R. L. y FAIRES, J. D. (1.998). An疝isis num駻ico. (6ª edición). Ed. International Thomson editores. [2]. KINCAID, D. y CHENEY, W. (1.994). An疝isis num駻ico. Las matem疸icas del c疝culo cient凬ico. Ed. Addison-Wesley Iberoamericana. [3]. MICHAVILA, F. y CONDE, C. (1.988). M騁odos de Aproximaci . Ed. Cálculo Numérico – Lic. R. Riveros 111 Derivación Numérica Depto. de Mat. Aplic. Y Mét. Informáticos. – Univ. Politécnica de Madrid. [4]. STOER, J. y BULIRSCH, R. (1.980). Introduction to numerical analysis. Ed. Springer Verlag. [5]. VIAÑO, J.M. y BURGUERA, M. (2000) Lecciones de m騁odos num駻icos, 3: Interpolaci . Ed. Tórculo edicions__ BIBLIOGRAFÍA UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE MINAS DEPARTAMENTO DE MATEMÁTICA APLICADA Y MÉTODOS INFORMÁTICOS Asignatura: PROGRAMACIÓN Y MÉTODOS NUMÉRICOS Tema: DERIVACIÓN NUMÉRICA Prof. Carlos Conde Lázaro Prof. Arturo Hidalgo López Prof. Alfredo López Benito Marzo, 2007 Cálculo Numérico – Lic. R. Riveros 112