Você está na página 1de 17

245

Captulo 15
Resoluo numrica de equaes diferenciais

Para podermos investigar exemplos de simulao que surgem na Fsica,
Engenharia, Biomatemtica etc., estudamos, neste captulo, alguns mtodos de
resoluo numrica de equaes diferenciais ordinrias de primeira e segunda
ordens.
A soluo de uma equao diferencial uma funo que satisfaz a equao
diferencial sobre algum intervalo aberto. Uma equao diferencial ordinria tem
a forma geral
(x,y,y',y'',y''',..., d
n
y/dx
n
) = 0 (1)
Esta equao de n-sima ordem e tem somente uma varivel independente,
x.
A funo y = F(x) uma soluo de (1) se ela n vezes diferenvel e se
satisfaz a Eq. (1).
As equaes y':= dy/dx = x+y; y''+(1-y
2
)y' + y = 0 so exemplos de equaes
diferenciais ordinrias. Uma equao diferencial (x,y(x),dy/dx) = 0 pode
geralmente ser escrita como
dy/dx = y' = f(x,y) (2)
As equaes diferenciais ordinrias tm vrias solues. Para escolher uma
nica soluo, so necessrias informaes adicionais, normalmente n para
uma equao de n-sima ordem. Se todas as n condies adicionais forem
especificadas para um mesmo valor de x, por exemplo x
o
, temos um Problema
de Valor Inicial, PVI. Caso estas n condies adicionais sejam dadas para mais
de um valor de x, temos um Problema de Valor de Contorno, PVC.
O grfico de uma soluo da equao diferencial chama-se de curva soluo.
(Uma curva soluo tambm uma curva integral.)
Existem mtodos grficos e numricos para obter uma idia sobre a forma da
soluo, e aos quais pode-se recorrer se no existe nenhuma frmula explcita
da soluo ou se a frmula complicada demais para ser til.
Para as aplicaes na Fsica, Biomatemtica etc. precisamos muitas vezes de
mtodos numricos que aproximam uma soluo exata com praticamente
qualquer preciso.


246
Mtodo de Euler para y' = f(x,y)

Vamos considerar agora a equao diferencial ordinria de primeira ordem y' =
f(x,y) junto com uma condio inicial y(x
0
) = y
0
.
O nosso objetivo obter numericamente uma soluo y(x) que satisfaa a
equao diferencial e as condies iniciais. O mtodo numrico mais simples
o de Euler (1707-1783) e baseia-se na idia de aproximar os valores de y(x)
pela reta tangente, como ilustrado na figura a seguir.
(Euler descreveu o seu mtodo em 1768 em "Institutiones Calculi Integralis,
sectio secunda, caput VII")



Se fizermos um zoom no grfico de uma funo lisa de uma varivel y = f(x)
perto de um ponto x = a, o grfico parece cada vez mais uma reta e assim se
torna indistinguvel de sua reta tangente nesse ponto. A inclinao da reta
tangente a derivada f'(a) e a reta passa pelo ponto (a,f(a)) de modo que sua
equao
y = f(a) + f'(a)(x-a) (3)
Agora aproximamos os valores de f pelos valores-y da reta tangente. Para
valores de x prximos de a, podemos escrever para o verdadeiro valor f(x) da
funo f no ponto x
f(x) f(a) + f'(a)(x-a) (4)
O trao da tangente at o ponto do valor verdadeiro indica o erro que fazemos
aproximando f(x) pelo valor de f(a) + f'(a)(x-a). O fato de f ser aproximadamente
uma funo linear em x perto de a expresso dizendo que f localmente linear
perto de x = a.


247


Vimos que o mtodo de Euler se baseia na suposio que a reta tangente
curva soluo (curva integral) de y' = f(x,y) com y(x
0
) = y
0
em (x
i
,y(x
i
)) aproxima
a curva soluo sobre o intervalo [x
i
, x
i+1
].
Visto que a inclinao (ou declividade) da curva soluo em (x
i
, y(x
i
)) y'(x
i
) =
f(x
i
, y(x
i
)), a equao da reta tangente curva integral em (x
i
, y(x
i
))
y = y(x
i
) + f(x
i
, y(x
i
))(x-x
i
) (5)
Fazendo x = x
i+1
= x
i
+ h, obtemos
y
i+1
= y(x
i
) + hf(x
i
, y(x
i
)) (6)
sendo h o tamanho do passo e y
i+1
o valor de y at a reta tangente no ponto
x
i+1
. y
i+1
tomamos como uma aproximao a y(x
i+1
).
J que foi dado y(x
0
) = y
0
, podemos usar (6) com i = 0 para calcular y
1
y
1
= y(x
0
) + hf(x
0
, y(x
0
)) = y
0
+ hf(x
0
, y
0
) (7)
Agora fazemos i =1 e Eq. (6) se torna
y
2
= y(x
1
) + hf(x
1
, y(x
1
)) (8)
mas, esta equao no til, pois no conhecemos y(x
1
). (S y(x
0
) est
conhecido e o chamamos y
0
.) Bem, vem aqui a aproximao:
O valor y(x
1
), que no conhecemos, substitumos pelo valor y
1
, que s chega
at a reta tangente e que , no exemplo da figura anterior, nitidamente inferior
ao valor real da funo y(x) em x
1
.


248
y(x
2
) y
2
= y
1
+ hf(x
1
,y
1
)
No prximo passo vamos substituir y(x
2
) por y
2
:
y
3
= y
2
+ hf(x
2
,y
2
)
O processo pode ser repetido at que o valor desejado de x seja alcanado.
Em geral, o mtodo de Euler comea com o valor conhecido y(x
0
) = y
0
e calcula
y
1
, y
2
, ... y
n
por meio da frmula de recorrncia
y
i+1
= y
i
+ hf(x
i
,y
i
), 0<= i <= n - 1 (9)
(Trata-se de uma frmula de recorrncia e no de iterao, pois no caso de
uma iterao, que um caso especial da recorrncia, se busca, em geral, um
valor limite para o processo. Mas, o uso das palavras neste sentido estrito no
muito comum.)
Os nmeros y
1,
y
2
, y
3
etc. so aproximaes de y(x
1
), y(x
2
), y(x
3
) etc.
Exemplo:
y' = 1-x+4y, y(0) = 1; soluo exata: y(x) =x/4 -3/16 + (19/16)e
4x
Soluo segundo Euler: (h = 0.1)
f(x,y) = 1 - x +4y
y
1
= y
0
+ hf(x
0
,y
0
) = 1 + 0.1(1-0+41) = 1+0,5 = 1,5 ; x = x
1
= h = 0.1
valor exato (ou analtico): y(0,1) = 1,609041828
y
2
= y
1
+ hf(x
1
,y
1
) = 1,5 + 0,1(1-0,1+41,5) = 1,5 +0,69 = 2,19; x = x
2
= 0,2
valor exato: y(0,2)= 2.505329853
y
3
= y
2
+ hf(x
2
,y
2
) = 2,19 + 0,956 = 3,146; x = x
3
= 0,3
valor exato: y(0,3) = 3,830138846
fcil escrever um programa VBA para o mtodo de Euler:



249
Formulamos as duas funes F e F0 da seguinte maneira:


Na seguinte planilha, vemos os clculos anteriores estendidos at x = 1.




Aplicao: Modelo de crescimento logstico
O primeiro exemplo trata do crescimento de uma "populao" de rvores,
animais, palavras, armas etc.
N
0
o tamanho da populao no inicio do estudo, N(t) o tamanho no tempo
t. Num primeiro momento, poderamos supor que a velocidade de crescimento
(= taxa de crescimento) dN/dt fosse proporcional ao tamanho atual N(t), ou
seja, poderamos tentar usar a seguinte expresso:
dN(t)/dt = aN(t) (10)
sendo a o coeficiente do crescimento. Facilmente podemos ver que esta
equao diferencial de primeira ordem tem como soluo a seguinte funo
exponencial
N(t) = Noe
a(t-to)
(11)


250
que descreve um crescimento sem limite. No mximo ao comeo do processo
podemos supor um crescimento exponencial, pois, aps de certo tempo,
devemos observar um processo de frenagem devido a influencias externas (por
exemplo por falta de alimento). (Ainda possvel descrever aproximadamente o
crescimento populacional mundial pela eq. (11), mas, o ritmo mximo de
crescimento da populao mundial foi atingido por volta da segunda metade da
dcada de 1960.)
O matemtico belga Pierre F. Verhulst introduzia em 1837 um termo de
frenagem na equao (10) e props o seguinte modelo:
dN(t)/dt = aN(t) bN(t)
2
(12)
b = capacidade de suporte ambiental (a e b so fatores positivos). Esta
equao tem uma soluo analtica:
0
0
( )
(1 )
at
a
N t
a bN
b e
bN

+
(13)
A funo logstica, expressa pela equao (13), costuma tambm ser designada
como lei universal do crescimento. Sua aplicabilidade como ferramenta
matemtica para a descrio do crescimento de populaes em geral foi
demonstrada nos anos 20 pelo estadstico e zologo americano Raymond Pearl
(1925), razo pela qual a equao logstica , s vezes, referida como equao
de Pearl. O nosso objetivo determinar a soluo da equao (12) numrica-
mente por meio do mtodo de Euler. Podemos facilmente adaptar o nosso
programa nova situao, identificando x com t e y com N(t):




251



A concordncia entre as solues numricas e analticas satisfatria. As
curvas logsticas em S (curva sigmide) constituem hoje em dia uma das mais
importantes ferramentas matemticas para a prtica quantitativa da previso
tecnolgica, isto , para a avaliao do potencial de crescimento e difuso de
novas tecnologias.
Embora o mtodo de Euler seja bastante simples, o mesmo pouco utilizado para a
soluo numrica do problema do valor inicial, j que h outros mtodos, como
veremos adiante, que possuem uma melhor eficincia e exatido. Os outros mtodos
so mais complicados, mas, na maioria dos casos, podemos seguir utilizando o nosso
esquema bsico que aplicamos acima.
Mtodos melhorados de Euler
O mtodo de Euler na formulao y
i+1
= y
i
+ hf(x
i
,y
i
) utiliza sempre a
inclinao da reta tangente curva soluo no comeo do intervalo [x
i
, x
i+1
] e
supe que esta inclinao permanea constante durante o intervalo inteiro.
Mas, normalmente, vemos que a curva soluo de y(x) muda a inclinao da
reta tangente no intervalo [x
i
, x
i+1
]. Pode-se esperar um melhoramento do
mtodo tomando a inclinao no centro do intervalo ou tomando uma mdia de
vrios inclinaes em [x
i
, x
i+1
].
Como Mtodo melhorado de Euler ou Mtodo de Heun (pron.: hoin) se
conhece um procedimento que calcula primeiro a mdia das inclinaes das
retas tangentes curva integral nos extremos do intervalo [x
i
, x
i+1
], depois se
segue os passos que nos levaram s frmulas (5) at (9). Voltemos, ento,
Eq. (5) e substituamos a inclinao (f(x
i
, y(x
i
)) pela mdia
m
i
= (f(x
i
,y(x
i
)) + f(x
i+1
,y(x
i+1
))/2 (14)
A Eq. (6) reza agora y
i+1
= y(x
i
) + h (f(x
i
,y(x
i
)) + f(x
i+1
,y(x
i+1
)))/2 e uma aproxi-
mao a y(x
i+1
). Como antes, aproximamos y(x
i
) por seu valor aproximado y
i

quando i >0.


252
Pero y(x
i+1
) tambm ser, normalmente, desconhecido e vamos substitu-lo
pela aproximao y(x
i+1
) y
i+1
= y
i
+ h f(x
i
,y
i
).
A frmula de recorrncia do mtodo melhorado de Euler ou a frmula de Heun
fica finalmente assim

y
i+1
= y
i
+ h/2 (f(x
i
,y
i
) + f(x
i+1
, y
i
+ h f(x
i
,y
i
))) (15)

Para o clculo prtico til a introduo das seguintes expresses
k
1i
= f(x
i
,y
i
) (16)
k
2i
= f(x
i
+h, y
i
+ hk
1i
) (17)
y
i+1
= y
i
+ h (k
1i
+ k
2i
)/2 (18)
O mtodo de Heun produz resultados bastante mais exatos do que o mtodo
de Euler simples, especialmente uma variante del processo que melhora em
cada ponto x
i
primeiro os resultados por meio de uma iterao interna antes de
avanar ao prximo ponto x
i+1
. No programa de "Heun2 " realizamos isso.
(O mtodo de Heun possui um erro de truncamento global da ordem de O(h
2
) e
podemos verificar que, se diminuirmos o tamanho do passo de h para h/2, o
erro ser reduzido de um fator 1/4, e assim sucessivamente. O smbolo O(h
2
)
quer dizer que o mtodo de Heun coincide com a srie de Taylor at os termos
de ordem h
2
.)



Tomamos as equaes para esta planilha do seguinte programa.


253


O principio dessa nova tcnica est no mtodo de Euler, mas os resultados so
mais exatos.
O mtodo de Heun com iterao interna ainda mais exato como podemos ver
da seguinte planilha



254


O mtodo de Runge-Kutta
Mas, tampouco este mtodo pode concorrer com o mtodo clssico de Runge e
Kutta, como veremos em seguida.
O mtodo de Runge-Kutta o rei entre aqueles mtodos apropriados para
resolver os problemas de valor inicial (C. Runge 1856-1927, W. Kutta 1867-
1944). Os seus atrativos so simplicidade, alta preciso e versatilidade. A idia
detrs do mtodo RK bastante parecido ao raciocnio detrs do mtodo
melhorado de Euler (frmula de Heun), mas agora calculamos a funo f(x,y)
no apenas duas vezes, como no mtodo de Heun, antes quatro vezes,
reduzindo assim o erro global de truncamento para O(h
4
)! (O mtodo de RK,
que mais adiante vamos usar, tambm conhecido como RK de quarta ordem.
O mtodo de Heun chamado de RK de segunda ordem e o mtodo de Euler
como RK de primeira ordem.)
No vamos desenvolver rigorosamente as frmulas do mtodo RK. Vou,
porm, apresentar o algoritmo como se fosse uma simples modificao do
mtodo de Euler.


255
Algoritmo Runge-Kutta de quarta ordem para y' = f(t,y).
(J que, nas aplicaes, temos geralmente o tempo como varivel indepen-
dente, utilizaremos t em vez de x e v em vez de y'. O smbolo <v> indica o valor
mdio de 4 derivadas -velocidades- do mtodo de RK.)
t
n+1
= t
n
+ h
y
n+1
= y
n
+ h<v>,
onde
<v>:= (v
1
+2v
2
+2v
3
+v
4
)/6 (19)
Calculam-se as quatro derivadas segundo o seguinte esquema:
v
1
:= f(t,y)
v
2
:= f(t + h/2, y + v
1
h/2)
v
3
:= f(t + h/2, y + v
2
h/2)
v
4
:= f(t + h, y + v
3
h) (20)
(Mais adiante veremos que a generalizao deste mtodo para equaes de
segunda ordem, y" = f(t,x,y'), muito simples.)




Agora vamos ver como simples a implementao computacional das
esquemas (19) e (20).


256
(Para mostrar que o novo programa, tambm, uma modificao do programa
de Euler, seguimos utilizando, no cdigo, x em vez de t.)



Os resultados mostram que os erros so apenas da ordem de 10
-6
. No caso do
mtodo de Euler, encontramos erros da ordem de 10
-2
. O mtodo de Euler tem,
porem, o seu valor didtico e ajuda no entendimento dos mtodos mais exatos.

Aplicao: Desintegrao radioativa

A desintegrao , de certo modo, o processo inverso do crescimento expo-
nential. Uma sustncia radioativa consista no momento t = 0 de um nmero
A(0) := A0 de tomos radioativos. Depois do tempo t seja desintegrado um
certo nmero de tomos da substancia-me A, que, por sua vez, produzem
uma substancia-filha B, que, por sua vez, decai produzindo C.
A cintica da reao pode ser simbolizada na seguinte forma


257

A k
1
B k
2
C
A, B, C so as concentraes dos participantes da reao, k
1
e k
2
so as
velocidades (taxas) da reao. No caso da desintegrao radioativa, chama-se
estas taxas
A
e
B
.
A
a constante de desintegrao da substancia-me. O
nmero dos tomos caindo na unidade do tempo proporcional quantidade
dos tomos no decada:
( )
( )
A
dA t
A t
dt
= (21)
Enquanto B decai, ela recebe permanentemente as partculas que vem da sub-
stncia-me A. Ou seja:
( )
( ) ( )
B A
dB t
B t A t
dt
= + (22)
As equaes diferenciais (21) e (22) descrevem, juntas, a desintegrao de A e
B e devem ser resolvidas juntamente. Trata-se de um sistema de duas
equaes acopladas de primeira ordem. No seguinte programa "Euler2" foi s
preciso introduzir o tempo t e uma segunda funo G(x,y) para dB(t)/dt:




258
Na planilha, vemos o processo de desintegrao radiativo para as constantes
A

= 1 e
B
= 0,5. Os valores iniciais ficam em B0 at B3. Para x0 = A0 temos o
valor 100, para y0 = B0 = 0. ( x:= A e y:= B).


Podemos controlar a soluo numrica (Euler) com os valores da soluo
analtica:
0
0
( )
( ) ( )
A
A B
t
t t
A
B A
A t A e
A
B t e e


=
=

(23)
A comparao mostra que a concordncia para h=0,1 no muito satisfatria e
que prefervel utilizar um mtodo mais exato, como, por exemplo, o mtodo
de Runge Kutta. A planilha seguinte mostra uma excelente concordncia
entre as solues numricas e analticas.



259
Para produzir esta planilha, foi necessria modificar o algoritmo RK1 para
resolver nosso sistema de dois equaes de primeira ordem x' = f(t,x,y) e y' =
g(t,x,y). Em ltima anlise, foi somente necessrio introduzir uma segunda
equao, g(t,x,y). Com o intuito de aplicar o programa em outras situaes na
Fsica, utilizamos os smbolos v (velocidade) e a (acelerao) para x' e y'.



As funes so:







260
Aplicao: Equaes de Lotka e Volterra

O modelo de presa-predador de Lotka-Volterra um modelo de importncia
histrica na modelagem matemtica de sistemas ecolgicos como, por exemplo,
na anlise da coexistncia de duas espcies que interagem, uma como presa
(coelhos) e outra como predadora (raposas). A.J. Lotka (1925) e V. Volterra
(1926) propuseram independentemente o seguinte modelo para calcular a
evoluo do nmero de coelhos e raposas num determinado ecossistema, ano
aps ano:
x' = ax - bxy e y' = -cy + dxy (24)
y = nmero de raposas, x = nmero de coelhos, t = tempo de interao
(coexistncia). Os parmetros a, b, c, d representam a interao entre as duas
espcies.
As equaes de Lotka-Volterra so um par de equaes diferenciais, no
lineares e de primeira ordem, que podemos facilmente resolver utilizando o
nosso programa "Runge_Kutta2".




261