Sunteți pe pagina 1din 28

Derivação e Integração Numérica

1 Derivação Numérica
( )
Dado um conjunto de pontos (xi , yi )ni=1 , a derivada dx
dy
i
pode ser calculada de várias formas. Na próxima
seção trabalharemos com diferenças nitas, que é mais adequada quando as abcissas estão próximas e os dados
não sofrem perturbações signicativas. Na seção subsequente trataremos os casos quando os dados oscilam
via ajuste ou interpolações de curvas.

1.1 Aproximação da derivada por diferenças nitas


A derivada f ′ (x0 ) de uma função f (x) no ponto x0 é
f (x0 + h) − f (x0 )
f ′ (x0 ) = lim .
h→0 h
Da denição, se h ̸= 0 é pequeno (não muito pequeno para evitar o cancelamento catastróco), é esperado
que uma aproximação para a derivada no ponto x0 seja dada por
f (x0 + h) − f (x0 )
f ′ (x0 ) ≈ .
h
Observe que se h for exatamente a distância entre x0 e x1 , então x0 + h = x1 e
f (x1 ) − f (x0 ) y1 − y0
f ′ (x0 ) ≈ = .
h h
Exemplo 1. Calcule a derivada numérica da função f (x) = cos(x) no ponto x = 1 usando h = 0.1, h = 0.01,
h = 0.001 e h = 0.0001.
A tabela abaixo mostra a derivada numérica para cada valor de h.
f (1 + h) − f (1)
h f (1 + h)
h
0.4535961 − 0.5403023
0.1 f (1.1) = cos(1.1) = 0.4535961 = −0.8670618
0.1
0.5318607 − 0.5403023
0.01 f (1.01) = cos(1.01) = 0.4535961 = −0.8441584
0.01
0.5403023 − 0.5403023
0.001 f (1.001) = cos(1.001) = 0.4535961 = −0.841741
0.001
0.5403023 − 0.5403023
0.0001 f (1.0001) = cos(1.0001) = 0.4535961 = −0.841498
0.0001
Observe que quanto menor h, melhor é a aproximação, visto que o valor exato para a derivada é f ′ (1) =
− sin(1) = −0.8414710. Porém, quando h = 10−13 , a derivada numérica é −0.8404388, resultado pior que
aquele para h = 0.0001 (usando aritmética de computador no scilab). Além disso, quando h = 10−16 , a
derivada numérica calculada no scilab é zero (cancelamento catastróco). Isso nos motiva a pensar qual é o
melhor h.
Essa aproximação para a derivada é denominada diferenças progressivas. A derivada numérica também
pode ser aproximada usando denições equivalentes:
f (x0 ) − f (x0 − h) yi − yi−1
f ′ (x0 ) ≈ =
h h
1
que é denominada diferenças regressivas ou
f (x0 + h) − f (x0 − h) yi+1 − yi−1
f ′ (x0 ) ≈ =
2h 2h
que é denominada diferenças centrais.
Exemplo 2. Calcule a derivada numérica da função f (x) = cos(x) no ponto x = 1 usando diferenças
progressivas, diferenças regressivas e diferenças centrais com h = 0.1, h = 0.01 e h = 0.001.
A tabela abaixo mostra a derivada numérica para cada valor de h.

h diferenças progressivas diferenças regressivas diferenças centrais


cos(1) − cos(0.9) cos(1.1) − cos(0.9)
0.1 −0.8670618 = −0.8130766 = −0.8412007
0.1 0.2
cos(1) − cos(0.99) cos(1.01) − cos(0.99)
0.01 −0.8441584 = −0.8387555 = −0.8414570
0.01 0.02
cos(1) − cos(0.999) cos(1.001) − cos(0.999)
0.001 −0.841741 = −0.8412007 = −0.8414708
0.001 0.002

1.2 Erros de truncamento


Seja D+,h f (x0 ) a aproximação da derivada de f em x0 por diferenças progressivas, D−,h f (x0 ) a aproximação
por diferenças regressivas e D0,h f (x0 ) a aproximação por diferenças centrais, então
f (x0 + h) − f (x0 )
D+,h f (x0 ) − f ′ (x0 ) = − f ′ (x0 )
h
f (x0 ) + hf ′ (x0 ) + h2 f ′′ (x0 ) + O(h3 ) − f (x0 )
2

= − f ′ (x0 )
h
h ′′
= f (x0 ) + O(h2 ) = O(h).
2

Analogamente,
f (x0 ) − f (x0 − h)
D−,h f (x0 ) − f ′ (x0 ) = − f ′ (x0 )
h
( )
f (x0 ) − f (x0 ) − hf ′ (x0 ) + h2 ′′
2
f (x0 ) + O(h3 )
= − f ′ (x0 )
h
h
= − f ′′ (x0 ) + O(h2 ) = O(h).
2

Também,
f (x0 + h) − f (x0 − h)
D0,h f (x0 ) − f ′ (x0 ) = − f ′ (x0 )
2h ( )
f (x0 ) + hf ′ (x0 ) + h2 f ′′ (x0 ) + O(h3 ) − f (x0 ) − hf ′ (x0 ) + h2 ′′
2
2
f (x0 ) + O(h3 )
= − f ′ (x0 )
2h
= O(h2 ).

2
Exemplo 3. Calcule a derivada numérica e o erro de truncamento de f (x) = e−x em x = 1.5 pela fórmula
de diferença progressiva para h = 0.1, h = 0.01 e h = 0.001.
Como |f ′′ (x)| = |e−x | < 1, então |f+′ (x0 ) − f ′ (x0 )| < h2 .
h diferenças progressivas erro = h2
0.1 −0.2123364 0.05
0.01 −0.2220182 0.005
0.001 −0.2230186 0.0005
O valor exato da derivada é f ′ (1.5) = −0.2231302.

1.3 Erros de arredondamento


Para entender como os erros de arredondamento se propagam ao calcular as derivadas numéricas vamos
considerar o operador de diferenças nitas progressivas
f (x + h) − f (x)
D+,h f (x) = .
h
Nesse contexto temos o valor exato f ′ (x) para a derivada, a sua aproximação numérica D+,h f (x) e a repre-
sentação em número de máquina do operador D+,h f (x) que denoraremos por D+,h f (x). Seja ε(x, h) o erro
de arredondamento ao calcularmos a derivada e consideremos
f (x + h) − f (x)
D+,h f (x) = D+,h f (x)(1 + ε(x, h)) = (1 + ε(x, h)).
h
Também, consideremos
|f (x + h) − f (x + h)| = δ(x, h) ≤ δ
e
|f (x) − f (x)| = δ(x, 0) ≤ δ,
onde f (x + h) e f (x) são as representação em ponto utuante dos números f (x + h) e f (x), respectivamente.
A diferença do valor da derivada e sua aproximação representada em ponto utuante pode ser estimada da
seguinte forma:


′ f (x + h) f (x)
f (x) − D+,h f (x) = f ′ (x) − (1 + ε(x, h))
h
( )
− − −
f (x + h) f (x) f (x + h) f (x + h) f (x) f (x)
= f ′ (x) − + + (1 + ε)
h h h
( )
− − −
f (x + h) f (x) f (x + h) f (x + h) f (x) f (x)
= f ′ (x) + − − + (1 + ε)
h h h
( )
′ f (x + h) − f (x) f (x + h) − f (x + h) f (x) − f (x)

≤ f (x) − + + |1 + ε|
h h h

f (x + h) − f (x)
+ ε

h
( )
δ δ
≤ M h + + |1 + ε| + |f ′ (x)|ε
h h
( )

≤ Mh + |1 + ε| + |f ′ (x)|ε
h

3
onde
1
M= max |f ′′ (y)|
2 x≤y≤x+h
está relacionado com o erro de truncamento.
Esta estimativa mostra que se o valor de h for muito pequeno o erro ao calcular a aproximação numérica
cresce. Isso nos motiva a procurar o valor ótimo de h que minimiza o erro.
Exemplo 4. Estude o comportamento da derivada de f (x) = e−x no ponto x = 1.5 quando h ca pequeno.
2

Segue a tabela com os valores da derivada para vários valores de h.


h 10−2 10−4 10−6 10−7 10−8 10−9
D+,h f (1.5) −0.3125246 −0.3161608 −0.3161973 −0.3161976 −0.3161977 −0.3161977

h 10−10 10−11 10−12 10−13 10−14 10−15


D+,h f (1.5) −0.3161976 −0.3161971 −0.3162332 −0.3158585 −0.3178013 −0.3747003
Observe que o valor exato é −0.3161977 e o h ótimo é algo entre 10−8 e 10−9 .

1.4 Fórmula de três e cinco pontos para a derivada primeira


Para aproximar a derivada de uma função f (x) em x0 , x1 ou x2 usaremos os três pontos vizinhos (x0 , f (x0 )),
(x1 , f (x1 )) e (x2 , f (x2 )). Uma interpolação usando polinômios de Lagrange para esses três pontos é da forma:
(x − x1 )(x − x2 ) (x − x0 )(x − x2 ) (x − x0 )(x − x1 )
f (x) = f (x0 ) + f (x1 ) + f (x2 )
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )
′′′
f (ξ(x))
+ (x − x0 )(x − x1 )(x − x2 ).
6
A derivada de f (x) é
2x − x1 − x2 2x − x0 − x2 2x − x0 − x1
f ′ (x) = f (x0 ) + f (x1 ) + f (x2 )
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )
′′′
f (ξ(x))
+ ((x − x1 )(x − x2 ) + (x − x0 )(2x − x1 − x2 ))
(6 ′′′ )
f (ξ(x))
+ Dx (x − x0 )(x − x1 )(x − x2 ). (1)
6
Trocando x por x0 , temos
2x0 − x1 − x2 2x0 − x0 − x2 2x0 − x0 − x1
f ′ (x0 ) = f (x0 ) + f (x1 ) + f (x2 )
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )
′′′
f (ξ(x0 ))
+ ((x0 − x1 )(x0 − x2 ) + (x0 − x0 )(2x0 − x1 − x2 ))
(6 ′′′ )
f (ξ(x0 ))
+ Dx (x0 − x0 )(x0 − x1 )(x0 − x2 ).
6
Considerando uma malha equiespaçada onde x1 = x0 + h e x2 = x0 + 2h, temos:
−3h −2h −h f ′′′ (ξ(x0 ))
f ′ (x0 ) = f (x0 ) + f (x1 ) + f (x2 ) + ((−h)(−2h))
(−h)(−2h) (h)(−h) (2h)(h) 6
[ ] ′′′
1 3 1 2 f (ξ(x0 ))
= − f (x0 ) + 2f (x1 ) − f (x2 ) + h
h 2 2 3

4
Similarmente, trocando x por x1 ou trocando x por x2 na expressão (1), temos outras duas expressões
[ ]
′ 1 1 1 f ′′′ (ξ(x1 ))
f (x1 ) = − f (x0 ) + f (x2 ) + h2
h 2 2 6
[ ]
1 1 3 f ′′′ (ξ(x2 ))
f ′ (x2 ) = f (x0 ) − 2f (x1 ) + f (x2 ) + h2
h 2 2 3
Podemos reescrever as três fórmulas da seguinte forma:
[ ]
′ 1 3 1 f ′′′ (ξ(x0 ))
f (x0 ) = − f (x0 ) + 2f (x0 + h) − f (x0 + 2h) + h2
h 2 2 3
[ ] ′′′
1 1 1 f (ξ(x0 + h))
f ′ (x0 + h) = − f (x0 ) + f (x0 + 2h) + h2
h 2 2 6
[ ]
1 1 3 f ′′′ (ξ(x0 + 2h))
f ′ (x0 + 2h) = f (x0 ) − 2f (x0 + h) + f (x0 + 2h) + h2
h 2 2 3
ou ainda
1 f ′′′ (ξ(x0 ))
f ′ (x0 ) = [−3f (x0 ) + 4f (x0 + h) − f (x0 + 2h)] + h2 (2)
2h 3
′′′
1 f (ξ(x0 ))
f ′ (x0 ) = [f (x0 + h) − f (x0 − h)] + h2 (3)
2h 6
1 f ′′′ (ξ(x0 ))
f ′ (x0 ) = [f (x0 − 2h) − 4f (x0 − h) + 3f (x0 )] + h2 (4)
2h 3
Observe que uma das fórmulas é exatamente as diferenças centrais obtida anteriormente.
Analogamente, para construir as fórmulas de cinco pontos tomamos o polinômio de Lagrange para cinco
pontos e chegamos a cinco fórmulas, sendo uma delas a seguinte:
1 h4
f ′ (x0 ) = [f (x0 − 2h) − 8f (x0 − h) + 8f (x0 + h) − f (x0 + 2h)] + f (5) (ξ(x0 )) (5)
12h 30
Exemplo 5. Calcule a derivada numérica de f (x) = e−x em x = 1.5 pela fórmula de três e cinco pontos
2

para h = 0.1, h = 0.01 e h = 0.001.


A tabela mostra os resultados:
h h = 0.1 h = 0.01 h = 0.001
diferenças progressivas −0.2809448 −0.3125246 −0.3158289
diferenças regressivas −0.3545920 −0.3199024 −0.3165667
três pontos usando (2) −0.3127746 −0.3161657 −0.3161974
três pontos usando (3) −0.3177684 −0.3162135 −0.3161978
três pontos usando (4) −0.3135824 −0.3161665 −0.3161974
cinco pontos usando (5) −0.3162384 −0.316197677 −0.3161976736860

O valor exato da derivada é f ′ (1.5) = −0.3161976736856.

1.5 Aproximação para a derivada segunda por diferenças centrais


Para aproximar a derivada segunda, considere as expansões em série de Taylor
h2 ′′ h3
f (x0 + h) = f (x0 ) + hf ′ (x0 ) + f (x0 ) + f ′′′ (x0 ) + O(h4 )
2 6
5
′ h2 ′′ h3 ′′′
f (x0 − h) = f (x0 ) − hf (x0 ) + f (x0 ) − f (x0 ) + O(h4 ).
2 6
Somando as duas expressões, temos:

f (x0 + h) + f (x0 − h) = 2f (x0 ) + h2 f ′′ (x0 ) + O(h4 )

ou seja, uma aproximação de segunda ordem para a derivada segunda em x0 é


f (x0 + h) − 2f (x0 ) + f (x0 − h)
f ′′ (x0 ) = + O(h2 ) := D0,h
2
f (x0 ) + O(h2 ),
h2
onde
2 f (x0 + h) − 2f (x0 ) + f (x0 − h)
D0,h f (x0 ) = .
h2
Exemplo 6. Calcule a derivada segunda numérica de f (x) = e−x em x = 1.5 para h = 0.1, h = 0.01 e
2

h = 0.001.

A tabela mostra os resultados:


h h = 0.1 h = 0.01 h = 0.001
2
D0,h f (1.5) 0.7364712 0.7377814 0.7377944

Observe que f ′′ (x) = (4x2 − 2)e−x e f ′′ (1.5) = 0.7377946.


2

1.6 Problemas de valor contorno


Nesta seção usaremos a aproximação numérica da derivada para resolver problemas de valor de contorno da
forma 
 −uxx = f (x, u), a < x < b.
u(a) = ua

u(b) = ub
Resolver numericamente o problema acima exige uma discretização do domínio [a, b], ou seja, dividir o domínio
em N partes iguais, denindo
b−a
h=
N
O conjunto de abcissas xi , i = 1, ..., N + 1 formam uma malha para o problema discreto. Nosso objetivo é
encontrar as ordenadas ui = u(xi ) que satisfazem a versão discreta:
 ui+1 −2ui +ui−1
 − h2
= f (xi , ui ), 2 ≤ i ≤ N.
u1 = ua

uN +1 = ub

O vetor solução (ui )N


i=1 do problema é solução do sistema acima, que é linear se f for linear em u e não linear
+1

caso contrário.
Exemplo 7. Encontre uma solução numérica para o problema de contorno

 −uxx + u = e−x , 0 < x < 1.
u(0) = 1

u(1) = 2

6
Observe que
1
h=
N
e a versão discreta da equação é
 ui+1 −2ui +ui−1
 − h2
+ ui = e−xi , 2 ≤ i ≤ N.
u =1
 1
uN +1 = 2
ou seja, 
 u1 = 1
−ui+1 + (2 + h2 )ui − ui−1 = h2 e−xi , 2 ≤ i ≤ N.

uN +1 = 2
que é um sistema linear. A sua forma matricial é:
    
1 0 0 ··· 0 0 0 u1 1
 −1 2 + h2 −1 ··· 0 0 0  u2   h2 e−x2 
    
 0 −1 2 + h ···
2
0 0 0  u3   h2 e−x3 
    
 .. ...   .. = .. 
 .  .   
    2 .−x 
 0 0 0 ··· −1 2 + h2 −1   uN   he N 
0 0 0 ··· 0 0 1 uN +1 2
Para N = 10, temos a seguinte solução:  
1.
 1.0735083 
 
 1.1487032 
 
 1.2271979 
 
 1.3105564 
 
 1.4003172 
 
 1.4980159 
 
 1.6052067 
 
 1.7234836 
 
 1.8545022 
2

1.7 Derivada via ajuste ou interpolação


( )
Dado os valores de uma função em pontos {(xi , yi )}N i=1 , as derivadas dx i podem ser obtidas através da
dy

derivada de uma curva que melhor ajusta ou interpola os pontos. Esse tipo de técnica é necessário quando
os pontos são muito espaçados entre si ou quando a função oscila muito. Por exemplo, dado os pontos (0, 1),
(1, 2), (2, 5), (3, 9), a parábola que melhor ajusta os pontos é
Q(x) = 0.95 + 0.45x + 0.75x2 .
Usando esse ajuste para calcular as derivadas, temos
Q′ (x) = 0.45 + 1.5x
e
y ′ (x1 ) ≈ Q′ (x1 ) = 0.45, y ′ (x2 ) ≈ Q′ (x2 ) = 1.95,
y ′ (x3 ) ≈ Q′ (x3 ) = 3.45 e y ′ (x4 ) ≈ Q′ (x4 ) = 4.95

7
Agora olhe o gráco da seguinte tabela de pontos.
x y
0. 1.95
1 1.67
2 3.71
3 3.37
4 5.12
5 5.79
6 7.50
7 7.55
8 9.33
9 9.41
10 11.48

Observe que as derivadas calculadas por diferenças nitas oscilam entre um valor pequeno e um grande
em cada intervalo e além disso, a fórmula progressiva difere da regressiva signicantemente. Por exemplo,
por diferenças regressivas f ′ (7) ≈ (7.55−7.50)
1
= 0.05 e por diferenças progressivas f ′ (7) ≈ (9.33−7.55)
1
= 1.78. A
melhor forma de calcular a derivada aqui é fazer um ajuste de curva. A reta que melhor ajusta os dados da
tabela é y = f (x) = 1.2522727 + 0.9655455x. Usando esse ajuste, temos f ′ (7) ≈ 0.9655455.

2 Integração

2.1 Introdução
Considere o problema de calcular a área entre uma função positiva, o eixo x e as retas x = a e x = b. O valor
exato dessa área é calculada fazendo uma aproximação por retângulos com bases iguais e depois tomando o
limite quando o número de retãngulos tende ao innito:

n
A = lim f (xi )hn ,
n→∞
i=1

8
onde hn = b−a
n
é o tamnho da base dos retângulo e f (xi ), 1 ≤ i ≤ n, a + (i − 1)h ≤ xi ≤ a + ih, é a altura
dos retângulos. Essa denição é generalizada para cálculo de integrais num intervalo [a, b]:
∫ b ∑
n
f (x)dx = lim f (xi )hn .
a n→∞
i=1

A gura abaixo mostra um exemplo quando f (x) = x2 +1, 0 ≤ x ≤ 2. Temos a aproximação por um retângulo
com base h1 = 2, depois com dois retângulos de base h2 = 1 e, nalmente com quatro retângulo de bases
h3 = 0.5.

Os valores aproximados para a integral são dados na tabela:


h1 = 2 h2 = 1 h3 = 0.5 h4 = 0.25
∫2 2
0
(x + 1)dx h1 f (1) = 4 h2 f (0.5) + h2 f (1.5) = 4.5 4.625 4.65625

Observe que ]2 [
∫ 2
2 x3 8
(x + 1)dx = + x = + 2 = 4.6666667
0 3 0 3

2.2 Regras de Integração Numérica


A integral de uma função num intervalo [a, b], também chamada de quadratura numérica, é aproximada pela
soma ∫ n b ∑
f (x)dx ≈ ai f (xi ),
a i=1

onde xi , 1 ≤ i ≤ n, são pontos distintos do intervalo [a, b]. Nessa denição, a integral 02 (x2 + 1)dx (dada na
seção 2.1) usando uma aproximação por retângulo usa apenas um ponto, o ponto médio do intervalo (x1 = 1),
e a soma se reduz a uma parcela ((2 − 0)f (1)). A fórmula geral para essa caso, chamado de regra do ponto
médio é: ∫ ( )
b
a+b
f (x)dx ≈ (b − a)f := hf (x1 ). (6)
a 2

9
A forma natural de obter as regras de integração é usar o polinômio de Lagrange que passa pelo pontos
{(xi , f (xi ))}ni=1

n ∏
n
f (n+1) (ξ(x))
f (x) = Pn (x) + termo de erro = f (xi )Li (x) + (x − xi ) .
i=1 i=1
(n + 1)!

e integramos
∫ b n [
∑ ∫ b ] ∫ b∏
n
1
f (x)dx = f (xi ) Li (x)dx + (x − xi )f (n+1) (ξ(x))dx.
a i=1 a (n + 1)! a i=1

A fórmula de quadratura então é


∫ b ∑
n
f (x)dx ≈ ai f (xi ),
a i=1
onde ∫ b
ai = Li (x)dx
a

2.2.1 Regra do ponto médio


A regra do ponto médio (6) pode ser deduzida mais formalmente usando a expansão de Taylor
f ′′ (ξ(x))
f (x) = f (x1 ) + f ′ (x1 )(x − x1 ) + (x − x1 )2
2
que leva a integral
∫ ∫ ∫ ∫
b b

b b
f ′′ (ξ(x))
f (x)dx = f (x1 )dx + f (x1 ) (x − x1 )dx + (x − x1 )2 dx.
a a a a 2
Usando o teorema do valor médio para integrais e que h = b − a e x1 = (a + b)/2, temos:
∫ b ∫ b b ∫
′ 1 ′′
f (x)dx = hf (x1 )dx + f (x1 ) (x − x1 )dx + f (η) (x − x1 )2 dx.
a a a 2
[ ]b [ ]b
′ (x − x1 )2 ′′ 1
= hf (x1 ) + f (η) + f (η) (x − x1 ) 3
2 6
[ a
] [a ]
′ (b − x1 ) 2
(a − x1 )2
′′ 1 1
= hf (x1 ) + f (η) − + f (η) (b − x1 ) − (a − x1 )
3 3
2 2 6 6
3 ′′
h f (η)
= hf (x1 ) + .
3
para a ≤ η ≤ b.
Exemplo 8. Use a regra do ponto médio para aproximar a integral
∫ 1
e−x dx.
2

Depois divida a integral em duas ∫ ∫


1/2 1
−x2
e−x dx.
2
e dx +
0 1/2

e aplica a regra do ponto médio em cada uma delas. Finalmente, repita o processo dividindo em quatro
integrais.

10
Usando o intervalo [0, 1], temos h = 1 e x1 = 1/2. A regra do ponto médio resulta em
∫ 1
e−x dx ≈ 1 · e−1/4 = 0.7788008
2

Usando dois intervalos, [0, 1/2] e [1/2, 1] e usando a regra do ponto médio em cada um dos intervalos, temos:
∫ 1
e−x dx ≈ 0.5 · e−1/16 + 0.5 · e−9/16 ) = 0.4697065 + 0.2848914 = 0.7545979
2

Agora, usando quatro intervalos, temos


∫ 1
e−x dx ≈ 0.25 · e−1/64 + 0.25 · e−9/64 + 0.25 · e−25/64 + 0.25 · e−49/64 = 0.7487471
2

Observe que o valor da integral é ∫ 1


e−x dx = 0.7468241330.
2

2.2.2 Regra do Trapézio


A regra do trapézio consiste em aproximar a integral por um trapézio em vez de um retângulo, como zemos.
Para isso, o polinômio de Lagrange deve ser uma reta, como mostra a gura.

O polinômio de Lagrange de primeira ordem que passa por (x0 , f (x0 )) := (a, f (a)) e (x1 , f (x1 )) := (b, f (b))
é dado por
(x − x0 ) (x − x1 ) (x − x0 ) (x − x1 )
P1 (x) = f (x0 ) + f (x1 ) = f (x0 ) − f (x1 ) ,
(x1 − x0 ) (x0 − x1 ) h h
onde h = x1 − x0 . Podemos integrar a função f (x) aproximando-a por esse polinômio:
∫ ∫ ∫ ∫
b b
(x − x0 ) b
(x − x1 ) 1 b
f (x)dx = f (x0 ) dx − f (x1 ) dx + (x − x0 )(x − x1 )f ′′ (ξ(x))dx.
a a h a h 2! a

11
∫b ∫b
Pelo teorema do valor médio, existe a ≤ η ≤ b tal que f (ξ(x))g(x)dx = f (η) a g(x)dx e, portanto,
a
∫ [ ]x 1 [ ]x [ ]x 1
b
(x − x0 )2 (x − x1 )2 1 f ′′ (η) x3 x2
f (x)dx = f (x0 ) − f (x1 ) + − (x1 + x0 ) + x0 x1 x
a 2h x0 2h x0 2 3 2 x0
(x1 − x0 )
2
(x0 − x1 )2
= f (x0 ) + f (x1 )
( 2h 2h )
f ′′ (η) x31 x21 x30 x20
+ − (x1 + x0 ) + x0 x1 x1 − + (x1 + x0 ) − x0 x1 x0
2 3 2 3 2
h2 h2
= f (x0 ) + f (x1 )
2h 2h
f ′′ (η) 2x31 − 3x21 (x1 + x0 ) + 6x21 x0 − 2x30 + 3x20 (x1 + x0 ) − 6x1 x20
+
2 6
h f ′′ (η) ( 3 )
= (f (x0 ) + f (x1 )) + x0 − 3x20 x1 + 3x21 x0 + x31
2 12
3 ′′
h h f (η)
= (f (x0 ) + f (x1 )) −
2 12
Exemplo 9. Use a regra do trapézio para aproximar a integral
∫ 1
e−x dx.
2

Depois divida a integral em duas ∫ ∫


1/2 1
−x2
e−x dx.
2
e dx +
0 1/2

e aplica a regra do trapézio em cada uma delas. Finalmente, repita o processo dividindo em quatro integrais.
Usando o intervalo [0, 1], temos h = 1, x0 = 0 e x1 = 1. A regra do trapézio resulta em
∫ 1
1
e−x dx ≈ (e0 + e−1 ) = 0.6839397
2

0 2
Usando dois intervalos, [0, 1/2] e [1/2, 1] e usando a regra do trapézio em cada um dos intervalos, temos:
∫ 1
0.5 0 0.5 −1/4
e−x dx ≈ (e + e−1/4 ) + + e−1 ) = 0.4447002 + 0.2866701 = 0.7313703
2
(e
0 2 2
Agora, usando quatro intervalos, temos
∫ 1
0.25 0 0.25 −1/16 0.25 −1/4 0.25 −9/16
e−x dx ≈ (e + e−1/16 ) + + e−1/4 ) + + e−9/16 ) + + e−1 )
2
(e (e (e
0 2 2 2 2
= 0.7429841

2.2.3 Regra de Simpson


A regra de Simpson consiste em aproximar a integral usando três pontos do intervalo:
a+b
x0 = a, x1 := = x0 + h e x2 := b = x1 + h.
2
Para isso, o polinômio de Lagrange deve ser uma parábola:
(x − x1 )(x − x2 ) (x − x0 )(x − x2 ) (x − x0 )(x − x1 )
P2 (x) = f (x0 ) + f (x1 ) + f (x2 ) .
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )

12
Se usarmos o mesma metodologia da regra dos trapézios, calcularemos
∫ ∫ ∫
b b b
(x − x0 )(x − x1 )(x − x2 ) ′′′
f (x)dx = P2 (x)dx + f (ξ(x))dx
a a a 6
e obteremos o fórmula de Simpson com um erro de quarta ordem. O fato é que a regra de Simpson tem ordem
cinco e, para isso, usaremos uma abordagem alternativa. Considere o polinômio de Taylor
f ′′ (x1 ) f ′′′ (x1 ) f (4) (ξ(x))
f (x) = f (x1 ) + f ′ (x1 )(x − x1 ) + (x − x1 )2 + (x − x1 )3 + (x − x1 )4 ,
2 6 12
onde x0 ≤ ξ(x) ≤ x2 e integre no intervalo [a, b] = [x0 , x2 ]:
∫ b [ ]x 2
′ (x − x1 )2 f ′′ (x1 ) f ′′′ (x1 )
f (x)dx = f (x1 )(x − x1 ) + f (x1 ) + (x − x1 ) +
3
(x − x1 )3
a 2 2 18
∫ x2 x0
1
+ f (4) (ξ(x))(x − x1 )4 dx,
24 x0
Pelo teorema do valor médio, existe x0 ≤ η ≤ x2 tal que
∫ [ ]x 2
b
(x − x1 )2 f ′′ (x1 )
′ f ′′′ (x1 )
f (x)dx = f (x1 )(x − x1 ) + f (x1 ) + (x − x1 ) +
3
(x − x1 )3
a 2 2 18 x0

f (4) (η) x2
+ (x − x1 )4 dx
24 x0
[ ]x 2
′ (x − x1 )2 f ′′ (x1 ) f ′′′ (x1 )
= f (x1 )(x − x1 ) + f (x1 ) + (x − x1 ) +
3
(x − x1 )3
2 2 18 x0
(4)
f (η) [ ]x
+ (x − x1 )5 x20
120
Usando o fato que
(x2 − x1 )3 − (x0 − x1 )3 = 2h3 ,
(x2 − x1 )4 − (x0 − x1 )4 = 0
e
(x2 − x1 )5 − (x0 − x1 )5 = 2h5 ,
temos ∫ b
h3 ′′ h5 f (4) (η)
f (x)dx = 2hf (x1 ) + f (x1 ) + .
a 3 60
Usando a diferenças nitas centrais para a derivada segunda:
f (x0 ) − 2f (x1 ) + f (x2 ) h2 (4)
f ′′ (x1 ) = + f (η1 ),
h2 12
x0 ≤ η1 ≤ x2 , temos
∫ b ( )
h3 f (x0 ) − 2f (x1 ) + f (x2 ) h2 (4) h5 f (4) (η)
f (x)dx = 2hf (x1 ) + + f (η 1 ) + .
3 h2 12 60
a
( )
h h5 1 (4) 1 (4)
= (f (x0 ) + 4f (x1 ) + f (x2 )) − f (η1 ) − f (η) .
3 12 3 5
Pode-se mostrar que é possível escolher η2 que substitua η e η1 com a seguinte estimativa
∫ b
h h5
f (x)dx = (f (x0 ) + 4f (x1 ) + f (x2 )) − f (4) (η2 ).
a 3 90

13
Exemplo 10. Use a regra de Simpson para aproximar a integral
∫ 1
e−x dx.
2

Depois divida a integral em duas ∫ ∫


1/2 1
−x2
e−x dx.
2
e dx +
0 1/2

e aplica a regra de Simpson em cada uma delas.


Usando o intervalo [0, 1], temos h = 1/2, x0 = 0, x1 = 1/2 e x2 = 1. A regra de Simpson resulta em
∫ 1
0.5 0
e−x dx ≈ (e + 4e−1/4 + e−1 ) = 0.7471804
2

0 3

Usando dois intervalos, [0, 1/2] e [1/2, 1] e usando a regra do trapézio em cada um dos intervalos, temos:
∫ 1
0.25 0 0.25 −1/4
e−x dx ≈ (e + 4e−1/16 + e−1/4 ) + + 4e−9/16 + e−1 ) = 0.7468554
2
(e
0 3 3

2.3 Regras compostas


Vimos que em todas as estimativas de erro que derivamos, o erro depende do tamanho do intervalo de
integração. Um estratégia para reduzir o erro consiste em dividir o intervalo de integração em diversos
subintervalos menores: ∫ ∫ b ∑
Ni bk
f (x)dx = f (x)dx
a k=1 ak

onde
a = a1 < b1 = a2 < b2 = a3 < . . . < bNi −1 = aNi < bNi = b
Depois, aplica-se um método simples em cada subintervalo.
A regra composta dos trapézios assume a seguinte forma:
∫ Ni ∫
∑ ∑
Ni
b bk
bk − a k
f (x)dx = f (x)dx ≈ [f (ak ) + f (bk )]
a k=1 ak k=1
2

Se assumirmos que todos os intervalos têm o mesmo comprimento h, temos:



h∑
b i N
f (x)dx ≈ [f (ak ) + f (bk )]
a 2 k=1

Denimos
xk = a + (k − 1)h
portanto
ak = xk , bk = xk+1
E temos:

h∑
b i N
h
f (x)dx ≈ [f (xk ) + f (xk+1 )] = [f (x1 ) + 2f (x2 ) + 2f (x3 ) + · · · + 2f (xNi ) + f (xNi +1 )]
a 2 k=1 2

14
Já a regra composta de Simpson assume a seguinte forma:
∫ Ni ∫
∑ ∑
Ni [ ( ) ]
b bk
bk − a k ak + bk
f (x)dx = f (x)dx ≈ f (ak ) + 4f + f (bk )
a k=1 ak k=1
6 2
Se mais uma vez assumirmos que todos os intervalos têm o mesmo comprimento 2h, temos:
∫ Ni [ ( ) ]
b
2h ∑ a k + bk
f (x)dx ≈ f (ak ) + 4f + f (bk )
a 6 k=1 2
Denimos
xk = a + (k − 1)h, k = 1, . . . 2Ni + 1
portanto
ak = x2k−1 , bk = x2k+1
E temos:

h∑
b i N
f (x)dx ≈ [f (x2k−1 ) + 4f (x2k ) + f (x2k+1 )] =
a 3 k=1
h
[f (x1 ) + 4f (x2 ) + 2f (x3 ) + 4f (x4 ) + · · · + 4f (x2Ni ) + f (x2Ni +1 )]
3
Exemplo 11. Calcule numericamente a integral
∫ 2
2
x2 ex dx
0

pelas regras compostas do ponto médio, trapézio e Simpson variando o número de intervalos
Ni = 1, 2, 3, 6, 12, 24, 48, 96.

Ni ponto médio Trapézios Simpson


1 5.4365637 218.3926 76.421909
2 21.668412 111.91458 51.750469
3 31.678746 80.272022 47.876505
6 41.755985 55.975384 46.495785
12 45.137529 48.865685 46.380248
24 46.057757 47.001607 46.372373
48 46.292964 46.529682 46.37187
96 46.352096 46.411323 46.371838

2.4 O método de Romberg


O método de Romberg é um método simplicado para construir quadraturas de alta ordem.
Considere o método de trapézios composto aplicado à integral
∫ b
f (x)dx
a

Dena I(h) a aproximação desta integral pelo método dos trapézios composto com malha de largura constante
igual a h. Aqui h = b−a
Ni
para algum Ni inteiro, i.e.:
[ ]
h ∑Ni
b−a
I(h) = f (a) + 2 f (xj ) + f (b) , Ni =
2 j=2
h

15
Teorema 1. Se f (x) é uma função analítica no intervalo (a, b), então a função I(h) admite uma representação
na forma
I(h) = I0 + I2 h2 + I4 h4 + I6 h6 + . . .
Para um demonstração, veja [1]. Em especial observamos que
∫ b
f (x)dx = lim I(h) = I0
a h→0

Ou seja, o valor exato da integral procurada é dado pelo coeciente I0 .


A ideia central do método de Romberg, agora, consiste em usar a extrapolação de Richardson para construir
métodos de maior ordem a partir do métodos dos trapézios para o intervalo (a, b)
Exemplo 12. Construção do método de quarta ordem.
I(h) = I0 + I2 h2 + I4 h4 + I6 h6 + . . .
( )
h h2 h4 h6
I = I0 + I2 + I4 + I6 + . . .
2 4 16 64

Usamos agora uma eliminação gaussiana para obter o termo I0 :


4I(h/2) − I(h) 1 5
= I0 − I4 h4 − I6 h6 + . . .
3 4 16
Lembramos que
h
I(h) = [f (a) + f (b)]
2
h a+b
I(h/2) = [f (a) + 2f (c) + f (b)] , c =
4 2

4I(h/2) − I(h) h h
= [f (a) + 2f (c) + f (b)] − [f (a) + f (b)]
3 3 6
h
= [f (a) + 4f (c) + f (b)]
6
Observe que esquema coincide com o método de Simpson.
A partir de agora, usaremos a seguinte notação
R1,1 = I(h)
R2,1 = I(h/2)
R3,1 = I(h/4)
..
.
Rn,1 = I(h/2n−1 )
Observamos que os pontos envolvidos na quadratura Rk,1 são os mesmos pontos envolvidos na quadratura
R(k − 1, 1) acrescidos dos pontos centrais, assim, temos a seguinte fórmula de recorrência:
( )
h ∑
2 k−2
1 h
Rk,1 = Rk−1,1 + k−1 f a + (2i − 1) k−1
2 2 i=1
2

16
Denimos Rk,2 para k ≥ 2 como o esquema de ordem quatro obtido da fórmula do exemplo 12:
4Rk,1 − Rk−1,1
Rk,2 =
3
Os valores Rk,2 representam então os valores obtidos pelo método de Simpson composto aplicado a uma malha
composta de 2k−1 + 1 pontos.
Similarmente os valores de Rk,j são os valores obtidos pela quadratura de ordem 2j obtida via extrapolação
de Richardson. Pode-se mostrar que
Rk,j−1 − Rk−1,j−1
Rk,j = Rk,j−1 + .
4j−1 − 1
∫1
Exemplo 13. Construa o esquema de Romberg para aproximar o valor de 0
e−x dx com erro de ordem 8.
2

1.0183156
0.8770373 0.8299445
0.8806186 0.8818124 0.8852703
0.8817038 0.8820655 0.8820824 0.8820318
∫2
Exemplo 14. Construa o esquema de Romberg para aproximar o valor de 0
x2 ex dx com erro de ordem 12.
2

218.3926
111.91458 76.421909
66.791497 51.750469 50.105706
51.892538 46.926218 46.604601 46.549028
47.782846 46.412949 46.378731 46.375146 46.374464
46.72661 46.374531 46.37197 46.371863 46.37185 46.371847

2.5 Ordem de precisão


Todos os métodos de quadratura que vimos até o momento são da forma
∫ b ∑
N
f (x)dx ≈ wj f (xj )
a j=1

Exemplo 15. (a) Método do trapézio


∫ b
b−a
f (x)dx ≈ [f (a) + f (b)]
a 2
b−a b−a
= f (a) + f (b)
2 2
∑ 2
:= w1 f (x1 ) + w2 f (x2 ) = wj f (xj )
j=1

(b) Método do trapézio com dois intervalos


∫ [ ) ( ]
b
a+b b−a
f (x)dx ≈ f (a) + 2f + f (b)
2 4
a
( )
b−a b−a a+b b−a
= f (a) + f + f (b)
4 2 2 4

3
:= w1 f (x1 ) + w2 f (x2 ) + w3 f (x3 ) = wj f (xj )
j=1

17
(c) Método de Simpson
∫ [ ) ] (
b
a+b b−a
f (x)dx ≈ f (a) + 4f + f (b)
2 6
a
( )
b−a 2(b − a) a+b b−a
= f (a) + f + f (b)
6 3 2 6
∑3
:= wj f (xj )
j=1

(d) Método de Simpson com dois intervalos


∫ [ ) (( ) ( ) ]
b
3a + b a+b a + 3b b−a
f (x)dx ≈ f (a) + 4f + 2f + 4f + f (b)
4 2 4 12
a
( ) ( ) ( )
b−a b−a 3a + b b−a a+b b−a a + 3b b−a
= f (a) + f + f + f + f (b)
12 3 4 6 2 3 4 12
∑5
:= wj f (xj )
j=1

A principal técnica que temos usado para desenvolver os métodos numéricos é o polinômio de Taylor:
f (x) = a0 + a1 x + a2 x2 + . . . + an xn + Rn (x)

Integrando termo a termo, temos:

∫ b ∫ b ∫ b ∫ b ∫ b ∫ b
2 n
f (x)dx = a0 dx + a1 xdx + a2 x dx + . . . + an x dx + Rn (x)dx
a a a a a a
∫ b
b2 − a 2 b3 − a3 bn+1 − an+1
= a0 (b − a) + a1 + a2 + . . . + an + Rn (x)dx
2 3 n+1 a

Neste momento, é natural invertigar o desempenho de um esquema numérico aplicado a funções do tipo
f (x) = xn .
Denição 1. A ordem de precisão ou ordem de exatidão de um esquema de quadratura numérica como
o maior inteiro positivo n para o qual o esquema é exato para todas as funções do tipo xk com 0 ≤ k ≤ n, ou
seja,
Um esquema é dito de ordem n se

n ∫ b
wj f (xj ) = f (x)dx, f (x) = xk , k = 0, 1, . . . n
j=1 a

ou, equivalentemente:

n ∫ b
bk+1 − ak+1
wj xkj = xk dx = , k = 0, 1, . . . n
j=1 a k+1

Observação 1. Se o método tem ordem 0 ou mais, então



n
wj = b − a
j=1

18
Exemplo 16. A ordem de precisão do esquema de trapézios é 1:

b−a ∑
b 2
f (x)dx ≈ [f (a) + f (b)] = wj f (xj )
a 2 j=1

onde wj = b−a
2
, x1 = a e x2 = b.

n
wj = b − a (k = 0)
j=1

n
b2 −a2
wj xj = (a + b) b−a
2
= 2
(k = 1)
j=1

n
b3 −a3
wj x2j = (a2 + b2 ) b−a
2
̸= 3
(k = 2)
j=1

Exemplo 17. A ordem de precisão do esquema de Simpson é 3:


∫ [ ( ) ]
b−a ∑
b 3
a+b
f (x)dx ≈ f (a) + 4f + f (b) = wj f (xj )
a 2 6 j=1

onde w1 = w3 = b−a
6
,w2 = 4 b−a
6
, x1 = a, x2 = a+b
2
e x3 = b

n
wj = (1 + 4 + 1) b−a
6
=b−a (k = 0)
j=1

n
b2 −a2
wj xj = (a + 4 a+b
2
+ b) b−a
6
= (a + b) b−a
2
= 2
(k = 1)
j=1
∑n
( a+b )2 b3 −a3
wj x2j = (a2 + 4 2
+ b2 ) b−a
6
= (3a2 + 4ab + 3b2 ) b−a
2
= 3
(k = 2)
j=1
∑n
( a+b )3 b4 −a4
wj x3j = (a3 + 4 2
+ b3 ) b−a
6
= 4
(k = 3)
j=1
∑n
( a+b )4 b5 −a5
wj x4j = (a4 + 4 2
+ b4 ) b−a
6
̸= 4
(k = 3)
j=1

Problema 1. Encontre os pesos wj e as abscissas xj tais que o esquema de dois pontos


∫ 1
f (x)dx = w1 f (x1 ) + w2 f (x2 )
−1

é de ordem 3.
Solução:
Temos um sistema de quatro equações e quatro incógnitas dado por:
w1 + w2 = 2
x1 w1 + x2 w2 = 0
2
x21 w1 + x22 w2 =
3
3 3
x1 w1 + x2 w2 = 0

19
Da segunda e quarta equação, temos:
w1 x2 x3
= − = − 32
w2 x1 x1
Como x1 ̸= x2 , temos
√ x1 = −x2 e w1 = w2 . Da primeira equação, temos w1 = w2 = 1. Da terceira equação,
temos −x1 = x2 = 33 .
Esse esquema de ordem de precisão três e dois pontos chama-se quadratura de Gauss-Legendre com dois
pontos: (√ ) ( √ )
∫ 1
3 3
f (x)dx = f +f −
−1 3 3

Exemplo 18. Comparação


f (x) Exato Trapézio Simpson Gauss-Legendre (2)

e−1 + 4e0 + e1 √
− 3

e−1 + e e−
3

ex
e−e −1
≈ 2.3504024
3+e 3
≈ 3.0861613 3
≈ 2.3620538 ≈ 2.3426961

√ √
x2 3 + x3 16
9
− 4
9
2 ≈ 1.1492384 3.4142136 1.1380712 1.1541058

3
e−e−1
x2 ex 3
≈ 0.7834675 3.0861613 1.0287204 0.6790505

2.6 Quadratura de Gauss-Legendre


A quadratura de Gauss-Legendre de N pontos é o esquema numérico
∫ 1 ∑
N
f (x)dx = wj f (xj )
−1 j=1

cuja ordem de exatidão é 2N − 1.

• O problema de encontrar os N pesos e N abscissas é equivalente a um sistema não-linear com 2N


equações e 2N incógnitas.
• Pode-se mostrar que este problema sempre tem solução e que a solução é única se x1 < x2 < . . . < xn

• As abscissas são das pelos zeros do enésimo polinômio de Legendre, PN (x).

• Os pesos são dados por


2
wj = ( ) .
1− x2j [PN′ (xj )]2

• Estes dados são tabelados e facilmente encontrados.

20
n xj wj

1 0 2


2 ± 3
3
1

8
0 9
3 √
± 3
5
5
9

√(
√ ) √
± 3 − 2 6/5 /7 18+ 30
36

4 √(
√ ) √
± 3 + 2 6/5 /7 18− 30
36

Exemplo 19. Aproximar ∫ 1 √


1 + x2 dx
−1
pelo método de Gauss-Legendre com 3 pontos.
( √ ) (√ )
5 3 8 5 3 4√ 8
I3 = f − + f (0) + f = 10 + ≈ 2.2943456
9 5 9 9 5 9 9
No Scilab:
exec pesos.sci;
I3=f(0)*w3(1)+f(x3(2))*w3(2)+f(-x3(2))*w3(2)
Exemplo 20. Aproximar ∫ 1 √
1 + x2 dx
−1
pelo método de Gauss-Legendre com 4 pontos.
I4=f(x4(1))*w4(1)+f(-x4(1))*w4(1)+f(x4(2))*w4(2)+f(-x4(2))*w4(2)
Exemplo 21. Aproximar ∫ 1 √
1 + x2 dx
0
pelo método de Gauss-Legendre com 3, 4 e 5 pontos.
Faz-se a mudança de variáveis u = 2x − 1
√ ( )2
∫ 1 √ ∫
2
1 1 u+1
1 + x dx = 1+ du
0 2 −1 2

21
deff('y=f(u)','y=sqrt(1+(u+1)^2/4)/2')
I3=f(0)*w3(1)+f(x3(2))*w3(2)+f(-x3(2))*w3(2)
I4=f(x4(1))*w4(1)+f(-x4(1))*w4(1)+f(x4(2))*w4(2)+f(-x4(2))*w4(2)
I5=f(0)*w5(1)+f(x5(2))*w5(2)+f(-x5(2))*w5(2)+f(x5(3))*w5(3)+f(-x5(3))*w5(3)

3 Soluções Numéricas para problemas de valor inicial

Muitos problemas de valor inicial da forma

y ′ (t) = f (y(t), t)
y(t0 ) = y0 condição inicial

não podem ser resolvidos exatamente, ou seja, sabe-se que a solução existe e é única, porém não podemos
expressá-la em termos de funções elementares. Por isso é necessário calcular soluções numéricas. Nesse
propósito, construímos uma malha de pontos no eixo t, {ti }N
i=1 e calculamos o valor aproximado da função
soluçao y(ti ) em cada ponto da malha usando esquemas numéricos.

3.1 Método de Euler


Seja o problema de valor inicial

y ′ (t) = f (y(t), t)
y(0) = y0 condição inicial

Aproximamos a derivada y ′ (t) por um esquema de primeira ordem do tipo


y(t + h) − y(t)
y ′ (t) = + O(h), h > 0
h
assim temos
y(t + h) − y(t)
= f (y(t), t) + O(h)
h
y(t + h) = y(t) + hf (y(t), t) + O(h2 )

Denindo y (k) como uma aproximação para y ((k − 1)h) e t(k) = (k − 1)h, temos

y (k+1) = y (k) + hf (y (k) , t(k) )


y (1) = y0 condição inicial

Exemplo 1: Considere o problema de valor inicial

y ′ (t) = 2y(t)
y(0) = 1

Sabemos da teoria elementar de equação diferenciais ordinárias, que a solução exata deste problema é única
e é dada por
y(t) = e2t .

22
O método de Euler aplicada a este problema produz o seguinte esquema:

y (k+1) = y (k) + 2hy (k) = (1 + 2h)y (k)


y (1) = 1,

cuja solução é dada por


y (k) = (1 + 2h)k−1 .
Como t = (k − 1)h, a solução aproximada é
t
y(t) ≈ ỹ(t) = (1 + 2h) h .

Fica óbvio que se h → 0, então


ỹ(t) → e2t .

Exemplo 22. Considere o problema de valor inicial

y ′ (t) = y(t)(1 − y(t))


y(0) = 1/2

É fácil encontrar a solução exata desta equação pois

dy(t)
= dt
y(t)(1 − y(t))
( )
1 1
+ dy = dt
y 1−y
ln(y) − ln(1 − y) = t+C
( )
y
ln = t+C
1−y
y
= et+C
1−y
y= et+C (1 − y)
t+C
y(1 + e ) = et+C
et+C
y =
1 + et+C

ainda y(0) = 1+e C = 1/2, temos e = 1 e, portanto, C = 0.


eC
C

Assim, a solução exata é dada por y = 1+eet


t

O método de Euler produz o seguinte esquema iterativo:

y (k+1) = y (k) + hy (k) (1 − y (k) )


y (1) = 1/2

23
Comparação
t Exato Euler h = .1 Euler h = .01

0 1/2 .5 .5

e1/2
1/2 1+e1/2
≈ 0.6224593 0.6231476 0.6225316

1 e
1+e
≈ 0.7310586 0.7334030 0.7312946

e2
2 1+e2
≈ 0.8807971 0.8854273 0.8812533

e3
3 1+e3
≈ 0.9525741 0.9564754 0.9529609

Exemplo 3
y ′ = −y + t
y(0) = 1

Cuja solução exata é y(t) = 2e−t + t − 1.


O esquema recursivo de Euler ca:

y (k+1) = y(k) − hy(k) + ht(k)


y(0) = 1

Comparação
t Exato Euler h = .1 Euler h = .01

0 1 1 1

1 2e−1 ≈ 0.7357589 0.6973569 0.7320647

2 2e−2 + 1 ≈ 1.2706706 1.2431533 1.2679593

3 2e−3 + 2 ≈ 2.0995741 2.0847823 2.0980818

24
Exemplo 4
x′ = −y
y′ = x
x(0) = 1
y(0) = 0

Cuja solução exata é x(t) = cos(t) e y(t) = sin(t)


Escreva [ ]
x(t)
z(t) =
y(t)
e temos
[ ] [ ] [ ]
x(k+1) x(k) −y (k)
= +h
y (k+1) y (k) x(k)
Equivalente a
x(k+1) = x(k) − hy (k)
y (k+1) = y (k) + hx(k)

Exemplo 5 Resolva o problema de valor inicial de segunda ordem dado por


y ′′ + y ′ + y = cos(t)
y(0) = 1
y ′ (0) = 0

e compare com a solução exata para h = 0.1 e h = 0.01.


Procedemos com a substituição w = y ′ , de forma que obtermos o sistema:
y′ = w
w′ = −w − y + cos(t)
y(0) = 1
w(0) = 0

y (k+1) = y (k) + hw(k)


w(k+1) = w(k) − hw(k) − hy (k) + h cos(t(k) )
y (1) = 1
w(1) = 0

3.2 Método de Euler modifcado


No método de Euler, usamos a seguinte iteração:
y (k+1) = y (k) + hf (y (k) , t(k) )
y (1) = yi condição inicial

25
A idéia do método de Euler melhorado é substituir a declividade f (y (k) , t(k) ) pela média aritmética entre
f (y (k) , t(k) ) e f (y (k+1) , t(k+1) ).
No entanto, não dispomos do valor de y (k+1) pelo que aproximamos por
ỹ (k+1) = y (k) + hf (y (k) , t(k) ).

ỹ (k+1) = y (k) + hf (y (k) , t(k) )


h [ (k) (k) ]
y (k+1) = y (k) + f (y , t ) + f (ỹ (k+1) , t(k+1) )
2
y (1)
= yi condição inicial
Refaça o exemplo 2 via método de Euler melhorado.

3.3 Ordem de precisão


Considere o problema de valor inicial dado por
y ′ (t) = f (y(t), t)
y(0) = yi
No método de Euler, aproximamos a derivada y ′ (t) por um esquema de primeira ordem do tipo
y(t + h) − y(t)
y ′ (t) = + O(h), h > 0
h
de forma que tínhamos
y(t + h) = y(t) + hf (y(t), t) + O(h2 )
Se xarmos um instante de tempo t = N h, temos:
[ ] [ ]
y(t) = y(0) + hf (y(0), 0) + O(h2 ) + y(h) + hf (y(h), h) + O(h2 )
[ ]
+ . . . y(t − h) + hf (y(t − h), t − h) + O(h2 )

N −1
= yk + O(h2 ) = y k + O(h)
j=0

Por isso, o método de Euler é dito ter ordem global de precisão h.

4 Métodos de Runge-Kutta

Os métodos de Runge-Kutta consistem em métodos do tipo:


y (n+1) = y (n) + w1 k1 + . . . + wn kn
onde
k1 = hf (y (n) , t(n) )
k2 = hf (y (n) + α2,1 k1 , t(n) + β2 h)
k3 = hf (y (n) + α3,1 k1 + α3,2 k2 , t(n) + β3 h)
..
.
kn = hf (y (n) + αn,1 k1 + αn,2 k2 + . . . αn,n−1 kn−1 , t(n) + βn h)

26
Os coecientes são escolhidos de forma que a expansão em taylor de y (n+1) e y (n) + w1 k1 + . . . + wn kn
coincidam até ordem k + 1.
Exemplo:
k1 + k2
y (n+1) = y (n) +
2
onde k1 = hf (y (n) , t(n) ) e k2 = f (y (n) + k1 , t(n)+h )

4.1 Métodos de Runge-Kutta - Quarta ordem


k1 + 2k2 + 2k3 + k4
y (n+1) = y (n) +
6
onde
k1 = hf (y (n) , t(n) )
k2 = hf (y (n) + k1 /2, t(n) + h/2)
k3 = hf (y (n) + k2 /2, t(n) + h/2)
k4 = hf (y (n) + k3 , t(n) + h)

Este método tem ordem de truncamento local de quarta ordem. Uma discussão heurística usando método de
Simpson pode ajudar a compreender os estranhos coecientes:
∫ t(n+1)
y(t (n+1)
) − y(t
(n)
) = f (y(s), s)ds
t(n)
h [ ( (n) (n) ) ( ) ( )]

f y(t ), t + 4f y(t(n) + h/2), t(n) + h/2 + f y(t(n) + h), t(n) + h
6
k1 + 4( k2 +k 3
) + k4
≈ 2
6
onde k1 e k4 representam as inclinações nos extermos e k2 e k3 são duas aproximações diferentes para a
inclinação no meio do intervalo.

4.2 Métodos de passo múltiplo - Adams-Bashforth


O método de Adams-Bashforth consiste de um esquema recursivo do tipo:

k
yn+1 = yn + wj f (y (n−j) , t(n−j) )
j=0

Exemplo: Adams-Bashforth de segunda ordem


h [ ( (n) (n) ) ( )]
yn+1 = yn + 3f y , t − f y (n−1) , t(n−1)
2
Exemplo: Adams-Bashforth de terceira ordem
h [ ( ) ( ) ( )]
yn+1 = yn + 23f y (n) , t(n) − 16f y (n−1) , t(n−1) + 5f y (n−2) , t(n−2)
12
Exemplo: Adams-Bashforth de quarta ordem
h [ ( ) ( ) ( ) ( )]
yn+1 = yn + 55f y (n) , t(n) − 59f y (n−1) , t(n−1) + 37f y (n−2) , t(n−2) − 9f y (n−3) , t(n−3)
24
Os métodos de passo múltiplo evitam os múltiplos estágios do métodos de Runge-Kutta, mas exigem ser
"iniciados"com suas condições iniciais.

27
5 Métodos de passo múltiplo - Adams-Moulton

O método de Adams-Moulton consiste de um esquema recursivo do tipo:



k
yn+1 = yn + wj f (y (n−j) , t(n−j) )
j=−1

Exemplo: Adams-Moulton de quarta ordem


h [ ( (n+1) (n+1) ) ( ) ( ) ( )]
yn+1 = yn + 9f y ,t + 19f y (n) , t(n) − 5f y (n−1) , t(n−1) + f y (n−2) , t(n−2)
24
O método de Adams-Moulton é inplícito, ou seja, exige que a cada passo, uma equação em y (n+1) seja
resolvida.

5.1 Estabilidade
Consideremos o seguinte problema de teste:
{
y ′ = −αy
y(0) = 1

cuja solução exata é dada por y(t) = e−αt .


Considere agora o método de Euler aplicado a este problema com passa h:
{
y (k+1) = y (k) − αhy (k)
y (1) = 1

A solução exata do esquema de Euler é dada por

y (k+1) = (1 − αh)k

e, portanto,
ỹ(t) = y (k+1) = (1 − αh)t/h
Fixamos um α > 0, de forma que y(t) → 0. Mas observamos que ỹ(t) → 0 somente quando |1 − αh| < 1
e solução positivas somento quando αh < 1.
Conclusão: Se o passo h for muito grande, o método pode se tornar instável, produzindo solução espúrias.
Problema Resolva o problema 1 pelos diversos métodos e veque heuristicamente a estabilidade para
diversos valores de h.

Referências

[1] Demailly, J. P. Analyse Numérique et Équations Dierentielles, nouvelle Édition ed. EDP Sciences,
Grenoble, 2006.

28

S-ar putea să vă placă și