Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Derivacion Numérica
Derivacion Numérica
DERIVACION NUMERICA
1. Introducción
2. Derivación numérica
3. Métodos de diferencias finitas
3.1. Formulas de diferencias finitas hacia adelante
3.1.1. Primera diferencia
3.1.2. Segunda diferencia
Ejemplo 1
3.2. Formulas de diferencias finitas hacia atrás
3.2.1. Primera diferencia
3.2.2. Segunda diferencia
Ejemplo 2
3.3. Formulas de diferencias centrales
3.3.1. Primera diferencia
3.3.2. Segunda diferencia
Ejemplo 3
4. Inestabilidad numérica de las formulas de diferencias finitas
4.1. Diferencias centrales
Derivación numérica por diferencia centrada de orden 𝑂(ℎ2 )
Fórmulas de las diferencias centradas de los tres puntos
Derivación numérica por diferencia centrada de orden 𝑂(ℎ4 )
Fórmula de los tres puntos
Fórmula de los cinco puntos
Ejercicios resueltos
Ejercicios de fijación
CAPÍTULO 9
Derivación Numérica 2
DERIVACIÓN NUMÉRICA
Introducción
Derivación numérica
𝑓(𝑥)
Secante
𝑓(𝑥0 + ℎ)
𝑓(𝑥0 )
𝑥0 (𝑥0 + ℎ)
𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 )
Diferencia hacia adelante: 𝑓 ′ (𝑥0 ) ≈
ℎ
𝑓(𝑥0 ) − 𝑓(𝑥0 − ℎ)
Diferencia hacia atrás: 𝑓 ′ (𝑥0 ) ≈
ℎ
3) Diferencias centrales. Cuando se usan puntos tanto antes como después del
punto de interés.
Primera diferencia
𝑓(𝑥0+1 ) − 𝑓(𝑥0 )
𝑓′(𝑥0 ) =
ℎ
𝑓(𝑥0+2 ) − 2𝑓(𝑥0+1 ) + 𝑓(𝑥0 )
𝑓′′(𝑥0 ) =
ℎ2
𝑓(𝑥0+3 ) − 3𝑓(𝑥0+2 ) + 3𝑓(𝑥0+1 ) − 𝑓(𝑥0 )
𝑓′′′(𝑥0 ) =
ℎ3
𝑓(𝑥0+4 ) − 4𝑓(𝑥0+3 ) + 6𝑓(𝑥0+2 ) − 4𝑓(𝑥0+1 ) + 𝑓(𝑥0 )
𝑓 𝑖𝑣 (𝑥0 ) =
ℎ4
Segunda diferencia
Ejemplo 9.1.
Sea la función ln 𝑥, calcular las derivadas por métodos numéricos en el punto 𝑥 = 5, en
base a la siguiente tabla, con ℎ = 0.1, aplicando la fórmula de la primera diferencia finita
hacia adelante.
Solución:
Para 𝑓(𝑥) = 𝑙𝑛 𝑥. El valor verdadero de 𝑓 ′ (5) = 𝟎. 𝟐 𝑦 𝑓 ′′ (5) = −𝟎. 𝟎𝟒
𝑉𝑣 − 𝑉𝑎 0.2 − 0.198
𝐸𝑟 = | |=| | = 0.01, 𝐸% = |𝐸𝑟 × 100%| = (0.01) × 100% = 1%
𝑉𝑣 0.2
Segunda derivada
𝑉𝑣 − 𝑉𝑎 −0.04 − (−0.038)
𝐸𝑟 = | |=| | = 0.05, 𝐸% = |𝐸𝑟 × 100%| = (0.05) × 100% = 5%
𝑉𝑣 −0.04
Ejemplo 9.2.
Sea la función ln 𝑥, calcular las derivadas por métodos numéricos en el punto 𝑥 = 5, en
base a la siguiente tabla, con ℎ = 0.1, aplicando la fórmula de la segunda diferencia finita
hacia adelante.
Solución:
Para 𝑓(𝑥) = 𝑙𝑛 𝑥. El valor verdadero de 𝑓 ′ (5) = 𝟎. 𝟐 𝑦 𝑓 ′′ (5) = −𝟎. 𝟎𝟒
Primera derivada
0.03998
𝑓′(𝑥0 ) = = 𝟎. 𝟏𝟗𝟗𝟗
0.2
𝑉𝑣 − 𝑉𝑎 0.2 − 0.1999
𝐸𝑟 = | |=| | = 1 × 10−4 , 𝐸% = |1 × 10−4 × 100%| = 0.01%
𝑉𝑣 0.2
Derivación Numérica 6
Segunda derivada
𝑉𝑣 − 𝑉𝑎 −0.04 − (−0.038)
𝐸𝑟 = | |=| | = 0.05, 𝐸% = |0.05 × 100%| = 𝟓%
𝑉𝑣 −0.04
Comentarios:
La aproximación lograda presenta errores muy elevados, pues 1% para la primera derivada
y 5% para la segunda derivada, en la primera diferencia hacia adelante es prácticamente
intolerable en un cálculo de este tipo. En la segunda diferencia de este mismo método
(diferencias finitas hacia adelante) presenta igualmente un error elevado del 0.01% para la
primera derivada, que parecería un resultado bastante aceptable, sin embargo esto es
debido a la inestabilidad del método, y para la segunda derivada el error es del 5%, valor
igual obtenido con la aplicación de la primera diferencia.
Los resultados obtenidos por este método son engañosos, por la inestabilidad que
presentan debido a la simplicidad de su forma y a los parámetros reducidos considerados
para el cálculo. Si el resultado procurado necesita de cierta exactitud respecto del valor real,
este método no es recomendable, ya que casi aleatoriamente puede presentar buena
precisión en algunos casos, mientras que en otros producir errores muy grandes.
Primera diferencia
𝑓(𝑥0 ) − 𝑓(𝑥0−1 )
𝑓′(𝑥0 ) =
ℎ
𝑓(𝑥0 ) − 2𝑓(𝑥0−1 ) + 𝑓(𝑥0−2 )
𝑓′′(𝑥0 ) =
ℎ2
𝑓(𝑥0 ) − 3𝑓(𝑥0−1 ) + 3𝑓(𝑥0−2 ) − 𝑓(𝑥0−3 )
𝑓′′′(𝑥0 ) =
ℎ3
Derivación Numérica 7
Segunda diferencia
Ejemplo 9.3.
Solución:
Para 𝑓(𝑥) = 𝑙𝑛 𝑥. El valor verdadero de 𝑓 ′ (5) = 𝟎. 𝟐 𝑦 𝑓 ′′ (5) = −𝟎. 𝟎𝟒
Segunda derivada
𝑉𝑣 − 𝑉𝑎 −0.04 − (−0.038)
𝐸𝑟 = | |=| | = 0.05, 𝐸% = |𝐸𝑟 × 100%| = (0.05) × 100% = 𝟓%
𝑉𝑣 −0.04
Derivación Numérica 8
Ejemplo 9.4.
Solución:
Para 𝑓(𝑥) = 𝑙𝑛 𝑥. El valor verdadero de 𝑓 ′ (5) = 𝟎. 𝟐 𝑦 𝑓 ′′ (5) = −𝟎. 𝟎𝟒
𝑉𝑣 − 𝑉𝑎 0.2 − 0.2003
𝐸𝑟 = | |=| | = 0.0015, 𝐸% = |0.0015 × 100%| = 𝟎. 𝟏𝟓%
𝑉𝑣 0.2
𝑉𝑣 − 𝑉𝑎 −0.04 − (−0.03)
𝐸𝑟 = | |=| | = 0.25, 𝐸% = |0.25 × 100%| = 𝟐𝟓%
𝑉𝑣 −0.04
Comentarios:
La aproximación presentada por este método de diferencias hacia atrás presenta resultados
muy parecidos al método de diferencias hacia adelante; sin embargo para la segunda
derivada se nota que el error producido es del 25%, totalmente intolerable en un cálculo
donde normalmente se pretende precisión y exactitud.
Los resultados obtenidos por este método son igualmente engañosos, debido también a la
inestabilidad del método.
Primera diferencia
𝑓(𝑥0+1 ) − 𝑓(𝑥0−1 )
𝑓′(𝑥0 ) =
2ℎ
𝑓(𝑥0+1 ) − 2𝑓(𝑥0 ) + 𝑓(𝑥0−1 )
𝑓′′(𝑥0 ) =
ℎ2
𝑓(𝑥0+2 ) − 2𝑓(𝑥0+1 ) + 2𝑓(𝑥0−1 ) − 𝑓(𝑥0−2 )
𝑓′′′(𝑥0 ) =
2ℎ3
𝑓(𝑥0+2 ) − 4𝑓(𝑥0+1 ) + 6𝑓(𝑥0 ) − 4𝑓(𝑥0−1 ) + 𝑓(𝑥0−2 )
𝑓 𝑖𝑣 (𝑥0 ) =
ℎ4
Segunda diferencia
Ejemplo 9. 5.
Solución:
Para 𝑓(𝑥) = 𝑙𝑛 𝑥. El valor verdadero de 𝑓 ′ (5) = 𝟎. 𝟐 𝑦 𝑓 ′′ (5) = −𝟎. 𝟎𝟒
Primera derivada
𝑉𝑣 − 𝑉𝑎 0.2 − 0.2001
𝐸𝑟 = | |=| | = 5 × 10−4 , 𝐸% = |𝐸𝑟 × 100%| = 𝟎. 𝟎𝟓%
𝑉𝑣 0.2
Derivación Numérica 10
Segunda derivada
𝑉𝑣 − 𝑉𝑎 −0.04 − (−0.042)
𝐸𝑟 = | |=| | = 0.05, 𝐸% = |𝐸𝑟 × 100%| = (0.05) × 100% = 𝟓%
𝑉𝑣 −0.04
Ejemplo 9. 6.
Primera derivada
𝑉𝑣 − 𝑉𝑎 0.2 − 0.2001
𝐸𝑟 = | |=| | = 5 × 10−4 , 𝐸% = |5 × 10−4 × 100%| = 𝟎. 𝟎𝟓%
𝑉𝑣 0.2
Segunda derivada
𝑉𝑣 − 𝑉𝑎 −0.04 − 0.0073
𝐸𝑟 = | |=| | = 1.1825, 𝐸% = |𝐸𝑟 × 100%| = 𝟏𝟏𝟖. 𝟐𝟓%
𝑉𝑣 −0.04
b) Se buscará de nuevo la derivada segunda, pero con un valor de h menor que el anterior,
reduciendo dicha amplitud o peso de h a la mitad, o sea: de ℎ = 0.1 a ℎ = 0.05
𝑉𝑣 − 𝑉𝑎 −0.04 − (−0.0425)
𝐸𝑟 = | |=| | = 0.0625, 𝐸% = |𝐸𝑟 × 100%| = 6. 𝟐𝟓%
𝑉𝑣 −0.04
Comentarios
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
Teorema 9.1. Suponiendo que 𝑓 ∈ 𝐶 3 [𝑎, 𝑏], (𝑥0 − ℎ), (𝑥0 + ℎ) ∈ [𝑎, 𝑏], entonces
𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 − ℎ)
𝑓 ′ (𝑥0 ) ≈
2ℎ
Además existen 𝜉 = 𝜉(𝑥) ∈ [𝑎, 𝑏], tal que
𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 − ℎ)
𝑓 ′ (𝑥0 ) = + 𝐸𝑡 (𝑓, ℎ)
2ℎ
ℎ2 𝑓 ′′′ (𝜉)
𝑐𝑜𝑛 𝐸𝑡 (𝑓, ℎ) = − = 𝑶(ℎ2 )
6
Este Teorema se presenta sin demostración:1
1
La demostración de este teorema se encuentra en: Velázquez Zapateiro, Jorge. (2007). Análisis
Numérico (pág. 162). Notas de clase. Edición Uninorte. Barranquilla. Colombia
Derivación Numérica 13
Teorema 9.2. Suponiendo que 𝑓 ∈ 𝐶 5 [𝑎, 𝑏], (𝑥0 − 2ℎ), (𝑥0 − ℎ), (𝑥0 + ℎ), (𝑥0 + 2ℎ) ∈ [𝑎, 𝑏],
entonces:
−𝑓(𝑥0 + 2ℎ) + 8𝑓(𝑥0 + ℎ) − 8𝑓(𝑥0 − ℎ) + 𝑓(𝑥0 − 2ℎ)
𝑓 ′ (𝑥) ≈
12ℎ
Además existe 𝜉 = 𝜉(𝑥0 ) ∈ [𝑎, 𝑏], tal que
Ejemplo 9.7.
Si 𝑓(𝑥) = 𝑐𝑜𝑠 𝑥, calcular la aproximación de 𝑓 ′ (6), usando las fórmulas de las diferencias
centradas de orden 𝑂(ℎ2 ) con ℎ = 0.1
Solución
a) Con La formula de diferencias centradas de orden 𝑂(ℎ2 )
𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 − ℎ)
𝑓 ′ (𝑥0 ) =
2ℎ
𝑓(6.1) − 𝑓(5.9) 0.983268 − 0.927478 0.005579
𝑓 ′ (6) = = = = 𝟎. 𝟐𝟕𝟖𝟗𝟓
2(0.1) 0.2 0.2
𝑉𝑣 − 𝑉𝑎 0.279415 − 0.27895
𝐸𝑟 = | |=| | = 1.6642 × 10−3 , 𝐸% = |𝐸𝑟 × 100%| = 𝟎. 𝟏𝟔𝟔%
𝑉𝑣 0.279415
Ejemplo 9.8.
Si 𝑓(𝑥) = 𝑐𝑜𝑠 𝑥, calcular la aproximación de 𝑓 ′ (6), usando las fórmulas de las diferencias
centradas de orden 𝑂(ℎ4 ) con ℎ = 0.1
Solución
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
Comentarios
A primera vista parecería ser que estas formulas de diferencias centrales se acercan
bastante al valor verdadero de la derivada de la función buscada, ya que con las diferencias
centradas de orden 𝑂(ℎ2 ) el error producido en el ejemplo es de apenas 0.166%, error
bastante pequeño; sin embargo en error producido con la formulas de diferencias centradas
de orden 𝑂(ℎ4 ) es aun menor, tan solo de 0.0096%.
De nuevo vale repetir que estas formulas de diferencias centradas parecen bastantes
precisas.
La formula de diferencias centradas de orden 𝑂(ℎ4 ) es una de las recomendadas para hallar
la primera derivada de 𝑓(𝑥).
1 ℎ2 𝑓 ′′′ (𝜉1 )
𝑓 ′ (𝑥) = [𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 − ℎ)] −
2ℎ 6
1 𝑓 3 (𝜉2 )ℎ2
𝑓 ′ (𝑥0 ) = [−3𝑓(𝑥0 ) + 4𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 + 2ℎ)] +
2ℎ 3
Las ecuaciones (9.1) y (9.2) son las llamadas fórmulas de los tres puntos de derivación
numérica, aun cuando la formula (9.1) solamente utiliza dos puntos y no aparece en ella el
punto central 𝑥0 . El error presentado en la ecuación (9.1) es aproximadamente la mitad que
en la ecuación (9.2), esta situación se debe a que en la ecuación (9.1) se usan datos que están
Derivación Numérica 15
Ejemplo 9.9.
Aproximar el valor de la función 𝑓 ′ (3) si 𝑓(𝑥) = 𝑙𝑛𝑥 𝑠𝑒𝑛 𝑥, utilizando la fórmula (9.1) de
los tres puntos, con ℎ = 0.1
Solución:
𝑓(𝑥 + ℎ) − 𝑓(𝑥 − ℎ)
Se parte de la fórmula: 𝑓 ′ (𝑥) =
2ℎ
𝑓(3 + 0.1) − 𝑓(3 − 0.1) 𝑓(3.1) − 𝑓(2.9) ln 3.1 × 𝑠𝑒𝑛3.1 − ln 2.9 × 𝑠𝑒𝑛2.9
𝑓 ′ (3) = = =
2(0.1) 0.2 0.2
1.131402× 0.041581 − 1.064712× 0.239249 0.047044 − 0.254731
𝑓 ′ (3) = =
0.2 0.2
0.207687
𝑓 ′ (3) = = −𝟏. 𝟎𝟑𝟖𝟒𝟑𝟕
0.2
Estimación de error:
El valor verdadero de la derivada de la función 𝑓(𝑥) = 𝑙𝑛𝑥 𝑠𝑒𝑛 𝑥 es 𝑓 ′ (3) = −𝟏. 𝟎𝟒𝟎𝟓𝟕𝟖
Comentarios:
Ejemplo 9.10.
Aproximar el valor de la función 𝑓 ′ (3) si 𝑓(𝑥) = 𝑙𝑛𝑥 𝑠𝑒𝑛 𝑥, utilizando la fórmula (9.2) de
los tres puntos, con ℎ = 0.1
Solución:
La solución inicia con la formula de los tres puntos (9.2)
1
𝑓 ′ (𝑥0 ) = [−3𝑓(𝑥0 ) + 4𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 + 2ℎ)]
2ℎ
1 1
𝑓 ′ (3) = [−3𝑓(3) + 4𝑓(3 + 0.1) − 𝑓(3 + 2 × 0.1)] = [−3𝑓(3) + 4𝑓(3.1) − 𝑓(3.2)]
0.2 0.2
Derivación Numérica 16
1
𝑓 ′ (3) = [−3(𝑙𝑛3 × 𝑠𝑒𝑛3) + 4(𝑙𝑛3.1 × 𝑠𝑒𝑛3.1) − (𝑙𝑛3.2 × 𝑠𝑒𝑛3.2)]
0.2
1
𝑓 ′ (3) = [−3(1.09861 × 0.14112) + 4(1.13140 × 0.04158) − (1.16315 × (−0.05837)]
0.2
1
𝑓 ′ (3) = [−3(0.155036) + 4(0.0470436) − (−0.067893)]
0.2
1 1
𝑓 ′ (3) = [−0.465108 + 0.1881744 + 0.067893] = [−0.2090406] = −𝟏. 𝟎𝟒𝟓𝟐𝟎𝟑
0.2 0.2
Estimación de error:
Comentarios:
En este caso, con la aplicación de la formula (9.2) de los tres puntos la aproximación
lograda es de menor precisión que la de (9.1), aun así, sigue siendo bastante buena la
aproximación lograda, pues el error porcentual es de 0.44%.
Comparando los dos ejercicios resueltos se nota claramente que la ecuación (9.1) presenta
menor error, aproximadamente la mitad de error producido por (9.2), lo que se había ya
indicado al definir las dos fórmulas de los tres puntos.
Importante: Recodar siempre que el error puede ser pequeño o grande dependiendo
siempre de la precisión que se desee al evaluar una determinada función.
1 𝑓 (3) 𝜉 2
𝑓 ′ (𝑥0 ) = [𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 − ℎ)] + ℎ , 𝜉 ∈ [𝑥0 − ℎ, 𝑥0 + ℎ]
2ℎ 3!
Ejemplo 9.11.
Aproximar el valor de la función 𝑓 ′ (3) si 𝑓(𝑥) = 𝑙𝑛𝑥 𝑠𝑒𝑛 𝑥, utilizando la fórmula de los tres
puntos, con ℎ = 0.1
Solución:
La solución inicia con la formula de los tres puntos
1
𝑓 ′ (𝑥0 ) = [𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 − ℎ)]
2ℎ
Derivación Numérica 17
𝑓(𝑥 + ℎ) − 𝑓(𝑥 − ℎ)
Se parte de la fó rmula: 𝑓 ′ (𝑥) =
2ℎ
1 1
𝑓 ′ (3) = [𝑓(3 + 0.1) − 𝑓(3 − 0.1)] = [−3𝑓(3) + 4𝑓(3.1) − 𝑓(3.2)]
2 × 0.1 0.2
1
𝑓 ′ (3) = [−3(𝑙𝑛3 × 𝑠𝑒𝑛3) + 4(𝑙𝑛3.1 × 𝑠𝑒𝑛3.1) − (𝑙𝑛3.2 × 𝑠𝑒𝑛3.2)]
0.2
1
𝑓 ′ (3) = [−3(1.09861 × 0.14112) + 4(1.13140 × 0.04158) − (1.16315 × (−0.05837)]
0.2
1
𝑓 ′ (3) = [−3(0.155036) + 4(0.0470436) − (−0.067893)]
0.2
1 1
𝑓 ′ (3) = [−0.465108 + 0.1881744 + 0.067893] = [−0.2090406] = −1.045203
0.2 0.2
Estimación de error:
Comentarios:
En este caso, con la aplicación de la formula de los tres puntos la aproximación lograda es
de menor precisión que la de las diferencias centradas, aun así, sigue siendo bastante
buena la aproximación lograda, pues el error porcentual es de 0.44%, un poco mayor que
la de las diferencias centradas de tan solo del 0.2%.
1
𝑓 ′ (𝑥0 ) = [−25𝑓(𝑥0 ) + 48𝑓(𝑥0 + ℎ) − 36𝑓(𝑥0 + 2ℎ) + 16𝑓(𝑥0 + 3ℎ) − 3𝑓(𝑥0 + 4ℎ)]
12ℎ
𝑓 (5) (𝜉0 )ℎ4
+ , 𝟗. 𝟓)
5
1
𝑓 ′ (𝑥0 ) = [−3𝑓(𝑥0 − ℎ) − 10𝑓(𝑥0 ) + 18𝑓(𝑥0 + ℎ) − 6𝑓(𝑥0 + 2ℎ) + 𝑓(𝑥0 + 3ℎ)]
12ℎ
𝑓 (5) (𝜉1 )ℎ4
− ,
5
1 𝑓 (5) (𝜉2 )ℎ4
𝑓 ′ (𝑥0 ) = [𝑓(𝑥0 − 2ℎ) − 8𝑓(𝑥0 − ℎ) + 8𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 + 2ℎ)] + ,
12ℎ 30
Derivación Numérica 18
1
𝑓 ′ (𝑥0 ) = [4𝑓(𝑥0 − 3ℎ) + 6𝑓(𝑥0 + 2ℎ) − 8𝑓(𝑥0 − ℎ) + 34𝑓(𝑥0 ) + 3𝑓(𝑥0 + ℎ)
12ℎ
𝑓 (5) (𝜉3 )ℎ4
+ 34𝑓(𝑥0 )] + ,
30
1
𝑓 ′ (𝑥0 ) = [𝑓(𝑥0 − 4ℎ) − 3𝑓(𝑥0 − 3ℎ) + 4𝑓(𝑥0 − 2ℎ) − 36𝑓(𝑥0 − ℎ) + 25𝑓(𝑥0 )]
12ℎ
𝑓 (5) (𝜉4 )ℎ4
+ ,
5
Entre las distintas fórmulas de cinco puntos, las más utilizadas son:
1
𝑓 ′ (𝑥0 ) = [−25𝑓(𝑥0 ) + 48𝑓(𝑥0 + ℎ) − 36𝑓(𝑥0 + 2ℎ) + 16𝑓(𝑥0 + 3ℎ) − 3𝑓(𝑥0 + 4ℎ)]
12ℎ
𝑓 (5) (𝜉0 )ℎ4
+ , 𝟗. 𝟓)
5
Ejemplo 9.12.
Aproximar el valor de la función 𝑓 ′ (3) si 𝑓(𝑥) = 𝑙𝑛𝑥 𝑠𝑒𝑛 𝑥, utilizando la fórmula de los
cinco puntos, con ℎ = 0.1
Solución:
Se inicia el cálculo de la solución partiendo de la formula de los cinco puntos
1
𝑓 ′ (𝑥0 ) = [𝑓(𝑥0 − 2ℎ) − 8𝑓(𝑥0 − ℎ) + 8𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 + 2ℎ)]
12ℎ
1
𝑓 ′ (3) = [𝑓(3 − 0.2) − 8𝑓(3 − 0.1) + 8𝑓(3 + 0.1) − 𝑓(3 + 0.2)]
12 × 0.1
1
𝑓 ′ (3) = [𝑓(2.8) − 8𝑓(2.9) + 8𝑓(3.1) − 𝑓(3.2)]
1.2
1
𝑓 ′ (3) = [(𝑙𝑛2.8 × 𝑠𝑒𝑛2.8) − 8(𝑙𝑛2.91 × 𝑠𝑒𝑛2.9) + 8(𝑙𝑛3.1 × 𝑠𝑒𝑛3.1) − (𝑙𝑛3.2
1.2
× 𝑠𝑒𝑛3.2)]
Derivación Numérica 19
1
𝑓 ′ (3) = [1.029619 × (0.334988) − 8(1.06471 × 0.239249) + 8(1.1314 × 0.04158)
1.2
− (1.16315 × (−0.058374)]
1
𝑓 ′ (3) = [(0.34491) − 8(0.25473) + 8(0.047044) − (−0.0678977)]
1.2
1
𝑓 ′ (3) = [(0.34491) − 2.03784 + 0.376352 + 0.0678977]
1.2
1
𝑓 ′ (3) = [1.24868] = −1.0405669
1.2
Estimación de error:
El valor verdadero de la derivada de la función 𝑓(𝑥) = 𝑙𝑛𝑥 𝑠𝑒𝑛 𝑥 es 𝑓 ′ (3) = −𝟏. 𝟎𝟒𝟎𝟓𝟕𝟖
𝑉𝑣 − 𝑉𝑎 𝐸 0.0001111
𝐸𝑟 = | | = | || | = 1.06768 × 10−4 = 0.000106768
𝑉𝑣 𝑉𝑣 −1.040578
Comentarios:
La aproximación lograda con la formula de los cinco puntos es excelente, puede notarse en
este ejercicio que el error porcentual es de apenas 0.01%, y que la aproximación lograda
puede considerarse un valor totalmente valido, demostrando que este método es el mejor
que cualquiera de lo empleado anteriormente.
Derivación Numérica 20
EJERCICIOS RESUELTOS
Solución
𝑓(𝑥0 + ℎ) − 𝑓(𝑥0 − ℎ)
𝑓 ′ (𝑥0 ) =
2ℎ
𝑓(1.4) − 𝑓(1.2) 2.245066 − 2.372895 −0.127829
𝑓 ′ (1.3) = = = = −𝟎. 𝟔𝟑𝟗𝟏𝟒𝟓
2(0.1) 0.2 0.2
Solución
Solución
Estimación de error:
𝑉𝑣 − 𝑉𝑎 𝐸 7.947241 − 7.983405
𝐸𝑟 = | | = | || | = 4.55 × 10−3 = 0.00455
𝑉𝑣 𝑉𝑣 7.947241
Solución
𝑉𝑣 − 𝑉𝑎 𝐸 6.393951 − 6.351928
𝐸𝑟 = | | = | || | = 6.5723 × 10−3 = 0.0065723
𝑉𝑣 𝑉𝑣 6.393951
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).
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,
Derivando con respecto a x, por la regla de la cadena tenemos (expresión 5.8 del libro página
237):
b).- Con base en la fórmula anterior se calcula el valor de la derivada con incremento
constante .
Luego:
Ejercicio resuelto Nº 7
La carga en un circuito eléctrico con base en el tiempo está dada por:
t q
0.000 2.5000
0.002 2.5523
0.004 2.6087
0.006 2.6682
0.008 2.7299
0.010 2.7931
Nota: Para los cálculos utiliza hasta 4 cifras después del punto decimal.
Ejercicio resuelto Nº 8
Aplicación a la medicina
Para estudiar la tasa de crecimiento de una bacteria se hacen cultivos y se registran
sus cambios periódicamente durante 7 días obteniéndose los valores de la siguiente
tabla:
Tiempo en días Bacterias
0 35
1 52
2 95
3 140
4 198
5 266
6 342
7 465
Empleando los valores de la tabla anterior aproxima por derivación de Newton la tasa
de crecimiento al cuarto día.
a) Establece la fórmula de derivación lineal de Newton para este problema.
b) Calcula el valor de la derivada con incremento constante h 1 .
Nota: Para los cálculos utiliza hasta 4 cifras después del punto decimal.
Ejercicio resuelto Nº 9
1.
Dada la función
3.4 1
3.5
()
2
2 0.25
xx
xe
fx
x
, aproxima el valor de su derivada en el punto x 1.25 , con
Derivación Numérica 25
Nota: Para los cálculos utiliza hasta 3 cifras después del punto decimal.
Ejercicio resuelto Nº 10
1. La siguiente tabla contiene los datos de f(x) = senh(x) correctos hasta las
cifras
dadas.
x 1.2 1.3 1.4 1.5 1.6
f(x) 1.5095 1.6984 1.9043 2.1293 2.3756
Calcular f0(1.4) mediante las tres f´ormulas de 3 puntos. Comparar los
resultados
obtenidos con la soluci´on f0(1.4) = 2.150898. Obtener tambi´en f00(1.4) y
compararla con la real.
2. Con los datos
x 1 1.01 1.02
fi 1.27 1.32 1.38
a) Aproximar f0(1.005) y f0(1.015)
b) Aproximar f00(1.01) usando los resultados del apartado a).
c) Obtener f00(1.01) con la f´ormula de la derivada segunda
3. La siguiente tabla contiene los valores de f(x) = 1
_
R_
0 cos(xsen t)dt
x 0 0.2 0.4 0.6 0.7 0.9
fi 1 0.990025 0.960398 0.912005 0.881201 0.807524
Sabemos que f 2 C1(lR) y 8n 2 lN y
__
fn)(x)
__
_1
Derivación Numérica 26
cometido.
Ejercicio resuelto Nº 11
0.00 1.00
0.01 1.010050167
0.02 1.02020134
0.03 1.030454534
0.04 1.040810774
0.05 1.051271096
0.06 1.061836547
0.07 1.072508181
0.08 1.083287068
0.09 1.094174284
Estimar y .
Derivación Numérica 27
mientras que para estimar podemos usar una fórmula de tres puntos,
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
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 28
EJERCICIOS DE FIJACIÓN
11)
12)
13)
14)
15)
Para calcular la derivada por definición se utiliza este método que consiste en los 5
siguientes pasos:
1- calcular 𝑓(𝑎)
2. Calcular 𝑓(𝑎 + ℎ)
∆𝑓
4. Calcular
ℎ
∆𝑓
5. Calcular lim
h→0 ℎ
Ejemplo
1- calcular 𝑓(𝑎) = 𝑎3
∆𝑓 ℎ(3𝑎2 + 3𝑎ℎ + ℎ2 )
4. Calcular: = = 3𝑎2 + 3𝑎ℎ + ℎ2
ℎ ℎ
∆𝑓
5. Calcular lim = lim( 3𝑎2 + 3𝑎ℎ + ℎ2 ) = 𝟑𝒂𝟐
h→0 ℎ ℎ→0
Diferenciación numérica
Como cualquier tipo de operación numérica, la diferenciación numérica refiere a una
función 𝑓 ∈ 𝐶 2 [𝑎, 𝑏] y un punto arbitrario 𝑥0 en [𝑎, 𝑏]. Se necesita un método para
aproximar 𝑓 ′ (𝑥0 ), con 𝑥1 = x0 + h para algún ℎ ≠ 0, lo suficientemente pequeña para
asegurar que 𝑥1 ∈ [𝑎, 𝑏], se calcula 𝑃0,1 (𝑥). Usando la siguiente notación:
*f
Obviamente se verificará que: '
f '(x*) = f*+Rf(x*) por lo que considerando la
fórmula en cuestión aplicada a todos los puntos x de un dominio dado
puede definirse la función error de truncamiento de la fórmula derivación
numérica para la función f considerada como la función:
Rf : I R
x Rf(x) = f’(x) - '*
f
En el análisis del error de truncamiento de las fórmulas de derivación numérica
se perseguirá encontrar cotas del valor de esta función de error Rf(x) en el
intervalo I sobre el que se trabaje.
Ejemplo:
Siendo {x0 , x1 } un soporte formado por dos puntos tales que x1 = x0 + h, y
considerando que x* = x0, la sustitución de la expresión de f’(x0) por el cociente
incremental:
'10
0
f(x ) f(x )
f
h
−
=
conduce a una fórmula en la que sus coeficientes son c0 = (-1/h) y c1 = (1/h).
Una forma de acotar el error de truncamiento de esta fórmula, si se supone que
f(x) es al menos de clase C2([x0, x1]) consiste en considerar el desarrollo en
serie de Taylor siguiente:
f(x1) = f(x0+h) = f(x0) + h.f’(x0) +
2
0
h .f "(x .h)
2
+ θ θ ∈ (0,1)
de donde:
−
=01−+
00
f '( x ) f ( x ) f ( x ) h .f "( x .h)
h2
θ θ ∈ (0,1)
Por tanto:
= − '=− +
f0000
R (x ) f '(x ) f h .f "(x .h)
2
θ θ ∈ (0,1)
expresión que puede acotarse por:
Derivación Numérica 32
f '(x*) f c .f(x )
=
≈ = Σ es exacta de
orden k para la familia de funciones { } 0 1 k ϕ (x),ϕ(x),...,ϕ (x),.... entonces es
exacta para cualquier combinación lineal de las (k+1) primeras funciones
de la familia
Demostración:
Si la fórmula es exacta de orden k para la familia de funciones consideradas se
podrá escribir que:
[]
=
ϕ = ϕ ∀ ∈ Σn
'
jiji0n
i0
(x*) c . (x ) x* x ,x (j = 0, ..., k)
Por otra parte, una función cualquiera que sea combinación lineal de las (k+1)
primeras funciones de la familia será de la forma:
k
0011kkjj
j0
f(x) (x) (x) ..... (x) (x)
=
= α ⋅ ϕ + α ⋅ ϕ + + α ⋅ ϕ = Σα ⋅ ϕ
por lo que su primera derivada en cualquier punto x* del intervalo [x0, xn]se
puede expresar como:
Programación y Métodos Numéricos Derivación Numérica
8
======
⎛⎞⎛⎞
= α ⋅ϕ = α ⋅⎜ ⋅ϕ ⎟= ⋅⎜ α ⋅ϕ ⎟= ⋅
⎝⎠⎝⎠
ΣΣΣΣΣΣkknnkn
'
jjjijiijjiii
j0j0i0i0j0i0
f '(x*) (x*) c (x ) c (x ) c f(x )
y puesto que la aplicación de la fórmula de derivación numérica a la función f(x)
en cualquier punto x* conduce a que:
n
'
xii
i0
f c.f(x)
=
=Σ
puede concluirse que:
Derivación Numérica 35
[ ] f 0n R (x*)=0 ∀x*∈x ,x
Esto demuestra que la fórmula es exacta para cualquier función f(x) que sea
combinación lineal de las (k+1) primeras funciones de la familia de funciones
considerada.
c.q.d.
Las fórmulas de derivación numérica más utilizadas en la práctica son exactas,
de algún orden k, para la familia de funciones formada por los monomios, es
decir: {1, x, x2, ...,xk, ....}. En este tema nos referiremos en exclusiva a esta
familia de funciones y por ello cuando digamos que una fórmula es de orden k
se sobreentenderá que “es de orden k para la familia de los monomios”, es
decir que permite estimar sin error alguno la primera derivada de cualquier
función polinómica de grado menor o igual que k en cualquier punto x*.
Ejemplo:
La fórmula que se ha utilizado en ejemplos anteriores consistente en sustituir el
límite con el que se define la derivada por el cociente incremental en un soporte
de dos puntos consecutivos es una fórmula exacta de orden 1. En efecto, para
la función f(x) = 1 se verifica que:
'00[]
x00
f f(x h) f(x ) 1 1 0 f '(x) x x ,x h
hh
+−−
====∀∈+
Asimismo para la función g(x) = x se tiene que:
+−+−[]
'=00=00==∀∈+
x00
g g(x h) g(x ) x h x 1 g'(x) x x ,x h
hh
Pero para la función q(x) = x2, en general, ya no coincidirá el valor de la primera
derivada y el valor estimado mediante la fórmula de derivación:
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
9
+−+−[]
===⋅+≠∀∈+
22
'0000
x000
q q(x h) q(x ) (x h) x 2 x h q'(x) x x ,x h
hh
por lo que sólo se puede afirmar que el error de la fórmula es nulo para los
monomios {1, x}. En consecuencia, como se señaló anteriormente, la fórmula
es de orden 1.
NOTA:
Para facilitar el seguimiento de todo cuanto hasta aquí se ha dicho, nos hemos
Derivación Numérica 36
Propiedad 3.1.
La condición necesaria y suficiente para que la fórmula de derivación
numérica
n
'
x* i i
i0
f c.f(x)
=
= Σ que sea de tipo interpolatorio es que sus
coeficientes satisfagan las igualdades:
'
ci=Li(x*) (i = 0, 1, ..., n)
donde se ha denotado por Li(x) a los (n+1) polinomios de base de
Lagrange3 sobre el soporte {x0, x1, ..., xn}.
Demostración:
a) Demostremos en primer lugar que si la fórmula es de tipo interpolatorio
entonces sus pesos satisfacen la relación ci = L’i(x*). En efecto, la expresión
detallada del polinomio interpolador de Lagrange pn(x) de una función f(x) sobre
el soporte de (n+1) puntos {x0, x1, ..., xn} en función de los (n+1) polinomios de
base de Lagrange { }n
i i 0 L (x) = es:
n
nii
i0
f(x) p (x) f(x ) L (x)
=
≈ =Σ ⋅
de donde, en cualquier punto x* se puede considerar la aproximación:
n
''
nii
i0
f '(x*) p (x*) L (x*) f(x )
=
≈ =Σ ⋅
Esta fórmula es una fórmula de derivación numérica en la que sus coeficientes
están dados por la expresión:
'
i i c =L(x*) (i = 0, ..., n)
b) Demostremos que si la fórmula de derivación numérica satisface '
i i c =L(x*)
(i = 0, ..., n) entonces es de tipo interpolatorio. En efecto, considerando que el
polinomio interpolador de Lagrange de f(x) sobre el soporte {x0, ..., xn} se puede
expresar como: pn(x) =
= Σn
ii
Derivación Numérica 38
i0
f(x )·L (x) se tiene que si se verifican las igualdades
consideradas para los coeficientes:
3 Recuérdese que:
nn
ijij
j0j0
jiji
L (x) (x x ) (x x )
==
≠≠
⎛⎞⎛⎞
=⎜⎜⎜ − ⎟⎟⎟ ⎜⎜⎜ − ⎟⎟⎟
⎝⎠⎝⎠
Π Π (i = 0, 1, ..., n)
Programación y Métodos Numéricos Derivación Numérica
12
f’(x*) ( ) ( )
====
⎛⎞
≈ = = =⎜ ⎟ =
⎝⎠
ΣΣΣΣ
nnnn'
iiiiiiiin
i0i0i0i0
c f(x ) L' (x*)f(x ) L (x*)f(x ) ' L (x*)f(x ) p' (x*)
lo que demuestra que el valor de la primera derivada en x* se aproxima con el
valor de la primera derivada del polinomio interpolador en x*.
c.q.d.
La propiedad anterior caracteriza a las fórmulas de derivación numérica de tipo
interpolatorio que permiten aproximar primeras derivadas. Además nos permite
obtener otras propiedades que deben satisfacer los coeficientes de las fórmulas
de tipo interpolatorio. Por ejemplo:
Propiedad 3.2.
En toda fórmula de derivación numérica de tipo interpolatorio
n
'
x* i i
i0
f c.f(x)
=
= Σ se verifica que:
n
i
i1
c0
Derivación Numérica 39
=
Σ=
Demostración:
Puesto que según las propiedades de los polinomios de base de Lagrange se
verifica que:
n
i
i0
L (x) 1
=
Σ = ∀x , es obvio que:
n'n
'
ii
i0i0
L (x) L (x) 0
==
⎛⎞
⎜⎟==
⎝⎠
ΣΣx∀
En particular para el punto x* se tendrá que:
nn
'
ii
i0i0
L (x*) c 0
==
Σ =Σ =
c.q.d.
Ocupémonos ahora de analizar el error en las fórmulas de derivación numérica
de tipo interpolatorio. Denotando por ε(x) a la función error de interpolación
cometido al aproximar una función f(x) por su polinomio interpolador de
Lagrange pn(x) sobre el soporte de (n+1) puntos considerado, se verifica que:
f(x) = pn(x) + ε(x) 0 n ∀x∈(x ,x )
por lo que:
'n
f '(x*)=p (x*)+ε'(x*)
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
13
lo cual nos conduce a poder expresar el error en el punto x* de la fórmula de
derivación numérica mediante:
Rf(x*) = ε'(x*)
En el caso particular en que f(x) sea un polinomio de grado menor o igual que n
se verificará que f(x) ≡ pn(x) y por tanto ε(x) = 0 ∀x , de donde resulta que la
Derivación Numérica 40
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
.
15
ij
0 si i j
L (x )
1 si i=j
⎧≠
=⎨⎩
Derivación Numérica 42
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
.
17
Figura 2: Interpretación gráfica del proceso de aproximación de la derivada primera
de una función mediante la fórmula de tipo interpolatorio con soporte de dos puntos.
Obviamente esta fórmula de derivación numérica será exacta sobre cualquier
polinomio de grado menor o igual que 1 (es decir sobre líneas rectas).
•
Otras relaciones entre los pesos y los puntos del soporte de las fórmulas de
derivación numérica de tipo interpolatorio se recogen en la propiedad siguiente:
Propiedad 3.3
En toda fórmula de derivación numérica de tipo interpolatorio
n
'
Derivación Numérica 44
x* i i
i0
f c.f(x)
=
= Σ , construida sobre un soporte de (n+1) puntos, se verifica
que:
()n
kk1
ii
i1
c x k· x* −
=
Σ = (k = 1, ...n)
Demostración:
Por ser la fórmula de tipo interpolatorio es exacta para todo polinomio de grado
menor o igual que n. En particular lo será para la función f(x) = xk sea cual sea
el valor del entero positivo k siempre que k < n. Puesto que f’(x*) = k·(x*)(k-1), la
exactitud de la fórmula implica que:
()−
=
= Σn
kk1
ii
i1
c x k· x * ( 0 < k < n)
c.q.d.
Programación y Métodos Numéricos Derivación Numérica
18
EJERCICIO PROPUESTO:
Demuéstrese que para cualquier función f(x) que sea derivable en todo punto
del intervalo [x0, x1] siempre existe algún punto x* de dicho intervalo para el que
la fórmula de derivación numérica de tipo interpolatorio construida sobre el
soporte {x0 ,x1} proporciona el valor exacto f’(x*). Nótese que, si esto es así, en
particular se puede afirmar que siempre existirá algún punto x* en el intervalo
[x0, x1] para el que la fórmula construida con dos puntos de soporte proporciona
el valor exacto de la derivada de xk sea cual sea el valor que le demos al entero
no negativo k. ¿Contradice esto la afirmación de que la fórmula es de orden 1?.
A la luz de este comentario ¿no sería más preciso decir que la fórmula es de
orden infinito?.
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
19
4. Expresiones del error de las fórmulas de derivación numérica de tipo
interpolatorio que aproximan la primera derivada de una función.
El proceso seguido para obtener las fórmulas de derivación numérica de tipo
interpolatorio nos conduce de forma natural a que el error de cada fórmula
Derivación Numérica 45
+θ
+ +δ
+
Por tanto la fórmula de derivación numérica de tipo interpolatorio considerada
podrá rescribirse en la forma:
nnn2n
'2
x* i i i i i i i
i0i0i0i0
f c .f(x ) c .f(x*) h. c . .f '(x*) h . c . .f "(x*) .....
= = = 2! =
⎛⎞⎛⎞⎛⎞
= =⎜ ⎟ + ⎜ θ ⎟ + ⎜ θ ⎟ + +
⎝⎠⎝⎠⎝⎠
ΣΣΣΣ
+
++
==
⎛⎞
+ ⎝⎜ θ ⎠⎟ + + θ +δ
Σ Σ n n n1 n
n (n (n 1) (n 1
iiiii
i0i0
h. c. .f (x*) h . c. .f (x* .h)
n! (n 1)!
Simplifiquemos la expresión que se acaba de obtener. El coeficiente que
multiplica a f(x*) es nulo pues es la suma de los pesos de la fórmula (véase la
propiedad 3.2.). Para simplificar otros sumandos de la expresión utilizaremos
las dos propiedades siguientes:
Propiedad 4.2.
Con la notación introducida anteriormente y siendo
n
'
x* i i
i0
f c.f(x)
=
= Σ una
fórmula de derivación numérica de tipo interpolatorio con n > 0, se
verifica que:
n
ii
i0
c.1
=h
Σθ=
Derivación Numérica 49
Demostración:
Con la notación que estamos utilizando se tiene que:
Programación y Métodos Numéricos Derivación Numérica
22
i
i
x x*
h
−
θ=
de donde:
nnnn
iiiiiii
i0i0i1i0
c . 1. c .(x x*) 1. c .x 1.x *. c
= h= h = h =
⎛⎞
θ = − = ⎜ ⎟−
⎝⎠
ΣΣΣΣ
En esta última igualdad se sabe que
n
i
i0
c0
=
Σ = (véase la propiedad 3.2.). Por
otra parte
n
ii
i1
c .x
=Σ
se corresponde con la expresión de la derivada del monomio
x en el punto x*. Por ello su valor será 1. En resumen:
n
ii
i0
c .x 1
=h
Σ=
c.q.d.
Propiedad 4.3.
Con la notación introducida anteriormente y siendo
n
'
x* i i
Derivación Numérica 50
i0
f c.f(x)
=
= Σ una
fórmula de derivación numérica de tipo interpolatorio, con n>1, se
verifica que:
n
k
ii
i0
c.0
=
Σ θ = (k=2,....,n)
Demostración:
Con la notación que se está utilizando y empleando la fórmula de Newton para
desarrollar potencias de binomios5, se tiene que:
nnnk
k k j (k j) j
iikiikii
i0i0i0j0
c . 1. c .(x x*) 1. c . ( 1) . k .x .(x*)
hhj
−
====
⎛ ⎛ ⎛ ⎞ ⎞⎞
θ = − = ⎜⎜⎝ ⎜⎝ − ⎜⎝ ⎟⎠ ⎟⎠⎟⎟⎠=
ΣΣΣΣ
kn
j j (k j)
kii
j0i0
1. ( 1). k .(x*). c.x
hj
−
==
⎛ ⎛ ⎞ ⎛ ⎞⎞
= ⎜− ⎜ ⎟ ⎜ ⎟⎟
⎝ ⎝ ⎠ ⎝ ⎠⎠
ΣΣ
Al ser la fórmula de tipo interpolatorio será exacta para cualquier polinomio de
grado menor o igual que n. En particular, al haber considerado n > 1 si se
toman valores de k tales que 2 ≤ k ≤ n se debe verificar para todo valor del
entero j comprendido entre 0 y (k-1) que el sumatorio
n
(k j)
ii
i0
Derivación Numérica 51
c .x −
=Σ
coincide con el
5 Como es habitual, en dicha fórmula se utiliza la notación
k
j
⎛⎞
⎜⎟
⎝⎠
para representar a k!
(k − j)!.j!
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
23
valor de la derivada del monomio x(k-j) particularizado en el punto x*. Es decir
que:
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
−
−−
=
Derivación Numérica 52
⎛⎛⎞⎞
⎜− ⎜ ⎟ − ⎟=
⎝⎝⎠⎠
Σ
(k 1)
(k 1) j
k
j0
1 .(x*) . ( 1) .(k j). k
hj
−
−
=
⎛ ⎛ ⎞⎞
= ⎜− − ⎜ ⎟⎟
⎝ ⎝ ⎠⎠
Σ
Puesto que6 se verifica que:
−
=
⎛⎞
− − ⎜ ⎟= ∀ ≥
⎝⎠
Σ(k 1)
j
j0
k
( 1).(k j). 0 k 2
j
puede concluirse que:
n
k
ii
i0
c.0
=
Σ θ = (k = 2, ..., n)
c.q.d.
Estas dos propiedades junto a la expresión que obtuvimos antes de enunciarlas
nos permiten demostrar fácilmente el siguiente teorema:
Teorema 4.1.
Dado el soporte de (n+1) puntos x0 < x1 < ... < xn , siendo f(x) una
función de clase C(n+1)((x0 , xn)), siendo x* un punto del intervalo [x0 , xn],
denotando hi = xi – x* , por h al valor h = máx(|x*-x0| , |x* - xn|) y por
{ }n
i i=0 θ a los (n+1) escalares tales que hi = iθ .h , para toda fórmula de
derivación numérica de tipo interpolatorio:
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
24
()+
=
= − = θ +δ
+Σnn
' n (n 1
f x* i i i i
i0
R (x*) f(x*) f h . c . .h.f (x * .h)
(n 1)!
Demostración:
Introduciendo el resultado de las propiedades 4.2. y 4.3. en la expresión antes
obtenida resulta:
nnn2n
'2
x* i i i i i i i
i0i0i0i0
f c .f(x ) c .f(x*) h. c . .f '(x*) h . c . .f "(x*) .....
= = = 2! =
⎛⎞⎛⎞⎛⎞
= =⎜ ⎟ + ⎜ θ ⎟ + ⎜ θ ⎟ + +
⎝⎠⎝⎠⎝⎠
ΣΣΣΣ
+
++
==
⎛⎞
+ ⎝⎜ θ ⎠⎟ + + θ +δ
Σ Σ n n n1 n
n (n (n 1) (n 1
iiiii
i0i0
h. c. .f (x*) h . c. .f (x* .h)
n! (n 1)!
=
Derivación Numérica 54
()+
=
= + θ +δ
+Σnn
n (n1
iiii
i0
f '(x*) h . c . .h.f (x * .h)
(n 1)!
c.q.d.
NOTAS:
1ª) Obsérvese que en el término del error se ha descompuesto hn+1 en la forma
hn·h, dejando sólo como factor común del sumatorio hn y expresando en cada
uno de los sumandos del término de error θ
i·h como hi. El motivo de ello es que
los coeficientes ci de la fórmula de derivación dependen en general de los
valores hi por lo que procediendo de esta manera el término de error podrá
expresarse en función de los valores de las derivadas f(n+1( ξ
i) (siendo ξ
i los
puntos x*+ δ
i·h), de hn y de (n+1) constantes γ
i = ci· θ
i
n·hi/(n+1)!. En los ejemplos
del siguiente apartado se ilustrará este hecho.
2ª) La expresión anterior se resume frecuentemente indicando que el error es
de orden O(hn).
3ª) Para algunas funciones y en algunos puntos se verificará que el término
que multiplica a la derivada de orden (n+1) en el desarrollo en serie de Taylor
del que se partía también se anula. En dichos casos, si f(x) es lo
suficientemente regular, puede ampliarse el desarrollo en serie considerado
truncándolo en el primero de los términos que no se anule (que será posterior a
aquel en el que interviene la derivada n-ésima).
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
25
4ª) Con todo, como ya señaló anteriormente, lo más interesante de esta forma
de proceder no es tanto el resultado obtenido como el procedimiento seguido
para determinar el error de la fórmula (combinando desarrollos en serie de
Taylor).
5ª) Cuando el soporte es equidistante los cálculos anteriores suelen rehacerse
designando como h a la distancia entre los puntos del soporte.
•
Habitualmente el error se acota en valor absoluto, |Rf(x*)|. A partir del teorema
anterior es fácil obtener una cota de este error utilizando el lema siguiente:
Derivación Numérica 55
Lema 4.1.
Si g(x) es una función continua en [a, b] y se consideran (n+1)
coeficientes positivos, { }n
i i=0 α , y (n+1) puntos { }n
i i=0 ξ pertenecientes al
intervalo [a, b], entonces existe un punto ξ ∈ [a,b] tal que:
=
α ξ = α ξ Σn
ii
i0
.g( ) .g( )
donde
n
i
i=0
α = Σα .
Demostración:
Denotemos por gm y por gM a los valores mínimo y máximo que toma la función
g(x) en [a, b]. Por ser todos los coeficientes positivos se verifica que:
i m i i i M α.g ≤α.g(ξ)≤α.g (i = 0, 1, ..., n)
Sumando las expresiones anteriores se tiene que:
nnnn
imiiiMmiiM
i0i0i0i0
.g .g( ) .g .g .g( ) .g
====
Σα ≤Σα ξ ≤Σα ⇒α ≤Σα ξ ≤α ⇒
n
miiM
i0
g 1. .g( ) g
=
⇒≤αξ≤
αΣ
Las desigualdades anteriores, junto a la hipótesis realizada sobre la
continuidad de la función g(x) en el intervalo [a, b], nos muestran que, por
aplicación del teorema del valor medio, existirá en [a, b] al menos un punto
ξ para el que se verifique que:
Programación y Métodos Numéricos Derivación Numérica
26
nn
iiii
i0i0
1 . .g( ) g( ) .g( ) .g( )
==
αξ=ξ⇒αξ=αξ
αΣ Σ
Derivación Numérica 56
c.q.d.
El lema precedente y el teorema 4.1. nos permiten demostrar fácilmente el
siguiente teorema:
Teorema 4.2.
Dado el soporte de (n+1) puntos x0 < x1 < .... < xn, siendo f(x) una función
de clase C(n+1)((x0 , xn)), x* un punto del intervalo [x0 , xn] y denotando por
h al valor h = máx( |x* – x0 |, |xn – x|), para toda fórmula de derivación
numérica de tipo interpolatorio:
n
'
x* i i
i0
f '(x*) f c .f(x )
=
≈ =Σ
existe algún punto ξ ∈ [x0,xn] y alguna constante real positiva β para los
que se verifica:
|Rf(x*)| ≤ β.hn.f(n+1(ξ)
Demostración:
Según el teorema 4.1., y utilizando la misma notación que en él, se tiene que:
()nn
' n (n 1
f x* i i i i
i0
R (x*) f(x*) f h . c . .h .f (x * .h)
(n 1)!
+
=
= − = θ +δ
+Σ
de donde:
()nn
' n (n 1
f x* i i i i
i0
R (x*) f(x*) f h . c . .h .f (x * .h)
(n 1)!
+
=
= − = θ +δ ≤
+Σ
nn
n (n1
iiii
i0
h . c. .h.f (x* .h)
(n 1)!
Derivación Numérica 57
+
=
≤ θ +δ
+Σ
Aplicando el lema 4.1. (para la función g(x) = |f(n+1(x)|, evaluada en los puntos
ξi = x* + δi.h, y con los coeficientes αi = |ci.θi
n.hi| ) se puede concluir que
existirá un valor x∈ [x0 , xn] para el que se verificará que:
n
i
i 0 (n 1) (n 1
f R (x*) .h . f ( )
(n 1)!
=++
⎧⎫
⎨ α⎬
≤⎩⎭ξ
+
Σ
de donde se tiene el resultado de este teorema sin más que llamar β al escalar
n
i
i0
1.
(n 1)! =
β= α
+Σ
c.q.d.
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
27
En el apartado siguiente se deducirán algunas fórmulas de derivación numérica
y se detallará cómo obtener la expresión del error que con ellas se comete.
ANEXO AL APARTADO 4º
Lema 4.2.
Para todo valor entero k superior o igua a 2 se verifica que:
( k 1)
j
j0
k
( 1) .(k j). 0 k 2
j
−
=
⎛⎞
− − ⎜ ⎟= ∀ ≥
Derivación Numérica 58
⎝⎠
Σ
Demostración:
Se tiene que:
−
====
⎛⎞⎛⎞⎛⎞⎛⎞
− − ⎜ ⎟= − − ⎜ ⎟= − ⎜ ⎟− − ⎜ ⎟
⎝⎠⎝⎠⎝⎠⎝⎠
Σ Σ Σ Σ (k 1) k k k
jjjj
j0j0j0j0
kkkk
( 1) ·(k j)· ( 1) ·(k j)· k· ( 1) · ( 1) ·j·
jjjj
Analicemos, utilizando la fórmula del binomio de Newton7, el primero de los
sumandos del lado derecho de esta igualdad:
=
⎛⎞
− ⎜ ⎟= − = =
⎝⎠
Σ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
Derivación Numérica 59
j0
2
( 1) ·j· 1· 0 ·1 ( 1) ·1· 2 1· 2 ·1 0
j
Admitamos entonces que para algún valor (k-1) > 2 se verifica que:
−
=
⎛−⎞
− ⎜ ⎟=
⎝⎠
Σ(k 1)
j
j0
k1
( 1)·j· 0
j
7 Recuérdese que la fórmula del binomio de Newton establece que:
()−
=
⎛⎞
+=⎜⎟
⎝⎠
Σk
k (k j) j
j0
k
a b ·a ·b
j
Programación y Métodos Numéricos Derivación Numérica
28
y demostremos que en ese caso también se anula el sumatorio para el entero
k. En efecto, con esta suposición:
====
⎛⎞
− ⎜⎝ ⎟⎠= − − = − − = − − − =
ΣΣΣΣkkkk
jjjj
j0j0j1j1
( 1) ·j· k ( 1) ·j· k! ( 1) ·j· k! ( 1) · k!
j j!·(k j)! j!·(k j)! (j 1)!·(k j)!
===
−−⎛−⎞
= − − − = − − − = − ⎜⎝ ⎟⎠=
ΣΣΣkkk
jjj
j1j0j0
k· ( 1) · (k 1)! k· ( 1) · (k 1)! k· ( 1) · k 1 0
Derivación Numérica 60
HH
−
≈=+
siendo los coeficientes de la fórmula c0 = -(1 / H) y c1 = (1 / H).
NOTAS:
1ª) Obsérvese que la fórmula obtenida coincide con el cociente incremental que
nos sirvió para ilustrar las fórmulas de derivación numérica en la introducción a
este tema (apartado 1º).
2ª) En la obtención de esta fórmula se ha partido de la expresión del polinomio
interpolador que utiliza los polinomios de base de Lagrange. Cualquier otra
expresión del polinomio interpolador nos hubiese conducido a idéntico
resultado pues el polinomio interpolador de Lagrange, sobre un soporte dado,
es el mismo se utilice el método que se utilice para determinarlo. Así por
ejemplo si se hubiera partido de la fórmula de Newton en diferencias divididas:
p(x) = f(x0) + f[x0, x1].(x-x0)
Programación y Métodos Numéricos Derivación Numérica
30
que al derivarlo, teniendo en cuenta la expresión de la diferencia dividida nos
proporciona:
p’(x) = f[x0, x1].(x-x0) = 1 0
0
10
f(x ) f(x )
.(x x )
xx
−
−
−
por lo que particularizando esta expresión en el punto x = x* y denotando por H
a la distancia entre puntos se tiene finalmente que:
'
x* 0 1
f(x*) f p'(x*) 1.f(x ) 1.f(x )
HH
−
≈==+
En este caso, al haber sólo dos puntos de soporte, se puede considerar el
soporte equidistante y podrían haberse utilizado las expresiones del polinomio
interpolador en diferencias finitas (centradas, regresivas o progresivas)
obteniéndose la misma fórmula. Se deja el desarrollo detallado de estos casos
como ejercicio propuesto al lector.
3ª) La figura 2ª representada anteriormente (ver apartado 3º) recoge la
interpretación gráfica de este proceso de aproximación.
•
La expresión del error de esta fórmula, admitiendo la hipótesis de que f(x) sea
de clase C2 ((x0 , x1)) y que x* pertenezca a [x0, x*], puede obtenerse sin más
que denotar por h al valor h = máx(|x0 – x*|, |x1 – x*|) y considerando
Derivación Numérica 62
entonces que:
x0 - x* = 0 θ .h x1 - x* = 1θ .h
por lo que:
'
x* f = c0.f(x0) + c1.f(x1) = ( ) 1 0
1 . f(x ) f(x )
H
−=()10
1. f(x* .h) f(x* .h)
H
+θ − +θ =
22
111
1. f(x*) .h.f '(x*)1. .h .f "(x * .h)
H2
⎡ = + θ + θ +δ − ⎢⎣
22
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
Derivación Numérica 63
.
31
Puesto que H se podrá expresar como γ.h con (γ > 1) resultará finalmente,
aplicando el lema 4.1., que:
Rf(x*) = h .
2.γ(2 2 )
1 1 0 0 θ.f "(x *+δ.h)−θ.f "(x *+δ.h) = β.h.f "(ξ)
En el caso de ser x* un punto cualquiera el orden del error de la fórmula de
derivación numérica es 0(h) donde h representa la mayor de las distancias del
punto x* a los extremos del intervalo. Más frecuente aún que la expresión del
error anterior es la que se obtiene al expresar dicha fórmula en función de la
distancia entre los puntos del soporte (H). Fácilmente se obtiene esta nueva
expresión sin más que considerar que h = μ.H (con ½ < μ < 1) por lo que la
expresión del error queda en el caso más general en la forma:
Rf(x*) = ρ.H.f”(ξ)
La fórmula de derivación con dos puntos de soporte suele utilizarse cuando x*
es uno de los puntos extremos del intervalo o el punto medio del mismo (caso,
este último, en el que el orden del error de la fórmula se incrementa en una
unidad). A continuación se desarrollan estos casos particulares de la fórmula
de derivación con un soporte de dos puntos.
5.1.1. Casos particulares
A) Caso en el que x* = x0
En este caso h = H, 0 θ = 0 y 1 θ = 1 y la fórmula se puede escribir en la
forma:
'
x*
f f(x * h) f(x*)
h
+−
=
denominándose “aproximación mediante la diferencia finita progresiva de
primer orden” (o en adelanto). El error de esta fórmula, si f(x) es
suficientemente regular puede obtenerse particularizando en la
expresión antes obtenida resultando:
'
f x*
R (x*) f(x*) f h.f "(x * .h)
2
= − =− +δ δ ∈[0,1]
Por tanto en este caso la fórmula es exacta de orden 1.
Programación y Métodos Numéricos Derivación Numérica
32
NOTA:
Al mismo resultado sobre el error se llegaría sin más que considerar que:
f(x*+h) = f(x*) + h.f’(x*) + (h2/ 2).f”(x*) + ..... de donde:
f’(x*) = '
x*
Derivación Numérica 64
2
f
R (x*) h .f '''(x* h)
6
= − +δ δ ∈[0,1]
por lo que en este caso la fórmula es exacta de orden 2.
5.2. Fórmula con tres puntos de soporte
Sea ahora el soporte de tres puntos x0 < x1 < x2 y consideremos un punto x*
perteneciente al intervalo [x0, x2]. Sea además f(x) una función de la que se
conocen sus valores en los puntos del soporte. El polinomio interpolador de
Lagrange de f(x) sobre este soporte puede expresarse, utilizando la fórmula de
Newton en diferencias divididas, mediante:
Programación y Métodos Numéricos Derivación Numérica
34
p2(x) = f(x0) + f[x0, x1].(x - x0) + f[x0 , x1, x2].(x – x0).(x – x1)
por lo que:
p’2(x) = f[x0, x1]+ f[x0 , x1, x2].((x – x0) + (x – x1))
lo que nos conduce a que la fórmula de derivación numérica de tipo
interpolatorio con este soporte está dada por:
f’(x*) ' '
≈__________fx* =p2(x*) = f[x0, x1]+ f[x0 , x1, x2].((x* – x0) + (x* – x1))
NOTAS:
1ª) En este caso se ha utilizado la fórmula de Newton del polinomio
interpolador para inferir a partir de ella la fórmula de derivación de tipo
interpolatorio. Puesto que, sobre un soporte dado, el polinomio interpolador de
Lagrange es único podrían haberse utilizado otras expresiones de este
polinomio para obtener el mismo resultado. No obstante es cómodo utilizar la
fórmula de Newton en el caso general para no obtener expresiones que,
desarrolladas, quedan muy “aparatosas” sin aportar nada para nuestros
propósitos.
2ª) En la expresión anterior pueden sustituirse las diferencias divididas que
intervienen por sus expresiones respectivas8. Ello hace que la fórmula tome un
aspecto más “engorroso” para su manipulación.
3ª) En el sentido de lo expresado en la primera de estas “notas” el polinomio
interpolador podría haberse expresado en la forma:
p2(x) = f(x0).L0(x) + f(x1).L1(x) + f(x2).L2(x)
con:
12
0
0102
L (x) (x x ).(x x )
(x x ).(x x )
−−
=
−−
,02
1
Derivación Numérica 67
1012
(x x ).(x x )
L (x)
(x x ).(x x )
−−
=
−−
,01
2
2021
(x x ).(x x )
L (x)
(x x ).(x x )
−−
=
−−
8 Recuérdese que: [ ] −
=
−
10
01
10
f(x)f(x)
f x ,x
xx
,[]21
12
21
f(x)f(x)
f x ,x
xx
−
=
−
y
[]1201
012
20
f [ x ,x ] f [ x ,x ]
fx,x,x
xx
−
=
−
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
Derivación Numérica 68
35
para así obtener la misma fórmula de derivación numérica pero ahora con la
expresión
'''''
x* 2 0 0 1 1 2 2 f(x*) f p (x*) L (x*).≈ = = f(x )+L (x*).f(x )+L (x*).f(x )
En esta última expresión los coeficientes de la fórmula aparecen de forma más
explícita y toman la expresión:
c0 ' 1 2
0
0102
L (x*) (x * x ) (x * x )
(x x ).(x x )
−+−
==
−−
, c1
02
1
1012
(x * x ) (x * x )
L (x*)
(x x ).(x x )
−+−
==
−−
c2 0 1
2
2021
(x * x ) (x * x )
L (x*)
(x x ).(x x )
−+−
==
−−
4ª) La interpretación gráfica del proceso de derivación numérica seguido con
esta fórmula consiste en sustituir la tangente trigonométrica del ángulo formado
entre el eje de abscisas y la tangente geométrica al grafo de f(x) en el punto
(x*, f(x*)) por la tangente trigonométrica del ángulo formado entre el eje de
abscisas y la tangente geométrica en el punto (x*, p2(x*)) al grafo de la
parábola p2(x) que pasa por los puntos (x0 , f(x0)), (x1 , f(x1)) y (x2 , f(x2)). La
figura 3 ilustra este proceso.
•
Figura 3: Interpretación gráfica del proceso de derivación numérica seguido con una
fórmula de tipo interpolatorio con tres puntos de soporte.
Programación y Métodos Numéricos Derivación Numérica
36
En lo que se refiere al error de truncatura de esta fórmula, su expresión puede
Derivación Numérica 69
≈=−=
2 1 0 f(x ) 4.f(x ) 3.f(x ) f(x * 2.H) 4.f(x * H) 3.f(x*)
2.H 2.H
−+−−+++−
==
La fórmula anterior se conoce con el nombre de fórmula de derivación
numérica en diferencias progresivas de segundo orden.
Si se admite que f(x) es una función suficientemente mente regular, el error
de derivación puede obtenerse fácilmente combinando los desarrollos en
serie de Taylor:
f(x* + 2.H) = f(x*) + 2.H.f’(x*) +2.H2.f”(x*) + (8/6).H3.f’’’(x*) + …
f(x* + H) = f(x*) + H.f’(x*) + (½ ) H2.f”(x*) + (1/6).H3.f’’’(x*) +...
por lo que:
-f(x*+2.H) + 4.f(x*+H) – 3.f(x*) = 2.H.f’(x*) – (2/3).H3.f’’’(x*) + ….
de donde:
f’(x*) f(x * 2.H) 4.f(x * H) 3.f(x*) 1.H2.f '''(x*) ....
2.H 3
−+++−
=++
pudiéndose concluir que si f(x) es al menos de clase C3((x0 , x1)) entonces:
Rf(x*) = f(x*) – fx*
’ = (1/3).H2.f’’’(ξ)
B) Caso de soporte equidistante en el que x* = x1
Si se toma como punto x* el punto medio del soporte se tiene que:
x0 = x* - H, x1 = x* y x2 = x* + H. Con ello (x* - x0) = H y (x* - x1) = 0 por
lo que:
'1021020
x*
f '(x*) f f(x ) f(x ) f(x ) 2.f(x ) f(x ) f(x ) f(x )
H 2.H 2.H
−−+−
≈=+==
f(x * H) f(x * H)
2.H
+−−
=
Programación y Métodos Numéricos Derivación Numérica
38
fórmula que coincide con la que se obtuvo al utilizar un soporte de 2 puntos
y aproximar la derivada en el punto medio de ellos.
C) Caso de soporte equidistante en el que x* = x2
Si se toma como punto x* el punto derecho del soporte se tiene que:
x0 = x* - 2.H, x1 = x*- H y x2 = x*. Con ello (x*-x0) = 2.H y (x*-x1) = H por
lo que:
'10210
x* 2
f '(x*) f f(x ) f(x ) f(x ) 2.f(x ) f(x ).(3.H)
Derivación Numérica 71
H 2.H
−−+
≈=+=
2 1 0 3.f(x ) 4.f(x ) f(x ) 3.f(x*) 4.f(x * H) f(x * 2.H)
2.H 2.H
−+−−+−
==
expresión que se conoce como fórmula de derivación numérica en
derivadas regresivas de segundo orden.
Si f(x) es suficientemente regular pueden combinarse los desarrollos en
serie de Taylor:
f(x* - 2.H) = f(x*) - 2.H.f’(x*) +2.H2.f”(x*) - (8/6).H3.f’’’(x*) + …
f(x* - H) = f(x*) - H.f’(x*) + (½ ) H2.f”(x*) - (1/6).H3.f’’’(x*) +...
obteniendo:
3.f(x*) – 4.f(x*-H) + f(x*-2.H) = 2.H.f’(x*) – (2/3).H3.f’’’(x*) - ....
de donde, si f(x) es al menos de clase C3((x0, x2) se obtiene que:
Rf(x*) = f(x*) – fx*
’ = (1/3).H2.f’’’(ξ)
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
39
6. Otros métodos para la obtención de fórmulas de derivación numérica
de tipo interpolatorio.
6.1. Mediante la combinación de desarrollos en serie de Taylor.
El proceso seguido en el apartado 4º para determinar el error de derivación
numérica muestra otra manera de calcular las fórmulas de derivación. En
efecto, una alternativa al proceso de obtención de fórmulas de derivación
numérica mediante el cálculo de la primera derivada del polinomio interpolador
de Lagrange de la función f(x) en los (n+1) puntos del soporte, consiste en
combinar los desarrollos de Taylor en torno al punto x* de f(x0), f(x1), ..., f(xn)
buscando que en dicha combinación se anulen el mayor número posible de los
primeros términos salvo, obviamente, el que multiplica a f’(x*). Despejando
después f’(x*) de esta combinación se obtendrá la fórmula de derivación y el
término de error. De forma más detallada, si se denota por hi = xi – x* (i = 0, ..,
n) y se admite que f(x) posee la regularidad necesaria, se puede escribir que:
f(xi) = f(x*+hi) = f(x*) + hi·f(x*) + + + + +
23k
i i i (k h·f "(x*) h·f '''(x*) .... h ·f (x*) ....
2! 3! k!
Por lo que:
====
⎛⎞⎛⎞⎛⎞
α =⎜ α⎟ +⎜ α ⎟ + ⎜ α ⎟ +
⎝⎠⎝⎠⎝⎠
ΣΣΣΣnnnn
2
Derivación Numérica 72
iiiiiii
i0i0i0i0
·f(x ) ·f(x*) ·h ·f '(x*) 1 ·h ·f "(x*)
2!
==
⎛⎞⎛⎞
⎜α⎟++⎜α⎟+
⎝⎠⎝⎠
ΣΣnn
3 k(k
iiii
i0i0
1 ·h ·f '''(x*) ....1 ·h ·f (x*) ...
3! k!
(1)
Si se desea que la fórmula de derivación sea del mayor orden posible debe
buscarse que, salvo el coeficiente de f’(x*), se anulen el mayor número de los
primeros sumandos del desarrollo anterior. Esto es, que:
=
α = Σn
i
i0
0
=
α = Σn
2
ii
i0
·h 0 .........
=
α = Σn
k
ii
i0
·h 0
En general el número de ecuaciones que así se pueden formar es de n
ecuaciones quedando un sistema con (n+1) incógnitas (α0, ..., αn) y tan sólo n
ecuaciones. Ello es debido a que con el coeficiente de f’(x*) se debe añadir la
inecuación
=
α ≠ Σn
ii
i0
·h 0 .
Programación y Métodos Numéricos Derivación Numérica
40
Por ello los coeficientes (α0, ..., αn) que se determinen mediante la resolución
Derivación Numérica 73
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.
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
Derivación Numérica 74
de donde:
α − +α − +α + +α + = 0 1 2 3
·f(x * 2·h) ·f(x * 1·h) ·f(x * 1·h) ·f(x * 3·h)
222
=(α + α + α + α ) + 0 1 2 3·f(x*)
+⎛⎜− α − α + α + α⎞⎟ +
⎝⎠0123
2· 1· 1· 3· ·h·f '(x*)
222
+⎛⎜ α + α + α + α⎞⎟ +
⎝⎠
2
0123
2· 1· 1· 9· ·h ·f "(x*)
888
+⎛⎜− α − α + α + α⎞⎟ +
⎝⎠
3
0123
8. 1· 1· 27· ·h ·f '''(x*)
6 48 48 48
+⎛⎜ α + α + α + α⎞⎟ +
⎝⎠
4 (iv
0123
16. 1· 1· 91· ·h·f(x*)
24 384 384 384
+⎛⎜− α − α + α + α⎞⎟ +
⎝⎠
5 (v
0123
32 . 1 · 1 · 273 · ·h ·f (x*) ....
120 3840 3840 3840
Si se desea que la fórmula tenga el mayor orden posible se obligará a que:
α+α+α+α=01230
0123
2· 1· 1· 9· 0
888
α+α+α+α=
0123
8. 1· 1· 27· 0
6 48 48 48
−α−α+α+α=
Programación y Métodos Numéricos Derivación Numérica
42
de donde9, dejando como incógnita libre α1, se tiene:
012131
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
≈ =⎛⎜ − − − + + − + ⎞⎟
⎝⎠
y que con ella, si f∈C4((x*-2·h, x*+3·h/2)), se comete un error dado por:
=− 3 (iv ξ
f
R (x*) 1 ·h ·f ( )
192
para algún valor ξ∈(x*-2·h, x*+3·h/2). Es decir un error de orden 3.
9 Obsérvese que si al sistema anterior se le añadiese la ecuación procedente de obligar a
que
se anulase el coeficiente de f’’’(x*) se tendría un sistema que sólo admite la solución trivial
α0 =
= α1 = α2 = α3 = 0.
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
Derivación Numérica 77
[]−+
≈"==210
110122
f "(x ) f 2·f x ,x ,x f(x ) 2·f(x ) f(x )
h
conduce a una fórmula en la que sus coeficientes son c0 = (1/h2) , c1 = (-2/h2) y
c2 = (1/h2). Una forma de acotar el error de truncamiento de esta fórmula, si se
supone que f(x) es al menos de clase C3([x0, x1]) consiste en considerar los
desarrollos en serie de Taylor siguientes:
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
49
f(x0) = f(x*-h) = f(x*) - h.f’(x*) +
+
234
( iv
0
h.f "( x*) h.f "'( x*) h .f ( x * .h)
2 3! 4 !
− + +θ 0 θ ∈(−1,0)
f(x2) = f(x*+h) = f(x*) + h.f’ x*) +
+
234
( iv
1
h.f "(x*) h.f '''( x*) h .f ( x * .h)
2 3! 4!
+ + +θ 1 θ ∈(0,1)
de donde:
4
2 (iv ( iv
2001
f ( x ) f ( x ) 2·f ( x*) h ·f "( x*) h ·(f ( x * ·h) f ( x* ·h))
24
+ = + + +θ + +θ ⇒
()2
( iv ( iv
*201
f " f ( x* h) 2·f ( x*) f ( x * h) f "( x*) h · f ( x * ·h) f (x* ·h)
h 24
θθ
+−+−
⇒==++++
Por tanto:
()2
( iv ( iv
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
50
Definici 7.3.
Se dice que la fórmula de derivación numérica:
=
≈ =Σn
(k (k
*ii
i0
f (x*) f c.f(x)
es exacta de orden m para la familia de funciones de clase Ck([x0 , xn]):
{ϕ ϕ ϕ } 0 1 m (x), (x),..., (x),....
cuando es nulo el error de truncatura cometido al aplicar la fórmula para
la estimación de la k-ésima derivada de cualquiera de las (m+1) primeras
funciones de la familia en cualquier punto x* perteneciente al intervalo
[x0 , xn]: j 0 n R ( x ) 0 x [ x ,x ], ( j 0,...,m) ϕ = ∀ ∈ =
Propiedad 7.1.
Derivación Numérica 85
xii
i0
f c.f(x)
puede concluirse que:
Rf(x)=0 ∀x∈[x0,xn ]
Esto demuestra que la fórmula es exacta para cualquier función f(x) que sea
combinación lineal de las (m+1) primeras funciones de la familia de funciones
considerada.
c.q.d.
Las fórmulas de derivación numérica más utilizadas en la práctica son exactas,
de algún orden m, para la familia de funciones formada por los monomios, es
decir: {1, x, x2, ...,xm, ....}. En este tema nos referiremos en exclusiva a esta
familia de funciones y por ello cuando digamos que una fórmula es de orden de
exactitud m se sobreentenderá que “es de orden de exactitud m para la familia
de los monomios”, es decir que permite estimar sin error alguno la k-ésima
derivada de cualquier función polinómica de grado menor o igual que m.
Ejemplo:
La fórmula que se ha utilizado en el ejemplo anterior
"
*2
f "(x*) f f ( x* h) 2·f ( x*) f ( x* h)
h
+−+−
≈=
es una fórmula exacta de orden 3. En efecto, para la función p(x) = 1 se verifica
que:
*2
p " 1 2·1 1 0 p"( x*) x *
h
−+
===∀
Asimismo para la función p(x) = x se tiene que:
*2
p " ( x * h) 2·(x*) (x* h) 0 p"( x*) x *
h
+−+−
===∀
También para la la función p(x) = x2 se tiene que:
222
*2
p " ( x * h) 2·(x*) (x* h) 2 p"( x*) x *
h
+−+−
===∀
Programación y Métodos Numéricos Derivación Numérica
52
Y para la función p(x) = x3 se verifica que:
Derivación Numérica 87
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.
Definici 7.4.
Se denomina fórmula de derivación numérica de tipo interpolatorio
(de Lagrange) para aproximar derivadas de orden k a cualquier
fórmula obtenida derivando una vez la expresión del polinomio
interpolador de Lagrange construido sobre un soporte de (n+1) puntos
distintos.
NOTAS:
1ª) Obsérvese que en la definición anterior se ha escrito entre paréntesis “de
Lagrange”. En efecto podría pensarse en derivar también la expresión del
polinomio interpolador de Hermite obteniéndose otros tipos de fórmulas de
derivación de tipo interpolatorio. Puesto que nosotros sólo nos vamos a referir a
las fórmulas que se obtienen al derivar la expresión del polinomio interpolador
de Lagrange omitiremos en lo sucesivo la coletilla “de Lagrange” y simplemente
diremos fórmula de derivación numérica de tipo interpolatorio.
2ª) Si el orden de derivación k fuese superior o igual al número de puntos (n+1)
las fórmulas de tipo interpolatorio correspondientes se reducirían a f(k(x*) = 0,
pues la derivada de orden k de un polinomio de grado menor o igual que n, si n
es inferior a k, es nula. Por dicho motivo, en todo cuanto sigue, se supondrá
que n > k. •
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
53
Una fórmula de derivación numérica de tipo interpolatorio puede obtenerse a
partir de cualquiera de las expresiones del polinomio interpolador. Recordando
Derivación Numérica 88
==
≠≠
⎛⎞⎛⎞
=⎜⎜⎜ − ⎟⎟⎟ ⎜⎜⎜ − ⎟⎟⎟
⎝⎠⎝⎠
Π Π (i = 0, 1, ..., n)
Programación y Métodos Numéricos Derivación Numérica
54
b) Demostremos que si la fórmula de derivación numérica satisface = (k
i i c L (x*)
(i = 0, ..., n) entonces es de tipo interpolatorio. En efecto, considerando que el
polinomio interpolador de Lagrange de f(x) sobre el soporte {x0, ..., xn} se puede
expresar como: pn(x) =
= Σn
ii
i0
f(x )·L (x) se tiene que si se verifican las igualdades
consideradas para los coeficientes:
f’(x*) ( ) ( )
====
⎛⎞
≈ = = =⎜ ⎟ =
⎝⎠
ΣΣΣΣ
n n n n (k
(k (k (k
iiiiiiiin
i0i0i0i0
c f(x ) L (x*)f(x ) L (x*)f(x ) L (x*)f(x ) p (x*)
lo que demuestra que el valor de la k-ésima derivada en x* se aproxima con el
valor de la k-ésima derivada del polinomio interpolador en x*.
c.q.d.
De la propiedad anterior se deduce fácilmente la siguiente:
Propiedad 7.2.
En toda fórmula de derivación numérica de tipo interpolatorio
=
=Σn
(k
x* i i
i0
f c.f(x) se verifica que:
n
i
i1
c0
=
Σ=
Derivación Numérica 90
Demostraci :
Puesto que según las propiedades de los polinomios de base de Lagrange se
verifica que:
n
i
i0
L (x) 1
=
Σ = ∀x , es obvio que:
==
⎛⎞
⎜⎟==
⎝⎠
ΣΣ
n (k n
(k
ii
i0i0
L (x) L (x) 0 ∀x
En particular para el punto x* se tendrá que:
==
Σ =Σ = n n
(k
ii
i0i0
L (x*) c 0
c.q.d.
Denotando por ε(x) a la función error de interpolación cometido al aproximar
una función f(x) por su polinomio interpolador de Lagrange pn(x) sobre el
soporte de (n+1) puntos considerado, se verifica que:
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
55
f(x) = pn(x) + ε(x) 0 n ∀x∈(x ,x )
por lo que:
(k = (k +ε(k
n f (x*) p (x*) (x*)
lo que nos conduce a poder expresar el error en el punto x* de la fórmula de
derivación numérica mediante:
= ε(k
f R (x*) (x*)
En el caso particular en que f(x) sea un polinomio de grado menor o igual que n
se verificará que f(x) ≡ pn(x) y por tanto ε(x) = 0 ∀x , de donde resulta que la
fórmula de derivación numérica de tipo interpolatorio construida sobre un
soporte de (n+1) puntos es exacta para cualquier polinomio de grado menor o
igual que n. En resumen es exacta, al menos, de orden n.
Derivación Numérica 91
Este hecho nos permite incluir a las fórmulas de derivación numéricas de tipo
interpolatorio en el conjunto de fórmulas de derivación exactas de orden n.
Pero aún puede precisarse más, puesto que además toda fórmula exacta de
orden n construida sobre un soporte de (n+1) puntos debe ser necesariamente
de tipo interpolatorio. Este hecho se demuestra en el siguiente teorema.
Teorema 7.2.
La condición necesaria y suficiente para que una fórmula de derivación
numérica construida sobre un soporte de (n+1) puntos,
=
=Σn
(k
x* i i
i0
f c.f(x),
sea exacta de orden n es que sea de tipo interpolatorio.
Demostraci :
a) Demostremos en primer lugar que la condición recogida en el enunciado
del teorema es suficiente, es decir que si la fórmula construida sobre el
soporte de (n+1) puntos es de tipo interpolatorio entonces es exacta de
orden n. Para ello basta con recapitular los razonamientos anteriormente
realizados. En efecto, si f(x) es una función polinómica de grado menor o
igual que n su polinomio interpolador de Lagrange sobre el soporte de
(n+1) puntos coincide con la función y por tanto:
f(x) = pn(x) x ∀
Programación y Métodos Numéricos Derivación Numérica
56
por lo que f(k(x) = (k
pn (x) ∀x. En particular, al ser la fórmula de
derivación de tipo interpolatorio, para cualquier punto x* se tendrá que:
(k = (k ≡ (k
n x* f (x*) p (x*) f
Ello demuestra que la fórmula es exacta sea cual sea el polinomio f(x)
de grado menor o igual que n al que se aplique. En particular lo será
cuando se aplique los (n+1) primeros monomios {1, x, ..., xn} y por ello
es exacta de grado n.
b) Demostremos ahora que la condición anterior también es necesaria, es
decir que si la fórmula construida sobre el soporte de (n+1) puntos es
exacta de orden n entonces tiene que ser de tipo interpolatorio. Para ello
partimos del hecho de que, al ser la fórmula exacta de orden n, para
cualquier función polinómica de grado menor o igual que n, p(x), se debe
verificar que:
=
=Σn
(k
ii
i0
p (x*) c.p(x)
Derivación Numérica 92
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
.
57
de base de Lagrange construidos sobre el soporte { }n
i i 0 x = . Recordemos
además que los polinomios de base de Lagrange verifican:
ij
0 si i j
L (x )
1 si i=j
⎧≠
=⎨⎩
Por tanto, particularizando la igualdad antes obtenida para L0(x) se tiene
que:
==
Σ =Σ ⇒ = n n
(k (k
i0ii0i00
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:
==
Σ =Σ ⇒ = n n
(k (k
i1ii1i11
i0i0
c .L (x ) L (x*).L (x ) c L (x*)
Y en general al particularizar para cualquier polinomio de base Lj(x)
obtendremos que:
==
Σ =Σ ⇒ = n n
(k (k
ijiijijj
i0i0
c .L (x ) L (x*).L (x ) c L (x*)
c.q.d.
Ejemplos:
1º. Sobre un soporte de tres puntos {x0, x1, x2} el polinomio interpolador de
Lagrange de una función f(x) puede expresarse como:
= + [ ] − + [ ] − − 2 0 0 1 0 0 1 2 0 1 p (x) f(x ) f x ,x ·(x x ) f x ,x ,x ·(x x )·(x x )
por lo que la fórmula de derivación numérica que aproxima derivadas segundas
sobre este soporte es:
≈ = = [ ] x* 2 0 1 2 f "(x*) f " p" (x) 2·f x ,x ,x
2º. Sobre un soporte de cuatro puntos {x0, x1, x2, x3} el polinomio interpolador
de Lagrange de una función f(x) puede expresarse como:
p x =f x +f[x x ] x−x +f[x x x ] x−x x−x + 3 0 0 1 0 0 1 2 0 1 ( ) ( ) , ·( ) , , ·( )·( )
+f[x x x x ] x−x x−x x−x 0 1 2 3 0 1 2 , , , ·( )·( )·( )
Programación y Métodos Numéricos Derivación Numérica
58
por lo que la fórmula que aproxima f”(x) es:
'' [ ]
x* 3 0 1 2 f "(x*)≈f = p" (x*)=2·f x ,x ,x + f[x x x x ] x −x −x −x 0 1 2 3 0 1 2 2· , , , ·(3· * )
y para la aproximación de la tercera derivada:
''' [ ]
x* 3 0 1 2 3 f '''(x*)≈f = p''' (x*)=6·f x ,x ,x ,x
•
Propiedad 7.3
En toda fórmula de derivación numérica de tipo interpolatorio
=
=Σn
(k
x* i i
i0
f c.f(x), construida sobre un soporte de (n+1) puntos con n > k, se
verifica que:
Derivación Numérica 94
n
j
ii(jk)
i1
0 si j k
c x j ! ( x*) si k j n
( j k)!
−
=
< ⎧⎪
= ⎨⎩⎪ − ≤ ≤
Σ (j = 1, ...n)
Demostración:
La demostración de esta propiedad se deja como ejercicio propuesto al lector y
consiste simplemente en comparar el valor (exacto) proporcionado por la
fórmula de derivación al ser aplicada a la función f(x) = xj (j = 0, ..., n) con el
valor de f(k(x*) .
c.q.d.
En cuanto al error de las fórmulas de derivación que permiten aproximar
derivadas de orden mayor que 1 puede realizarse un análisis similar al descrito
anteriormente para las fórmulas que aproximaban la primera derivada.
Dejamos al lector interesado la tarea de adaptar las propiedades y teoremas
desarrollados en el apartado 4º a este tipo de fórmulas. Nosotros nos
centraremos en la descripción del proceso que permite obtener fórmulas de
derivación de tipo interpolatorio, junto a la expresión de su error, combinando
desarrollos en serie de Taylor para funciones que tengan la suficiente
regularidad.
Para ello siendo n > k consideremos el soporte de (n+1) puntos {x0 < x1 <... <
xn} y siendo x* el punto en el que se desea aproximar f(k(x) denotemos por hi al
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
59
valor: hi = hi = xi – x* (i = 0, .., n). Suponiendo que f(x) es sufiecientemente
regular pueden considerarse los desarrollos en serie de Taylor:
f(xi) = f(x*+hi) = f(x*) + hi·f(x*) + + + + +
23k
i i i (k h·f "(x*) h·f '''(x*) .... h ·f (x*) ....
2! 3! k!
Por lo que:
====
⎛⎞⎛⎞⎛⎞
α =⎜ α⎟ +⎜ α ⎟ + ⎜ α ⎟ +
⎝⎠⎝⎠⎝⎠
ΣΣΣΣnnnn
2
iiiiiii
Derivación Numérica 95
i0i0i0i0
·f(x ) ·f(x*) ·h ·f '(x*) 1 ·h ·f "(x*)
2!
==
⎛⎞⎛⎞
⎜α⎟++⎜α⎟+
⎝⎠⎝⎠
ΣΣnn
3 k(k
iiii
i0i0
1 ·h ·f '''(x*) ....1 ·h ·f (x*) ...
3! k!
(1)
Si se desea que la fórmula de derivación sea del mayor orden posible debe
buscarse que, salvo el coeficiente de f(k(x*), se anulen el mayor número de los
primeros sumandos del desarrollo anterior. Esto es, que:
=
α = Σn
j
ii
i0
·h 0 (j = 0, 1,...,(k-1), (k+1), ...n)
En general el número de ecuaciones que así se pueden formar es de n
ecuaciones, obteniéndose un sistema con (n+1) incógnitas (α0, ..., αn) y tan
sólo n ecuaciones. Ello es debido a que con el coeficiente de f(k(x*) se debe
añadir la inecuación
=
α ≠ Σn
k
ii
i0
·h 0 .
Por ello los coeficientes (α0, ..., αn) que se determinen mediante la resolución
del sistema:
=
α = Σn
i
i0
0
=
α = Σn
ii
i0
·h 0
........
−
Derivación Numérica 96
=
α = Σn
(k 1)
ii
i0
·h 0
+
=
α = Σn (k 1)
ii
i0
·h 0
........
=
α = Σn
n
ii
i0
·h 0
quedarán expresados en función del valor que libremente se le asigne a uno de
ellos.
Programación y Métodos Numéricos Derivación Numérica
60
En todo caso, una vez calculados estos coeficientes, denotando por
=
α = α Σn
ii
i0
·h
se tendrá que los coeficientes de la fórmula de derivación se obtienen
mediante: ci = αi / α (i = 0, ..., n) y que del primer término que no se haya
podido anular en la expresión (1) se podrá inferir fácilmente la expresión del
error de derivación.
Ilustremos estos extremos con un ejemplo.
Ejemplo:
Determinemos la fórmula de derivación numérica del mayor orden de exactitud
posible que permite calcular el valor aproximado de f’’’(x*) usando un soporte
de la forma: {x0 = x* - 2·h, x1 = x* - ·h, x2 = x*, x3 = x* +h, x4 = x* + 2·h} donde h
es un valor real estrictamente positivo.
Para ello, si suponemos que f(x) es suficientemente regular en (x*-2·h, x*+2·h)
podemos considerar los desarrollos en serie de Taylor:
f(x*- 2·h) =f(x*) –2·h·f’(x*) + − +
4·h2·f "(x*) 8·h3·f '''(x*)
26
−
4
16·h ·f(iv (x*)
Derivación Numérica 97
24
−+−
567
32·h ·f(v (x*) 64·h ·f(vi(x*) 128·h ·f(vii(x*)...
120 720 5040
f(x*-·h) =f(x*) - h·f’(x*) + − +
h2·f "(x*) h3·f '''(x*)
26
−
4
h ·f(iv (x*)
24
−+−
567
h ·f(v (x*) h ·f(vi(x*) h ·f(vii(x*)...
120 720 5040
f(x*) = f(x*)
f(x*+ h) =f(x*) + h·f’(x*) + + +
h2·f "(x*) h3·f '''(x*)
26
+
4
h ·f(iv (x*)
24
++++
567
h ·f(v (x*) h ·f(vi(x*) h ·f(vii(x*) ...
120 720 5040
f(x*+2·h) =f(x*) +2·h·f’(x*) + + +
4·h2·f "(x*) 8·h3·f '''(x*)
26
+
4
16·h ·f(iv (x*)
24
+++
567
32·h ·f(v (x*) 64·h ·f(vi(x*) 128·h ·f(vii(x*)...
120 720 5040
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
61
de donde:
α − +α − +α +α + +α + = 0 1 2 3 4 ·f(x * 2·h) ·f(x * h) ·f(x*) ·f(x * h) ·f(x * 2·h)
=(α + α + α + α + α) + 0 1 2 3 4·f(x*)
+(− α − α + α + α) + 0 1 3 4 2· 2· ·h·f '(x*)
Derivación Numérica 98
+( α + α + α + α) +
2
0134
h 4· 4· · ·f "(x*)
2
+(− α − α + α + α) +
3
0134
h 8. 8· · ·f '''(x*)
6
+( α + α + α + α) +
4
(iv
0134
h 16. 16· · ·f (x*)
24
+(− α − α + α + α) +
5
(v
0134
h 32. 32· · ·f (x*) ....
120
Si se desea construir una fórmula que con el soporte anterior aproxime el valor
de f’’’(x*) y que tenga el mayor orden de exactitud posible se obligará a que:
α + α + α + α + α = 0 1 2 3 4 0 (Coeficiente en h0 y f(x*))
− α − α + α + α = 0 1 3 4 2· 2· 0 (Coeficiente en h y f’(x*))
α + α + α + α = 0 1 3 4 4. 4· 0 (Coeficiente en h2 y f”(x*))
α + α + α + α = 0 1 3 4 16. 16· 0 (Coeficiente en h4 y f(iv (x*))
de donde12, dejando como incógnita libre α3, se tiene:
α0= −α4 α1 = α4 α2 = α3 = − α4 α4 ∈R , 2· , 0 , 2· ,
Cualquier elección no nula de α4 nos conducirá a la fórmula buscada.
Obsérvese que se descarta la opción α4 = 0 ya que ello anularía el coeficiente
de f’’’(x) con lo que no lo podríamos despejar del desarrollo resultante. Si se
asigna a α4 el valor α4 = 1 se tiene que:
12 Obsérvese que si al sistema anterior se le añadiese la ecuación procedente de obligar a
que
se anulase el coeficiente de f’(v(x*) se tendría un sistema que sólo admite la solución
trivial α0 =
= α1 = α2 = α3 = α4 = 0.
Programación y Métodos Numéricos Derivación Numérica
62
α0=− α1= α2= α3=− α4= 1, 2 , 0 , 2 , 1
Para estos valores de los coeficientes α
i, se tiene entonces que la combinación
de desarrollo en serie de Taylor antes obtenida se convierte en:
−f(x *−2·h)+2·f(x *−h)−f(x *+h)+2·f(x *+2·h)=
=++
Derivación Numérica 99
35
12·h·f '''(x*) 60·h·f(v (x*) ....
6 120
de donde:
f’’’(x*) = − ( − )+ ( − )− ( + )+ ( + ) 3 3 3 3
1·f x * 2·h 1·f x * h 1 ·f x * h 1 ·f x * 2·h
2·h h h 2·h
-
−1·h2·f(v(x*)+.....
4
De esta igualdad se infiere que la fórmula buscada es:
≈ =− ( − )+ ( − )− ( + )+ ( + ) * 3 3 3 3
f '''(x*) f ''' 1·f x * 2·h 1·f x * h 1 ·f x * h 1 ·f x * 2·h
2·h h h 2·h
y que con ella, si f∈C5((x*-2·h, x*+2·h)), se comete un error dado por:
=− 2 (vξ
f
R (x*) 1·h ·f ( )
4
para algún valor ξ∈(x*-2·h, x*+2·h). Es decir un error de orden 0(h2).13
13 No debe confundirse el orden de exactitud de una fórmula de derivación numérica con
el
orden del error de dicha fórmula. Mientras que el primero señala el máximo grado de los
polinomios que pueden derivarse sin error con dicha fórmula, el segundo señala la
potencia
menor a la que aparece elevado el parámetro “h” en la expresión del error.
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
63
7.1. Obtenci de f mulas de derivaci de tipo interpolatorio mediante
el m騁odo de los coeficientes indeterminados.
Un método alternativo para la determinación de fórmulas de derivación de tipo
interpolatorio soportadas en (n+1) puntos se basa en que, según el teorema
7.2. toda fórmula de tal tipo debe ser exacta para los monomios {1, x, ..., xn}.
Por tanto, si se busca una fórmula cuya expresión sea:
=
≈ =Σn
(k (k
*ii
i0
f (x*) f cf(x),
su aplicación a los binomios (x-x*)j (0 < j < n) nos conduce a un sistema de
ecuaciones cuya solución nos proporciona los pesos de la fórmula. De forma
más concreta, siendo “h” un valor estrictamente positivo en función del cual se
puedan escribir, para valores convenientes de γ
Derivación Numérica 100
0
1
2
3
3
11110
21120
41140
8 1 1 8 6/
cuya solución nos proporciona los valores:
cccc
hhhh
−−
====03132343
1, 1, 1, 1
2· 2·
Para determinar el error de la fórmula consideraremos la función f(x) = (x-x*)4.
La tercera derivada de dicha función en x* es:
f’’’(x*) = 4·3·2.(x*-x*) = 0
siendo el valor aproximado dado por la fórmula:
f h h (h) ( h)
h
= ⎛⎜− − + − − + ⎞⎟=
⎝⎠
''' 4 4 4 4
*3
1 1( 2 ) ( ) 12 0
22
lo que nos indica que la fórmula es también exacta para los polinomios de
orden 4º. Incrementemos una unidad el grado del binomio y apliquémosla a f(x)
=(x – x*)5. El valor exacto de la tercera derivada de este binomio es:
f’’’(x*) = 5·4·3.(x*-x*) = 0
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
65
siendo ahora el valor aproximado:
f h h (h) ( h) h
h
= ⎛⎜− − + − − + ⎞⎟=
⎝⎠
''' 5 5 5 5 2
*3
1 1( 2 ) ( ) 12 30·
22
por lo que el error de derivación está dado, para esta función por:
xxRxhh−=−=−5
Derivación Numérica 103
22
( *) ( *) 0 30· 30·
Si buscamos la expresión genérica del error en la forma:
v
f R(x*)=K·h2·f( (ξ)
es fácil verificar, aplicándolo a (x-x*)5, que:
h Kh K
−−
−30· 2= · 2·5!⇒ = 30= 1
5! 4
por lo que en general: v
fRxhfx
−
( *)= 1 2 ( ( *)
4
En resumen la fórmula buscada es:
f (fx h f x h f(x h) f(x h))
h
'''= − − + − − + + +
*3
1(*2)2(*)2**2
2
y el error de derivación numérica, si f∈C5([x*−2h,x*+2h]) está dado por:
v
fRxhfξ
−
( *)= 1 2 ( ( )
4
es decir un error de orden 2.
Programación y Métodos Numéricos Derivación Numérica
66
Ejercicio propuesto:
d) Siendo h un parámetro estrictamente positivo, determinar la fórmula de
derivación numérica que permite aproximar el valor de f”(x*) sobre el
soporte: x0 = x* -h, x1 = x*, x2 = x* + 2h y x3 = x* + (5 )
2 h. Suponiendo
que f(x) es suficientemente regular en el intervalo [x0, x3], determínese
también la expresión de su error e indíquese la regularidad que se le
debe exigir a f(x) para que dicha expresión sea válida. Obténgase la
fórmula pedida y su error:
i) Derivando el correspondiente polinomio interpolador de
Lagrange,
ii) Combinando desarrollos en serie de Taylor, y
iii) Mediante el método de coeficientes indeterminados.
e) Aplíquese la fórmula obtenida en el apartado anterior a la obtención de
un valor aproximado de la segunda derivada de la función f(x) = ecos(x)
con los siguientes valores de h: h0 = 0.1, h1 = 0.01, h2 = 0.001, h3 =
Derivación Numérica 104
•
Programación y Métodos Numéricos Derivación Numérica
68
La reducción del “paso” h utilizado en una fórmula que presente un error de
orden p proporciona una sucesión de valores aproximados { }∞
j=0 V que, si se
admite que f(x) es suficientemente regular, converge hacia el valor exacto con
una velocidad de convergencia de orden p, es decir que el error obtenido con
un paso (qjh) es aproximadamente qp veces menor que el que se produce con
paso (qj-1h). En este sentido, cuanto mayor sea el orden del error del método
más rápida será la convergencia hacia el valor exacto. Por ello esta reducción
del paso se suele combinar con la denominada t馗nica de extrapolaci de
Richardson14 que, en síntesis, genera a partir de la sucesión { }∞
j=0 V otras
sucesiones con mayor velocidad de convergencia hacia el valor exacto. Para
describir este proceso, consideremos una fórmula de derivación numérica en la
que el error sea de orden p y que pueda expresarse como:
++
=
⎛⎞
=⎜ ⎟+α + β +
⎝⎠
Σn
(k (m p (m 1 p 1
ii
i0
f (x*) c ·f(x ) ·f (x*)·h ·f (x*)·h ...
y denominemos Ve al valor exacto que se está aproximando, V0 al valor
obtenido con el paso h y V1 al obtenido con paso q·h (donde supondremos que
q < 1). Se tendrá que:
Ve = V0 + α·f(m(x*)·hp+β·f(m+1(x*)·hp+1 + ...
Ve = V1 + α·f(m(x*)·qp·hp+β·f(m+1(x*)·qp+1·hp+1 + ...
Restando ambas igualdades se obtiene:
V1 – V0 = α·f(m(x*)·(1−qp )·hp + β·f(m+1(x*)·(1− qp+1)·hp+1 + ... ⇒
⇒−(+++)
α=−β−+
−−
(m p 1 0 (m 1 p 1 p 1
pp
·f (x*)·h V V 1 · ·f (x*)·(1 q )·h ...
1q1q
Sustituyendo esta expresión en la primera de las expresiones del valor exacto
resulta que:
+
++−⎛−⎞
= + − +β ⎜⎝ − − ⎟⎠ +
Derivación Numérica 106
p1
1 0 (m 1 p 1
e0pp
V V V V ·f (x*)·1 1 q ·h ...
1q1q
14 En honor al matemático inglés Lewis Fry Richardson (1881 – 1953) que fue uno de los
pioneros del cálculo científico (y en concreto el primero en aplicar métodos de diferencias
finitas a la predicción del tiempo).
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
69
lo que nos indica que el valor:
−−
=+=
−−
p
1010
1,1 0 p p
V V V V V q·V
1q1q
aproxima al valor exacto Ve con un error de orden (p+1).
Análogamente, si se considera el valor V1, obtenido con paso (q·h) y el valor V2
obtenido con paso (q2h) se tiene que:
Ve = V1 + α·f(m(x*)·qp·hp+β·f(m+1(x*)·qp+1·hp+1 + ...
Ve = V2 + α·f(m(x*)·q2p·hp+β·f(m+1(x*)·q2p+2·hp+1 + ...
de donde un proceso análogo al que se acaba de describir nos conduce a que:
()
+
++−⎛−⎞
= + − +β ⎜⎝ − − ⎟⎠ +
p1
2 1 (m 1 (p 1)
e1pp
V V V V ·f (x*)·1 1 q ·qh ...
1q1q
lo que nos indica que
−−
=+=
−−
p
2121
1,2 1 p p
V V V V V q·V
1q1q
aproxima el valor exacto con un error de orden (p+1).
De manera más general, si dado un valor del parámetro h se consideran las
Derivación Numérica 107
corresponden con los valores V1,j , V2,j y V3,j respectivamente que proporciona
la aplicación del método de extrapolación de Richardson.
Para poder apreciar mejor la evolución del error, en la tabla siguiente se han
recogido los valores de error cometido con cada una de las aproximaciones de
esta tabla, es decir la diferencia entre valor exacto de f’(1) y el valor
aproximado que figura en cada fila y columna de la tabla, siendo el valor
exacto:
= π π =− 1
f '(1) e 2· ·cos( ) 5.1796106318....
Los cálculos se han realizado con el programa MAPLE 7 utilizando una
precisión de 20 dígitos (aunque en la tabla se muestran redondeados a 5
decimales significativos).
Programación y Métodos Numéricos Derivación Numérica
72
Aproximaciones
=−+
−
−−
−−−
−−−−
−−−−
−−−−
−−−
( j 1)
0,j 1,j 2,j 3,j j (h 2 ) V V V V
0 4.91921
1 5.66420 6.40919
2 5.55380 5.44340 5.12148
3 5.39593 5.23805 5.16960 5.17648
4 5.29456 5.19320 5.17825 5.17948
5 5.23872 5.18288 5.17944 5.17960
6 5.20957 5.18041 5.17 −
−−−−
−−−−
−−−−
−−−−
959 5.17961
7 5.19469 5.17981 5.17961 5.17961
8 5.18717 5.17966 5.17961 5.17961
9 5.18340 5.17962 5.17961 5.17961
10 5.18151 5.17961 5.17961 5.17961
Error de las aproximaciones
=−+−−−−
−
−
−−
−−
Derivación Numérica 111
−
( j 1)
0,j 1,j 2,j 3,j j (h 2 ) f '(1) V f '(1) V f '(1) V f '(1) V
0 0.260404
1 0.484587 1.22958
2 0.374191 0.263794 0.0581335
3 0.216317 0.058444 0.0100063 0.003131
4 0.114954 0.013590 0.0013613 0.000126
5 0.0591099 0.003266 0.00 −
−
−
−
−−
−
−−
−−
−−
−−
−
6
7
8
10
8 11
01752 5.728·10
6 0.0299549 0.000800 0.0000222 2.292·10
7 0.0150764 0.000198 0.0000028 1.621·10
8 0.0075628 0.000049 0.0000003 9.502·10
9 0.0037875 0.000012 4.364·10 5.743·10
10 0.0018953 0.000003 5.458·10−9 −3.529·10−12
La tabla de errores muestra cómo estos se reducen a, aproximadamente, la
mitad ((1/2)1) al pasar de un valor al siguiente en la primera columna, la cuarta
parte ((1/2)2) al pasar de un valor al siguiente en la segunda columna, la
octava parte ((1/2)3) al pasar de un valor al siguiente en la tercera columna y la
decimosexta parte ((1/2)4) al pasar de un valor al siguiente en la cuarta
columna. Este hecho puede verse más claramente en la figura siguiente en la
Derivación Numérica Carlos Conde, Arturo Hidalgo, Alfredo López
ETSI Minas de la Universidad Politécnica de Madrid
.
73
que se representa la evolución del logaritmo decimal del valor absoluto del
error frente al logaritmo decimal del tamaño de paso para las cuatro sucesiones
de valores recogidos en la tabla anterior.
Puede comprobarse en la gráfica como las pendientes (indicativas del orden de
convergencia) de las curvas de error son más pronunciadas cuanto más se
itera en la aplicación del método de extrapolación de Richardson.
log10(h)
Derivación Numérica 112
log10(|f’(1)-Vk,j|)
Valores proporcionados
por la fórmula
Valores corregidos
aplicando el método
de Richardson una vez
Valores corregidos
aplicando el método
de Richardson dos veces
Valores corregidos
aplicando el método
de Richardson tres veces
Programación y Métodos Numéricos Derivación Numérica
74
BIBLIOGRAFÍA SOBRE EL TEMA
[1]. BURDEN, R. L. y FAIRES, J. D. (1.998). An疝isis num駻ico. (6ª edición).
Ed. International Thomson editores.
[2]. KINCAID, D. y CHENEY, W. (1.994). An疝isis num駻ico. Las
matem疸icas del c疝culo cient凬ico. Ed. Addison-Wesley
Iberoamericana.
[3]. MICHAVILA, F. y CONDE, C. (1.988). M騁odos de Aproximaci . Ed.
Depto. de Mat. Aplic. Y Mét. Informáticos. – Univ. Politécnica de Madrid.
[4]. STOER, J. y BULIRSCH, R. (1.980). Introduction to numerical analysis.
Ed. Springer Verlag.
[5]. VIAÑO, J.M. y BURGUERA, M. (2000) Lecciones de m騁odos
num駻icos, 3: Interpolaci . Ed. Tórculo edicions__
BIBLIOGRAFÍA