A maior rede de estudos do Brasil

Grátis
217 pág.
NotasdeAula_CN

Pré-visualização | Página 27 de 38

Habitantes 17, 4 30, 6 41, 2 70, 2 119, 9
Determine a equação logística P (t) do crescimento populacional que melhor
se ajusta à tabela, sendo:
P (t) =
500
1 + aebt
.
Qual a estimativa de população para o ano 2000?
Capítulo 7
MÉTODOS DE DERIVAÇÃO
NUMÉRICA
O objetivo deste capítulo é apresentar algumas técnicas para derivação numéri-
ca de funções, das quais são conhecidos apenas pontos discretos ou mesmo quando
desejamos obter apenas uma aproximação numérica. Em outras palavras, na
primeira situação, não temos a função e sim uma tabela de pontos, e na segunda
conhecemos a função, mas por alguma razão necessitamos de uma aproxima-
ção, como acontece, por exemplo, nos métodos de otimização, ou na solução de
equações diferenciais parciais.
7.1 Aproximação da derivada por diferenças
Seja f uma função, e vamos assumir que o valor da função f é conhecido para
os pontos (x0−h, f(x0−h)), (x0, f(x0)) e (x0+h, f(x0+h)). Com esses pontos,
gostaríamos de obter uma aproximação para o valor da derivada de f(x) no ponto
x0, isto é, f
′(x0).
Podemos estimar o valor da derivada pela inclinação da reta tangente no
ponto x0. Assim, em x0 podemos aproximar a derivada, considerando o valor de
h pequeno, por meio da razão incremental,
f ′(x0) ≈ f(x0 + h)− f(x0)
h
+ ET (f, h), (7.1)
onde ET corresponde ao erro de truncamento.
A aproximação dada pela equação (7.1) é conhecida como diferença progressiva
ou posterior, uma vez que para obtermos a estimativa no ponto x0 utilizamos o
ponto posterior a este. Denotamos esta derivada por D+(h).
Por outro lado, a aproximação poderia ser tomada, considerando a razão
incremental:
154 cálculo numérico
f ′(x0) ≈ f(x0)− f(x0 − h)
h
+ ET (f, h). (7.2)
Nesse caso, a equação (7.2) é uma aproximação da derivada em x0 pela es-
querda, conhecida como diferença regressiva ou anterior e denotada por D−(h).
Alternativamente, quando o valor de h é pequeno, podemos considerar uma
nova aproximação da derivada de f(x) no ponto x0 por meio da reta que passa
pelos pontos (x0 − h, f(x0 − h)) e (x0 + h, f(x0 + h)), resultando na diferença:
f ′(x0) ≈ f(x0 + h)− f(x0 − h)
2h
+ ET (f, h). (7.3)
Essa aproximação da derivada é conhecida como diferença central e deno-
tada por D0(h). A derivada central é uma medida da média entre as derivadas
regressiva e progressiva.
Para obtermos o erro de truncamento devido à aproximação pela diferença
central, vamos considerar a expansão da função f em uma série de Taylor para
f(x+ h) e f(x− h):
f(x+ h) = f(x) + f ′(x)h+
f ′′(x)h2
2
+
f ′′′(x)h3
6
+ · · · , (7.4)
e
f(x− h) = f(x)− f ′(x)h+ f
′′(x)h2
2
− f
′′′(x)h3
6
+ · · · . (7.5)
Subtraindo (7.5) de (7.4), obtemos:
f(x+ h)− f(x− h) = 2f ′(x)h+ 2f
′′′(x)h3
6
+ · · · . (7.6)
Se truncarmos a expressão anterior a partir da derivada terceira, e usando o
teorema de Taylor, temos que existe uma valor λ tal que |x − λ| < h de forma
que:
f(x+ h)− f(x− h) = 2f ′(x)h+ 2f
′′′(λ)h3
6
. (7.7)
Resolvendo a equação (7.7) para f ′(x), obtemos:
f ′(x) =
f(x+ h)− f(x− h)
2h
− h
2f ′′′(λ)
6
. (7.8)
O primeiro termo à direita da equação (7.8) corresponde à diferença central, e
o segundo termo, corresponde ao erro de truncamento ET (f, h) =
h2f ′′′(λ)
6
, o qual
tende a zero quando h→ 0.
métodos de derivação numérica 155
De maneira geral, o que desejamos saber é se a aproximação é boa. Essa
questão pode ser vista de outra forma. Ou seja, dada uma função f, para que
valor de h podemos dizer que a aproximação f ′(x0) é boa? A resposta é obtida
em termos de uma tolerância, em que, para uma seqüência de valores da diferença
central D0(hk), com k = 1, . . ., tivermos
|D0(hk+1)−D0(hk)| ≤ �. (7.9)
Na equação (7.9), a aproximação foi realizada considerando-se a diferença
central, no entanto podemos considerar, da mesma forma, as aproximações para
os demais casos das diferenças progressiva ou regressiva.
Exemplo 7.1 Seja f(x) = ex e o ponto x0 = 1. Determine o valor da derivada
da função no ponto x0 considerando a diferença central, assumindo hk = 12
−k
,
para k = 1, 2, 3. Se considerarmos uma tolerância � = 10−3, podemos garantir se
esta é alcançada com 3 iterações?
Solução: Para o valor de k = 1, temos que o passo é h1 = 1/12. Assim temos
D0(h1) =
e1+1/12 − e1−1/12
2 · 1/12 =
2.954511527− 2.500940013
1/6
= 2.721429080.
Para k = 2, temos h2 = 1/12
2 = 1/144. Agora,
D0(h2) =
e1+1/144 − e1−1/144
2 · 1/144 =
2.954511527− 2.500940013
1/72
= 2.718303676.
Para k = 3, temos h3 = 1/12
3 = 1/1728. Agora,
D0(h3) =
e1+1/1728 − e1−1/1728
2 · 1/1728 =
2.719855363− 2.716709203
1/864
= 2.718282012.
Para veri�carmos se a tolerância desejada já foi alcançada, tomamos |D0(h3)−
D0(h2)| = 2.166478807·10−5, o que mostra que a mesma foi alcançada na iteração
k = 3.
7.2 Aproximação por polinômios interpoladores
Suponha que conhecemos a tabela de pontos (xi, yi = f(xi)), i = 0, . . . , n, com
(n+1) pontos. Vimos no Capítulo 5, sobre interpolação, que podemos aproximar
a função f(x) pelo polinômio interpolador Pn(x). Então, é possível aproximarmos
a derivada da função f(x) por:
156 cálculo numérico
f ′(x) ∼= P ′n(x).
Se Pn(x) é o polinômio interpolador, o erro gerado pela interpolação é dado
por:
ET (x) = f(x)− Pn(x) = 1
(n+ 1)!
ϕ(x)f (n+1)(λ), λ ∈ [x0, xn],
onde ϕ(x) = (x − x0)(x − x1) · · · (x − xn). Então, a estimativa do erro para a
derivada é:
E ′T (x) = f
′(x)− P ′n(x)
=
1
(n+ 1)!
f (n+1)(λ)ϕ′(x), x = xi, λ ∈ [x0, xn].
Quando o espaçamento entre os pontos da tabela é uma constante h, o po-
linômio interpolador escolhido é um polinômio de Gregory-Newton,
Pn(z) = y0 +
z
1!
4y0 + z(z − 1)
2!
42y0 + . . .+
z(z − 1) . . . [z − (n− 1)]
n!
4ny0,
com xi+1 − xi = h e z = x−x0h .
Vamos considerar inicialmente o caso em que o polinômio interpolador é linear,
temos que:
P1(z) = y0 + z4y0,
e como f ′(x) = dz
dx
df
dz
= 1
h
df
dz
, obtemos:
f ′(x0) ∼= 1
h
dP1(z)
dz
=
1
h
4y0 = y1 − y0
h
.
Vemos que esse resultado corresponde à diferença progressiva da equação (7.1).
Fazendo o mesmo para o erro de truncamento, obtemos, neste caso:
ET (x) =
h
2
f ′′(λ), λ ∈ [x0, x1]. (7.10)
Observe que não sabemos nem o valor do ponto λ, nem a derivada segunda,
mas da expressão (7.10) vemos que o erro de truncamento é da ordem O(h). Se o
valor da derivada segunda não variar muito no intervalo, podemos reduzir o erro
pela metade tomando um novo valor de h como sendo h/2, e assim sucessivamente.
métodos de derivação numérica 157
Podemos considerar o mesmo procedimento, tomando agora polinômios de
ordem superior. No caso do polinômio de segunda ordem P2(z), obtemos para a
derivada de primeira ordem no ponto x0:
P2(z) = y0 + z4y0 + 1
2
z(z − 1)42y0
⇒ f ′(x) = 1
h
[4y0 + 1
2
(2z − 1)42y0]. (7.11)
Agora, considerando x = x0, obtemos z = 0, e então
f ′(x0) ∼= 1
2h
(4y1 − 3y0 − y2). (7.12)
Se desejarmos estimar a deriva no ponto x = x1, teremos z = 1 e então da
expressão (7.11) obtemos:
f ′(x1) ∼= 1
2h
(y2 − y0). (7.13)
Por �m, ainda podemos estimar a derivada primeira no ponto x = x2, onde
z = 2, resultando em
f ′(x2) ∼= 1
2h
(y0 − 4y1 + y2). (7.14)
Note que o resultado da deriva no ponto x = x0 é equivalente a tomarmos a
diferença progressiva para três pontos. É possível estimarmos a derivida primeira
em um ponto qualquer da tabela, ou seja, x ∈ [x0, x2] considerando o valor de
z = x−x0
h
.
Após alguma manipulação, podemos veri�car que o erro de truncamento para
a derivada primeira no ponto x0 é dado por:
ET (x) =
h2
3
f ′′′(λ), λ ∈ [x0, x2].
Veja que agora o erro é da ordem O(h2). Note que podemos ainda obter a
derivada primeira com base nos polinômios de ordens superiores.
Exercício 7.1 Deduza