Sie sind auf Seite 1von 10

Cap tulo 2

Derivaci on num erica


Contenidos del cap tulo
2.1 F ormulas de diferencias de dos puntos . . . . . . . . . . . . . 22

2.2

Inuencia de los errores de truncaci on y de redondeo. . . .

23

2.3

F ormulas de orden superior . . . . . . . . . . . . . . . . . . .

24

2.4

Derivadas de orden superior . . . . . . . . . . . . . . . . . . .

26

Consideremos una funci on f (x) de la cual se conoce un conjunto discreto de valores (x0 , f0 ), (x1 , f1 ),...,(xn , fn ). El problema que vamos a abordar es el de calcular la derivada de la funci on en un punto x que en principio no tiene porqu e coincidir con alguno de los que guran en los datos de que disponemos. La forma m as sencilla de resolver el problema de la diferenciaci on num erica consiste en estimar la derivada utilizando f ormulas obtenidas mediante la aproximaci on de Taylor, que se denominan f ormulas de diferencias nitas. Es importante tener en cuenta que el proceso de diferenciaci on num erica es inestable. Los errores que tengan los datos, por ejemplo los cometidos en la adquisici on de los mismos o los debidos al redondeo aumentan en el proceso de diferenciaci on como veremos a lo largo de este cap tulo. 21
Versi on del 23/1/2007 http://matematicas.uclm.es/ind-cr/metnum/index.html

22

M etodos Num ericos

2.1

F ormulas de diferencias de dos puntos


f (x + h) f (x) h0 h

Recordemos que la denici on de derivada implica el c alculo de un l mite f (x) = l m

Este proceso de paso al l mite presenta distintos problemas para ser realizado en situaciones pr acticas donde no se conozca la forma exp cita de f (x). En primer lugar un l mite no puede calcularse de modo aproximado en un computador donde los n umeros que se manejan son nitos. A pesar de todo es de esperar que si la funci on f (x) no se comporta mal y h0 es un n umero nito pero peque no se cumpla: f (x) = l m
h0

f (x + h0 ) f (x) f (x + h) f (x) h h0

Es m as, la misma denici on de la derivada implica que si f (x) existe, entonces hay alg un h0 a partir del cual nuestra aproximaci on dista menos de una cantidad del valor real para la derivada. El problema es que esto s olo es cierto con precisi on innita ya que h0 puede ser tan peque no que no pueda representarse en el ordenador o que la diferencia f (x + h0 ) f (x) est e seriamente afectada por el error de redondeo. La ecuaci on (2.1) es la forma m as sencilla de aproximar una derivada conocidas f (x) y f (x + h0 ). El siguiente teorema nos proporciona informaci on sobre la precisi on de esta aproximaci on. Teorema. Sea f (x) C 1 (a, b) y existe f (x) en (a, b), entonces se cumple que: f (x) = f (x + h) f (x) h f (z ), x < z < x + h h 2 h2 f (z ), x < z < x + h 2

Demostraci on. Escribamos la aproximaci on de Taylor para la funci on en un punto x + h: f (x + h) = f (x) + hf (x) +

Reordenando la expresi on anterior queda demostrado el teorema. El teorema anterior nos indica que el error cometido al aproximar la derivada primera por su f ormula de diferencia adelantada es una funci on lineal de h. Cuanto menor sea h (o sea al tomar valores de f (x) m as cercanos) la derivada num erica ser a m as precisa. Este error se denomina error de truncaci on o discretizaci on y puede acotarse f acilmente, (z )|. En realidad, para datos obtenidos a partir obteni endose que: E h m a x | f (x,x+h) 2 de una tabla esta acotaci on no es de gran utilidad directa ya que si no se conoce la derivada primera menos a un se conocer a la segunda pero al menos nos permite conocer el orden de aproximaci on de la f ormula. Geom etricamente el error O(h) procede del hecho de aproximar la derivada por la pendiente de la cuerda que une los puntos f (x) y f (x + h), Por otro lado, si existe la derivada deben existir las derivadas laterales y entonces f (x) = l m
h0

f (x) f (x h0 ) f (x) f (x h) . h h0

Versi on del 23/1/2007 http://matematicas.uclm.es/ind-cr/metnum/index.html

Derivaci on num erica

23

Un problema que presenta esta f ormula es que la precisi on de la misma es baja y por lo tanto en situaciones donde s olo dispongamos de un muestreo de baja precisi on de f (x), como ocurre en ensayos, datos experimentales, etc., ser a conveniente utilizar otras f ormulas de derivaci on m as precisas.

2.2

Inuencia de los errores de truncaci on y de redondeo.

Recordemos que debido a la naturaleza discreta del computador los resultados num ericos no son exactos y que el error de redondeo est a siempre presente en los c alculos. Por ello, cuando calculamos derivadas num ericamente el error en la soluci on es la suma del error de truncaci on, que proviene de la f ormula de aproximaci on, y el de redondeo, que es debido al computador. Ambos errores pueden ser importantes e interesa minimizarlos conjuntamente. Sabemos que el error de truncaci on puede reducirse disminuyendo h en la f ormula (2.1), sin embargo, al disminuir h vamos restando valores de f (x) cada vez m as pr oximos y esto se traduce en una mayor inuencia del error de redondeo. Por ello, la mejor precisi on no se consigue con el valor de h m as peque no posible, sino con un valor que sin producir una gran error de redondeo disminuya lo suciente el error de truncaci on. Vamos a estudiar este efecto en un ejemplo. Supongamos que queremos calcular la derivada de la funci on f (x) = arctan x en el punto x = 2 (el valor correcto es f ( 2) = 1/3). Calculemos la derivada con la f ormula adelantada de dos puntos y diferentes valores de h.
h = logspace(0,-14); fp = (atan(sqrt(2)+h)-atan(sqrt(2)))./h; error = abs(fp-1/3); plot(log(h),log(error),Linewidth,4);); xlabel(log(h)); ylabel(log(e));

10 log(e)

12

14

16

18

20

22 35

30

25

20 log(h)

15

10

En la gr aca vemos como disminuyendo h el error se va reduciendo hasta llegar a un cierto punto a partir del cual el error aumenta. Adem as, hasta el momento en que el error empieza a crecer este var a como linealmente con h (O(h)). Al llegar a valores

Versi on del 23/1/2007 http://matematicas.uclm.es/ind-cr/metnum/index.html

24

M etodos Num ericos

de h del orden de 108 se restan valores de f (x) (f2 y f1 ) muy pr oximos y debido al redondeo que realiza el ordenador esto se traduce en errores grandes, dando lugar al fen omeno llamado anulaci on catastr oca. Vemos como a partir de este momento el error var a aproximadamente como O(1/h), esto es, inversamente proporcional a h. Este comportamiento es razonable ya que el error de redondeo afecta a las cantidades f2 y f1 y por lo tanto el error acumulado debido al redondeo puede escribirse como: f (x) f2 e2 f1 + e1 f2 f1 e1 e2 (f2 ) (f1 ) = = + , h h h h

donde (x) es la representaci on en el ordenador del n umero real x, que est a afectada del error de redondeo que depende de la precisi on del computador en el que se realicen los c alculos (que determina el redondeo). En resumen, para valores de h mayores que un cierto h0 el error dominante es el de truncaci on y para valores menores el error dominante es el de redondeo. El hecho de que el error de redondeo pueda tener una inuencia tan decisiva es lo que produce que el proceso de diferenciaci on num erica sea inestable. Esto es importante, por ejemplo, cuando se quiere calcular derivadas de datos experimentales, que tienen errores debidos a las medidas experimentales, ruidos, etc., la diferenciaci on num erica de estos datos puede producir resultados imprecisos. Como al calcular la derivada se divide la diferencia de funciones por un valor de h generalmente peque no los errores se ven multiplicados por un factor muy grande O(1/h). Por esto, la diferenciaci on num erica de datos experimentales debe realizarse con cuidado. Un medio de eliminar los errores de estos datos es utilizar m etodos de ltrado o suavizado antes de calcular num ericamente la derivada.

2.3

F ormulas de orden superior

El error de truncaci on de la f ormula de diferencia adelantada de dos puntos var a linealmente con h, de manera que es necesario usar valores de h muy peque nos para reducir sucientemente los errores de truncaci on. Es posible deducir f ormulas para las derivadas con errores de truncaci on m as peque nos. Por ejemplo, tomemos h2 f (x) + 2! h2 f (x h) = f (x) hf (x) + f (x) 2! f (x + h) = f (x) + hf (x) + h3 f (z1 ) 3! h3 f (z2 ) 3!

donde z1 (x, x + h) y z2 (x h, x). Restando (2.1a) y (2.1a) obtenemos f (x) = f (x + h) f (x h) h2 f (z1 ) + f (z2 ) 2h 12

que nos proporciona una siguiente aproximaci on para la derivada con un t ermino de error de truncaci on que depende cuadr aticamente de h. Usando el teorema del valor intermedio f (z ) = (f (z1 ) + f (z2 ))/2, y entonces, si f es sucientemente derivable E= h2 f (z ) = O(h2 ), z (x h, x + h) 6

Versi on del 23/1/2007 http://matematicas.uclm.es/ind-cr/metnum/index.html

Derivaci on num erica

25

Usando los desarrollos de Taylor de f (x + h) y f (x + 2h) se encuentra la llamada f ormula de diferencia adelantada de tres puntos que es: 3f (x) + 4f (x + h) f (x + 2h) h2 f (z ). 2h 3 Reemplazando h por h en (2.3) obtenemos una f ormula de diferencias retrasadas de tres puntos 3f (x) 4f (x h) + f (x 2h) h2 f (x) = f (z ) 2h 3 De todas estas, la f ormula de diferencia centrada es la que tiene, en principio, menor error de truncaci on y la que requiere menos evaluaciones de la funci on, siendo por lo tanto m as eciente desde el punto de vista computacional. Utilizando el valor de la funci on en m as puntos se construyen f ormulas m as precisas para las derivadas. Alguna de ellas se muestra en la tabla siguiente junto con las que hemos deducido ya f (x) = F ormulas para calcular derivadas primeras f (x) = f (x) = f (x) = f (x) = f (x) = f (x + h) f (x) + O(h) h 3f (x) + 4f (x + h) f (x + 2h) + O(h2 ) 2h 3f (x) 4f (x h) + f (x 2h) + O(h2 ) 2h f (x 2h) 8f (x h) + 8f (x + h) f (x + 2h) + O(h4 ) 12h 25f (x) + 48f (x + h) 36f (x + 2h) + 16f (x + 3h) 3f (x + 4h) + O(h4 ) 12h

Como ejemplo, si aplicamos estas f ormulas al problema de encontrar la derivada de su funcionamiento en un caso pr actico con f (x) = arctan x en x = 2 y comparar as h = 0.1. encontramos los siguientes resultados Puntos Tipo Resultado Error Dos adelantada 0.318220 1.5103 Tres centrada 0.333951 6.2 104 Tres adelantada 0.332202 1.1 103 Cinco centrada 0.333333 2.7107 Cinco 0.333327 6106

Se comprueba la mayor precisi on de las f ormulas de orden superior y, dentro de las f ormulas del mismo n umero puntos, la mayor precisi on de las f ormulas centradas. La funci on MATLAB dc que presentamos a continuaci on calcula el valor de la derivada primera de la tabla de valores de una funci on usando la f ormula de tres puntos centrada en los puntos interiores y f ormulas de diferencias adelantada y retrasada en los extremos del mismo.

Versi on del 23/1/2007 http://matematicas.uclm.es/ind-cr/metnum/index.html

26

M etodos Num ericos

function df=dc(f,x) % % df=dc(f,x) Calcula la derivada de la funcion f en los puntos de x % % Variables de entrada % f: Valores de la funcion que se desea derivar % x: Puntos donde se desea obtener la derivada % % Variables de salida: % df: vector con las derivadas en cada punto % M = length(x); df=zeros(1,M); h=x(2)-x(1); ih=1/(2*h); df(1)=(-f(3)+4*f(2)-3*f(1))*ih; for i=2:M-1 df(i)=(f(i+1)-f(i-1))*ih; end df(M)=(f(M-2)-4*f(M-1)+3*f(M))*ih;

2.4

Derivadas de orden superior

El mismo procedimiento que se ha seguido al deducir f ormulas para calcular num ericamente las derivadas primeras puede usarse para construir derivadas de orden superior partiendo del desarrollo de Taylor y eliminando las derivadas primeras. Consideremos por ejemplo las expresiones: h3 h4 h2 f (x) + f (x) + f (4) (z1 ) 2! 3! 4! 3 2 h h4 h f (x h) = f (x) +hf (x) + f (x) + f (x) + f (4) (z2 ) 2! 3! 4!

f (x + h) = f (x) + hf (x) +

Sumando las ecuaciones anteriores y despejando se encuentra que: f (x + h) 2f (x) + f (x h) h2 (4) f (z ) h2 12

f (x) =

Procediendo de la misma forma es posible encontrar aproximaciones que usen diferentes puntos y aproximaciones para derivadas de orden superior. La tabla siguiente presenta algunas de las f ormulas m as comunes para calcular derivadas de orden superior.

Versi on del 23/1/2007 http://matematicas.uclm.es/ind-cr/metnum/index.html

Derivaci on num erica F ormulas para calcular derivadas segundas f (x0 ) = f (x0 ) = f (x0 ) = f (x0 ) = f2 2f1 + f0 + O(h) h2 f1 2f0 + f1 + O(h2 ) h2 f3 + 4f2 5f1 + 2f0 + O(h2 ) h2 f2 + 16f1 30f0 + 16f1 f2 + O(h4 ) 12h2

27

F ormulas para calcular derivadas terceras f (iii) (x0 ) = f (iii) (x0 ) = f (iii) (x0 ) = f3 3f2 + 3f1 f0 + O(h) h3 f2 2f1 + 2f1 f2 + O(h2 ) 2h3 f3 8f2 + 13f1 13f1 + 8f2 f3 + O(h4 ) 8h3

F ormulas para calcular derivadas cuartas f (iv) (x0 ) = f (iv) (x0 ) = f (iv) (x0 ) = f4 4f3 + 6f2 4f1 + f0 + O(h) h4 f2 4f1 + 6f0 4f1 + f2 + O(h2 ) h4 f3 + 12f2 39f1 + 56f0 39f1 + 12f2 f3 + O(h4 ) 6h4

Ejercicios

2.1 Escribir una funci on MATLAB df(x) que admita como entradas una vector de puntos x y los valores de una funci on f en los mismos y que calcule el valor de la derivada primera en los mismos utilizando la f ormula de diferencia adelantada. Para calcular el valor en el extremo superior debe usarse la f ormula de diferencia retrasada. 2.2 Aplicar la f ormula de dos puntos adelantada al c alculo de la derivada primera de f (x) = sen x en x = 2.13432. Comprobar que al ir reduciendo h el error se reduce de manera aproximadamente lineal con h.

Versi on del 23/1/2007 http://matematicas.uclm.es/ind-cr/metnum/index.html

28

M etodos Num ericos 2.3 Repetir el ejercicio anterior comparando la precisi on de la f ormula de diferencia adelantada con la retrasada. Aplicar tambi en ambas f ormulas al c alculo de la derivada de la funci on g(x) = 1/(1 + ex ) en x = 1/2. 2.4 Supongamos que se conoce el valor de la derivada mediante la f ormula de diferencia adelantada para tres valores de h diferentes. Es posible estimar el valor del h optimo? Es posible estimar el error que se comete en el c alculo en cada uno de los casos?. Aplicarlo al c alculo de la derivada de la funci on f (x) = sen x en x = 0.6 usando h = 0.1, h = 0.01 y h = 0.0000000001. 2.5 Calcular la derivada de la funci on f (x) = tan x en x = 3.14 usando h = 0.1 y h = 0.01. Comparar el resultado con el valor exacto. Es buena la aproximaci on? Por qu e?. 2.6 Calcular cotas para el error de truncaci on que se comete al aproximar las derivadas de las funciones f (x) = 1/(1 + sen x) y g(x) = log(1 + 2x). Calcular las cotas teniendo en cuenta el error de redondeo y comprobar que los errores reales est an por debajo de lo permitido por la cota. 2.7 Construir una tabla de derivadas primeras de la funci on g(x) denida por la siguiente tabla en los puntos xj con la mayor precisi on posible mediante f ormulas de tres puntos.

x 1.0 1.2 1.4 1.8 2.0

g(x) 1.000000 0.997502 0.990025 0.960398 0.940678

2.8 Usando la f ormula de diferencia centrada calcular la derivada primera de la funci on f (x) = arctan x en el punto x = 2 (el valor correcto es 1/3). Utilizar diferentes valores de h y estudiar los efectos de los errores de redondeo y de truncaci on. 2.9 Deducir una f ormula de cinco puntos que utilice los valores de la funci on en los puntos x,x + h,x + 2h, x + 3h y x h para calcular f (x). 2.10 Se conocen los valores de la funci on de Bessel J0 (x) en los puntos J0 (0.0) = 1.00000000, J0 (0.1) = 0.99750156, J0 (0.2) = 0.99002497, J0 (0.3) = 0.97762625, J0 (0.4) = 0.96039823 y J0 (0.5) = 0.93846981. Construir una tabla de derivadas en esos puntos con la mayor precisi on posible usando las f ormulas de tres puntos m as apropiadas. 2.11 Calcular la derivada primera de la funci on f (x) = |x 2| cos x en x = 2 usando las f ormulas de diferencias centradas y adelantadas. Comparar los resultados.

Versi on del 23/1/2007 http://matematicas.uclm.es/ind-cr/metnum/index.html

Derivaci on num erica 2.12 Consid erese la funci on f (x) = 0, 1 < x < 4 5 2 4 <x<1 ex , 5

29

Para calcular f (4/5) ser a mejor usar una f ormula adelantada o una centrada? 2.13 Deducir las f ormulas centrada y adelantada para la derivada tercera. 2.14 Al calcular la derivada segunda de una funci on, qu e f ormula tendr a menor inuencia del error de redondeo, la centrada de tres puntos o la centrada de cinco puntos? Razonar la respuesta y comprobar la hip otesis con el ejemplo de la funci on f (x) = ex . Comparar los errores de redondeo con los que aparecen al calcular f (x). Cu ales son mayores? 2.15 Estudiar el efecto de los errores de truncaci on y redondeo en la f ormula centrada de cinco puntos para f . Particularizar para f (x) = 1/(1 + x2 ) en x = 1. 2.16 Deducir el t ermino de error O(h5 ) en la f ormula de cinco puntos para f .

Versi on del 23/1/2007 http://matematicas.uclm.es/ind-cr/metnum/index.html

Versi on del 23/1/2007 http://matematicas.uclm.es/ind-cr/metnum/index.html