Está en la página 1de 12

Cálculo Avanzado y Métodos Numéricos 1

Diferenciación numérica

DIFERENCIACIÓN NUMÉRICA

La derivada de la función f (x) en x0 es:

f ( x0  h)  f ( x0 )
f ( x0 )  lim
h 0 h

Vamos a aproximar este número. Supongamos primero que x0  (a, b) , donde f  C 2 [a, b] (la
función f tiene continuidad de orden 2, es decir, la función y sus dos primeras derivadas son
continuas en [a, b]) y que x1  x0  h para alguna h ≠ 0 que es lo bastante pequeña para

asegurarnos de que x1  (a, b) .

El primer polinomio de Lagrange P0,1 ( x) para f (x) determinado por x0 y x1, con su término de

error, es

1
f ( ( x)) 1
f ( x)   f ( xk ) L1,k ( x)   ( x  xi )
k 0 2! i 0

con

1
( x  xi )
L1,k ( x)  
i 0 ( xk  xi )
ik

El desarrollo de este polinomio y su fórmula de error es

f ( ( x))
f ( x)  f ( x0 ) L1,0 ( x)  f ( x1 ) L1,1 ( x)  ( x  x0 ) ( x  x1 )
2!

( x  x1 ) ( x  x0 ) f ( ( x))
f ( x)  f ( x0 )  f ( x1 )  ( x  x0 ) ( x  x1 )
( x0  x1 ) ( x1  x0 ) 2!

Como x1  x0  h y, por lo tanto, x1  x0  h , reemplazando en la fórmula anterior tenemos que

( x  x0  h) ( x  x0 ) ( x  x0 ) ( x  x0  h)
f ( x)  f ( x0 )  f ( x0  h)  f ( ( x))
h h 2!

para alguna ξ (x) en [a, b].


Cálculo Avanzado y Métodos Numéricos 2
Diferenciación numérica

Diferenciando la última expresión obtenemos la derivada primera f´ (x):

f ( x0 ) f ( x0  h) d  ( x  x0 ) ( x  x0  h) 
f ( x)     f ( ( x))  
h h dx  2 
(1)
f ( x0  h)  f ( x0 ) 2( x  x0 )  h ( x  x0 ) ( x  x0  h) d
  f ( ( x))   f ( ( x))
h 2 2 dx

por lo que podemos decir que la derivada primera de f (x) es aproximadamente

f ( x0  h)  f ( x0 )
f ( x) 
h

Al aproximar esta fórmula para valores arbitrarios de x, se nos plantea un problema, ya que
d
carecemos de información sobre f ( ( x))  f ( ( x))   ( x) , por lo que no podemos estimar el
dx
d
error de truncamiento. Pero cuando x = x0 , el coeficiente que multiplica a f ( ( x)) es cero, y
dx
la fórmula (1) para f´ (x) se simplifica de la siguiente manera:

f ( x0  h)  f ( x0 ) h
f ( x)   f ( ( x)) para x  x0
h 2

f ( x0  h)  f ( x0 )
Para valores pequeños de h, se puede utilizar el cociente de la diferencia para
h
Mh
aproximar f´ (xo) con un error acotado por , donde M es una cota en f´´ (x) para x  (a, b) . A
2
esta fórmula

f ( x0  h)  f ( x0 )
f ( x)  (2)
h

se la llama fórmula de la diferencia progresiva si h > 0 , y fórmula de la diferencia regresiva


si h < 0.
Cálculo Avanzado y Métodos Numéricos 3
Diferenciación numérica

y
Pendiente: f ' (x0 )

Pendiente: f (x0+h) - f (x0 )


f (x0+h) h
f (x0)

x0 x0 + h x

Ejemplo: si f (x) = ln x y xo = 1.8, aproximamos f´ (1.8) con el cociente (2)

f (1.8  h)  f (1.8)
h

para h > 0, con el error

h f ( ) h h
 2 , donde 1.8    1.8  h
2 2 2 (1.8)2

a) Para h = 0.1 tenemos entonces que la aproximación de f´ (1.8) resulta

f (1.8  0.1)  f (1.8) 0.6418539  0.5877867


  0.5406722
0.1 0.1

Para esta aproximación la cota del error es

h 0.1
2
  0.0154321
2 (1.8) 2 (1.8)2

y el error real es

Error  f (1.8)  0.5406722  0.5555555  0.5406722  0.0148833


Cálculo Avanzado y Métodos Numéricos 4
Diferenciación numérica

b) Para h = 0.01 tenemos entonces que la aproximación de f´ (1.8) resulta

f (1.8  0.01)  f (1.8) 0.5933269  0.5877867


  0.5540180
0.01 0.01

Para esta aproximación la cota del error es

h 0.01
2
  0.0015432
2 (1.8) 2 (1.8)2

y el error real es

Error  f (1.8)  0.5540180  0.5555555  0.5540180  0.0015375

c) Para h = 0.001 tenemos entonces que la aproximación de f´ (1.8) resulta

f (1.8  0.001)  f (1.8) 0.5883420  0.5877867


  0.5554013
0.001 0.001

Para esta aproximación la cota del error es

h 0.001
2
  0.0001543
2 (1.8) 2 (1.8)2

y el error real es

Error  f (1.8)  0.5554013  0.5555555  0.5554013  0.0001543

Vemos que en los tres casos el error es menor que la cota estimada, por lo que podemos decir que
la cota del error calculada es aceptable.

Fórmulas de aproximación a la derivada más generales.

Suponiendo que  x0 , x1 , , xn  son (n+1) números distintos en algún intervalo I, y que

f  C n1 ( I ) , la función f (x) es igual al polinomio de Lagrange de grado n construido con los
(n+1) puntos dados más el término de error:
Cálculo Avanzado y Métodos Numéricos 5
Diferenciación numérica

n
( x  x0 ) ( x  xn ) ( n1)
f ( x)   f ( xk ) Lk ( x)  f ( ( x))
k 0 (n  1)!

para alguna ξ (x) en I.

Al diferenciar respecto a x obtenemos:

n
d  ( x  x0 ) ( x  xn )  ( n 1) ( x  x0 ) ( x  xn ) d
f ( x)   f ( xk ) Lk ( x)    f ( ( x))   f ( n 1) ( ( x)) 
k 0 dx  (n  1)!  (n  1)! dx

Una vez más tendremos problemas al estimar el error de truncamiento, a menos que x sea uno de
d
los números xj . En ese caso el coeficiente que multiplica a la  f ( n 1) ( ( x))  es cero y la
dx 
ecuación anterior resulta

n f ( n1) ( ( x j )) n
f ( x j )   f ( xk ) Lk ( x j )   (x  xk ) (3)
(n  1)!
j
k 0 k 0
k j

Esta ecuación recibe el nombre de fórmula de (n + 1) puntos para aproximar f ´ (xj) ya que usa
una combinación lineal de los n + 1 valores f (xk) para k = 0, 1, . . . , n.

En términos generales, la utilización de más puntos de evaluación en la ecuación anterior produce


una mayor exactitud, aunque esto no conviene dada la cantidad de evaluaciones funcionales que
deben llevarse a cabo y el aumento en el error de redondeo. Las fórmulas más comunes que se
utilizan en la práctica son las que abarcan 3 y 5 puntos de evaluación.

Fórmulas de tres puntos.

Para obtener las fórmulas de tres puntos para aproximar f ´ (xj) se plantean primero los cocientes
polinómicos de Lagrange y se derivan con respecto a x:

( x  x1 ) ( x  x2 ) 2 x  x1  x2
De L0 ( x)  tenemos que L0 ( x) 
( x0  x1 ) ( x0  x2 ) ( x0  x1 ) ( x0  x2 )

( x  x0 ) ( x  x2 ) 2 x  x0  x2
De L1 ( x)  tenemos que L1( x) 
( x1  x0 ) ( x1  x2 ) ( x1  x0 ) ( x1  x2 )
Cálculo Avanzado y Métodos Numéricos 6
Diferenciación numérica

( x  x0 ) ( x  x1 ) 2 x  x0  x1
De L2 ( x)  tenemos que L2 ( x) 
( x2  x0 ) ( x2  x1 ) ( x2  x0 ) ( x2  x1 )

Reemplazando estas expresiones en la ecuación (3)

 2 x j  x1  x2   2 x j  x0  x2 
f ( x j )  f ( x0 )    f ( x1 )  
 ( x0  x1 ) ( x0  x2 )   ( x1  x0 ) ( x1  x2 ) 
(4)
 2 x j  x0  x1  1 (3) 2
 f ( x2 )    f ( j )  ( x j  xk )
 ( x2  x0 ) ( x2  x1 )  6 k 0
k j

para cada j = 0, 1, 2. La notación ξj indica que este punto depende de xj.

Las tres fórmulas que se obtienen de (4) para los puntos x0, x1 y x2, es decir, f ´(x0), f ´(x1) y f ´(x2)
son de gran utilidad cuando los nodos (nombre que reciben los puntos que utilizamos para
construir los polinomios de aproximación) son equidistantes, es decir, cuando

x1  x0  h
x2  x0  2h

para algún valor de h ≠ 0.

Al utilizar la ecuación (4) con xj = x0 , x1 = x0 + h , x2 = x0 + 2h se obtiene

1 3 1  h (3)
2
f ( x0 )   f ( x )  2 f ( x )  f ( x )  f ( 0 ) (5.1)
h  2
0 1 2 
2  3

Utilizando la ecuación (4) con xj = x1 , x1 = x0 + h , x2 = x0 + 2h se obtiene

1 1 1  h (3)
2
f ( x1 )   f ( x0 )  f ( x2 )   f (1 ) (5.2)
h  2 2  6

Finalmente, utilizando la ecuación (4) con xj = x2 , x1 = x0 + h , x2 = x0 + 2h se obtiene

1 1 3  h (3)
2
f ( x2 )  f ( x )  2 f ( x )  f ( x )  f ( 2 ) (5.3)
h  2
0 1 2 
2  3

Como x1 = x0 + h y x2 = x0 + 2h , podemos expresar (5.1), (5.2) y (5.3) de la siguiente forma:


Cálculo Avanzado y Métodos Numéricos 7
Diferenciación numérica

1 3 1  h (3)
2
f ( x0 )   f ( x )  2 f ( x  h )  f ( x  2 h )  3 f (0 )
 (6.1)
h  2
0 0 0
2

1 1 1  h (3)
2
f ( x0  h)   f ( x )  f ( x  2h )  6 f (1 )
 (6.2)
h  2
0 0
2

1 1 3  h (3)
2
f ( x0  2h)  f ( x )  2 f ( x  h )  f ( x  2 h )  3 f ( 2 )
 (6.3)
h  2
0 0 0
2

Si en (6.2) sustituimos la variable x0 + h por x0 , es decir, reemplazamos

x0  h por x0
x0 por x0  h
x0  2h por x0  h

y en (6.3) sustituimos la variable x0 + 2h por x0 , es decir, reemplazamos

x0  2h por x0
x0 por x0  2h
x0  h por x0  h

obtenemos tres fórmulas para aproximar f ´(x0):

1 h2
f ( x0 )   3 f ( x0 )  4 f ( x0  h)  f ( x0  2h)  f (3) (0 ) (7.1)
2h 3

1 h2
f ( x0 )    f ( x0  h)  f ( x0  h)  f (3) (1 ) (7.2)
2h 6

1 h2
f ( x0 )   f ( x0  2h)  4 f ( x0  h)  3 f ( x0 )  f (3) (2 ) (7.3)
2h 3

Como la ecuación (7.3) es igual a la (7.1) (reemplazando h por –h), en realidad tenemos sólo dos
fórmulas:

1 h2 (3)
f ( x0 )   3 f ( x0 )  4 f ( x0  h)  f ( x0  2h)  f (0 ) (8)
2h 3

donde ξ0 se encuentra entre x0 y x0 + 2h


Cálculo Avanzado y Métodos Numéricos 8
Diferenciación numérica

1 h2
f ( x0 )   f ( x0  h)  f ( x0  h)  f (3) (1 ) (9)
2h 6

donde ξ1 se encuentra entre (x0 – h) y (x0 + h).

Los métodos numéricos para aproximar f ´(x0) presentados en las dos ecuaciones (8) y (9) reciben
el nombre de fórmulas de 3 puntos (aunque el tercer punto f(x0) no aparezca en (9)). El error de
la ecuación (9) es aproximadamente la mitad del error de la ecuación (8). Ello se debe a que en la
ecuación (9) se emplean datos en ambos lados del punto x0 para construir la aproximación, y a que
en la ecuación (8) se utilizan únicamente los de un mismo lado (a la derecha del punto x0 para h>0
o a la izquierda del punto x0 para h<0). Además, f debe evaluarse solamente en dos puntos en (9),
mientras que en (8) se requieren tres evaluaciones de f.

Pendiente: f '(x0)
Pendiente: 1 [ f (x0+h) - f (x0-h) ]
2h

x0 - h x0 x0 + h x

Ejemplo: Para f (x) = x . ex , aproximamos f´ (x) = (x+1) ex usando las fórmulas de tres puntos (8) y
(9) para x = 2.0. El valor exacto es f´ (2.0) = 22.167168.

a) Usando la fórmula (8):

a.1) Para h = 0.1

1
 3 f (2.0)  4 f (2.1)  f (2.2)  22.032305
2  0.1

Error  22.167168  22.032305  1.35 x101


Cálculo Avanzado y Métodos Numéricos 9
Diferenciación numérica

La cota de error es, en este caso

h2 h2
f ( 0 )  (3e0  e0  0 ) para x0  0  x0  2h
3 3

Como 2.0 ≤ ξ0 ≤ 2.2, tomamos ξ0 = 2.2 (se toma el valor que hace máxima la cota del error) y
resulta por lo tanto una cota de error

h2 0.12
(3e0  e0  0 )  ((3e2.2  e2.2 2.2)  1.56 x101
3 3

a.2) Para h = -0.1

1
 3 f (2.0)  4 f (1.9)  f (1.8)  22.054521
2  (0.1)

Error  22.167168  22.054521  1.13 x101

La cota de error es

h2 h2
f ( 0 )  (3e0  e0  0 ) para x0  2h  0  x0
3 3

Como 1.8 ≤ ξ0 ≤ 2.0, tomamos ξ0 = 2.0 (el valor que hace máxima la cota del error) y resulta por
lo tanto una cota de error

h2 (0.1)2
(3e0  e0  0 )  ((3e2.0  e2.0 2.0)  1.23x101
3 3

Vemos que en estos dos casos el error real está por debajo de la cota calculada. Asimismo se ve
que el valor de la cota es del orden de magnitud del error real.

b) Usando la fórmula (9):

b.1) Para h = 0.1

1
 f (2.1)  f (1.9)  22.228787
2  0.1

Error  22.167168  22.228787  6.16 x10-2


Cálculo Avanzado y Métodos Numéricos 10
Diferenciación numérica

La cota de error es, en este caso

h2 h2
f ( 0 )   (3e1  e11 ) para x0  h  1  x0  h
6 6

Como 1.9 ≤ ξ1 ≤ 2.1, tomamos ξ1 = 2.1 (se toma el valor que hace máxima la cota del error) y
resulta por lo tanto una cota de error

h2 0.12
 (3e1  e11 )   ((3e2.1  e2.1 2.1)  6.91x102
6 6

b.2) Para h = -0.1

1
 f (1.9)  f (2.1)  22.228787
2  (0.1)

Error  22.167168  22.228787  6.16 x10-2

con la misma cota de error que la calculada para b.1).

Vemos que aplicando la fórmula (9) el resultado es el mismo usando h o (-h). El error real está por
debajo de la cota calculada, y el valor de esta cota es del orden de magnitud del error real, y del
mismo signo.

Puede verse cómo aplicando la fórmula (9) el error es aproximadamente la mitad del error
cometido con la fórmula (8). Nótese que en la fórmula para calcular la cota según (9) h2 está
dividido por 6, mientras que en la fórmula para calcular la cota según (8) h2 está dividido por 3.
Además, el valor de ξ empleado en la fórmula de la cota para (9) (ξ está a una distancia h de x0) es
menor que el empleado en la fórmula de la cota para (8) (ξ está a una distancia 2h de x0). Estos
dos factores hacen que la cota de error para la fórmula de tres puntos (9) sea menor que para la
fórmula de tres puntos (8) (aproximadamente la mitad).

Finalmente, haremos una consideración con respecto al error de redondeo.

El error de redondeo se da cuando usamos una calculadora o computadora para efectuar cálculos
con números reales. El error surge porque las operaciones aritméticas realizadas en una máquina
Cálculo Avanzado y Métodos Numéricos 11
Diferenciación numérica

incluyen exclusivamente números finitos de dígitos, de manera que los cálculos se llevan a cabo
con representaciones aproximadas de los números reales.

Analizaremos el efecto que tiene el error de redondeo en la aproximación, estudiando la fórmula


de tres puntos (9):

1 h2 (3)
f ( x0 )   f ( x0  h)  f ( x0  h)  f (1 )
2h 6

Supongamos que, al evaluar f ( x0  h) y f ( x0  h) descubrimos los errores de redondeo e( x0  h)

y e( x0  h) . Entonces los valores calculados f ( x0  h) y f ( x0  h) se relacionan con los valores

verdaderos f ( x0  h) y f ( x0  h) por medio de las siguientes fórmulas:

f ( x0  h)  f ( x0  h)  e( x0  h)

f ( x0  h)  f ( x0  h)  e( x0  h)

El error total de la aproximación

f ( x0  h)  f ( x0  h) e( x0  h)  e( x0  h) h2 (3)
f ( x0 )    f (1 )
2h 2h 6

tendrá una parte debida al error de redondeo y otra al error de truncamiento. Si suponemos que los
errores de redondeo e( x0  h) están acotados por algún número ε >0 y que la tercera derivada de f
está acotada por un número M>0, entonces

f ( x0  h)  f ( x0  h)  h2
f ( x0 )    M
2h h 6

Si queremos reducir el error de truncamiento h2 M / 6 , debemos reducir h. Pero al reducir h, el


error de redondeo ε / h crece . Así, en la práctica rara vez conviene que h sea muy pequeño,
porque el error de redondeo predominará en los cálculos. Además, la división entre números
pequeños tiende a exagerar el error de redondeo.

Como consecuencia de lo expresado en el último párrafo, decimos que, como método de


aproximación, la diferenciación numérica es inestable. Sin embargo, las fórmulas de
aproximación de las derivadas son necesarias para resolver las ecuaciones diferenciales.
Cálculo Avanzado y Métodos Numéricos 12
Diferenciación numérica

Bibliografía.
R. Burden, J. Faires. Análisis numérico. International Thomson Editores. 1998.

También podría gustarte