Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
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
L (x) =
i,j,k=0;distintos
(x xi )(x xj )(x xk )
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
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
(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)
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
Derivacin Numrica o e
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 . 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