Está en la página 1de 10

Cap tulo 2

Derivacin numrica o e
Contenidos del cap tulo
2.1 Frmulas de diferencias de dos puntos . . . . . . . . . . . . . o 22

2.2

Inuencia de los errores de truncacin y de redondeo. . . . o

23

2.3

Frmulas de orden superior . . . . . . . . . . . . . . . . . . . o

24

2.4

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

26

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

22

Mtodos Numricos e e

2.1

Frmulas de diferencias de dos puntos o


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

Recordemos que la denicin de derivada implica el clculo de un l o a mite f (x) = l m

Este proceso de paso al l mite presenta distintos problemas para ser realizado en situaciones prcticas donde no se conozca la forma exp a cita de f (x). En primer lugar un l mite no puede calcularse de modo aproximado en un computador donde los nmeros u que se manejan son nitos. A pesar de todo es de esperar que si la funcin f (x) no se o comporta mal y h0 es un nmero nito pero pequeo se cumpla: u n f (x) = l m
h0

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

Es ms, la misma denicin de la derivada implica que si f (x) existe, entonces hay a o algn h0 a partir del cual nuestra aproximacin dista menos de una cantidad del valor u o real para la derivada. El problema es que esto slo es cierto con precisin innita ya que o o h0 puede ser tan pequeo que no pueda representarse en el ordenador o que la diferencia n f (x + h0 ) f (x) est seriamente afectada por el error de redondeo. e La ecuacin (2.1) es la forma ms sencilla de aproximar una derivada conocidas f (x) o a y f (x + h0 ). El siguiente teorema nos proporciona informacin sobre la precisin de esta o o aproximacin. o 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

Demostracin. Escribamos la aproximacin de Taylor para la funcin en un punto x+h: o o o f (x + h) = f (x) + hf (x) +

Reordenando la expresin anterior queda demostrado el teorema. o El teorema anterior nos indica que el error cometido al aproximar la derivada primera por su frmula de diferencia adelantada es una funcin lineal de h. Cuanto menor sea o o h (o sea al tomar valores de f (x) ms cercanos) la derivada numrica ser ms precisa. a e a a Este error se denomina error de truncacin o discretizacin y puede acotarse fcilmente, o o a obtenindose que: E h mx(x,x+h) |f (z)|. En realidad, para datos obtenidos a partir e a 2 de una tabla esta acotacin no es de gran utilidad directa ya que si no se conoce la o derivada primera menos an se conocer la segunda pero al menos nos permite conocer u a el orden de aproximacin de la frmula. o o Geomtricamente el error O(h) procede del hecho de aproximar la derivada por la e 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

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

Derivacin numrica o e

23

Un problema que presenta esta frmula es que la precisin de la misma es baja y o o por lo tanto en situaciones donde slo dispongamos de un muestreo de baja precisin de o o f (x), como ocurre en ensayos, datos experimentales, etc., ser conveniente utilizar otras a frmulas de derivacin ms precisas. o o a

2.2

Inuencia de los errores de truncacin y de redondeo. o

Recordemos que debido a la naturaleza discreta del computador los resultados numricos e no son exactos y que el error de redondeo est siempre presente en los clculos. Por ello, a a cuando calculamos derivadas numricamente el error en la solucin es la suma del error e o de truncacin, que proviene de la frmula de aproximacin, y el de redondeo, que es o o o debido al computador. Ambos errores pueden ser importantes e interesa minimizarlos conjuntamente. Sabemos que el error de truncacin puede reducirse disminuyendo h en la frmula o o (2.1), sin embargo, al disminuir h vamos restando valores de f (x) cada vez ms prximos a o y esto se traduce en una mayor inuencia del error de redondeo. Por ello, la mejor precisin no se consigue con el valor de h ms pequeo posible, sino con un valor que o a n sin producir una gran error de redondeo disminuya lo suciente el error de truncacin. o Vamos a estudiar este efecto en un ejemplo. Supongamos que queremos calcular la derivada de la funcin f (x) = arctan x en el punto x = 2 (el valor correcto es o f ( 2) = 1/3). Calculemos la derivada con la frmula adelantada de dos puntos y o 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 grca vemos como disminuyendo h el error se va reduciendo hasta llegar a a un cierto punto a partir del cual el error aumenta. Adems, hasta el momento en que a el error empieza a crecer ste var como linealmente con h (O(h)). Al llegar a valores e a

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

24

Mtodos Numricos e e

de h del orden de 108 se restan valores de f (x) (f2 y f1 ) muy prximos y debido al o redondeo que realiza el ordenador esto se traduce en errores grandes, dando lugar al fenmeno llamado anulacin catastrca. Vemos como a partir de este momento el o o o error var aproximadamente como O(1/h), esto es, inversamente proporcional a h. Este a 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 representacin en el ordenador del nmero real x, que est afectada del o u a error de redondeo que depende de la precisin del computador en el que se realicen los o clculos (que determina el redondeo). a En resumen, para valores de h mayores que un cierto h0 el error dominante es el de truncacin y para valores menores el error dominante es el de redondeo. o El hecho de que el error de redondeo pueda tener una inuencia tan decisiva es lo que produce que el proceso de diferenciacin numrica sea inestable. Esto es importante, o e por ejemplo, cuando se quiere calcular derivadas de datos experimentales, que tienen errores debidos a las medidas experimentales, ruidos, etc., la diferenciacin numrica o e de estos datos puede producir resultados imprecisos. Como al calcular la derivada se divide la diferencia de funciones por un valor de h generalmente pequeo los errores se n ven multiplicados por un factor muy grande O(1/h). Por esto, la diferenciacin numrica o e de datos experimentales debe realizarse con cuidado. Un medio de eliminar los errores de estos datos es utilizar mtodos de ltrado o suavizado antes de calcular numricamente e e la derivada.

2.3

Frmulas de orden superior o

El error de truncacin de la frmula de diferencia adelantada de dos puntos var linealo o a mente con h, de manera que es necesario usar valores de h muy pequeos para reducir n sucientemente los errores de truncacin. Es posible deducir frmulas para las derivadas o o con errores de truncacin ms pequeos. Por ejemplo, tomemos o a n 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 aproximacin para la derivada con un trmino de o e error de truncacin que depende cuadrticamente de h. Usando el teorema del valor o a 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

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

Derivacin numrica o e

25

Usando los desarrollos de Taylor de f (x+ h) y f (x+ 2h) se encuentra la llamada frmula o 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 frmula de diferencias retrasadas de o tres puntos 3f (x) 4f (x h) + f (x 2h) h2 f (x) = f (z) 2h 3 De todas estas, la frmula de diferencia centrada es la que tiene, en principio, menor o error de truncacin y la que requiere menos evaluaciones de la funcin, siendo por lo o o tanto ms eciente desde el punto de vista computacional. a Utilizando el valor de la funcin en ms puntos se construyen frmulas ms precisas o a o a para las derivadas. Alguna de ellas se muestra en la tabla siguiente junto con las que hemos deducido ya f (x) = Frmulas para calcular derivadas primeras o 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 frmulas al problema de encontrar la derivada de o a f (x) = arctan x en x = 2 y comparar as su funcionamiento en un caso prctico con 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 precisin de las frmulas de orden superior y, dentro de las o o frmulas del mismo nmero puntos, la mayor precisin de las frmulas centradas. o u o o La funcin MATLAB dc que presentamos a continuacin calcula el valor de la deo o rivada primera de la tabla de valores de una funcin usando la frmula de tres puntos o o centrada en los puntos interiores y frmulas de diferencias adelantada y retrasada en los o extremos del mismo.

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

26

Mtodos Numricos e e

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 frmulas para calcular numricao e mente 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! h3 h4 h2 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 frmulas ms comunes para calcular derivadas de orden superior. o a

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

Derivacin numrica o e Frmulas para calcular derivadas segundas o 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

Frmulas para calcular derivadas terceras o 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

Frmulas para calcular derivadas cuartas o 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 funcin MATLAB df(x) que admita como entradas una vector o de puntos x y los valores de una funcin f en los mismos y que calcule el o valor de la derivada primera en los mismos utilizando la frmula de diferencia o adelantada. Para calcular el valor en el extremo superior debe usarse la frmula o de diferencia retrasada. 2.2 Aplicar la frmula de dos puntos adelantada al clculo de la derivada primera o a 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.

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

28

Mtodos Numricos e e 2.3 Repetir el ejercicio anterior comparando la precisin de la frmula de diferencia o o adelantada con la retrasada. Aplicar tambin ambas frmulas al clculo de la e o a derivada de la funcin g(x) = 1/(1 + ex ) en x = 1/2. o 2.4 Supongamos que se conoce el valor de la derivada mediante la frmula de o diferencia adelantada para tres valores de h diferentes. Es posible estimar el valor del h ptimo? Es posible estimar el error que se comete en el clculo o a en cada uno de los casos?. Aplicarlo al clculo de la derivada de la funcin a o 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 funcin f (x) = tan x en x = 3.14 usando h = 0.1 y o h = 0.01. Comparar el resultado con el valor exacto. Es buena la aproximacin? Por qu?. o e 2.6 Calcular cotas para el error de truncacin que se comete al aproximar las deo rivadas 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 estn por debajo de lo permitido por la cota. a 2.7 Construir una tabla de derivadas primeras de la funcin g(x) denida por la sio guiente tabla en los puntos xj con la mayor precisin posible mediante frmulas o o 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 frmula de diferencia centrada calcular la derivada primera de la o funcin f (x) = arctan x en el punto x = 2 (el valor correcto es 1/3). Utilizar o diferentes valores de h y estudiar los efectos de los errores de redondeo y de truncacin. o 2.9 Deducir una frmula de cinco puntos que utilice los valores de la funcin en los o o puntos x,x + h,x + 2h, x + 3h y x h para calcular f (x). 2.10 Se conocen los valores de la funcin de Bessel J0 (x) en los puntos J0 (0.0) = o 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 precisin posible usando las frmulas de tres puntos o o ms apropiadas. a 2.11 Calcular la derivada primera de la funcin f (x) = |x 2| cos x en x = 2 usando o las frmulas de diferencias centradas y adelantadas. Comparar los resultados. o

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

Derivacin numrica o e 2.12 Considrese la funcin e o f (x) = 0, 1 < x < 4 5 2 4 ex , 5 < x < 1

29

Para calcular f (4/5) ser mejor usar una frmula adelantada o una centrada? a o 2.13 Deducir las frmulas centrada y adelantada para la derivada tercera. o 2.14 Al calcular la derivada segunda de una funcin, qu frmula tendr menor o e o a inuencia del error de redondeo, la centrada de tres puntos o la centrada de cinco puntos? Razonar la respuesta y comprobar la hiptesis con el ejemplo de o la funcin f (x) = ex . Comparar los errores de redondeo con los que aparecen o al calcular f (x). Cules son mayores? a 2.15 Estudiar el efecto de los errores de truncacin y redondeo en la frmula centrada o o de cinco puntos para f . Particularizar para f (x) = 1/(1 + x2 ) en x = 1. 2.16 Deducir el trmino de error O(h5 ) en la frmula de cinco puntos para f . e o

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

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

También podría gustarte