Escolar Documentos
Profissional Documentos
Cultura Documentos
2018/1
Conteúdo
1. Introdução 3
1.1. Classicação das Equações Diferenciais . . . . . . . . . . . . . . . . . . . . . 4
1.1.1. Equações Diferenciais Ordinárias (EDO) e Parciais (EDP) . . . . . . 4
1.1.2. Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.3. Linearidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.4. Homogeneidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.5. Coecientes constantes e variáveis . . . . . . . . . . . . . . . . . . . . 6
2
2.5. Estabilidade dos Métodos de Resolução de EDO's . . . . . . . . . . . . . . . 37
2.6. Análise de Estabilidade de Métodos de Passo Único . . . . . . . . . . . . . . 38
2.6.1. Equação Modelo: Decaimento de Primeira Ordem . . . . . . . . . . . 39
2.7. Problemas Rígidos (Sti) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.7.1. Sistemas de Equações Diferenciais Rígidas Lineares . . . . . . . . . . 43
2.7.2. Sistemas Não-Lineares . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3
1. Introdução
A maioria dos sistemas de interesse na engenharia envolvem mais de uma variável de-
pendente que são função da mesma variável independente, como por exemplo a variação na
concentração de diversas espécies químicas em um reator ao longo do tempo ou a variação
nas três componentes do vetor velocidade ao longo de uma dada direção espacial. De forma
geral, não é possível obter a solução para uma única variável independentemente, pois usu-
almente existe uma dependência de uma sobre a outra. Isto faz com que os modelos gerem
sistemas de equações que devem ser resolvidas ao mesmo tempo, podendo estas equações
serem algébricas, diferencias, integrais ou uma mistura delas.
Além disso, uma equação diferencia de ordem n pode sempre ser transforma em um sis-
tema de n equações diferenciais de primeira ordem. Esta abordagem é particularmente útil
para obter soluções numéricas de Problemas de Valor Inicial (PVI's), já que os métodos de
resolução (Euler, Runge-Kutta, etc.) são baseados na aproximação da derivada primeira e
portanto só podem ser utilizados para resolver equações de primeira ordem.
No momento, o objetivo será a análise de sistemas de equações diferenciais ordinárias
(EDO's), ou seja, equações que possuem somente uma variável independente. Esta análise
pode ser conduzida de forma quantitativa ou qualitativa, sendo que cada forma possui suas
vantagens e desvantagens. A análise quantitativa se refere à resolução direta das equações,
seja por via analítica ou numérica, de forma a se obter como as variáveis dependentes va-
riam em função da independente. Esta forma de análise é útil quando se deseja conhecer esta
dependência para uma condição especíca, porém trás pouca informação sobre o comporta-
mento global do sistema e como uma variável inuencia as demais. A análise qualitativa,
por sua vez, consiste em examinar o comportamento geral de todas as famílias de solução
do sistema, o que permite obter informações valiosas sobre a estabilidade das soluções.
O material a seguir será dividido em duas partes. Na primeira parte, serão apresentados
métodos numéricos que podem ser aplicados na análise de equações diferenciais ordinárias,
além do Método das Linhas, que pode ser utilizado para transformar equações diferenciais
4
parciais em um sistema de EDO's. Na segunda parte serão apresentados métodos qualitativos
de análise e uma introdução à análise de estabilidade de equações não-lineares. Ao longo
do texto serão feitas referências às principais características das equações diferenciais, pois a
forma de análise pode depender de determinadas classicações. Para facilitar, a seguir será
apresentada uma breve revisão da classicação das equações diferenciais .
f (t, y, y 0 , y 00 , . . . , y (n) ) = 0
1.1.2. Ordem
A ordem de uma equação diferencial é a ordem da derivada de maior ordem que aparece
na equação. Por exemplo:
d2 y
=0 segunda ordem
dt2
dy
+ y3 = 0 primeira ordem
dt
A ordem da equação não está relacionada com a maior potência na qual a variável está
elevada.
5
1.1.3. Linearidade
Uma equação algébrica é dita linear quando pode ser escrita da forma:
a1 x1 + a2 x2 + a3 x3 + . . . an xn + b = 0
F (t, y, y 0 , y 00 , . . . , y (n) ) = 0
é dita linear se F é uma função linear em relação à variável dependente e suas derivadas
(y, y 0 , y 00 , . . . , y (n) ).
Isto implica que uma EDO linear pode ser escrita da forma:
dn y d(n−1) y
an (t) + a n−1 (t) + . . . + a0 (t)y = g(t)
dtn dt(n−1)
ou seja, a variável y ou suas derivadas não estão presentes em termos não-lineares, como
por exemplo produto entre a variável e as derivadas, y n com n 6= 1 e funções não lineares
contendo a variável y (funções trigonométricas, exponencial, etc.). A variável independente
(t) pode estar presente em termos não-lineares. Exemplos de equações lineares:
d2 y dy dy dy
2
+t +y =0 + t2 y = sin(t) − yet = 0
dt dt dt dt
Quando as equações não podem ser expressas da forma apresentada anteriormente são
consideradas não-lineares. As equações diferenciais não-lineares possuem em geral uma re-
solução muito mais complexa e por isso são mais difíceis de serem avaliadas analiticamente.
Exemplos de equações não-lineares:
dy dy d2 y dy
+ y2 = 0 y =t = sin(y) + tey = 0
dt dt dt2 dt
De forma similar, uma EDP é dita não-linear quando possui algum termo não linear
envolvendo qualquer variável dependente.
As EDO's lineares ainda podem ser divididas em outras categorias que são utilizadas para
facilitar a escolha dos métodos de solução:
1.1.4. Homogeneidade
Uma equação diferencial do tipo
F (t, y, y 0 , y 00 , . . . , y (n) ) = 0
6
é homogênea quando o termo associado somente à variável independente é nulo. Na forma
apresentada anteriormente para as EDO's lineares, a equação é homogênea quando g(t) = 0.
Caso algum termo diferente de zero não estiver multiplicado pela variável dependente (y ) ou
alguma de suas derivadas, a equação é dita não-homogênea;
Uma classe de equações muito importante nas ciências exatas são as equações autônomas.
Estas equações surgem quando a variável independente não aparece de forma explícita na
equação.
7
Parte I.
Equações Diferenciais
8
2. Métodos Numéricos Para PVI's
9
para a resolução de sistemas complexos, porém diversos conceitos fundamentais dos métodos
de resolução podem ser mais facilmente apresentados através deste método.
O método de Euler é o método mais simples para a aproximação da solução de EDO's.
Considere o seguinte problema de valor inicial de primeira ordem:
dy
y0 = = f (t, y) y(t0 ) = y0
dt
A solução deste PVI passa obrigatoriamente pelo ponto (t0 , y0 ). O objetivo do método de
Euler é estimar o valor da solução y(t) em um ponto com uma distância ∆t do ponto inicial
t0 . Este ponto passa a ser chamado de t1 = t0 + ∆t, de modo que o do método de Euler é
determina o valor da solução em t1 , y1 = y(t1 ). A partir deste valor, pode-se estimar o valor
da função em um ponto t2 distante ∆t do ponto t1 e continuar com este procedimento até
se obter uma aproximação para a solução por quantos pontos forem necessários. Esta classe
de métodos são chamados de métodos passo-a-passo. Para avaliar o termo y1 = y(t0 + ∆t),
pode-se aplicar uma expansão em séries de Taylor em torno do ponto t0 :
∆t2 00 ∆t3 000
y(t1 ) = y(t0 + ∆t) = y0 + ∆ty 0 (t0 ) + y (t0 ) + y (t0 ) + . . .
2! 3!
Considerando que o espaçamento ∆t seja muito pequeno, os termos ∆t2 , ∆t3 , etc. podem
ser desprezados. Com isso:
Considerando também que y 0 = f (t, y), a relação anterior pode ser reescrita como:
y1 = y0 + ∆tf (t0 , y0 )
De forma geral, a relação anterior pode ser utilizada para estimar a solução para qualquer
valor yn+1 com base no valor para yn :
Como o valor no novo ponto yn+1 é calculado com base somente em valores no ponto
anterior (já conhecidos), este método é dito explícito.
Estrutura de um código para resolver uma EDO dy/dt = f (t, y) utilizando o método de
Euler:
Passo 1: Denir f (t, y);
Passo 2: Denir os valores iniciais t[1] = t0 , y[1] = y0 ;
10
Passo 3: Denir o tamanho do passo ∆t e o número de passos n;
Passo 4: Para i = 1 até i = n calcular:
k1 = f (t[i], y[i])
Exemplo 01): Utilizando o método de Euler, obtenha a solução aproximada até t = 0.5
para o seguinte PVI, utilizando ∆t = 0.1:
dy
= −2t − y y(0) = −1
dt
t0 = 0 y0 = −1
y(t) = −3e−t − 2t + 2
y4 = −0.8109 y5 = −0.81959
11
Exemplo 02): Utilizando o método de Euler, obtenha a solução aproximada para t = 1
para o seguinte PVI, utilizando ∆t = 0.2:
dy
= 2t2 y 2 y(0) = 1
dt
Com base nos dados fornecidos, t0 = 0 e y0 = 1. Como ∆t = 0.2, temos que t1 = 0.2,
t2 = 0.4, t3 = 0.6, t4 = 0.8 e t5 = 1. Avaliando os termos intermediários:
12
Dessa forma, conforme o passo de tempo aumenta, o erro de arredondamento diminui e o
de truncamento aumenta. Por isso, existe um ponto ótimo onde o erro total é mínimo, como
ilustrado na gura a seguir. Usualmente os erros de arredondamento são menos signicativos,
por isso a tendência é que passos pequenos gerem melhores resultados.
Como visto anteriormente, pode-se obter o valor de uma função y(t) em um ponto tn+1
com base no valor em tn através de uma expansão em séries de Taylor:
∆t2 00 ∆t2 000
yn+1 = yn + ∆t y 0 (tn ) + y (tn ) + y (tn ) + . . .
2! 3!
A diferença entre o valor exato de yn+1 e o valor aproximado obtido com o uso do método
de Euler corresponde ao erro local de truncamento (para um determinado valor de n):
∆t2 00 ∆t2 000
en+1 = y (tn ) + y (tn ) + . . .
2! 3!
Nesta forma, o erro ainda representa uma série innita. Para evitar este problema, pode-se
utilizar a fórmula de Taylor com resto de Lagrange:
∆t2 00
yn+1 = yn + ∆t y 0 (tn ) + y (c)
2!
onde c ∈ [tn , tn+1 ]. Este resultado é uma extensão do teorema do valor médio, que diz que
dada uma função contínua f denida num intervalo fechado [a,b] e diferenciável em (a,b),
existe algum ponto c em (a,b) tal que :
f (b) − f (a)
f 0 (c) =
b−a
en+1 = O(∆t2 )
En+1 = O(h)
Assim, o erro global no método de Euler é da ordem do tamanho do passo utilizado. Esta
relação mostra que o erro tende a zero conforme h → 0 e portanto o método é convergente.
De forma geral, um dado método é convergente quando:
Neste caso, o método possui ordem p, portanto, o método de Euler é um método de primeira
ordem. Métodos de ordem superior convergem mais rapidamente para a solução exata (não
exigem passos tão pequenos), sendo por isso mais indicados que os métodos de primeira
ordem.
A utilização de um passo muito pequeno (tendendo a zero) é impraticável, pois exigiria
um tempo computacional demasiadamente alto, além de fazer com que os erros de arredon-
damento aumentassem rapidamente. Um procedimento simples que pode na maioria dos
casos ser utilizado para determinar se o passo utilizado é adequado é resolver o problema
com valores de ∆t gradativamente menores. A partir de um determinado ponto as soluções
obtidas serão muito parecidas, sendo que uma maior redução em ∆t a partir deste ponto não
irá reduzir o erro global de forma signicativa e irá aumentar o erro de arredondamento.
xn+1 = xn + ∆t · f (tn , xn , yn )
yn+1 = yn + ∆t · g(tn , xn , yn )
A aplicação do método para resolução de sistemas também permite que ele seja utilizado
para a resolução de equações de ordem maior que 1. Por exemplo, considere o seguinte PVI:
d2 y
dy dy
=f x, y, y(0) = y0 = y1
dx2 dx dx x=0
Esta equação pode ser transformada em um sistema de primeira ordem através da denição
de uma variável adicional u:
dy d2 y du
u= → =
dx dx2 dx
Com isso, o PVI pode ser reescrito como:
dy
=u y(0) = y0
dx
15
du
= f (x, y, u) u(0) = y1
dx
Este procedimento pode ser aplicado para escrever uma EDO de qualquer ordem como
um sistema de EDO's de primeira ordem.
Exemplo 03: Utilizando o método de Euler, obtenha a solução aproximada para os três
primeiros passos de tempo para o seguinte sistema, considerando ∆t = 0.1:
dx
=y x(0) = 0
dt
dy √
= x y + 3y y(0) = 2
dt
√
Desse modo, f (t, x, y) = y e g(t, x, y) = x y + 3y .
Neste caso, temos que t0 = 0, x0 = 0 e y0 = 2. Para avaliar os próximos passos, deve-se
determinar todas as variáveis em t1 , na sequência todas as variáveis em t2 e assim sucessi-
vamente:
x1 = x0 + ∆t · f (t0 , x0 , y0 ) = 0 + 0.1 · (2) = 0.2
√
y1 = y0 + ∆t · g(t0 , x0 , y0 ) = 2 + 0.1 · (0 · 2 + 3 · 2) = 2.6
16
2.2. Derivações do Método de Euler
A utilização do método de Euler para a resolução de problemas típicos da engenharia
usualmente implica no uso de passos de tempo muito pequenos para garantir a convergência.
Normalmente, melhores resultados são obtidos com o uso de métodos de maior ordem ou
que ao menos possuam características de convergência mais atrativas.
Como visto na aula passada, o método de Euler possui diversas limitações que restringem
o seu uso a problemas muito especícos. Dentre as principais causas destas limitações pode-
se citar os termos desprezados na expansão em série de Taylor, a necessidade de utilizar
passos de tempo muito pequenos e o fato de que o método considera que o valor da derivada
y 0 (ti ) é constante em todo o intervalo (ti , ti+1 ). O método de Euler serviu como base para o
desenvolvimento de métodos gradativamente mais complexos e com melhor desempenho.
O método de Euler e outros métodos explícitos de maior ordem fazem parte de uma
família de métodos numéricos mais abrangentes chamados de métodos de Runge-Kutta (RK).
O método de Euler corresponde ao método RK de primeira ordem. Além dos métodos
RK, outras abordagens podem ser empregadas, como por exemplo a utilização de métodos
implícitos e os métodos de passos múltiplos. A seguir serão apresentadas três modicações
do método de Euler que pertencem a estas categorias.
Assim como para o método de Euler, o objetivo continua sendo buscar uma solução apro-
ximada para o PVI:
dy
= f (t, y) y(t0 ) = y0
dt
A partir deste valor, é calculada uma etapa corretora com base no valor médio da função
avaliada em yn e no valor preditor yn+1
∗
:
∆t ∗
yn+1 = yn + · (f (tn , yn ) + f (tn+1 , yn+1 ))
2
17
Esta fórmula representa uma correção do valor estimado anteriormente yn+1
∗
.
Para implementar computacionalmente este método, pode-se utilizar a mesma estrutura
geral apresentada para o método de Euler, sendo necessário somente modicar o passo 4:
Passo 4: Para i = 1 até i = n calcular:
k1 = f (t[i], y[i])
yp[i + 1] = y[i] + ∆t × k1
t[i + 1] = t[i] + ∆t
Exemplo 01) Repita o exemplo visto anteriormente utilizando a fórmula de Euler apri-
morada.
Lembrando do PVI (∆t = 0.2):
dy
= 2t2 y 2 y(0) = 1
dt
- Passo 2:
- Passo 3:
- Passo 4:
18
k2 = f (t4 , yp4 ) = 2.4172 y4 = y3 + (∆t/2) · (k1 + k2) = 1.5165
- Passo 5:
yn+1 = yn + ∆t · (f (tn , yn ))
Como a variável yn+1 aparece nos dois lados da igualdade, pode ser necessário utilizar
algum método iterativo para a resolução do problema, caso não seja possível explicitar o
valor yn+1 . Para EDO's lineares sempre é possível isolar yn+1 , no entanto para não-lineares
isso usualmente não é possível.
Esta formulação representa um método implícito, pois a variável yn+1 depende impli-
citamente dela mesmo. Assim como a formulação explícita, este método representa uma
aproximação de primeira ordem, porém, como será visto nas próximas aulas, os métodos
implícitos possuem uma grande vantagem sobre os explícitos em relação à estabilidade do
método.
Exemplo 02) Resolva o seguinte PVI utilizando o método de Euler implícito, com ∆t =
0.1 até t = 0.3:
dy
= t2 + ty y(0) = 1
dt
19
2.2.3. Regra do Ponto Médio
Lembrando da Fórmula de Taylor com o resto de Lagrange:
∆t2 00
yn+1 = yn + ∆t y 0 (tn ) + y (c)
2!
Novamente, como as derivadas y 000 (c) e y 000 (d) são dois escalares, a relação anterior pode
ser expressa como:
yn+1 = yn−1 + 2∆ty 0 (tn ) + O(∆t3 )
Esta relação é conhecida como regra do ponto médio e representa uma aproximação de
segunda ordem para yn+1 . Esta fórmula depende do conhecimento do valor da variável em
três pontos, por isso não pode ser utilizara para determinar y1 , já que y−1 não existe. Outra
relação pode ser utilizada para determinar o ponto y1 , e a relação anterior pode ser usada
para os demais pontos.
Comparando com o método de Euler explícito:
yn+1 − yn
yn+1 = yn + ∆ty 0 (tn ) → y 0 (tn ) =
∆t
20
yn+1 − yn−1
yn+1 = yn−1 + 2∆ty 0 (tn ) → y 0 (tn ) =
2∆t
Exemplo 07:) Utilize a regra do ponto médio para resolver o seguinte PVI até t = 0.3,
utilizando ∆t = 0.1:
dy
= y + 2t + t2 y(0) = 1
dt
Para avaliar o primeiro ponto, pode-se utilizar alguma formulação distinta. Como a regra
do ponto médio é um método de segunda ordem, é recomendável a utilização de outro método
de segunda ordem para não haver uma perda muito grande de precisão.
Utilizando o método de Euler aprimorado:
k1 = f (t0 , y0 ) = 1
yp1 = y0 + ∆t · k1 = 1.1
t1 = t0 + ∆t = 0.1
k2 = f (t1 , y1 ) = 1.31
A partir dos valores conhecidos para y0 e y1 , pode-se agora determinar os demais pontos:
21
2.3. Métodos de Runge-Kutta
Os métodos de Runge-Kutta (RK) utilizam a aproximação em série de Taylor para obter
formulações de alta ordem sem necessitar o cálculo das derivadas de alta ordem. De forma
geral, estes métodos podem ser expressos de forma geral como:
onde a função φ(ti , yi , ∆t) é chamada de incremento e pode ser interpretada como uma
representação da inclinação no intervalo entre ti e ti+1 . Como esta função só depende de
pontos já conhecidos, os métodos de Runge-Kutta clássicos são explícitos.
Para um método de ordem n, a função incremento costuma ser expressa na seguinte forma:
φ(ti , yi , ∆t) = a1 k1 + a2 k2 + a3 k3 + . . . + an kn
k1 = f (ti , yi )
onde os termos pi e qij são constantes. Como pode ser observado, a determinação do parâ-
metros kn depende os valores ki onde i < n.
Por exemplo, para um método de primeira ordem a função incremento é avaliada como:
φ(ti , yi , ∆t) = a1 k1
onde k1 = f (ti , yi ). Substituindo na expressão para a forma geral dos métodos de Runge-
Kutta:
yi+1 = yi + ∆t(a1 f (ti , yi ))
22
2.3.1. Método de Runge-Kutta de 2a Ordem
Considere agora que se deseja obter uma aproximação de segunda ordem. Neste caso,
temos que:
k1 = f (ti , yi )
a1 + a1 = 1
a2 p1 = 1/2
a2 q11 = 1/2
Este sistema possui três equações e quatro variáveis, portanto não existe solução única. No
entanto, a partir do momento em que um dos valores é especicado, os demais podem ser
calculados. Isto implica que existem innitas formulações para o método de Runge-Kutta
de segunda ordem.
k1 = f (ti , yi )
k1 = f (ti , yi )
yi+1 = yi + k2 ∆t
Esta formulação corresponde ao método de Euler modicado com base na regra do ponto
médio.
24
Método de Ralston (a2 = 2/3)
Fazendo a2 = 2/3, os demais valores são avaliados como a1 = 1/3 e p1 = q11 = 3/4:
k1 = f (ti , yi )
k1 = f (ti , yi )
k4 = f (ti+1 , yi + k3 ∆t)
A utilização de passos de tempo ∆t constantes para todos os casos possui uma série de
desvantagens, especialmente porque em muitos casos a equação pode precisar de valores
muito pequenos para manter a precisão em alguns pontos, enquanto que em outros pontos
valores maiores poderiam ser utilizados para reduzir o número de cálculos realizados.
Muitos softwares utilizam uma abordagem que determina localmente o tamanho necessário
para os passos, através da comparação dos resultados obtidos com RK4 e uma formulação
de Runge-Kutta de quinta ordem (ex. ode45 do Matlab).
Exemplo 08:) Utilize o método RK4 para resolver o seguinte PVI, adotando ∆t = 0.1
até t = 0.3:
dy
= −y + 2t y(0) = 2
dt
25
2.3.3. Método de Runge-Kutta para Sistemas
O método de Runge-Kutta pode ser utilizado para a resolução de sistemas de EDO's.
Considere, por exemplo, um sistema com duas equações:
dy
= f (y, x, t) y(t0 ) = y0
dt
dx
= g(y, x, t) x(t0 ) = x0
dt
Neste caso os parâmetros k1 , . . . , k4 irão depender de qual equação está sendo avaliada:
k1y = f (tn , yn , xn )
k1x = g(tn , yn , xn )
dy 1
= f1 (t, y 1 , y 2 , y 3 , . . . , y m ) y 1 (t0 ) = y01
dt
dy 2
= f2 (t, y 1 , y 2 , y 3 , . . . , y m ) y 2 (t0 ) = y02
dt
dy 3 y 3 (t0 ) = y03 (2.4)
= f3 (t, y 1 , y 2 , y 3 , . . . , y m )
dt
.. ..
. .
dy m y m (t0 ) = y0m
= fm (t, y 1 , y 2 , y 3 , . . . , y m )
dt
Neste caso, as quantidades k1 , k2 , etc. passam a ser vetores com m componentes:
26
f1 (xn , yn1 , yn2 , . . . , ynm )
f2 (xn , yn1 , yn2 , . . . , ynm )
k1 = ..
.
fm (xn , yn1 , yn2 , . . . , ynm )
f1 (xn + ∆t/2, yn1 + ∆t · k1 [1]/2, yn2 + ∆t · k1 [2]/2, . . . ynm + ∆t · k1 [m]/2)
1 2 m
f2 (xn + ∆t/2, yn + ∆t · k1 [1]/2, yn + ∆t · k1 [2]/2, . . . yn + ∆t · k1 [m]/2)
k2 = ∆t ..
.
1 2 m
fm (xn + ∆t/2, yn + ∆t · k1 [1]/2, yn + ∆t · k1 [2]/2, . . . yn + ∆t · k1 [m]/2)
f (x + ∆t/2, yn1
+ ∆t · k2 [1]/2, yn2
+ ∆t · k2 [2]/2, . . . ynm
+ ∆t · k2 [m]/2)
1 n
1 2 m
f2 (xn + ∆t/2, yn + ∆t · k2 [1]/2, yn + ∆t · k2 [2]/2, . . . yn + ∆t · k2 [m]/2)
k3 = ∆t ..
.
1 2 m
fm (xn + ∆t/2, yn + ∆t · k2 [1]/2, yn + ∆t · k2 [2]/2, . . . yn + ∆t · k2 [m]/2)
f1 (xn + ∆t, yn1 + ∆t · k3 [1], yn2 + ∆t · k3 [2], . . . ynm + ∆t · k3 [m])
1 2 m
f2 (xn + ∆t, yn + ∆t · k3 [1], yn + ∆t · k3 [2], . . . yn + ∆t · k3 [m])
k4 = ∆t ..
.
1 2 m
fm (xn + ∆t, yn + ∆t · k3 [1], yn + ∆t · k3 [2], . . . yn + ∆t · k3 [m])
Com base nestes vetores, a solução para o sistema pode ser avaliada:
i ∆t
yn+1 = yni + (k1 [i] + 2k2 [i] + 2k3 [i] + k4 [i])
2
Exemplo 01:) Utilize o método RK4 para resolver os dois primeros passos para o seguinte
sistema, considerando ∆t = 0.2:
dy
= −7y sin(x + 2t) y(0) = 1
dt
dx
= 4x − y 2 x(0) = 0
dt
Denindo:
t1 = t0 + ∆t = 0.2
27
Avaliando primeiramente k1 para as duas equações:
Avaliando agora k2
k2y = f (t0 +∆t/2, y0 +∆tk1y /2, x0 +∆tk1x /2) = (−7·(1) sin(−1·0.2/2+2·0.2/2)) = −0.6988339
k2x = g(t0 + ∆t/2, y0 + ∆tk1y /2, x0 + ∆tk1x /2) = (4 · (−1 · 0.2/2) − (1)2 ) = −1.4
Para k3 :
k3y = ∆tf (t0 + ∆t/2, y0 + ∆tk2y /2, x0 + ∆tk2x /2)
Para k4 :
k4y = f (t1 , y0 + ∆tk3y , x0 + ∆tk3x )
28
2.3.4. Métodos de Runge-Kutta Adaptativos
Como visto anteriormente, o passo de tempo utilizado (∆t) possui uma grande inuência
no erro associado à resolução de equações diferenciais através de métodos numéricos. Além
disso, o valor de ∆t irá denir quantos passos serão necessários para atingir o tempo nal
desejado. Para reduzir o gasto computacional envolvido, deve-se utilizar o maior passo de
tempo possível que garanta que o erro esteja dentro do limite estabelecido.
Para um grande número de problemas comuns na engenharia, a resolução pode necessitar
de passos muito pequenos em um determinado intervalo de tempo e possibilitar que passos
maiores sejam utilizados para os demais intervalos. Por exemplo, quando a solução representa
um decaimento exponencial, usualmente nos instantes iniciais ocorre uma rápida variação
na solução que tende a estabilizar conforme o tempo avança. Como consequência, passos de
tempo pequenos são necessários nos instantes inicias, porém após um determinado tempo os
passos podem ser aumentados sem que o erro seja superior ao especicado.
Para evitar estes inconvenientes, pode-se utilizar um passo de tempo que se adapte a
solução. A implementação deste tipo de algoritmo requer que o erro de truncamento local
seja de alguma forma estimado ao longo da resolução (para cada passo de tempo). Apesar de
isto gerar um gasto computacional extra, normalmente o ganho associado ao uso de passos
adaptativos supera em muito este gasto.
Existem duas formas duas abordagens distintas para implimentar métodos de Runge-
Kutta com passo adaptativo. Uma delas consiste em estimar o erro através da diferença
entre duas predições obtidas com passos diferentes usando um método de mesma ordem.
A outra abordagem consiste em avaliar o erro local de truncamento através da comparação
entre os resultados obtidos com métodos de ordem distintas, utilizado o mesmo passo de
tempo.
O método adaptativo mais simples é o método de passo duplo, que consiste em avaliar
cada ponto duas vezes, uma vez através de um único passo e outra através de dois passos
com a metade do tamanho do primeiro. A diferença entre os dois resultados representa
uma estimativa do erro de truncamento local. Por exemplo, quando o ponto yi+1 vai ser
calculado com base no ponto yi , primeiramente calcula-se utilizando um passo ∆t e na
sequência calcula-se novamente yi+1 através de dois passos com tamanho ∆t/2.
29
Suponha que y1∗ representa o valor calculado em t+∆ com o passo ∆t e y2∗ o valor calculado
para o mesmo tempo t + ∆t mas com o passo ∆t/2, como ilustrado na gura a seguir.
onde φ é um escalar. De forma semelhante, para y2∗ são necessários dois passos, de modo
que: 2
∆t2
∆t
x= y2∗ +2 φ + O(∆t3 ) = y2∗ + φ + O(∆t3 )
2 2
Desprezando os termos da ordem de ∆t3 , igualando as duas expressões temos que:
2
∆t
y1∗ + ∆t φ = 2
y2∗ +2 φ
2
30
Considere, por exemplo, que o erro máximo permitido seja emax = 10−6 . Se ∆ = |y2∗ −y1∗ | <
10−6 , valida-se o passo e utiliza-se o valor y2∗ . Para corrigir o passo de tempo ∆t, diferentes
relações podem ser utilizadas, como por exemplo:
e α
max
∆t = ∆t∗
∆
onde ∆t∗ representa o passo de tempo antigo e ∆t o valor corrigido. Como neste caso
emax > ∆, o valor novo obtido será maior que o anterior. O valor de α recomendado para
este caso (emax > ∆) é de α = 0.2
Considerando agora que ∆ > emax . Neste caso, o passo é invalidado e deve ser recalculado
com um passo menor. A relação utilizada para recalcular o passo é a mesma apresentada
anteriormente, porém neste caso o valor corrigido será menor que o anterior e o valor reco-
mendado para α é de α = 0.25.
Como o valor é superior ao erro máximo, deve-se refazer este passo. Recalculando o passo
de tempo: 0.25
10−3
∆t = 1 = 0.638943
0.006
Recalculando o primeiro passo de tempo com o novo valor de ∆t, obtém-se que y1∗ = 4.3481
e y2∗ = 4.3475, de modo que ∆ = 6 × 10−4 . Como o valor é inferior ao erro máximo, este
ponto pode ser validado:
t1 = t0 + ∆t = 0.638943
y(t1 ) = y1 = 4.3475
t2 = 1.258698
y(t2 ) = y2 = 7.84849122
Como deseja-se saber y(1.25), o valor de t2 já está acima do especifado. Para obter o valor
no ponto t = 1.25, pode-se realizar uma interpolação linear entre os valores para t1 e t2 :
(t2 − 1.25)
y(1.25) = y1 + (y2 − y1 ) = 7.79936
(t2 − t1 )
Método de Runge-Kutta-Fehlberg
Outra alternativa para estimar o erro local de truncamento é avaliar um dado ponto através
de métodos com ordem distinta. Por exemplo, pode-se avaliar a solução em um dado ponto
y(ti+1 ) através de um método de segunda ordem (yi+1
∗
) e de um método de terceira ordem
(yi+1 ). A diferença entre os dois valores (yi+1 − yi+1
∗
) representa uma estimativa do erro de
truncamento neste ponto. Se os dois valores forem muito próximos, isto indica que a redução
no passo de tempo não irá diminuir signicativamente o erro local de truncamento.
A abordagem mais utilizada consiste em avaliar a solução em um ponto através de métodos
de Runge-Kutta de quarta e quinta ordem, sendo que as estimativas de quarta ordem (yi+1
∗
)
e de quinta ordem (yi+1 ) podem ser representadas como:
∗ 37 250 125 512
yi+1 = yi + ∆t k1 + k3 + k4 + k6
378 621 594 1771
2825 18575 13525 277 1
yi+1 = yi + ∆t k1 + k3 + k4 + k5 + k6
27648 48384 55296 14336 4
onde:
k1 = f (ti , yi )
32
∆t ∆t
k2 = f ti + , yi + k1
5 5
3∆t 3∆t 9∆t
k3 = f ti + , yi + k1 + k2
10 40 40
3∆t 3∆t 9∆t 6∆t
k4 = f t i + , yi + k1 − k2 + k3
5 10 10 5
11∆t 5∆t 70∆t 35∆t
k5 = f ti + ∆t, yi − k1 + k2 − k3 + k4
54 2 27 27
7∆t 1631∆t 175∆t 575∆t 44275∆t 253∆t
k6 = f ti + , yi + k1 + k2 + k3 + k4 + k5
8 55296 512 13824 110592 4096
Da mesma forma como para o método anterior, o erro associado com a estimativa do ponto
yi+1 é avaliado como:
∗
∆ = yi+1 − yi+1
Com base neste valor, utiliza-se o mesmo critério apresentado anteriormente para corrigir
o passo de tempo ∆t, ou seja, se o erro for menor que o especicado aumenta-se o passo de
tempo e se o erro for menor descarta-se o valor obtido e reduz-se o passo de tempo até que
o erro esteja dentro do valor tolerável. As relações utilizadas para reduzir ou aumentar o
passo são as mesmas apresentadas para o método do passo duplo.
33
2.4. Métodos de Passos Múltiplos
Os métodos de passos múltiplos são aqueles onde a variável yn+1 é determinada com base
nos valores desta variável em mais de um ponto, como por exemplo no método baseado na
regra do ponto médio:
yn+1 − yn−1
yn+1 = yn−1 + 2∆ty 0 (tn ) → y 0 (tn ) =
2∆t
Os demais métodos, que determinam yn+1 com base somente nos valores de yn , são cha-
mados de métodos de passo único.
Como visto anteriormente, os métodos de passos múltiplos não iniciam automaticamente,
sendo necessário avaliar alguns pontos iniciais através de outro método. Dentre os métodos
de passos múltiplos, os mais utilizados são os da família dos métodos de Adams, como
apresentado a seguir.
Uma maneira de obter o valor em um ponto yn+1 com base em um valor conhecido yn é
integrar a equação desde um ponto tn até um ponto tn+1 :
Z tn+1 Z tn+1
0
y (t)dt = f (t, y)dt
tn tn
Como o lado esquerdo avalia a integral de uma derivada, podemos escrever a expressão
anterior como: Z tn+1
y(tn+1 ) − y(tn ) = yn+1 − yn = f (t, y)dt
tn
Como a função y(t) não é conhecida, não é possível resolver diretamente a integral do lado
direito da equação. O método de Adams-Bashforth consiste em substituir a função f (t, y)
por um polinômio p(t), permitindo assim a resolução da integral:
Z tn+1
yn+1 = yn + p(t)dt
tn
Dependendo da ordem escolhida para o polinômio p(t), diferentes formulações são obtidas.
Os coecientes associados ao polinômio são determinados com base nos valores já conhecidos
34
para yn , yn−1 , yn−2 , etc. Caso um polinômio de ordem k for utilizado, é necessário conhecer
a solução em k + 1 pontos.
Por exemplo, caso um polinômio de primeira ordem for empregado:
p(t) = At + B
é necessário conhecer o valor da função f (x, y) em dois pontos, ou seja, é necessário deter-
minar dois valores (yn e yn−1 ) para encontar as constantes A e B . Com isso:
Atn + B = f (tn , yn ) = fn
Resolvendo para A e B :
fn − fn−1 fn−1 tn − fn tn−1
A= B=
∆t ∆t
Neste caso, é necessário conhecer 4 pontos anteriores. Em comparação com outros métodos
de quarta ordem, como RK4, o método de Adams-Bashforth costuma apresentar melhores
resultados.
αtn+1 + β = fn+1
αtn + β = fn
Considerando que fn+1 = f (tn+1 , yn+1 ), esta relação representa uma fórmula implícita de
segunda ordem.
Utilizando polinômios de ordem maior, obtém-se formulações de ordem superior. O mé-
todo de Adams-Moulton de quarta ordem é dado como:
∆t
yn+1 = yn + (9fn+1 + 19fn − 5fn−1 + fn−2 )
24
onde fn+1
∗ ∗
= f (tn+1 , yn+1 )
t0 = 0 y0 = 2
t1 = 0.1 y1 = 1.82
3 1
y4∗ = y3 + ∆t · f (t3 , y3 ) − ∆t · f (t2 , y2 ) = 1.4902
2 2
∆t ∆t
y4 = y3 + f (t3 , y3 ) + f (t4 , y4∗ ) = 1.4889
2 2
37
2.5. Estabilidade dos Métodos de Resolução de EDO's
Na passagem do método de Euler explícito para métodos mais complexos, o principal
objetivo foi obter métodos com melhor precisão (reduzir os erros de truncamento). No
entanto, em muitos casos os resultados obtidos não só possuem uma baixa precisão como
também são catastrocamente distintos da solução exata.
Por exemplo, considere o seguinte PVI:
dy
= −12y y(0) = 1
dt
A utilização do método de Euler explícito com ∆t = 0.2 gera o resultado ilustrado a seguir.
Neste caso, o erro aumenta rapidamente conforme se avança na solução. Este problema
está associado com a falta de estabilidade do método empregado.
Antes de avaliar a estabilidade dos métodos, é necessário denir dois conceitos relacionados
a análise de estabilidade:
Consistência: Um método de passo único (como os da família de Runge-Kutta) é dito
consistência se o erro de truncamento local ei tende a zero conforme ∆t → 0 para todos os
passos de tempo, ou seja:
lim max |ei | = 0
∆t→0 1≤i≤N
38
Dessa forma, um método consistente possui a propriedade de que as equações obtidas para
cada passo se aproximada da própria equação diferencial conforme o passo de tempo tende
a zero, de modo que o erro de truncamento local também tende a zero.
Porém, além do erro de truncamento, deve-se considerar a inuência do erro de arredonda-
mento, associado ao fato de que os valores numéricos não são representados de forma exata.
Na prática, os parâmetros do sistema, as condições inicias e todo o processo aritmético sub-
sequente possuem erros associados com a precisão numérica nita dos valores empregados.
Para garantir que um determinado método seja convergente, deve-se então garantir que
além de ser consistente, o erro de arredondamento deve car limitado a um valor aceitável.
O controle do erro de arredondamento está associado com a estabilidade do método. Este
conceito é muito similar ao conceito de condicionamento de um sistema linear, no sentido
de que um método é dito estável quando pequenas variações nos parâmetros ou condições
iniciais levam a igualmente pequenas variações na solução obtida. A seguir será apresentada
uma análise da estabilidade para os métodos de passo único. Para os métodos de passos-
múltiplos, como existem diversas etapas de aproximação envolvidas em cada passo, a análise
é mais complexa.
onde λ > 0. Esta equação representa uma taxa de decaimento de primeira ordem, que
surge, por exemplo, na análise da variação na fração de um dado reagente em uma reação
de primeira ordem.
Considerando novamente que φ(t) é a solução exata da equação, o valor calculado nume-
ricamente pode ser expresso como:
Esta equação serve como uma relação para determinar como o erro varia ao longo do tempo,
ou seja, ao longo dos passos avaliados. Se o erro diminuir com o tempo, o método é estável,
caso contrário será instável.
Por exemplo, considere que o método de Euler explícito seja utilizado para avaliar ε(t):
εn+1
εn+1 = εn + ∆t(−λεn ) = εn (1 − ∆tλ) → = 1 − ∆tλ
εn
Para garantir a estabilidade, é preciso que o erro em tn+1 seja menor que o erro em tn ,
assim:
ε
n+1
≤1
εn
40
Considerando a relação anterior:
|1 − ∆tλ| ≤ 1
Desse modo, o passo de tempo para garantir a estabilidade deve ser maior que zero e
menor que 2/λ.
A região contendo os valores de λ∆t que levam a uma solução estável é chamado de domínio
de estabilidade linear. O parâmetro λ pode ser um número complexo, de modo que o domínio
de estabilidade costuma ser representado no plano complexo. Denindo z = −λ∆t, temos
que para o método de Euler explícito ser estável a seguinte condição deve ser satisfeita:
|1 + z| ≤ 1
Fazendo z = a + bi:
Esta relação representa um círculo de raio menor ou igual a 1, deslocado em uma unidade
para a esquerda no eixo equivalente a a. Como a é a parte real de z e b a parte imaginária
de z , o domínio de estabilidade do método de Euler explícito representa a região indicada
na gura a seguir.
Com isso:
εn+1 1
=
εn 1 + ∆tλ
Como λ > 0 e ∆t > 0, esta relação mostra que o método de Euler implícito é estável para
qualquer valor de ∆t, o que é uma característica comum dos métodos implícitos.
41
Considere agora a modicação de segunda ordem baseada na regra do ponto médio:
∆t
εn+1 = εn + (−λεn − λεn+1 )
2
De modo que:
εn+1 1 − ∆tλ/2
εn+1 (1 + ∆tλ/2) = εn (1 − ∆tλ/2) → =
εn 1 + ∆tλ/2
42
- Normalmente existem termos que levam à uma rápida variação na solução;
- Problemas rígidos possuem uma variedade de escalas de tempo associadas, ou seja, em
determinados pontos a solução varia muito mais rapidamente que em outras;
- Métodos explícitos só são estáveis para a resolução de EDO's rígidas se o passo de tempo
utilizado for muito pequeno;
- Usualmente, o passo de tempo utilizado para garantir a estabilidade é menor que o
necessário para garantir a convergência desejada.
é um exemplo de equação rígida, especialmente para altos valores de λ. Esta equação possui
solução da forma:
y = y0 e−λt
43
Como visto anteriormente, se um método explícito for empregado, deve-se usar um valor de
∆t sucientemente pequeno para garantir a estabilidade da solução. Por exemplo, para o
método de Euler explícito:
2
∆t <
λ
Caso for necessário avaliar a solução até um tempo nal t1 , o número de passos necessários
(n) será:
t1 λt1
n= → n>
∆t 2
Assim, o número de passos mínimo necessários é diretamente proporcional ao valor de λ.
Assim, a solução possui dois termos: um termo e−t que varia lentamente com o tempo e
outro e−1000t que varia rapidamente. Para garantir a estabilidade, é preciso que a solução
se mantenha estável durante toda a resolução, por isso, a estabilidade deve ser assegurada
para o termo e−1000t .
De modo geral, os valores de ∆t empregados devem ser determinados sem o conhecimento
da solução. O PVI anterior pode ser reescrito como:
dY −500.5 499.5
= Y = AY
dt 499.5 −500.5
|A − λI| = 0
44
Assim, para este caso:
−500.5 − λ 499.5
=0 → (−500.5 − λ)2 − 499.52 = 0
499.5 −500.5 − λ
λ1 = −1 λ2 = −1000
45
Por exemplo, em um sistema 2 × 2 da forma:
dy dx
= f (x, y) = g(x, y)
dt dt
Neste caso, a razão de rigidez é denida com base nos autovalores da matriz Jacobiana.
Como J(tn ) pode depender do tempo, a razão de rigidez pode variar ao longo da solução.
Os valores de ∆t necessários para garantir a estabilidade também podem ser denidos com
base nos autovalores da matriz Jacobiana.
Obs.: Caso tn for um ponto xo, os autovalores do Jacobiano também servem para denir
se o ponto é estável ou não, sendo instável caso algum autovalor tenha parte real positiva.
46
3. Métodos Numéricos para Problemas
de Valor de Contorno
Equações diferenciais de ordem maior que um podem gerar problemas de valor inicial
(PVI) ou problemas de valor de contorno (PVC), dependendo da forma como as condições
conhecidas são especicadas. Por exemplo, considere a EDO:
Até o momento, foram analisados principalmente casos onde condições iniciais conhecidas
são especicadas da forma:
originando desta forma um PVI. Para a resolução numérica de PVI's, pode-se partir da
condição inicial e ir avançando até um tempo nal arbitrário.
Em muitos casos, os problemas envolvem condições conhecidas em pontos diferentes, sendo
estas chamadas de condições de contorno, podendo ser expressas, por exemplo, como:
y(α) = y0 y(β) = y1
De forma geral, os PVC's envolvem uma coordenada espacial como variável independente.
Assim, a resolução de um PVC's consiste em buscar uma solução que satisfaz a equação
diferencial no intervalo α < x < β juntamente com as condições de contorno especicadas.
Isto implica que existem duas condições, em pontos diferentes do domínio de solução, que
deve ser simultaneamente satisfeitas. Por isso, os métodos de marcha (como os de Runge-
Kutta) não podem ser empregados neste caso.
47
3.1. Estratégias de Solução de PVC's
Os métodos para resolver problemas de valor de contorno se dividem em duas categorias:
os baseados em transformar o PVC em um PVI e os baseados em discretizar a equação
utilizando métodos de diferenças nitas.
Os métodos que transformação PVC's e PVI's consistem basicamente em utilizar uma das
condições de contorno como condição inicial e assumir (chutar) diferentes valores para uma
segunda condição inicial de modo que o resultado obtido satisfaça a segunda condição de
contorno. Por exemplo, considere a seguinte equação utilizada para descrever a variação na
temperatura em uma barra que perde calor para o ambiente por convecção, como apresentado
na gura a seguir.
Considerando que a barra seja muito na, com raio muito menor que o comprimento,
pode-se assumir que a equação que descreve a variação na temperatura ao longo de x pode
ser expressa como:
d2 T
+ h0 (Ta − T ) = 0
dx2
onde h0 é um coeciente de troca térmica e Ta é a temperatura ambiente.
As condições de contorno corresponde a temperatura xas nas extremidades, em x = 0 e
x = L, de modo que:
T (0) = T1 T (L) = T2
48
O valor de z0 não é conhecido, pois o valor da derivada de T em x = 0 não foi especicado.
O método utilizado neste caso consiste em assumir diferentes valores para z0 até que a con-
dição T (L) = T2 seja satisfeita. Para equação lineares, este método funciona razoavelmente
bem, pois pode-se interpolar os valores para T (L) obtidos para diferentes valores de z0 para
encontrar o valor de z0 que corresponde a solução correta do problema. No entanto, de
modo geral este método é pouco utilizado, em particular porque os métodos baseados em
aproximações por diferenças nitas costumam ser mais ecientes, como ser apresentado a
seguir.
x = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9.1]
49
Como pode ser visto, este conjunto contém 11 pontos. De maneira geral, o número de pontos
sempre será igual ao número de elementos em que o domínio é dividido mais 1. Este vetor
pode ser representado de uma forma mais simples como:
x[i] = i∆x i = 0, 1, 2, . . . 10
50
Aproximação para Frente (Foward)
Considere que se deseja aproximar o valor em xi+1 com base no valor em xi , ou seja,
deseja-se aproximar y(xi+1 ) = yi+1 com base em y(xi ) = yi .
A expansão em série de Taylor neste caso pode ser expressa como:
dy (xi+1 − xi )2 d2 y (xi+1 − xi )3 d3 y
yi+1 = yi + (xi+1 − xi ) + + + . . . (3.1)
dx x=xi 2! dx2 x=xi 3! dx3 x=xi
Esta expressão é conhecida como aproximação por diferenças nitas para frente (ou método
de diferenças nitas para frente), pois utiliza o valor da função em um ponto a frente xi+1
para estimar o valor da derivada em um ponto anterior xi . Fazendo o limite de ∆x tendendo
a zero:
dy yi+1 − yi
= lim
dx x=xi ∆x→0 ∆x
51
Aproximação para Trás (Backward)
De forma semelhante ao realizado para obter a derivada em xi com base na expansão para
obter yi+1 , pode-se realizar uma expansão para obter a função em xi−1 :
dy (xi−1 − xi )2 d2 y (xi−1 − xi )3 d3 y
yi−1 = yi + (xi−1 − xi ) + + + ...
dx x=xi 2! dx2 x=xi 3! dx3 x=xi
esta aproximação é conhecida como aproximação por diferenças nitas para trás (ou mé-
todo de diferenças nitas para trás), e também representa uma aproximação de primeira
ordem para a derivada em um dado ponto xi .
A utilização dos métodos para trás ou para frente é, a princípio, equivalente. A única
restrição ocorre nos pontos extremos do domínio. Por exemplo, no ponto x0 não pode ser
aplicado o método para trás pois não existe um ponto anterior a este. De forma semelhante,
no ponto xN a formulação para frente não pode ser utilizada, pois de maneira equivalente
não existe nenhum ponto após este para ser utilizado de base.
Aproximação Central
Desprezando agora os termos da ordem de O(∆x)3 , pode-se obter a seguinte expressão para
uma aproximação da derivada primeira em xi :
dy yi+1 − yi−1
=
dx x=xi 2∆x
52
Esta expressão é conhecida como aproximação pode diferenças nitas central (ou método de
diferenças nitas central). Neste caso, o erro de truncamento local é da ordem de O(∆x)3 ,
de modo que o erro global será da ordem de O(∆x)2 . Assim, esta aproximação é de segunda
ordem.
Existem aproximações de ordem superior, porém a aproximação central é a mais empre-
gada, sendo adequada para a maioria dos casos. Novamente, dever-se observar que esta
aproximação não pode ser aplicada nos pontos extremos do sistema. A melhor estratégia
para a discretização da equação é utilizar o método central para os pontos internos, o método
para frente no ponto x0 e o método para trás no ponto xN .
Uma comparação geométrica dos três esquemas de discretização é apresentada na gura
a seguir.
53
onde a derivada avaliada no ponto xi+1 , utilizando novamente um esquema para frente, é
obtida de forma equivalente a derivada no ponto xi como:
dy yi+2 − yi+1
=
dx x=xi+1 xi+2 − xi+1
Considerando que os pontos sejam igualmente espaçados (grid igualmente espaçado), pode-se
juntar as expressões para de derivada em xi+1 e a expressão para a derivada em xi , obtém-se
a seguinte expressão para a derivada segunda em xi :
d2 y yi − 2yi+1 + yi+2
2
=
dx x=xi (∆x)2
Esta expressão representa o esquema para frente aplicado à derivada segunda. Como ele se
baseia em esquemas de primeira ordem, também é uma aproximação de primeira ordem.
Fazendo um procedimento semelhante utilizando o esquema para trás, obtém-se:
d2 y yi − 2yi−1 + yi−2
=
dx2 x=xi (∆x)2
sendo este o esquema para trás aplicado para a derivada segunda, sendo também um método
de primeira ordem.
Utilizando o esquema central, obtém-se a seguinte aproximação:
d2 y yi+1 − 2yi + yi−1
2
=
dx x=xi (∆x)2
sendo esta uma aproximação de segunda ordem. Novamente, a estratégia que normalmente
resulta em um melhor resultado é utilizar o esquema central para os pontos internos e os
esquemas para frente e para trás para o primeiro e para o último ponto, respectivamente.
54
x0 corresponde ao ponto inicial x = 0 e xN corresponde ao ponto x = L, as condições de
contorno são implementadas denindo:
T0 = T1 TN = T2
Neste caso, é necessário discretizar a condição de contorno para transforma-la numa relação
algébrica. Como este ponto corresponde ao último ponto do domínio, os esquemas para
frente e central não pode ser utilizados, pois iriam depender de um ponto yN +1 que está fora
do domínio de solução. Assim, é necessário utilizar o esquema para trás, de modo que a
condição pode ser discretizada como:
dT TN − TN −1
= =0 → TN = TN −1
dx x=L xN − xN −1
55
onde Text , h0 , Ta e L são constantes. Para discretizar a equação, deve-se primeiramente
denir o grid numérico, ou seja, deve-se denir em quantos pontos o domínio de solução
contínuo será dividido e como estes pontos estão distribuídos. Neste caso, será assumido que
o número de pontos será N + 1 = 6 e, por simplicidade, será considerado que os pontos estão
igualmente espaçados, portanto o domínio discreto será um conjunto de 6 pontos igualmente
espaçados, como ilustrado na gura a seguir.
Como pode ser observado, quando 6 pontos são utilizados, o domínio contínuo é dividido
em 5 subdomínios com tamanho ∆x, ou seja, ∆x = L/5.
O objetivo do método de diferenças nitas é obter uma aproximação para a temperatura
em cada um dos pontos xi , ou seja, deve encontrar 6 valores T0 , T1 , T2 , T3 , T4 e T5 . Para isso,
é necessário que cada ponto possua uma equação algébrica associada. O primeiro passo para
a resolução é discretizar a equação. Neste caso, a equação possui somente uma derivada
segunda que deve ser discretizada. Para isso, será utilizar o esquema de diferenças central:
d2 T Ti+1 − 2Ti + Ti−1
2
=
dx ∆x2
56
ou ainda:
(2 + h0 ∆x2 )Ti − Ti+1 − Ti−1 = ∆x2 h0 Ta
Esta relação pode ser utilizada para obter equações para a temperatura em todos os pontos
internos, ou seja, para todos os pontos exceto x0 e x5 . Assim, para o ponto x1 temos que:
e para os pontos x3 e x4 :
T0 = Text
A segunda condição de contorno é dada em termos de derivada nula. Neste caso, é preciso
discretizar a condição. Como comentado anteriormente, neste caso somente uma aproxima-
ção para trás pode ser utilizada, de modo que:
dT T5 − T4
=0 → =0 → T5 − T4 = 0
dx x=L ∆x
Isto forma um conjunto de 6 equações lineares que podem ser utilizadas para a obtenção das
6 variáveis T0 , T1 , T2 , . . . Na forma matricial, estas equações podem ser expressas como:
1 0 0 0 0 0 T Text
0
0 2
−1 (2 + h ∆x ) 2 0
−1 0 0 0 T1 ∆x h Ta
−1 (2 + h0 ∆x2 ) −1 0 T2 ∆x2 h0 Ta
0 0
=
0 2 2 0
−1 −1
0 0 (2 + h ∆x ) 0 T3 ∆x h Ta
0 2 2 0
−1 (2 + h ∆x ) −1 T4 ∆x h Ta
0 0 0
0 0 0 0 −1 1 T5 0
Assim, obtém-se um sistema linear tridiagonal que pode ser resolvido para obter a tempe-
ratura em cada um dos pontos do domínio discreto. Para ilustrar, considere um caso onde
57
L = 1 cm (de modo que ∆x = L/5 = 0.2 cm), Text = 100◦ C , Ta = 25◦ C e h0 = 0.1 cm−2 .
Com isso, o sistema linear pode ser avaliado como:
1 0 0 0 T 0
100 0
0
−1 2.004 −1 0 0 0 T1 0.1
−1 2.004 −1
0 0 0 T2 0.1
=
−1 2.004 −1
0 0 0 T3 0.1
−1 2.004 −1 T4 0.1
0 0 0
0 0 0 0 −1 1 T5 0
Para resolver este sistema linear, pode-se utilizar o algoritmo de Thomas (TDMA), como
visto em aulas anteriores. Relembrando, este método irá transforma a matriz dos coecientes
em uma matriz triangular superior. Os elementos abaixo da diagonal principal serão zerados
e os acima da diagonal principal não serão afetados. Os elementos da diagonal principal (a
partir da linha 2) são reavaliados como:
58
Resolvendo o sistema, obtém-se:
T [0] = T0 = 100◦ C
T [0.2] = T1 = 98.83◦ C
T [0.4] = T2 = 97.96◦ C
T [0.6] = T3 = 97.38◦ C
T [0.8] = T4 = 97.09◦ C
T [1] = T5 = 97.09◦ C
T [0] = T0 = 100◦ C
T [0.2] = T1 = 98.697◦ C
T [0.4] = T2 = 97.689◦ C
T [0.6] = T3 = 96.97◦ C
T [0.8] = T4 = 96.54◦ C
T [1] = T5 = 96.4◦ C
Na gura a seguir é apresenta uma comparação entre a solução exata (linha) e a solução
aproximada obtida com o método de diferenças nitas (pontos). Pode-se observar que o
desvio é relativamente alto, sendo que um resultado melhor pode ser obtido aumentado-se o
número de pontos.
60
4. Método das Linhas
O método das linhas é um método semi-discreto para a resolução de EDP's que consiste em
discretizar as variáveis espaciais e manter uma das varáveis contínua (usualmente o tempo),
de modo a transformar a EDP em um sistema de EDO's que pode então ser resolvido através
dos métodos vistos anteriormente para a resolução de PVI's (como os métodos de Runge-
Kutta). A abordagem utilizada para a discretização das variáveis espaciais usualmente é o
método de diferenças nitas, por isso o método das linhas é muitas vezes chamado de método
de diferenças nitas semi-discreto.
Este método é aplicado principalmente para equações parabólicas, pois sua aplicação em
equações elípticas origina um conjunto de PVC's, o que por sua vez também precisam ser
resolvido por métodos de discretização. Quando aplicado em equações parabólicas, a va-
riável que possui um caminho característico é mantida contínua enquanto as demais são
discretizadas.
Por exemplo, considere a equação do calor:
∂T ∂ 2T
=α 2
∂t ∂x
Para obter uma solução particular para esta equação, é preciso especicar duas condições de
contorno e uma condição inicial. Considere, por exemplo, as seguintes condições:
T (x, 0) = sin(x)
Assim, para cada variável Ti teremos uma condição inicial associada da forma:
Ti (0) = sin(xi )
Observe que enquanto a temperatura é uma função da posição e do tempo (T (x, t)), as
variáveis Ti são funções apenas do tempo Ti (t), pois representam a temperatura em um
ponto xo xi . A aplicação do método das linhas vai originar uma série de curvas (daí o nome
método das linhas), contínuas em relação ao tempo, que representam como a temperatura
varia em cada ponto xi . A gura a seguir ilustra a forma da solução de uma EDP com duas
variáveis independentes obtida com o método das linhas.
62
Para ilustrar a aplicação do método das linhas, considere que se deseje obter a variação de
temperatura ao longo de uma barra metálica com uma extremidade isolada e outra mantida
a uma temperatura Text e que perde calor para o meio externo por convecção, da mesma
forma que analisado na aula anterior. Neste caso, porém, considere que se deseje obter como
a temperatura varia ao longo do tempo a partir de um estado inicial T (x, 0) = Tini .
T (x, 0) = Tini
De forma geral, as condições de contorno podem ser função do tempo, da mesma forma que
a condição inicial pode ser uma função de x.
Para resolver esta equação com o método das linhas, é preciso discretizar a equação na
direção espacial e manter a função contínua no tempo. Assim, deve-se denir um domínio
discreto na direção x. Neste caso, será considerado o mesmo domínio discreto utilizada
anteriormente, com N + 1 = 6 pontos:
Neste caso, a discretização da EDP na direção x irá resultar um conjunto de valores
(T0 , T1 , T2 , T3 , T4 , T5 ) que representam a temperatura nos pontos respectivos (x0 , x1 , x2 , x3 , x4 , x5 ).
Neste caso, porém, estes valores Ti não são necessariamente constantes, mas são uma função
do tempo.
A EDP avaliada neste exemplo envolve a derivada segunda em relação a direção x, então
deve-se discretizar esta derivada. Considerando um esquema central, a derivada segunda nos
63
pontos xi são dadas por:
∂ 2T Ti+1 − 2Ti + Ti−1
=
∂x2 (∆x)2
Substituindo na EDP, obtém-se:
dTi Ti+1 − 2Ti + Ti−1
=α − h0 α(Ti − Ta )
dt (∆x)2
Esta equação pode ser aplicada nos pontos i = 1, 2, 3, 4 para obter uma EDO para a tem-
peratura em cada um destes pontos. Para resolver este sistema de EDO's, é preciso denir
uma condição inicial para cada ponto. Como a temperatura inicial é considerada constante
e igual a Tini , basta associar este valor com a temperatura em cada ponto:
Ti (0) = Tini
Para fechar o sistema de equações, é preciso ainda denir equações para T0 e T5 , que são
obtidas através da aplicação das condições de contorno. A condição T (0, t) = Text resulta
diretamente em:
T0 = Text
64
De forma resumida, as equações para os 6 pontos são:
T0 = Text
dT1 T2 − 2T1 + T0
=α 2
− h0 α(T1 − Ta ) T1 (0) = Tini
dt (∆x)
dT2 T3 − 2T2 + T1
=α − h0 α(T2 − Ta ) T1 (0) = Tini
dt (∆x)2
dT3 T4 − 2T3 + T2
=α − h0 α(T3 − Ta ) T1 (0) = Tini
dt (∆x)2
dT4 T5 − 2T5 + T3
=α − h0 α(T4 − Ta ) T1 (0) = Tini
dt (∆x)2
T5 = T4
As equações para i = 1, 2, 3, 4 formam um sistema de PVI's que pode ser resolvido por
algum dos métodos vistos anteriormente para a resolução de PVI's, como os métodos de
Runge-Kutta.
Considere, por exemplo, novamente que um caso onde L = 1 cm (∆x = 0.2 cm), Text =
100◦ C , Ta = 25◦ C e h0 = 0.1 cm−2 . Além disso, considere que α = 0.01 cm2 /s e Tini = 25◦ C .
Neste caso, a barra metálica está inicialmente na mesma temperatura que o ambiente externo.
Em um dado instante, a temperatura na extremidade x = 0 é aumentada para 100◦ C .
Resolvendo o sistema de equações utilizando Runge-Kutta de quarta ordem, obtém-se as
curvas apresentadas na gura a seguir.
65
Pode-se observar que para altos valores de tempo as temperaturas tendem a um valor es-
pecíco, ou seja, tendem para um valor estacionário. Estes valores correspondem exatamente
aos obtidos na aula anterior para a resolução do caso onde o comportamento transiente foi
desprezado.
66