Em muitas situações, o cálculo analítico
da derivada revela-se moroso ou mesmo impraticável, surgindo a necessidade
de considerar uma aproximação numérica.
Um exemplo simples de derivação numérica consiste
numa aproximação do tipo
f '(x) ~ | f(x+h) - f(x)
h |
Método dos Coeficientes Indeterminados
O método dos coeficientes indeterminados permite a aproximação
no cálculo de derivadas, usando apenas os valores da função
em certos pontos.
Tal como no caso da integração numérica, iremos
definir o grau da aproximação através da sua exactidão
para polinómios.
Assim, designando Dz( f ) = f '(z), Dz2(
f
)
= f ''(z), Dz3( f ) = f
'''(z),
etc. procuramos aproximar as derivadas de várias ordens, num certo
ponto z, através de regras de derivação numérica
da forma
Rz ( f ) = | N
S k=1 |
wk f (xk) |
Consideremos a aproximação da primeira derivada no ponto
z, definida por Dz.
Para obter uma regra com pelo menos grau m, devemos impor as equações
Dz(1) = Rz(1), Dz(x) = Rz(x), Dz(x2) = Rz(x2), ..., Dz(xm) = Rz(xm).
Tal como no caso da integração, o objectivo é determinar
os pesos wk e os nós xk pela resolução
do sistema de equações.
Se estabelecermos quais são os nós xk resta
obter os pesos de derivação wk pela resolução
de um sistema linear.
Dz(1) = Rz(1) <=> 0 = w1 +
w2 <=> w1 = - w2
Dz(x) = Rz(x) <=> 1 = w1
x1
+
w2 x2 <=> 1 = w1 z + w2
(z+h) = -w2 z + w2 (z+h) = w2 h <=>
w2 =1/h
Portanto, w1 = - 1/h, w2 = 1/h, e obtemos
Rz(f ) = | f(z+h) - f(z)
h |
= f [z,z+h] |
que é exactamente a aproximação que apresentámos
inicialmente.
Esta aproximação tem pelo menos grau 1, por construção,
e é fácil ver que não tem grau 2, porque
Dz(x2) = Rz(x2)
<=> 2 z = ((z+h)2-z2) / h <=> 2 z h =
2 z h + h2 <=> h = 0, o que é falso.
No caso em que h>0, dizemos que se trata de uma aproximação
com uma diferença progressiva,
e no caso em que h<0, dizemos que é uma aproximação
com uma diferença regressiva.
Dz(1) = Rz(1) <=> 0 = w1 +
w2 <=> w1 = - w2
Dz(x) = Rz(x) <=> 1 = w1
x1
+
w2 x2 <=> 1 = w2(x2
-
x1)
Dz(x2) = Rz(x2) <=>
2z = w1 x12 + w2
x22 <=> 2z = w2 (x22
-x12 ) = w2 (x2 - x1)(x2
+
x1) = x2
+ x1
Dz(x3) = Rz(x3) <=>
3z2 = w1 x13 + w2
x23 <=> 3z2 = w2
(x23 - x13) = w2
(x2 - x1)(x2
2+ x2
x1+ x12) = x2
2+
x2 x1+ x12
Da 3ª.equação, 4z2 = (x2 +x1)2
= x2
2+ 2 x2 x1+ x12,
e obtemos (subtraindo da 4ª), z2 = x2 x1.
Ainda pela 4ª.equação, 3 x2 x1 =
x2
2+ x2 x1+ x12
implica
0 = x2
2 - 2x2 x1+ x12
= (x2 - x1)2, ou seja x2 =
x1.
Conclui-se, pela 2ª.equação, 1 = w2(x2
-
x1) = 0, uma impossibilidade!
Assim, não é possível obter uma fórmula
de grau 3 com apenas 2 nós.
Apenas será possível encontrar uma fórmula de
grau 2, desde que se verifique
Rz(f ) = | f(z+h) - f(z-h)
2h |
= f [z-h, z+h] |
Neste caso temos uma aproximação com uma diferença centrada.
Dz2(1) = Rz(1) <=> 0
= w1 + w2 + w3
Dz2(x) = Rz(x) <=>
0 = w1
x1
+ w2 x2 + w3
x3 = w1
z+ w2(z-h) + w3 (z+h)
= - w2 + w3 <=> w2
= w3
Dz2(x2) = Rz(x2)
<=> 2 = w1 x12 + w2
x22 + w3 x32 = -2w2
z2+
w2 (z-h)2 + w2 (z+h)2 = 2 w2
h2 <=> w2 = 1/h2
Portanto, w3 = w2 = 1/h2, w1 = -2/h2, e podemos obter uma fórmula com pelo menos grau 2 para aproximar a segunda derivada:
Rz(f ) = | f(z+h) - 2f(z) + f(z-h)
h2 |
= 2 f [z-h, z, z+h] |
Esta aproximação da segunda derivada é considerada uma aproximação com diferenças centradas.
Dedução do erro na derivação
numérica.
Através da expansão em série de Taylor, podemos
obter uma fórmula de erro para as aproximações que
obtivémos anteriormente.
(1) Começamos pela fórmula do Exemplo 1, que é
uma fórmula de grau 1, que aproxima a primeira derivada.
Como habitualmente, o erro é definido por
E(f ) = Dz(f )-Rz(f ).
Admitindo que f ÎC2,
pela série de Taylor com resto de Lagrange obtemos
f (z+h) = f (z) + f '(z) h + f ''(x)
h2/2
e portanto dividindo por h,
(f (z+h) - f (z))/h - f '(z) = f ''(x)
h/2, ou seja,
E(f ) = Dz(f )-Rz(f ) = f '(z) - f [z, z+h] = - f ''(x) h/2 .
De facto, através da expansão em série de Taylor
podemos deduzir as fórmulas, e obter imediatamente uma estimativa
de erro, através do resto de Lagrange.
Repare-se que f '' = 0 garante erro nulo, ou seja, a fórmula
é exacta para polinómios de grau 1.
(2) De forma semelhante para a fórmula do Exemplo 2, uma
fórmula de grau 2 que aproxima a primeira derivada, obtemos para
f
ÎC3,
f (z+h) = f (z) + f '(z) h + f ''(z)
h2/2 + f '''(x+)
h3/6
f (z-h) = f (z) - f '(z) h + f ''(z) h2/2
- f '''(x-) h3/6
e subtraindo
f (z+h) - f (z-h) = 2 f '(z) h + f '''(x+)
h3/6 + f '''(x-)
h3/6.
Pelo Teorema do Valor Intermédio, existe x
tal
que (f '''(x+)+f
'''(x-))/2
= f '''(x).
Logo, dividindo por 2h,
(f (z+h) - f (z-h)) / (2h) = f '(z) + f
'''(x)
h2/6, ou seja,
E(f ) = Dz(f )-Rz(f ) = f '(z) - f [z-h, z+h] = - f '''(x) h2/6 .
Também aqui podemos reparar que f ''' = 0 garante erro nulo, ou seja, a fórmula é exacta para polinómios de grau 2.
(3) Terminamos com o erro para a fórmula do Exemplo 3,
a fórmula com pelo menos grau 2 que aproxima a segunda derivada.
Obtemos para f ÎC4,
f (z+h) = f (z) + f '(z) h + f ''(z)
h2/2 + f '''(z) h3/6 + f (4)(x+)
h4/24
f (z-h) = f (z) - f '(z) h + f ''(z) h2/2
- f '''(z) h3/6 + f (4)(x-)
h4/24
e somando ambas,
f (z+h) + f (z-h) = 2 f (z) + f ''(z)
h2 + ( f (4)(x+)
+ f (4)(x-)) h4/24.
Aplicando o T. V. Intermédio e dividindo por h2,
obtemos
(f (z+h) + f (z-h) - 2 f (z))/ h2 =
f
''(z)
+ f (4)(x) h2/12,
ou seja,
E(f ) = Dz(f )-Rz(f ) = f ''(z) -2 f [z-h, z, z+h] = - f (4)(x) h2/12.
Repararamos agora que f (4) = 0 garante erro nulo, ou seja, a fórmula é exacta mesmo para polinómios de grau 3.