Cap´ ıtulo 2

Derivaci´ on num´ erica
Contenidos del cap´ ıtulo
2.1 F´ ormulas de diferencias de dos puntos . . . . . . . . . . . . . 22

2.2

Influencia 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 figuran 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 finitas. 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

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. x < z < x + h 2 Demostraci´ on.22 M´ etodos Num´ ericos 2. h h0 Versi´ on del 23/1/2007 http://matematicas.1 F´ ormulas de diferencias de dos puntos f (x + h) − f (x) h→0 h Recordemos que la definici´ 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). 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. para datos obtenidos a partir obteni´ endose que: E ≤ h m´ a x | f (x.uclm. Por otro lado. Teorema.1) es la forma m´ as sencilla de aproximar una derivada conocidas f (x) y f (x + h0 ). Este error se denomina error de truncaci´ on o discretizaci´ on y puede acotarse f´ acilmente. El problema es que esto s´ olo es cierto con precisi´ on infinita 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. x < z < x + h h 2 h2 ′′ f (z ). b). b) y existe f ′′ (x) en (a. entonces hay alg´ un h0 a partir del cual nuestra aproximaci´ on dista menos de una cantidad δ del valor real para la derivada. Cuanto menor sea h (o sea al tomar valores de f (x) m´ as cercanos) la derivada num´ erica ser´ a m´ as precisa. Sea f (x) ∈ C 1 (a. ′′ (z )|. La ecuaci´ on (2. A pesar de todo es de esperar que si la funci´ on f (x) no se comporta mal y h0 es un n´ umero finito pero peque˜ no se cumpla: f ′ (x) = l´ ım h→0 f (x + h0 ) − f (x) f (x + h) − f (x) ≃ h h0 Es m´ as.html . 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. El siguiente teorema nos proporciona informaci´ on sobre la precisi´ on de esta aproximaci´ on. la misma definici´ on de la derivada implica que si f ′ (x) existe. En primer lugar un l´ ımite no puede calcularse de modo aproximado en un computador donde los n´ umeros que se manejan son finitos. 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). si existe la derivada deben existir las derivadas laterales y entonces f ′ (x) = l´ ım h→0 f (x) − f (x − h0 ) f (x) − f (x − h) ≃ . entonces se cumple que: f ′ (x) = f (x + h) − f (x) h ′′ − f (z ).es/ind-cr/metnum/index. En realidad.

’Linewidth’.uclm. y el de redondeo.2 Influencia de los errores de truncaci´ on y de redondeo. xlabel(’log(h)’).html .-14). Calculemos la derivada con la f´ ormula adelantada de dos puntos y diferentes valores de h. Sabemos que el error de truncaci´ on puede reducirse disminuyendo h en la f´ ormula (2. que proviene de la f´ ormula de aproximaci´ on. 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). 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. Adem´ as./h. la mejor precisi´ on no se consigue con el valor de h m´ as peque˜ no posible. 2. que es debido al computador. −2 −4 −6 −8 −10 log(e) −12 −14 −16 −18 −20 −22 −35 −30 −25 −20 log(h) −15 −10 −5 0 En la gr´ afica vemos como disminuyendo h el error se va reduciendo hasta llegar a un cierto punto a partir del cual el error aumenta.es/ind-cr/metnum/index. plot(log(h). al disminuir h vamos restando valores de f (x) cada vez m´ as pr´ oximos y esto se traduce en una mayor influencia del error de redondeo.1).log(error).). cuando calculamos derivadas num´ ericamente el error en la soluci´ on es la suma del error de truncaci´ on.. Vamos a estudiar este efecto en un ejemplo. sin embargo. Por ello.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). ser´ a conveniente utilizar otras f´ ormulas de derivaci´ on m´ as precisas. datos experimentales. Ambos errores pueden ser importantes e interesa minimizarlos conjuntamente. h = logspace(0. hasta el momento en que el error empieza a crecer ´ este var´ ıa como linealmente con h (O(h)). etc. error = abs(fp-1/3). sino con un valor que sin producir una gran error de redondeo disminuya lo suficiente el error de truncaci´ on. Por ello. como ocurre en ensayos. Al llegar a valores Versi´ on del 23/1/2007 http://matematicas. fp = (atan(sqrt(2)+h)-atan(sqrt(2))). ylabel(’log(e)’).4).

En resumen. de manera que es necesario usar valores de h muy peque˜ nos para reducir suficientemente los errores de truncaci´ on.1a) y (2. z ∈ (x − h. h h h h donde fl(x) es la representaci´ on en el ordenador del n´ umero real x. la diferenciaci´ on num´ erica de estos datos puede producir resultados imprecisos. por ejemplo. cuando se quiere calcular derivadas de datos experimentales. x).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. inversamente proporcional a h. 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. la diferenciaci´ on num´ erica de datos experimentales debe realizarse con cuidado. x + h) 6 Versi´ on del 23/1/2007 http://matematicas. 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).html . x + h) y z2 ∈ (x − h. Esto es importante. Un medio de eliminar los errores de estos datos es utilizar m´ etodos de filtrado o suavizado antes de calcular num´ ericamente la derivada. 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 fl(f2 ) − fl(f1 ) = = + . dando lugar al fen´ omeno llamado “anulaci´ on catastr´ ofica”. Vemos como a partir de este momento el error var´ ıa aproximadamente como O(1/h). Restando (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. 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). etc. “ruidos”.. El hecho de que el error de redondeo pueda tener una influencia tan decisiva es lo que produce que el proceso de diferenciaci´ on num´ erica sea inestable. Es posible deducir f´ ormulas para las derivadas con errores de truncaci´ on m´ as peque˜ nos.uclm. esto es. Por ejemplo.24 M´ etodos Num´ ericos de h del orden de 10−8 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. si f es suficientemente derivable E= h2 ′′′ f (z ) = O(h2 ). 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.es/ind-cr/metnum/index. Por esto. y entonces. que tienen errores debidos a las medidas experimentales. Usando el teorema del valor intermedio f ′′′ (z ) = (f ′′′ (z1 ) + f ′′′ (z2 ))/2. 2.

dentro de las f´ ormulas del mismo n´ umero puntos.2 × 10−4 Tres adelantada 0.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.uclm.332202 1. la f´ ormula de diferencia centrada es la que tiene. Utilizando el valor de la funci´ on en m´ as puntos se construyen f´ ormulas m´ as precisas para las derivadas.333333 2. Versi´ on del 23/1/2007 http://matematicas. 2h 3 Reemplazando h por −h en (2.1. en principio. la mayor precisi´ on de las f´ ormulas centradas. siendo por lo tanto m´ as eficiente desde el punto de vista computacional. encontramos los siguientes resultados Puntos Tipo Resultado Error Dos adelantada 0.333327 6×10−6 Se comprueba la mayor precisi´ on de las f´ ormulas de orden superior y.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 ).es/ind-cr/metnum/index.318220 1. 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.333951 6.html . 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.5×10−3 Tres centrada 0. menor error de truncaci´ on y la que requiere menos evaluaciones de la funci´ on.7×10−7 Cinco 0.1 × 10−3 Cinco centrada 0. 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.

M).uclm. 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.html .es/ind-cr/metnum/index. h=x(2)-x(1). 2.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).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. df=zeros(1. 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.x) % % df=dc(f.26 M´ etodos Num´ ericos function df=dc(f. Versi´ on del 23/1/2007 http://matematicas. ih=1/(2*h). df(1)=(-f(3)+4*f(2)-3*f(1))*ih. La tabla siguiente presenta algunas de las f´ ormulas m´ as comunes para calcular derivadas de orden superior.

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.uclm.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 + f−1 + O(h2 ) h2 −f3 + 4f2 − 5f1 + 2f0 + O(h2 ) h2 −f2 + 16f1 − 30f0 + 16f−1 − f−2 + 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 + 2f−1 − f−2 + O(h2 ) 2h3 f−3 − 8f−2 + 13f−1 − 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 − 4f−1 + f−2 + O(h2 ) h4 −f−3 + 12f−2 − 39f−1 + 56f0 − 39f−1 + 12f−2 − f−3 + O(h4 ) 6h4 Ejercicios 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. Para calcular el valor en el extremo superior debe usarse la f´ ormula de diferencia retrasada.html . Comprobar que al ir reduciendo h el error se reduce de manera aproximadamente lineal con h. Versi´ on del 23/1/2007 http://matematicas.es/ind-cr/metnum/index.13432. 2.

6 usando h = 0.5) = 0.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.99002497.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).5 Calcular la derivada de la funci´ on f (x) = tan x en x = 3.uclm.99750156.0) = 1.0000000001.1) = 0.8 2.990025 0.x + h. 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.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). 2.1. Aplicarlo al c´ alculo de la derivada de la funci´ on f (x) = sen x en x = 0.4 Supongamos que se conoce el valor de la derivada mediante la f´ ormula de diferencia adelantada para tres valores de h diferentes. J0 (0. 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. Construir una tabla de derivadas en esos puntos con la mayor precisi´ on posible usando las f´ ormulas de tres puntos m´ as apropiadas.96039823 y J0 (0. ¿Es buena la aproximaci´ on? ¿Por qu´ e?.html . Utilizar diferentes valores de h y estudiar los efectos de los errores de redondeo y de truncaci´ on. 2. 2.0 1.4) = 0.14 usando h = 0. J0 (0.2 1.28 M´ etodos Num´ ericos 2.2) = 0. Comparar el resultado con el valor exacto. 2. 2. h = 0. 2. x 1.x + 2h.960398 0.3) = 0.01. ¿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?.01 y h = 0. J0 (0.7 Construir una tabla de derivadas primeras de la funci´ on g(x) definida por la siguiente tabla en los puntos xj con la mayor precisi´ on posible mediante f´ ormulas de tres puntos.0 g(x) 1.1 y h = 0.000000 0. Comparar los resultados. Versi´ on del 23/1/2007 http://matematicas. x + 3h y x − h para calcular f ′ (x).97762625.940678 2.3 Repetir el ejercicio anterior comparando la precisi´ on de la f´ ormula de diferencia adelantada con la retrasada.9 Deducir una f´ ormula de cinco puntos que utilice los valores de la funci´ on en los puntos x.10 Se conocen los valores de la funci´ on de Bessel J0 (x) en los puntos J0 (0. J0 (0.997502 0.4 1.93846981.es/ind-cr/metnum/index.00000000.

12 Consid´ erese la funci´ on f (x) = 0.16 Deducir el t´ ermino de error O(h5 ) en la f´ ormula de cinco puntos para f ′′′ .uclm. 2. ¿qu´ e f´ ormula tendr´ a menor influencia del error de redondeo.es/ind-cr/metnum/index. ¿Cu´ ales son mayores? 2. 2. 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 . −1 < x < 4 5 2 4 <x<1 e−x .13 Deducir las f´ ormulas centrada y adelantada para la derivada tercera. 5 29 Para calcular f ′ (4/5) ¿ser´ a mejor usar una f´ ormula adelantada o una centrada? 2. Versi´ on del 23/1/2007 http://matematicas.15 Estudiar el efecto de los errores de truncaci´ on y redondeo en la f´ ormula centrada de cinco puntos para f ′′ .Derivaci´ on num´ erica 2.14 Al calcular la derivada segunda de una funci´ on.html . Comparar los errores de redondeo con los que aparecen al calcular f ′ (x). Particularizar para f (x) = 1/(1 + x2 ) en x = 1.

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

Sign up to vote on this title
UsefulNot useful