Está en la página 1de 6

Clculo Numrico I a e

Derivacin Numrica o e
La denicin de la derivada de una funcin como un l o o mite lleva impl cito un mtodo de aproximacin numrica: e o e f (x) f (x + h) f (x) Dh f (x); h

diremos que esta ultima cantidad es una derivada numrica de f e con paso h. Ejemplo 21.1. Si calculamos la derivada numrica de f (x) = x2 en e x = 1, h Dh f Error 01 21 01 005 205 005 0025 2025 0025 Utilizando la frmula de Taylor, o f (x + h) = f (x) + hf (x) + 1 h2 f (c) 2 as Dh f (x) = f (x) + 1 hf (c) 2 por lo tanto el error en la derivada numrica es del orden de h. De e hecho en nuestro ejemplo f (1) = 2, por tanto el error es exactamente h.

22

Derivada del polinomio interpolador

Si observamos la derivada numrica recin denida, podemos ver e e que es simplemente la pendiente de la secante por (x, f (x)) y (x + h, f (x + h)), es decir la derivada del polinomio interpolador de f en los nodos x, x + h. Podemos aproximar numricamente la derivae da de una funcin aproximando esta por medio de un polinomio o interpolador y calculando la derivada de este ultimo. 1

Calculo Numerico I Por ejemplo, sea P2 el polinomio que interpola a f con nodos en los puntos x0 = x h, x1 = x, x2 = x + h; se obtiene P2 (t) =

Derivacin Numrica o e

(t x1 )(t x2 ) (t x0 )(t x2 ) (t x0 )(t x1 ) f (x0 )+ f (x1 )+ f (x2 ). 2 2 2h h 2h2 2t (x1 + x2 ) 2t (x0 + x2 ) 2t (x0 + x1 ) f (x0 )+ f (x1 )+ f (x2 ); 2h2 h2 2h2

Por tanto, P2 (t) =

en particular P2 (x1 ) = (x1 x0 ) + (x1 x2 ) x1 x0 x2 x1 f (x0 )+ f (x1 )+ f (x2 ) 2 2 2h h 2h2 f (x2 ) f (x1 ) = . 2h

Es decir, f (x1 + h) f (x1 h) . 2h que representa una especie de media entre la derivada hacia adelante (h > 0) y la derivada hacia atrs (h < 0) de la anterior. a Cmo estimar el error en Pn (x)? o f (x1 ) Teorema 5. Sea f C n+2 ([a, b]) y sea Pn (t) el polinomio interpolador de f con nodos x0 , . . . , xn [a, b]; t [a, b], 1 , 2 [a, b] tales que f (t) Pn (t) = Ln (t) f (n+2) (1 ) f (n+1) (2 ) + Ln (t) (n + 2)! (n + 1)!

donde Ln (t) = (t x0 )(t x1 ) (t xn ). Demostracin. El error en Pn viene dado por o Pn (t) f (t) = Ln (t)f [x0 , x1 , . . . , xn , t] por tanto, E(t) = Pn (t) f (t) d f [x0 , . . . , xn , t] dt = Ln (t)f [x0 , . . . , xn , t] + Ln (t)f [x0 , . . . , xn , t, t] = Ln (t)f [x0 , . . . , xn , t] + Ln (x) dado que f C (n+2) , 1 , 2 [a, b] tal que E(x) = Ln (x) f (n+1) (1 ) f (n+2) (2 ) Ln (x) . (n + 1)! (n + 2)!

Calculo Numerico I A n de obtener el orden ms alto en la ultima estimacin trataa o mos de conseguir L (x) = 0. Podemos lograrlo para n impar si distribuimos los nodos simtricamente respecto de x. e Ejemplo 22.1. Para n = 1, x = 1 (x0 + x1 ), x0 = x , x1 = x + : 2 L(x) = (xx0 )(xx1 ); L (x) = (xx1 )+(xx0 ) = + = 0

Derivacin Numrica o e

Ejemplo 22.2. Para n = 3, x0 = x , x1 = x , x2 = x + , x3 = x + : L(x) = (x x0 )(x x1 )(x x2 )(x x3 )


3

L (x) =
i,j,k=0;distintos

(x xi )(x xj )(x xk )

= ()() + ()() + () + () = 0. As : E(x) = Pn (x) F (x) = 2 2 f (n+2) () . (n + 2)!

En el caso general de n impar y nodos igualmente espaciados a distancia y distribuidos simtricamente respecto de x e Pn (x) f (x) = (1)
n1 2

f (n+2) () 32 52 n2 ( )n+1 . 2 (n + 2)!

De forma anloga, podemos conseguir que L(x) = 0 para n par a tomando x como uno de los nodos. Resulta entonces que L (x) tiene un solo trmino no nulo y se obtiene un resultado anlogo al e a anterior.

23

Coecientes indeterminados

El procedimiento descrito produce frmulas de derivacin numrica o o e del tipo:


n

(k)

(x) =
i=1

wi f (xi )
No son propiamente pesos ya que wi = 1. De hecho wi = 0.

donde los xi son nodos predeterminados y los wi los pesos correspondientes. Una vez prejados los nodos, para determinar los pesos podemos recurrir al mtodo siguiente de coecientes indeterminados. e Ejemplo 23.1. Supongamos que f (x) = Af (x h) + Bf (x) + Cf (x + h); 3

Calculo Numerico I dado que el polinomio de Taylor de f nos da: 1 1 1 f (x h) = f (x) f (x)h + f (x)h2 f (x)h3 + f v ( )h4 2 6 24 (23.1) Despejando f (x) obtenemos 1 f (x) = (A + B + C)f (x) + h(A + C)f (x) + h2 (A + C)f (x) 2 1 4 1 3 + h (A + C)f (x) + h (Af v ( ) + Cf v (+ )). 6 24 Si identicamos coecientes obtenemos el sistema A+B+C =0 1 A +C = h A + C = 0,
1 cuya solucin es A = C = 2h , B = 0; por tanto o

Derivacin Numrica o e

f (x)

f (x + h) f (x h) = Dh f (x); 2h h3 f (x) Dh f (x) = [f v ( ) + f v (+ )] 48

Ejemplo 23.2. Queremos deducir una derivada segunda de la forma


2 Dh f (x) = Af (x 2h) + Bf (x h) + Cf (x + h) + Df (x + 2h).

Para ello, junto con (23.1) utilizamos 4 2 f (t2h) = f (t)2hf (t)+2h2 f (t) h3 f (t)+ h4 (f v (1 )+f v (2 )) 3 3 (23.2) De ellas resulta que f (t) = (A+B+C+D)f (t)+h(2AB+C+2D)f (t)+ + h2 (4A+B+C+4D)f (t) 2

h3 h4 (8AB+C+8D)f (t)+ (16Af v ( )+Bf v ( )+Cf v (+ )+16Df v (+ )) 6 24 lo que da el sistema lineal A+B+C + D =0 2A B + C + 2D = 0 1 4A + B + C + 4D = 2 h 8A B + C + 8D = 0

Calculo Numerico I que resuelto proporciona


2 Dh f (x) =

Derivacin Numrica o e

f (x 2h) f (x h) f (x + h) + f (x + 2h) 3h2

con error h2 [16f v ( ) f v ( ) f v (+ ) + 16f v (+ )] . 72

24

Estabilidad Numrica e

Si observamos todas las reglas de derivacin numrica que hemos o e deducido, veremos que consisten en un cociente de dos nmeros u que cuando h (distancia entre nodos) tiende a cero es de la forma 0 . De ello resulta que cuando h es muy pequeo vamos a tener una n 0 prdida de signicacin en el numerador amplicada por la divisin e o o k por h . Esto hace que, dada una cierta precisin en los clculos, o a habr un h ptimo que nos dar la precisin mxima en el clculo a o a o a a de la derivada numrica. e Supongamos que es la precisin relativa de nuestros clculos (dio a 16 gamos 10 , como ocurre con Matlab). Vamos a estudiar qu sucede con la derivada numrica e e Dh f (x) = f (x + h) f (x h) . 2h

En su clculo con la mquina tenemos a a f (x + h) f (x h) Dh f (x) = , 2h donde f (x h) = (1 + 2 )f (x h); f (x + h) = (1 + 1 )f (x + h); (|i | , i = 1, 2), por tanto 1 f (x + h) 2 f (x h) Dh f (x) f (x) = + Dh f (x) f (x); 2h dado que |Dh f (x) f (x)| 1 h2 sup |f | resulta 6 Dh f (x) f (x) sup |f | + sup |f | h es decir E(h) = |Dh f (x) f (x)| C1 + C2 h2 h para buscar el E m nimo hacemos E (h) = 0, es decir 2C2 h Como esperamos que tanto C1 como C2 tengan un valor moderado , h C 3 (si trabajamos con Matlab, h 105 ).
3

C1 h2 = 0, que tiene solucin h = o

C1 . 2C2

Calculo Numerico I Ejemplo 24.1. Calculemos la derivada de la funcin f (x) = x4 en o el punto x = 2, cuyo valor sabemos que es 32, por medio de la derivada numrica e Dh f (x) = f (x + h) f (x h) 2h

Derivacin Numrica o e

para valores de h = 10k , k = 1, . . . , 20. Segn el apartado anterior u debemos esperar que el mejor resultado se produzca para k 5. Matlab nos da los siguientes resultados, en los cuales hemos incluido la tabla de errores:

h --------1.00e-001 1.00e-002 1.00e-003 1.00e-004 1.00e-005 1.00e-006 1.00e-007 1.00e-008 1.00e-009 1.00e-010 1.00e-011 1.00e-012 1.00e-013 1.00e-014 1.00e-015 1.00e-016 1.00e-017 1.00e-018 1.00e-019 1.00e-020

Df --------------32.080000000000 32.000800000000 32.000007999996 32.000000080030 32.000000001009 32.000000000032 31.999999992038 31.999999894339 32.000002647692 32.000002647692 32.000002647692 32.002844818635 31.974423109205 32.329694477085 31.974423109205 0.000000000000 0.000000000000 0.000000000000 0.000000000000 0.000000000000

error -------------0.080000000000 0.000800000000 0.000007999996 0.000000080030 0.000000001009 0.000000000032 0.000000007962 0.000000105661 0.000002647692 0.000002647692 0.000002647692 0.002844818635 0.025576890795 0.329694477085 0.025576890795 32.000000000000 32.000000000000 32.000000000000 32.000000000000 32.000000000000

Podemos observar que el menor error se produce para k = 6 (h = 106 ), para el que este error es 31011 , es decir, del orden de C1 1016 + C2 (106 )2 C1010 . 106