P. 1
derivadas numericas

derivadas numericas

|Views: 40|Likes:
Publicado porJose Ortiz Reyes

More info:

Published by: Jose Ortiz Reyes on Apr 11, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

04/16/2014

pdf

text

original

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

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). b) y existe f ′′ (x) en (a. h h0 Versi´ on del 23/1/2007 http://matematicas. 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. Sea f (x) ∈ C 1 (a. para datos obtenidos a partir obteni´ endose que: E ≤ h m´ a x | f (x. Por otro lado.html .22 M´ etodos Num´ ericos 2. Este error se denomina error de truncaci´ on o discretizaci´ on y puede acotarse f´ acilmente. La ecuaci´ on (2. En realidad. 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). 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. ′′ (z )|. Teorema.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. entonces hay alg´ un h0 a partir del cual nuestra aproximaci´ on dista menos de una cantidad δ del valor real para la derivada. x < z < x + h 2 Demostraci´ on. 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) ≃ .uclm.es/ind-cr/metnum/index. 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. x < z < x + h h 2 h2 ′′ f (z ). 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. En primer lugar un l´ ımite no puede calcularse de modo aproximado en un computador donde los n´ umeros que se manejan son finitos.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. Cuanto menor sea h (o sea al tomar valores de f (x) m´ as cercanos) la derivada num´ erica ser´ a m´ as precisa. b). la misma definici´ on de la derivada implica que si f ′ (x) existe. entonces se cumple que: f ′ (x) = f (x + h) − f (x) h ′′ − f (z ).

Calculemos la derivada con la f´ ormula adelantada de dos puntos y diferentes valores de 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.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). que proviene de la f´ ormula de aproximaci´ on. fp = (atan(sqrt(2)+h)-atan(sqrt(2))). Por ello. datos experimentales. 2.’Linewidth’. sin embargo.log(error). ylabel(’log(e)’). Ambos errores pueden ser importantes e interesa minimizarlos conjuntamente. Al llegar a valores Versi´ on del 23/1/2007 http://matematicas.. 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. Por ello. plot(log(h).-14).html . 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). 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.4)./h. la mejor precisi´ on no se consigue con el valor de h m´ as peque˜ no posible. hasta el momento en que el error empieza a crecer ´ este var´ ıa como linealmente con h (O(h)).es/ind-cr/metnum/index. xlabel(’log(h)’).uclm.). −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. ser´ a conveniente utilizar otras f´ ormulas de derivaci´ on m´ as precisas. Sabemos que el error de truncaci´ on puede reducirse disminuyendo h en la f´ ormula (2. cuando calculamos derivadas num´ ericamente el error en la soluci´ on es la suma del error de truncaci´ on. como ocurre en ensayos. Vamos a estudiar este efecto en un ejemplo. y el de redondeo.2 Influencia de los errores de truncaci´ on y de redondeo. h = logspace(0.1). etc. que es debido al computador.

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

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

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

Comprobar que al ir reduciendo h el error se reduce de manera aproximadamente lineal con h.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. 2.html .es/ind-cr/metnum/index.uclm. Versi´ on del 23/1/2007 http://matematicas.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.13432. Para calcular el valor en el extremo superior debe usarse la f´ ormula de diferencia retrasada.

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).93846981.es/ind-cr/metnum/index.0 1. 2.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. Construir una tabla de derivadas en esos puntos con la mayor precisi´ on posible usando las f´ ormulas de tres puntos m´ as apropiadas.5) = 0.990025 0.96039823 y J0 (0.4 1.4 Supongamos que se conoce el valor de la derivada mediante la f´ ormula de diferencia adelantada para tres valores de h diferentes. 2. J0 (0.x + h.01 y h = 0.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).99750156.997502 0.4) = 0.3 Repetir el ejercicio anterior comparando la precisi´ on de la f´ ormula de diferencia adelantada con la retrasada.10 Se conocen los valores de la funci´ on de Bessel J0 (x) en los puntos J0 (0.uclm. Versi´ on del 23/1/2007 http://matematicas. h = 0. 2.x + 2h. 2.1 y h = 0.0000000001. ¿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?. ¿Es buena la aproximaci´ on? ¿Por qu´ e?.9 Deducir una f´ ormula de cinco puntos que utilice los valores de la funci´ on en los puntos x.960398 0.940678 2. 2.3) = 0. x 1. J0 (0.00000000.1.97762625. J0 (0.0) = 1.01.2) = 0.14 usando h = 0.2 1.5 Calcular la derivada de la funci´ on f (x) = tan x en x = 3.html . J0 (0.8 2.1) = 0. 2. 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. Aplicarlo al c´ alculo de la derivada de la funci´ on f (x) = sen x en x = 0.6 usando h = 0.0 g(x) 1.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. 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. x + 3h y x − h para calcular f ′ (x). Utilizar diferentes valores de h y estudiar los efectos de los errores de redondeo y de truncaci´ on. Comparar los resultados.99002497. 2.28 M´ etodos Num´ ericos 2. Comparar el resultado con el valor exacto.000000 0.

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

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

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->