DERIVACION-NUMÉRICA.docx

Share Embed Donate


Short Description

Download DERIVACION-NUMÉRICA.docx...

Description

Derivación Numérica

1

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 Fórmulas de las diferencias centradas de los tres puntos Derivación numérica por diferencia centrada de orden Fórmula de los tres puntos Fórmula de los cinco puntos Ejercicios resueltos Ejercicios de fijación

(ℎ) (ℎ)

Derivación Numérica

2

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 c onjunto 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 conocemos los valores de la función en una colección de 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 derivada es una propiedad esencialmente 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 la s derivadas. Aquí vamos a experimentar con fórmulas que se obtienen derivando el polinomio interpolante de Lagrange.

Derivación Numérica

 ()  (  ℎ)

3

Secante

 ()  (  ℎ)  () = l→im (  ℎℎ) () {ℎ} {ℎ} → 0 Diferencia hacia adelante: () ≈ (  ℎℎ) () Diferencia hacia atrás: () ≈ ()  ℎ(  ℎ) Por definición la derivada de una función fu nción f  (x ) es:

Las posibles aproximaciones aproximaciones numéricas de la derivada en un punto que podrían calcularse tomando una sucesión , Tal que , se tienen las siguientes expresiones.

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.

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 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. 2) Diferencias hacia atrás, cuando se emplean puntos posteriores al punto de interés.

 (), (), (),…,()

Derivación Numérica

4

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:

ℎ  ()  (+)=( ℎ) y (−)=( ℎ)  (+)=( ℎ) y (−)=( ℎ) : :

Indica el punto de interés, de estudio o de análisis. Espaciamiento constante de la tabla. : Función evaluada en el punto de análisis.

 ′()= (+)ℎ ()  ′ ()= (+) 2(ℎ +)() )( ) +   ′ ′()= (+) 3(+)3( ℎ  ()= (+) 4(+)6(ℎ +)4(+)()  ′()= (+) 4(2ℎ +)3() )2( ) +   ′ ()= (+) 4(+ℎ)5(  )18( )5( ) + +   ′ ′()= 3(+) 14(+)24( 2ℎ  ()= 2(+)11(+)24(+ℎ)26(+)14(+)3() ln 

ℎ=0.1

=5

Sea la función , calcular las derivadas por métodos numéricos en el punto , en base a la siguiente tabla, con , aplicando la formula de la primera 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

Derivación Numérica

5

 () =   (5)=.  (5)=. ) = (5.1)(5) = 1.629241.60944 =.    ′()= (+)( ℎ 0.1 0.1  =  =0.20.0.2198=0.01, % =| ×100%|=(0.01)×100%=1% Para

. El valor verdadero de

)(5) 1  ()= (+) 2(ℎ +)() = (5.2)2(5. (0.1) − 1. 6 48662(1. 6 2924)1. 6 0944 3. 8 ×10    ()= = 0.01 =. 0.01 0 38)  = =0.04(0. 0.04 =0.05, % =| ×100%|=(0.05)×100%=5% 

ln 

=5

ℎ=0.1

Sea la función , calcular las derivadas por métodos numéricos en el punto , en base a la siguiente tabla, con , aplicando la formula de la segunda diferencia finita hacia adelante.

 () Para

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

 () = 

. El valor verdadero de

 (5)=.  (5)=.

)3(5) 1  ′()= (+) 4(2ℎ +)3() = (5.2)4(5. 2(0.1) 6 0944) 1. 6 48666. 5 16964. 8 2832  ′()= 1.648664(1.60.2924)3(1. = 2 0.2  ′()= 0.00.3998 2 =.  =  =0.20.0.21999=1×10−, % =|1 ×10− ×100%|=0.01%

Derivación Numérica

6

)2( ) +   ′ ()= (+)4(+ℎ)5(  )2(5) 1  ′ ()= (5.3)4(5.(0.2)5(5. 1) 6 2924)2(1. 6 0944)  ′ ()= 1.66774(1.64866)5(1. 0.01 − 1. 6 6776. 5 94648. 1 4623. 2 1888 3. 8 ×10 ) (    = = 0.01 =. 0.01 0 38)  =  =0.04(0. 0.04 =0.05, % =|0.05×100%|=% 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.

−)  ′()= ()( ℎ  ′ ()= ()2(ℎ− )(−) )( ) − −  ′ ′() = ()3(−) 3( ℎ

Derivación Numérica

7

 ()= ()4(−)6(ℎ− )4(−)(−)  ′()= 3()4(2ℎ−)(−) )( ) − −  ′ ()= 2()5(−)4( ℎ  ′ ′()= 5()18(−)24(2ℎ− )14(−)3(−) )11( )2( ) − − −  ()= 3()14(−)26(−)24( ℎ ln 

=5

ℎ=0.1

Sea la función , calcular las derivadas por métodos numéricos en el punto , en base a la siguiente tabla, con , aplicando la formula de la primera diferencia finita hacia atrás.

 () Para

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

 () = 

. El valor verdadero de

 (5)=.  (5)=.

−) =  (5)(4.9) = 1.609441.58922 =.  ′()= ()( ℎ 0.1 0.1  =  =0.20.0.22022=0.011, % =| ×100%|=(0.011)×100%=.  %

) 8  ′ ()= ()2(ℎ− )(−) = (5)2(4.(0.19))(4.  − 1. 6 09442(1. 5 8922)1. 5 6862 3. 8 ×10  ′ ()= = 0.01 =. 0.01 0 38)  =  =0.04(0. 0.04 =0.05, % =| ×100%|=(0.05)×100%=%

Derivación Numérica

ln 

ℎ=0.1

8

=5

Sea la función , calcular las derivadas por métodos numéricos en el punto , en base a la siguiente tabla, con , 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

 () =   (5)=.  (5)=. )(4. ) 9 8  ′()= 3()4(2ℎ−)(−) = 3(5)4(4. 2(0.1)  () = 3(1.60944)4(1.0.528922)1.56862) = 0.00.4006 2 =.  =  =0.20.0.22003=0.0015, % =|0.0015×100%|=.% )( ) )4(4. )(4. ) 2(5)5(4. 9 8 7 − −  ′ ()= 2()5(−)4( = ℎ (0.1) − 2(1. 6 0944)5(1. 5 8922)4(1. 5 6862)1. 5 4756 3×10 ) (    = = 0.001 =. 0.01 0 3)  =  =0.04(0. 0.04 =0.25, % =|0.25×100%|=% Para

. El valor verdadero de

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.

Derivación Numérica

9

−)  ′()= (+)( 2ℎ  ′ ()= (+)2(ℎ )(−) )( ) − −  ′ ′()= (+)2(+)2( 2ℎ  ()= (+)4(+)6(ℎ )4(−)(−)

 ′()= (+) 8(+12ℎ)8(−)(−)  )16(−)(−)  ′ ()= (+) 16(+)30( 12ℎ )8( )( ) − − −  ′ ′()= (+) 8(+)12(+8ℎ)12( 

)39(−)12(−)(−)  ()= (+)12(+)39(+)56(  6ℎ

ln 

=5

ℎ=0.1

Sea la función , calcular las derivadas por métodos numéricos en el punto , en base a la siguiente tabla, con , aplicando la formula de la primera diferencia finita central.

 () Para

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

 () = 

. El valor verdadero de

 (5)=.  (5)=.

) 9 1. 6 29241. 5 8922 0. 0 4002 −) = (5.1)(4.  ′()= (+)( = = 2ℎ 2(0.1) 0.2 0.2 =0.2001  =  =0.20.0.22001=5×10−, % =| ×100%|=.%

Derivación Numérica

10

) 9  ′ ()= (+)2(ℎ )(−) = (5.1)2(5)(4. (0.1) 5 8922 1. 6 29243. 2 18881. 5 8922  () = 1.629242(1.0.600944)1. = =. 1 0.01 0 42)  =  =0.04(0. 0.04 =0.05, % =| ×100%|=(0.05)×100%=% ln 

ℎ=0.1

=5

Sea la función , calcular las derivadas por métodos numéricos en el punto , en base a la siguiente tabla, con , aplicando la formula de la segunda diferencia finita central.

 ′()= (+)8(+12ℎ)8(−)(−) )(4. ) 1)8(4. 9 8  ′()= (5.2)8(5.12(0. 1) 7 13761. 5 6862 0. 2 4012  ′()= 1.6486613.0339212. = 1.2 1.2 =.  =  =0.20.0.22001=5×10−, % =|5 ×10− ×100%|=.%  )16(−)(−) ) ′′()= (+)16(+)30( 12ℎ )(4. ) 9 8  ′ ()= (5.2)16(5.1)30(5)16(4. 12×(0.1) 5 8922)(1. 5 6862)  ′ ()= 1.6486616(1.62924)30(1.0.610944)16(1. 2

Derivación Numérica

11

− 1. 6 486626. 0 678448. 2 77225. 4 27521. 5 6862 8. 8 ×10  ′ ()= = 0.12 =0.0073 0.12  =  =0.00.40.040073=1.1825, % =| ×100%|=.% ℎ=0. 1 a ℎ=0. 0 5 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

 ()

4.85 1.57897 9

4.90 1.58923 5

4.95 1.59938 8

5.00 1.6094 4

5.05 1.61938 8

5.10 1.6292 4

5.15 1.63899 7

 )16(−)(−)  ′ ()= (+)16(+)30( 12ℎ 0 0)16(4. 9 5)(4. 9 0)  ′ ()= (5.1)16(5.05)30(5. 12(0.05) 5 99388)(1. 5 89235)  ′ ()= 1.6292416(1.619388)30(1.60.0944)16(1. 03 5 9021. 5 89235  ′ ()= 1.6292425.− 910248.0.2083225. = 3  ′ ()= 1.20.75×10 03 =0.0425 0 425)  =  =0.04(0. 0.04 =0.0625, % =| ×100%|=6.% 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.

Derivación Numérica

12

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

(ℎ) (ℎ)

 ()   ∈[,],( ℎ),( ℎ) ∈[,]  ℎ)  ()≈ ( ℎ)( 2ℎ =() ∈[,]  ℎ)  (,ℎ)  ()= ( ℎ)( 2ℎ   ( ,ℎ)= ℎ  6 () =(ℎ)



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 .

 Suponiendo que

Además existen

, entonces

, tal que

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

Derivación Numérica

13

()   ∈[,],( 2ℎ),( ℎ),( ℎ),( 2ℎ)∈[,  ]  ℎ)( 2ℎ)  ()≈ ( 2ℎ)8( ℎ)8( 12ℎ =()∈[,]  ℎ)( 2ℎ)  ( ,ℎ),  ()≈ ( 2ℎ)8( ℎ)8( 12ℎ   ℎ    con ( ,ℎ)= 30() =(ℎ)  Suponiendo que

entonces:

Además existe

, tal que

Este Teorema se presenta sin demostración: 2

 ()=  (ℎ) ℎ=0.1  (6)

Si , calcular la aproximación de centradas de orden  con

, usando las fórmulas de las diferencias

a) Con La formula de diferencias centradas de orden

(ℎ)

 ℎ)  ()= ( ℎ)( 2ℎ 9 ) 0. 9 832680. 9 27478 0. 0 05579  (6)= (6.12(0.)(5. = = 1) 0.2 0.2 =.  ()=   (6)=0.2794154982 2 7895  =  =0.2794150. 0.279415 =1.6642×10−, % =| ×100%|=.%  ()=  (ℎ) ℎ=0.1  (6) El valor exacto de

, para

Si , calcular la aproximación de centradas de orden  con

, usando las fórmulas de las diferencias

 ℎ)( 2ℎ)  ()= ( 2ℎ)8( ℎ)8( 12ℎ )(5. 1)8(5. 9 8 )  (6)= (6.2)8(6.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

,

Derivación Numérica

14

9 27478)0. 8 85520  (6)= 0.9965428(0.983264)8(0. 1.2 4 198240. 8 85520 0. 3 35266  (6)= 0.9965427.8661127. = 1.2 1.2 =.  ()=   (6)=0.2794154982 −   0. 2 794150. 2 79388 2. 7 ×10    =  = 0.279415 = 0.279415 =9. 6 63×10−, % =| ×100%|=9.663×10− ×100%=.% El valor exacto de

, para

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  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  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  es una de las recomendadas para hallar la primera derivada de .

(ℎ)

(ℎ)

 ()

(ℎ)

  ()= 2ℎ1 [ ( ℎ)( ℎ)]  ℎ 6 ()   ()=  ( ℎ)( ℎ)  ℎ ()  

2ℎ 6   ()= 2ℎ1 [3()4( ℎ)( 2ℎ)]  (3)ℎ  ()= 3()4(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 . 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 que están



Derivación Numérica

15



a ambos lados de , 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.

 

(3) si ()=      ℎ=0.1 Se parte de la fórmula: ()= (ℎ)(ℎ) 2ℎ (3. )(2. 1 )    1 9 ) ln3. 1 ×3. 1 ln2. 9 ×2. 9  (3)= (30. 12(0.)(30. = = 1) 0.2 0.2 0 64712×0. 2 39249 0. 0 470440. 2 54731  (3)= 1.131402×0.0415811. = 0.2 0.2  (3)= 0.207687 0.2 =.  ()=   es (3)=. =| |=|1.040578 –(1.038437)|=2.141×10− =0.002141 −  =  =1.0.0002141 =2. 0 575×10 =0.0020575 40578 % = ×100%=0.0020575×100%=.% Aproximar el valor de la función los tres puntos, con

, utilizando la fórmula (9.1) de

El valor verdadero de la derivada de la función

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.

(3) si ()=      ℎ=0.1

Aproximar el valor de la función los tres puntos, con

, utilizando la fórmula (9.2) de

 ()= 2ℎ1 [3()4( ℎ)( 2ℎ)]  (3)= 0.12 [3(3)4(30. 1)(32×0.1)]= 0.12 [3(3)4(3.1)(3.2)] La solución inicia con la formula de los tres puntos (9.2)

Derivación Numérica

16

 (3)= 0.12 [3(3×3)4(3.1×3.1)(3.2×3.2)]  (3)= 0.12 [3(1.09861×0.14112)4(1.13140×0.04158) (1.16315×(0.05837)]  (3)= 0.12 [3(0.155036)4(0.0470436) (0.067893)]  (3)= 0.12 [0.4651080.18817440.067893] = 0.12 [0.2090406] =.  ()=   es (3)=1.040578 =| |=|1.040578 –(1.045203)|=4.625×10− =0.004625 −  =  =1.0.0004625 4 446×10 =0.0044446 =4. 40578 % = ×100%=0.0044446×100%=.% El valor verdadero de la derivada de la función

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.  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.

  ()= 2ℎ1 [3()4( ℎ)( 2ℎ)]   ()3  ℎ, ∈ [, 2ℎ]   ()= 2ℎ1 [ ( ℎ)( ℎ)]   ()3!  ℎ, ∈ [ ℎ,  ℎ]

ℎ=0.1

Aproximar el valor de la función puntos, con

 (3) si ()=  

La solución inicia con la formula de los tres puntos

 ()= 2ℎ1 [ ( ℎ)( ℎ)]

, utilizando la fórmula de los tres

Derivación Numérica

17

Se parte de la fó rmula: ()= (ℎ)(ℎ) 2ℎ  (3)= 2×0.1 1 [ (30.1)(30. 1)]= 0.12 [3(3)4(3.1)(3.2)]  (3)= 0.12 [3(3×3)4(3.1×3.1)(3.2×3.2)]  (3)= 0.12 [3(1.09861×0.14112)4(1.13140×0.04158) (1.16315×(0.05837)]  (3)= 0.12 [3(0.155036)4(0.0470436) (0.067893)]  (3)= 0.12 [0.4651080.18817440.067893]= 0.12 [0.2090406]=1.045203  ()=   es (3)=1.040578 =| |=|1.040578 –(1.045203)|=4.625×10− =0.004625 −  =  =1.0.0004625 =4. 4 446×10 =0.0044446 40578 % = ×100%=0.0044446×100%=0.44446% El valor verdadero de la derivada de la función

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%.

 ()= 12ℎ1 [25(() )48(  ℎ)36( 2ℎ)16( 3ℎ)3( 4ℎ)]    (5)ℎ , .)  ()= 12ℎ1 [3(() ℎ)10( )18( ℎ)6( 2ℎ)( 3ℎ)]    (5)ℎ,   ()= 12ℎ1 [ ( 2ℎ)8( ℎ)8( ℎ)( 2ℎ)]  ()30()ℎ,

Derivación Numérica

18

 ()= 12ℎ1 [4( 3ℎ)6(()  2ℎ)8(  ℎ)34()3( ℎ)     ( )ℎ  34()] 30 ,  ()= 12ℎ1 [ (()4ℎ)3(  3ℎ)4( 2ℎ)36( ℎ)25()]    (5)ℎ, Entre las distintas fórmulas de cinco puntos, las más utilizadas son:

 ()= 12ℎ1 [25(() )48(  ℎ)36( 2ℎ)16( 3ℎ)3( 4ℎ)]    (5)ℎ , .)   ()= 12ℎ1 [ ( 2ℎ)8( ℎ)8( ℎ)( 2ℎ)]  ()30()ℎ , . (3) si ()=      ℎ=0.1

Aproximar el valor de la función cinco puntos, con

, utilizando la fórmula de los

 ()= 12ℎ1 [ ( 2ℎ)8( ℎ)8( ℎ)( 2ℎ)]  (3)= 12×0.1 1 [ (30. 2)8(30. 1)8(30. 1)(30. 2)]  (3)= 1.12 [ (2.8)8(2.9)8(3.1)(3.2)]  (3)= 1.12 [(2.8×2.8)8(2.91×2.9)8(3.1×3.1)(3.2 ×3.2)] Se inicia el cálculo de la solución partiendo de la formula de los cinco puntos

Derivación Numérica

19

 (3)= 1.12 [1.029619×(0.334988)8(1.06471×0.239249)8(1.1314×0.04158) (1.16315×(0.058374)]  (3)= 1.12 [(0.34491)8(0.25473)8(0.047044)(0.0678977)]  (3)= 1.12 [(0.34491)2.037840.3763520.0678977]  (3)= 1.12 [1.24868] =1.0405669  ()=   es (3)=. =| |=|1.040578 –(1.0405669)|=1.111×10− =0.0001111 −  =  =1.0.0001111 0 6768×10 =0.000106768 =1. 040578 % = ×100%=0.000106768×100%=0.0106% El valor verdadero de la derivada de la función

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.

Derivación Numérica

20

EJERCICIOS RESUELTOS

 (ℎ(1.)3)

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  utilizando la formula de derivación numérica por diferencia centrada de orden

 () 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

 ℎ)  ()= ( ℎ)( 2ℎ (1. )(1.    4 3 72895 0. 1 27829  (1.3)= 2(0.1) 2) = 2.2450662. = 0.2 0.2 =.  (1.3)=0.639962 −   0. 6 39962(0. 6 39145) 8. 1 7×10    =  = 0.639962 = 0.639962 =1.277×10−, % =| ×100%|=|1.277×10− ×100%|=.% El valor exacto de

 (ℎ(1.)3)

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  utilizando la formula de derivación numérica por diferencia centrada de orden

 () 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

 ℎ)( 2ℎ)  ()= ( 2ℎ)8( ℎ)8( 12ℎ

Derivación Numérica

21

)(1. 4)8(1. 2 1 )  ()= (1.5)8(1.12(0. 1) 3 72895)(2. 4 36851)  ()= 2.1821798(2.245066)8(2. 1.2 9 83162. 4 36851 0. 7 6796  ()= 2.18217917.96052818. = 1.2 1.2 =.  (1.3)=0.639962 −   0. 6 39962(0. 6 39967) 5×10    =  = 0.639962 = 0.639962 =7.813×10−, % =| ×100%|=|1.813×10− ×100%|=.% (5.7) si ()=2      ℎ=0.1 El valor exacto de

Aproximar el valor de la función tres puntos (9.2), con

, utilizando la fórmula de los

 ()= 3()4(2ℎℎ)( 2ℎ)  (3)ℎ

  ()=2cos

5.7 5.8 5.9   9.515726 10.272026 10.944245

)(5. 8 9 ) 3(9. 5 15726)4(10. 2 72026)(10. 9 44245)  (5.7)= 3(5.7)4(5. = 2(0.1) 2(0.1) 9 44245 1. 5 96681  (5.7)= ,28.54717841.0.08810410. = 2 0.2 =.  ()=2   es (5.7)=7.947241 9 83405  =  =7.9472417. 7.947241 =4. 5 5×10− =0.00455 % = ×100%=0.00455×100%=.% ()=l    ′ ( 4. 2 )    n    ℎ=0.1 El valor verdadero de la derivada de la función

Aproximar a con

 la función

, utilizando la fórmula de los cinco puntos,

Derivación Numérica

22

 ℎ)( 2ℎ)   ()()ℎ,  ()= ( 2ℎ)8( ℎ)8( 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. ) 1)8(4. 3 4  (4.2)= (4.0)8(4.12(0. 1) 3 34172)(4. 5 87527)  (4.2)= 1.6050818(2.008577)8(3. 1.2 6 733764. 5 87527 7. 6 22314  (4.2)= 1.60508116.06861626. = =. 1.2  ()=  es 1.2(4.2)=.  3 51928 −  =  =6.3939516. 5 723×10 =0.0065723 =6. 6.393951 % = ×100%=0.0065723×100%=.% El valor verdadero de la derivada de la función

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 punto

, aproxima el valor de su derivada en el

, 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

.

Derivación Numérica

23

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:

,

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

Derivación Numérica

24

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 . Nota: Para los cálculos utiliza hasta 4 cifras después del punto decimal.

 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.

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

Derivación Numérica

25

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 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.

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 f 0(1.4) mediante las tres f´ormulas de 3 puntos. Comparar los resultados obtenidos con la soluci´on f 0(1.4) = 2.150898. Obtener tambi´en f 00(1.4) y compararla con la real. 1.

Con los datos x 1 1.01 1.02 f i 1.27 1.32 1.38 a) Aproximar f 0(1.005) y f 0(1.015) b) Aproximar f 00(1.01) usando los resultados del apartado a). c) Obtener f 00(1.01) con la f´ormula de la derivada segunda 2.

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 f i 1 0.990025 0.960398 0.912005 0.881201 0.807524 Sabemos que f 2 C1(lR) y 8n 2 lN y  __ f n)(x)  __  _ 1

Derivación Numérica a) Mediante interpolaci´on con 3 puntos estimar f 0(0.5) y acotar el error cometido. b) Mediante interpolaci´on con cinco puntos estimar f 0(0.4) y acotar el error cometido. c) Mediante interpolaci´on con 3 puntos estimar f 00(0.2) y acotar el error cometido. d) Mediante interpolaci´on con 5 puntos estimar f 00(0.4) y acotar el error cometido. De cierta funci´on f 2 C1(lR) se conoce los datos x 1.2 1.3 1.4 1.5 1.6 f i 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  __ f n)(x)  __  _ e2 + e−1 2 .  Aproximar f 0(1.4) y f 00(1.4) mediante f´ormulas de 5 puntos y estimar el error 4.

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

26

Derivación Numérica

27

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

1.1

1.042236692

1.2

1.082222055

1.3

1.120140413

1.4

1.156156396

1.5

1.190417757

1.6

1.223057566

1.7

1.254195979

1.8

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.

Derivación Numérica

EJERCICIOS DE FIJACIÓN

11)

12)

13)

14)

15)

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

28

Derivación Numérica

29

4.Calcular ∆ℎ 5.Calcular l→im ∆ℎ Calcular la derivada de f  (x ) = x 3 en el punto a 1- calcular

 ()=  (ℎ)=(ℎ) = 3ℎ3ℎ ℎ ∆= 3ℎ3ℎ ℎ  =3ℎ3ℎ ℎ =ℎ(3 3ℎℎ)

2. Calcular 3. Calcular

Se ha sacado el factor común h  para que el siguiente paso sea fácil.

  ∆ ℎ(3 3ℎℎ 4.Calcular: ℎ = ℎ ) = 3 3ℎℎ 5.Calcular l→im ∆ℎ = l→im(3 3ℎℎ)= 

  ∈ ([,) ]  =x h  ℎ≠0[,]  ∈[,] ,()

Como cualquier tipo de operación numérica, la diferenciación numérica refiere a una función  y un punto arbitrario  en . Se necesita un método para aproximar , con  para algún , lo suficientemente pequeña para asegurar que , se calcula . Usando la siguiente notación:

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.

Derivación Numérica

30

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 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  ) de la fórmula de derivación

(o

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’(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 ti po 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.

fcometi y el valéndose or exactoun error f’(x*)endifl a aproximación de f’(x*). Es por ello que junto a la En general el valor aproximado '* erirán,

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 .

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 de la fórmula en el punto x*y para la función f al valor Rf(x*) = f’(x*) - '

Derivación Numérica *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  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.

’(

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 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:

= 0 1  +

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:

31

Derivación Numérica Programación y Métodos Numéricos Derivación Numérica

∈=  ≤ {}

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 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: 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.

 ≈ = = 

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

32

Derivación Numérica

33

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 .





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: Se dice que la fórmula de derivación numérica:

n ' *ii i0 f '(x*) f c .f(x ) =

≈=Σ {φ0(x),φ1(x),. .,φk(x),. . } es

de funciones de clase C1([x0 , xn]):

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 ]

ϕ= ∀ ∈

Si la fórmula de derivación numérica

n ' *ii i0

Derivación Numérica 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

Si la fórmula es exacta de orden k para la familia de funciones consideradas se podrá escribir que: [] =  = ' 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) 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:

ϕ ϕ∀ ∈ Σn

α⋅ ϕ α⋅ ϕ α⋅ ϕ Σα⋅ ϕ

Programación y Métodos Numéricos Derivación Numérica

⎛⎞ ⎛ ⎞ =⎝⎠α ⋅⎝ϕ ⎠= α ⋅⎜ ⋅ϕ ⎟= ⋅⎜ α ⋅ϕ ⎟= ⋅ ΣΣΣΣΣΣ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:

34

Derivación Numérica

[ ] 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 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*.

“es de orden k para la familia de los monomios”, es

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:

'00[] x00 f f(x h) f(x ) 1 1 0 f '(x) x x ,x h hh

= = = = ∀ ∈  ' =00 = [0]0 = = ∀ ∈ 

Asimismo para la función g(x) = x se tiene que:

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 d erivación: Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid .

= = = ⋅[ ≠] ∀ ∈ 

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. Para facilitar el seguimiento de todo cuanto h asta aquí se ha dicho, nos hemos

35

Derivación Numérica

36

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

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 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. Se denomina  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. 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 .

Derivación Numérica

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}.

entonces sus pesos satisfacen la relación ci = L’i(x*). En efecto, la expresión a) Demostremos en primer lugar que si la fórmula es de tipo interpolatorio

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

37

Derivación Numérica 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

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: En toda fórmula de derivación numérica de tipo interpolatorio

n ' x* i i i0 f c.f(x) =

=Σ n i i1 c0

se verifica que:

38

Derivación Numérica

Σ= =

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 ==

⎛⎞ ⎜⎟ = = ⎝⎠ ΣΣx∀

En particular para el punto x* se tendrá que: nn ' ii i0i0 L (x*) c 0 ==

Σ =Σ = de tipo interpolatorio. Denotando por ε(x) a la función error de interpolación f(x) = pn(x)  ε(x) 0 n ∀x∈(x ,x ) f '(x*)=p (x*)ε'(x*)

c.q.d. Ocupémonos ahora de analizar el error en las fórmulas de derivación numérica 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: por lo que: 'n

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid .

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*) se verificará que f(x) ≡ pn(x) y por tanto ε(x) = 0 ∀x , de donde resulta que la

En el caso particular en que f(x) sea un polinomio de grado menor o igual que n

39

Derivación Numérica 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. 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) =



 , sea exacta de orden n es que sea de tipo interpolatorio.

: 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:

fpor(x) l=o quepn(x)f’(xx)∀= p’n(x) ∀x . En particular para cualquier punto x* se n x* f '(x*) = p (x*) ≡ f  tendrá que: ''

Programación y Métodos Numéricos Derivación Numérica

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

40

Derivación Numérica 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 ' 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 .

ij 0 si i j L (x ) 1 si i=j

⎧≠ =⎨⎩

41

Derivación Numérica 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*) ==

Σ =Σ ⇒ =

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.

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 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

42

Derivación Numérica 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, 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 . 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: En toda fórmula de derivación numérica de tipo i nterpolatorio

n '

43

Derivación Numérica 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)

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 -1), la exactitud de la fórmula implica que:

el valor del entero positivo k siempre que k < n. Puesto que f’(x*) = k·(x*)(k () Σ = = 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

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 .

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

44

Derivación Numérica

45

fderiuncivóa:nRfde(x*)= errorε'in(x*)terpol. Noaciobstante ón ε(x) parti c ul a ri z ada en el punto x* en que se trabajar con la expresión del error de Rf(x*) de derivación así determinada es igual a la primera derivada de la

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 → (x h) x → 

h0h001n limf[x ,x ,....,x ,x h] f[x ,x ,....,x ,x] limf[x ,x ,....,x ,x,x h]

=+

que representaremos por: 0 1 n g'(x) = f[x ,x ,....,x ,x,x] Más concretamente: 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)! + =

ξε =  Π xξ

donde era un  punto dependiente de la abscisa x en la que se deseaba estimar el error de interpolación. Este

Derivación Numérica 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

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: La fórmula de derivación numérica de tipo interpolatorio

n ' x* i i i0 f c.f(x) =



tiene asociado un error de truncatura dado por la expresión [ ]n [ ] nn f01ni01nj i0i0j0  j i R ( x*) f x ,x ,...,x ,x*,x * . ( x * x ) f x ,x ,...,x ,x*,x * . ( x * x )

≠⎛⎛ ⎞⎞ =Π ΣΠ  ⎜⎜⎝⎜ ⎜⎜⎝⎜  ⎟⎟⎠⎟⎟⎟⎠⎟ ===

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

46

Derivación Numérica 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 s e traduce en que: nn k k' k *(k1) i i x x* i i 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 .

h=Max( x *x0, x * xn) ii ii=x0=x*θ θ (n1)⋅h escalares de valor absoluto no superior a 1 y tales que: Denotemos además por h al valor:

y sean { }n

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)! ++

47

Derivación Numérica

 δθ

+ Por tanto la fórmula de derivación numérica de tipo ti po interpolatorio considerada 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! =

⎛= =⎜⎞ ⎛⎟⎞⎛⎜⎞θ⎟θ ⎟  ⎜ θ⎟θ ⎟   ⎝Σ Σ⎠Σ⎝Σ⎠ ⎝ ⎠ + ++ ==

⎛ ⎝⎜⎞ θ⎠⎟ θ ⎠⎟   θ δ ΣΣ  +

 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: 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

Σθ=

48

Derivación Numérica

Con la notación que estamos utilizando se tiene que: Programación y Métodos Numéricos Derivación Numérica

i i x x* h

θ =

de donde: nnnn iiiiiii i0i0i1i0 c . 1. c .(x . (x x*) 1. c .x 1.x *. c = h= h = h =

⎛θ =⎞ = ⎜ ⎟ ⎝Σ Σ⎠Σ Σ

En esta última igualdad se sabe que n i i0 c0 = propiedad 3.2.). Por otra parte n ii i1 c .x

Σ = (véase la =Σ

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. Con la notación introducida anteriormente y siendo

n ' x* i i

49

Derivación Numérica 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)

Con la notación que se está utilizando y empleando la fórmula de Newton para desarrollar potencias de binomios5, se tiene que: nnnk 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

 ⎛⎛ ⎞ ⎛ ⎞⎞ =⎝⎝⎜⎠⎜⎝⎟⎠⎠⎜ ⎟⎟ ΣΣ toman valores de k tales que 2 ≤ k ≤ n se ==

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 debe verificar para todo valor del entero j comprendido entre 0 y (k-1) que el sumatorio n (k j) ii i0

50

Derivación Numérica

c=.xΣ

coincide con el 5 Como es habitual, en dicha fórmula se utiliza la notación

k j

⎛⎞ ⎜⎟ ⎝⎠ (k  j)!.j!

 para representar a k! Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid .

valor de la derivada del monomio x(k-j) particularizado en el punto x*. Es decir que: 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

Σθ

 =

51

Derivación Numérica

⎛⎛ ⎞⎞ ⎜⎜ ⎟  ⎟= ⎝⎝ ⎠ ⎠ Σ

(k 1) (k 1) j k j0 1 .(x*) . ( 1) .(k j). k hj

 ⎛⎛ ⎞⎞ =⎝⎝⎜⎠⎠ ⎜ ⎟⎟ Σ  ⎛⎞  ⎜ ⎟= ∀ ≥ ⎝⎠ Σ(k 1) =

Puesto que6 se verifica que: =

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:

Σθ

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

i i=0 θ { }n

iθ .h

a los (n+1) escalares tales que hi = derivación numérica de tipo interpolatorio:

 , para toda fórmula de

52

Derivación Numérica

53

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

()+ =

= Σ = θ δ  +

+  n n ' n (n 1 f x* i i i i i0 R (x*) f(x*) f h . c . .h.f (x * .h) (n 1)! 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)! =

Derivación Numérica

54

()+ = = +  + +  n n n (n1 iiii i0 f '(x*) h . c . .h.f (x * .h) (n 1)! c.q.d.

θΣ δ

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á 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 co nsiderado 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 .

θ

ξ

θ

ξ

δ

 γ

4ª) Con todo, como ya señaló anteriormente, lo más interesante de esta forma de proceder no es tanto el resultado o btenido 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:

Derivación Numérica

Si g(x) es una función continua en [a, b] y se consideran (n+1) coeficientes positivos, { }n  , y (n+1) puntos { }n  pertenecientes al intervalo [a, b], entonces existe un punto tal que:

ii ii==00 αξ αξ αξΣ

ξ ∈ [a,b]

=

 =

n

ii i0 .g( ) .g( ) donde

n i i=0  =

α Σα

.

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: imiiiM .g( .g (i = 0, 1, ..., n) Sumando las expresiones anteriores se tiene que: nnnn imiiiMmiiM i0i0i0i0 .g .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

nn iiii i0i0 1 . .g( ) g( ) .g( ) .g( ) ==  =  =

αξαΣΣ ξ⇒ αξ αξ

55

Derivación Numérica

56

c.q.d. El lema precedente y el teorema 4.1. nos permiten demostrar fácilmente el siguiente teorema: 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 ) =

≈ =Σ

ξ ∈ [x0,xn] ≤ β.hn.f(n1(ξ)

existe algún punto que se verifica: |Rf(x*)|

β

 y alguna constante real positiva  para los

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)!

= Σ = θ δ≤

Derivación Numérica + =

≤ θΣ δ ξi = x*  δi.h, y con los coeficientes αi = |ci.θi existirá un valor x∈ [x0 , xn] para  +

+ Aplicando el lema 4.1. (para la función g(x) = |f(n+1(x)|, evaluada en los puntos n.hi| ) se puede concluir que

 el que se verificará que:

n i i 0 (n 1) (n 1 f R (x*) .h . f ( ) (n 1)! =++

⎧⎫⎨α⎬ ≤⎩⎭ξ Σde donde se tiene el resultado de este teorema sin más que l amar β 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 .

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.

Para todo valor entero k superior o igua a 2 se verifica que: ( k 1)  j  j 0 k ( 1) .(k j). 0 k 2  j

 ⎛⎞  ⎜ ⎟= ∀ ≥ =

57

Derivación Numérica

⎝⎠ Σ  ⎛⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞  ⎜ ⎟=   ⎜ ⎟=  ⎜ ⎟  ⎜ ⎟ ⎝⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ Σ Σ Σ Σ (k 1) k k k Se tiene que: ====

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: =

⎛⎞ ⎜ ⎟=  = = ⎝⎠ Σ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

58

Derivación Numérica 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

() ⎛⎞ ⎝⎠= ⎜ ⎟ Σk

7 Recuérdese que la fórmula del binomio de Newton establece que:

=

k (k j) j j0 k a b ·a ·b j

Programación y Métodos Numéricos Derivación Numérica

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)! ===

 ⎛  ⎞ =Σ ΣΣkk k=    =  ⎜⎝ ⎟⎠=

jjj j1j0j0 k· ( 1) · (k 1)! k· ( 1) · (k 1)! k· ( 1) · k 1 0

59

Derivación Numérica

60

(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 .

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 )

Derivación Numérica

≈ =  HH

siendo los coeficientes de la fórmula c0 = -(1 / H) y c1 = (1 / H). 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 d iferencias divididas:  p(x) = f(x0) + f[x0, x1].(x-x0) Programación y Métodos Numéricos Derivación Numérica que al derivarlo, teniendo en cuenta la expresión de la dif erencia 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





61

Derivación Numérica

x* = 0 θ .h x1 x* = 1θ .h

entonces que: x0 por lo que: ' x* f = c0.f(x0) + c1.f(x1) = ( ) 1 0 1 . f(x ) f(x ) H  = ( ) 1 0 1. f(x* .h) f(x* .h) H +  = 22 111 1. f(x*) .h.f '(x*)1. .h .f "(x * .h) H2  = +  +  + 22 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

62

Derivación Numérica .

Puesto que H se podrá expresar como γ.h con (γ > 1) resultará finalmente, 2.1 γ1(20 02θ.) f "(x *δ.h)θ.f "(x *δ.h) = β.h.f "(ξ) aplicando el lema 4.1., que: Rf(x*) = h .

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 Rf(x*) = ρ.H.f”(ξ) expresión del error queda en el caso más general en la forma:

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, 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.

En este caso h = H, 0 θ = 0 y 1 θ = 1 y la fórmula se puede escribir en la A) Caso en el que x* = x0

forma: ' x* f f(x * h) f(x*) h

 denomi n ándose “aproxi m aci ó n medi a nte l a di f e renci a f i n i t a progresi v a 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

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*

63

Derivación Numérica f(x * h) f(x*) 1.h.f "(x*) .... f 1.h.f "(x*) .... h22

 =   En este caso h = H, 0 θ = 1 y 1 θ = 1 y la fórmula se puede escribir en la B) Caso en el que x* = x1

forma: ' x* f f(x*) f(x * h) h

 denomi n ándose “aproxi m aci ó n medi a nte l a di f e renci a f i n i t a regresi v a 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: ' 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. 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

 = En este caso h = H/2, 0 θ = 1 y 1 θ = 1 pudiéndose rescribir la fórmula C) Caso en que x* es el punto medio del intervalo: x* = (x0 + x1) / 2

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 .

denomi n ándose “aproxi m aci ó n medi a nte l a di f e renci a f i n i t a centrada de primer orden”. El error de esta fórmula, si f(x) es suficientemente regular

64

Derivación Numérica 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*) 34 h.f '''(x*) h.f(iv (x*) .... 6 24

–h.f’(x*)  (½).h2f”(x*)

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(x35 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

– h) = 2.h.f’(x*) 

 Rf(x*) = f’(x*) ==+++ y por tanto:

-

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:

65

Derivación Numérica

66

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. 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

– –

p2(x) = f(x0) + f[x0, x1].(x - x0) + f[x0 , x1, x2].(x  x0).(x  x1) por lo que:  x0) + (x  x1)) lo que nos conduce a que la fórmula de derivación numérica de tipo interpolatorio con este soporte está dada por:

p’2(x) = f[x0, x1] f[x0 , x1, x2].((x – – f≈__________f ’(x*) ' ' x* =p2(x*) = f[x0, x1] f[x0 , x1, x2].((x* –



 x0) + (x*  x1))

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 )

  =

 , 0 2

1

Derivación Numérica 1012 (x x ).(x x ) L (x) (x x ).(x x )

  =

 , 0 1

2 2021 (x x ).(x x ) L (x) (x x ).(x x )

   =

8 Recuérdese que:

=

[]

10 01 10 f(x)f(x) f x ,x xx  , [ ] 2 1 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 .

67

Derivación Numérica

 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 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

En lo que se refiere al error de truncatura de esta fórmula, su expresión puede

68

Derivación Numérica

arse, si f∈C3((x0 , x1)), utilizando el teorema 4.2. mediante: Rf(x*) ≤β.h . f (ξ) acot  2 '''

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. 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



=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 .

'10210 x* f '(x*) f f(x ) f(x ) f(x ) 2.f(x ) f(x ) H 2.H

 

69

Derivación Numérica

≈==       

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:

ff((x*x*  2.H)H=) =f(x*)f(x*)H.2.f’(Hx*).f’(x*) (½2.) HH2.2.ff””(x*)(x*)  (8/6). H 3. f ’ ’ ( x*)  … (1/6).H3.f’ ’(x*) .. –3.f(x*) = 2.H.f’(x*) –(2/3).H3.f’ ’(x*)  …. f’(x*) f(x * 2.H) 4.f(x * H) 3.f(x*) 1.H2.f ' '(x*) . .     – ’ = (1/3).H2.f’ ’(ξ) por lo que: -f(x*+2.H) + 4.f(x*+H) de donde: 2.H 3

=++ pudiéndose concluir que si f(x) es al menos de clase C3((x0 , x1)) entonces: Rf(x*) = f(x*)  fx* 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

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)

70

Derivación Numérica

  ≈==      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*) f(x* - H) = f(x*) obteniendo: 3.f(x*)  4.f(x*-H) + f(x*- .... de donde, si f(x) es al menos de clase C3((x0, x2) se obtiene que: Rf(x*) = f(x*)  fx*

2.H.f’(Hx*).f’(x*) (½2.) HH2.2.ff””(x*)(x*) (8/6). H 3. f ’ ’ ( x*)  … (1/6).H3.f’ ’(x*) .. – 2.H) = 2.H.f’(x*) –(2/3).H3.f’ ’(x*) – ’ = (1/3).H2.f’ ’(ξ)

Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid .

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, obviame

nte, el que mul t i p l i c a a f ’ ( x*). Despej a ndo después f’(x*) de esta combinación se obtendrá la fórmula de deriv–ació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: ====

⎛⎞ ⎛ ⎞ ⎛ ⎞ α=⎜ α⎟⎜ α⎟  ⎜ α⎟  ⎝⎠ ⎝ ⎠ ⎝ ⎠ ΣΣΣΣ  n n n n

2

71

Derivación Numérica iiiiiii i0i0i0i0 ·f(x ) ·f(x*) ·h ·f '(x*) 1 ·h ·f "(x*) 2! ==

⎛⎞ ⎛ ⎞ ⎜α⎟   ⎜ α⎟  ⎝⎠ ⎝ ⎠ ΣΣ

 n n 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 primeros sumandos del desarrollo anterior. Esto es, que: =

coeficiente de f’(x*), se anulen el mayor número de los

α = Σ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

αΣ αΣ

ecuaci o nes quedando un si s tema con (n1) i n cógni t as (α0, . . , αn) y tan sól o 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

Por

ello los coeficientes (α0, . ., αn) que se determinen mediante la resolución

72

Derivación Numérica del sistema: =  = n i i0 0 =  = n 2 ii i0 ·h 0 ........ =  = n n ii 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. 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





73

Derivación Numérica 32·h ·f(v (x*) ... 120 f(x*-(½)·h) =f(x*) – 1·

2



 + h2·f "(x*) h3·f '''(x*) 8 48 h·f’(x*) +



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 . 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

74

Derivación Numérica

α  α  α  α  = 0 1 2 3 =(α  α  α  α )  0 1 2 3· f ( x*) ⎛⎜ α α  α  α⎞⎟  ⎝⎠ 0 1 2 3 ⎛⎜ α  α  α  α⎞⎟  ⎝⎠ de donde:

·f(x * 2·h) ·f(x * 1·h) ·f(x * 1·h) ·f(x * 3·h) 222

2· 1· 1· 3· ·h·f '(x*) 222

2 0123 2· 1· 1· 9· ·h ·f "(x*) 888

⎛⎜ α  α  α  α⎞⎟  ⎝⎠ 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

αααα=01230

Si se desea que la fórmula tenga el mayor orden posible se o bligará a que:

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

α

de donde9, dejando como incógnita libre 1, se tiene:

012131

75

Derivación Numérica

76

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*)  . . 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

≈⎝⎠=⎛⎜        ⎞⎟ ∈ = 3 (iv ξ

 y que con ella, si f   C4((x*-2·h, x*+3·h/2)), se comete un error dado por:

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

αα α α

Derivación Numérica ETSI Minas de la Universidad Politécnica de Madrid . 騁

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 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

77

Derivación Numérica anterior es compatible determinado. Su resolución proporciona los pesos de la fórmula de derivación buscada.

Siescriendobir“h”, paraun valvalooresr estriconveni ctamente posi t i v o en f u nci ó n del cual se puedan e ntes de γi (i = 0, . . , n ), l o s 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 ch1c1 h

Σ γ = ⇒Σ γ



Programación y Métodos Numéricos Derivación Numérica

()  Σ γ ⇒Σ γ

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

78

Derivación Numérica ... ... ... ... ... ... ... ... 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-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.

1)·f(m(ξ) aplicándolo al primer binomio (x

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:

 ⎡⎤⎧⎢⎢⎢⎢⎣⎥⎥⎥⎥⎦⎨⎪⎪⎪⎪⎩ ⎫⎧⎫ ⎪⎭⎪⎪⎪⎬ = ⎪⎩⎨⎪⎪⎪ ⎪⎭⎪⎪⎪⎬ 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 .

⎡⎤⎧⎢⎢⎢⎢⎣ ⎫ ⎧ ⎫ ⎥⎥⎥⎥⎦⎨⎪⎪⎪⎪⎩ ⎪⎭⎪⎪⎪⎬ = ⎪⎩⎨⎪⎪⎪ ⎪⎭⎪⎪⎪⎬ 0 2 1h 2 3 1111c0 4113c 16 1 1 9 c 0 64 1 1 27 c 0

79

Derivación Numérica



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: -x*)3 = 0 siendo el valor aproximado dado por la fórmula:

f’(x*) = 4.(x* (⎝⎠) ( ) =⎛⎜     ⎞⎟= '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 (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

numérica que permite aproximar el valor de f’(x*) sobre el

a) Siendo h un parámetro estrictamente positivo, determinar la fórmula de derivación soporte: x0 = x* +h, x1 = x* + 2h y x2 = x* + (5 ) 2 h. Suponiendo que f(x)

80

Derivación Numérica 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 ETSI Minas de la Universidad Politécnica de Madrid . 駻

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. 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 de puntos considerado, a toda

≈ (k

expresión de la forma: f(k(x*) * f = c0.f(x0) + c1.f(x1)+ …. + cn.f(xn) = 

n ii i0 c .f(x )



81

Derivación Numérica donde c0, c1, …, cn son (n+1) escalares denominados  ) de la fórmula de derivación.

82 (o

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 ti po 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

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: 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*) *f=

≈ (k

n ii i0 c .f(x )



se denomina valor Rf(x*) = f (k(x*) - (k

de la fórmula en el punto x* al

*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  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. 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:

Derivación Numérica

[≈]"== 2 1 0

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 . f(x0) = f(x*-h) = f(x*) - h.f’(x*) +  + 234 ( iv 0 h.f "( x*) h.f "'( x*) h .f ( x * .h) 2 3! 4 !

 θ θ∈(1,0)  + +  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

83

Derivación Numérica

84

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 *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



Se dice que la fórmula de derivación numérica:

≈ =Σ =

n

(k (k *ii i0 f (x*) f c.f(x)

ϕϕϕ

es

{

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)

ϕ= ∀ ∈ =

Derivación Numérica 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

Si la fórmula es exacta de orden m para la familia de funciones consideradas se podrá escribir que: [] =  = (k jiji0n i0 (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: =

ϕ ϕ∀ ∈ Σn

= α ⋅ ϕ α ⋅ ϕ  α ⋅ ϕ= α ⋅ ϕΣm

0011mmj j 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 .

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

Σ

85

Derivación Numérica 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 fu nciones 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

exacti t ud m se sobreentenderá que “es de orden de exacti t ud m para l a f a mi l i a 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. La fórmula que se ha utilizado en el ejemplo anterior " *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 Y para la función p(x) = x3 se verifica que:

86

Derivación Numérica 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 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. Se denomina 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. 1ª) Obsérvese que en la definición anterior s e 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,



Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López ETSI Minas de la Universidad Politécnica de Madrid .

Una fórmula de derivación numérica de tipo interpolatorio puede obtenerse a partir de cualquiera de las expresiones del polinomio interpolador. Recordando

87

Derivación Numérica 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: 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}.

a) Demostremos que en toda fórmula de tipo interpolatorio sus coeficientes 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 )

88

Derivación Numérica

≠⎛⎞≠ ⎛ ⎞ =⎜⎜⎜  ⎟⎟⎟ ⎜⎜⎜  ⎟⎟⎟ ⎝⎠ ⎝ ⎠ ΠΠ ==

(i = 0, 1, ..., n) Programación y Métodos Numéricos Derivación Numérica

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*) ( ) ( ) ⎛⎞ ≈⎝⎠= = =⎜ ⎟ = ΣΣΣΣ ====

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: 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 =

Σ=

89

Derivación Numérica

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 ΣΣ

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 .

f(x) = pn(x)  ε(x) 0 n ∀x∈(x ,x ) (k = (k ε(k por lo que:

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 se verificará que f(x) ≡ pn(x) y por tanto ε(x) = 0 ∀x , de

f R (x*) (x*) En el caso particular en que f(x) sea un polinomio de grado menor o igual que n 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.

90

Derivación Numérica 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. 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.

: 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 ∀

Programación y Métodos Numéricos Derivación Numérica

pn (x) ∀x. En particular, al ser la fórmula de (k = (k ≡ (k por lo que f(k(x) = (k

derivación de tipo interpolatorio, para cualquier punto x* se tendrá que: 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)

Σ

91

Derivación Numérica 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: ==

Σ =Σ 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 .

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: ==  = (k (k i0ii0i00

Σ Σ⇒ = n n

92

Derivación Numérica

93

i0i0 c.L (x ) L (x*).L (x ) c L (x*) Al hacerlo para el polinomio L1(x) resultará que: ==  = (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 Σ =Σ ⇒ = n n

(k (k ijiijijj i0i0 c .L (x ) L (x*).L (x ) c L (x*) c.q.d. 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 ) ≈ = = [ ] x* 2 0 1 2 f "(x*) f " p" (x) 2    

 por lo que la fórmula de derivación numérica que aproxima derivadas segundas sobre este soporte es:

·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  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  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





 x

x

x 0 1 2 3 0 1 2 2· , , , ·(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:

Derivación Numérica n  j ii(jk) i1 0 si j k c x j ! ( x*) si k j n ( j k)!

 k consideremos el soporte de (n+1) puntos {x0 < x1
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF