1. PPGMAP .
M´ETODOS NUM´ERICOS PARA EQUAC¸ ˜OES DIFERENCIAIS
.
Dagoberto Adriano Rizzotto Justo
Tabela de Conte´udo
1. Introdu¸c˜ao
1.1. Objetivos
1.1.1.Sub-objetivos
1.2. Avalia¸c˜ao
1.3. Bibliografia
2. Aritm´etica no computador
2.1. Processo Iterativo
2.2. Representa¸c˜ao de n´umeros
2.3. Bits, bytes e palavras
2.4. Representa¸c˜ao de n´umeros inteiros
2.5. Representa¸c˜ao de n´umeros reais
2.5.1.Precis˜ao (IEEE754)
2.6. Arredondamento
2.6.1.Erro absoluto e relativo
2.6.2.Arredondamento por corte
2.6.3.Arredondamento por proximidade
2.6.4.Caracteriza¸c˜ao de uma representa¸c˜ao
2.7. Opera¸c˜oes em ponto flutuante
2.7.1.Cancelamento catastr´ofico
2.7.2.A comutatividade n˜ao ´e v´alida
2.7.3.A distributividade n˜ao ´e v´alida
3. Aproxima¸c˜oes
3.1. Aproxima¸c˜ao de ordem p
3.2. Aproxima¸c˜ao em diferen¸cas finitas
3.3. Integra¸c˜ao Num´erica, quadratura
3.4. Quadratura Gaussiana
2. Tabela de Conte´udo (cont.) 2
3.5. Ordem de aproxima¸c˜ao
3.5.1.Integra¸c˜ao
4. Equa¸c˜oes Diferenciais Ordin´arias
4.1. Teoria de equa¸c˜oes diferenciais
4.1.1.Dependˆencia na condi¸c˜ao inicial
5. M´etodo de Euler
5.1. Erro de truncamento
5.1.1.Erro de truncamento Local
5.1.2.Erro de truncamento Global
5.1.3.Convergˆencia
5.1.4.Paradoxo da ordem
5.2. A regra do trap´ezio
5.3. O m´etodo theta
5.4. O m´etodo de Taylor
6. M´etodos de Passo M´ultiplo
6.1. O m´etodo de Adams-Bashforth
6.1.1.C´odigo
6.2. Ordem e convergˆencia de m´etodos de passo m´ultiplo
6.2.1.Convergˆencia de m´etodos de passo m´ultiplo
6.2.2.Teorema de equivalˆencia de Dahlquist
6.2.3.A primeira barreira de Dahlquist
6.3. O m´etodo de Adams-Moulton
6.4. M´etodo BDF
7. M´etodos de Runge-Kutta
7.1. M´etodo de Runge-Kutta Expl´ıcito
7.2. M´etodo de RK ν = 2
7.3. M´etodo de Runge-Kutta impl´ıcito (IRK)
7.4. Estimativa da ordem de convergˆencia
7.4.1.M´etodo 1
7.4.2.M´etodo 2
8. Dom´ınio de Estabilidade
8.1. Equa¸c˜oes “Stiff”
8.2. Dom´ınio de Estabilidade Linear
8.3. Estabilidade dos m´etodos de Taylor
8.4. Estabilidade dos m´etodos de Runge-Kutta
8.5. Estabilidade dos m´etodos de passo m´ultiplo
9. Equa¸c˜oes Diferenciais Parciais hiperb´olicas
9.1. Equa¸c˜ao da onda unidirecional
9.2. Sistemas de EDP’s hiperb´olicas
3. Tabela de Conte´udo (cont.) 3
9.3. Condi¸c˜oes de contorno
• Problemas peri´odicos
9.4. Diferen¸cas finitas
9.4.1.C´odigos
9.5. Convergˆencia e consistˆencia
9.6. Estabilidade
9.7. Teorema de equivalˆencia de Lax-Richtmyer
9.8. Condi¸c˜ao CFL
10. An´alise de esquemas de diferen¸cas finitas
10.1. An´alise de Fourier
10.1.1.Analisando EDPs
10.1.2.Em mais que uma dimens˜ao
10.2. An´alise de Von Neumann
10.2.1.A condi¸c˜ao de estabilidade
10.3. Coment´arios sobre instabilidade e estabilidade
10.3.1.Condi¸c˜oes de estabilidade para coeficientes vari´aveis
10.3.2.Estabilidade num´erica e estabilidade dinˆamica
11. Ordem de Precis˜ao
11.1. Esquema Lax-Wendroff
11.2. Esquema Cranck-Nicolson
11.3. O s´ımbolo de um esquema de DF
11.4. Ordem de precis˜ao da solu¸c˜ao
11.5. Estabilidade LW e CN
11.6. Condi¸c˜oes de contorno
11.7. Sistemas Tridiagonais
12. Estabilidade para esquemas de passo m´ultiplo
12.1. Estabilidade do esquema leapfrog
12.1.1.Inicializando o esquema leapfrog
12.1.2.Nota¸c˜ao de Diferen¸cas
12.2. Estabilidade para esquemas de passo m´ultiplo
13. Equa¸c˜oes Diferenciais Parciais Parab´olicas
13.1. Equa¸c˜ao do calor
13.2. Sistemas parab´olicos
13.3. Diferen¸cas finitas
13.3.1.Mais alguns esquemas
13.4. Dissipa¸c˜ao e suavidade
13.5. Condi¸c˜ao de contorno
4. Tabela de Conte´udo (cont.) 4
13.6. Equa¸c˜ao de convec¸c˜ao-difus˜ao
13.6.1.Esquema FTCS
13.6.2.Esquema upwind
14. Sistemas Bidimensionais e Tridimensionais
14.1. Estabilidade para sistemas de EDPs
14.2. Esquemas de passo m´ultiplo
14.3. Duas e trˆes dimens˜oes
14.3.1.Introdu¸c˜ao
14.3.2.An´alise
14.4. Time-Split
15. Esquema ADI
15.1. Algoritmo de Peaceman-Rachford
15.2. Condi¸c˜ao de contorno
15.2.1.Estabilidade
15.3. Implementa¸c˜ao
16. Equa¸c˜oes de segunda ordem
16.1. Equa¸c˜ao da Onda
16.2. Diferen¸cas finitas
16.2.1.O primeiro passo
16.3. Condi¸c˜oes de contorno
16.4. Equa¸c˜ao de segunda ordem em 2 e 3 dimens˜oes
17. Equa¸c˜oes Diferenciais Parciais El´ıpticas
17.1. Equa¸c˜ao de Poisson
17.1.1.Princ´ıpio do M´aximo
17.2. Esquemas de Diferen¸cas Finitas
17.3. Sistema Unidimensional
17.4. Sistema Bidimensional
17.4.1.M´etodo de Jacobi
17.4.2.M´etodo de Gauss-Seidel
17.4.3.M´etodo SOR
5. 1
Aula 1 .
Introdu¸c˜ao
.
.
Cap´ıtulo 1:
Introdu¸c˜ao
1.1. Objetivos
• resolver numericamente equa¸c˜oes diferenciais
• explorar diferentes m´etodos num´ericos
• entender quando m´etodos num´ericos funcionam
1.1.1. Sub-objetivos
• experimento - hip´oteses - teoria
• literatura inglˆes
• latex (WinEdt)
• Matlab (ou Scilab 1
) ou Fortran ou C
• pesquisa bibliogr´afica (biblioteca e internet)
1.2. Avalia¸c˜ao
• Temas de casa e trabalhos parciais. IMPORTANTE: respeitar datas de entrega.
Digitados em latex.
• Possibilidade de apresenta¸c˜ao de trabalhos.
• Participa¸c˜ao.
• Trabalho Final.
1.3. Bibliografia
Parte I:
• Iserles, A., A First Course in the Numerical Analysis of Differential Equations,
Cambridge University Press, 1996.
• Butcher, J.C. The Numerical Analysis of Ordinary Differential Equations: Runge-
Kutta and General Linear Methods. John Wiley & Sons, 1987.
Parte II:
1www.scilab.org
6. Se¸c˜ao 1.3: Bibliografia 2
• Strikwerda, J.C. Finite Difference Schemes and Partial Differential Equations,
Chapman & Hall, 1989
Complementares:
• Anderson, D.A., Tannehill, J.C., Pletcher, R.H.. Computational Fluid Mechanics
and Heat Transfer. McGraw-Hill, 1984.
• Belytschko, T., Hughes, T.J.R. Computational Methods for Transient Analysis.
North-Holland, 1986.
• Burden, R.L., Faires, J.D. Numerical Analysis, PWS Publishing, 1993.
• Cook, R.D. Concepts and Applications of Finite Element Analysis. John Wiley &
Sons, 1981.
• Hairer, E., Norsett, S.P., Warner, G. Solving Ordinary Differential Equations I,
Springer, New York, 1987.
• Huebner, K.H. The Finite Element Method for Engineers. John Wiley & Sons,
New York, 1975.
• Ortega, J.M., Poole Jr., W.G. Numerical Methods for Differential Equations.
Pitman Publishing Inc. Massachusetts, 1981.
• Sod, G.A. Numerical Methods in Fluid Dynamics. Cambridge University Press,
Cambridge, 1985.
Livros em c´alculo num´erico:
• Cunha, Cardoso, Bortoli, Facchin. Introdu¸c˜ao ao C´alculo Num´erico2
.
2link: www.mat.ufrgs.br/∼dago
7. 3
Cap´ıtulo 2:
Aritm´etica no computador
2.1. Processo Iterativo
Veja [9]. Considere uma transforma¸c˜ao
T :
V → V
x → T (x) = y
. (2.1.1)
Aplique a transforma¸c˜ao sucessivamente, partindo de x0:
x1 = T (x0)
x2 = T (x1)
x3 = T (x2)
...
xk+1 = T (xk)
Um ponto xp tal que T (xp) = xp ´e chamado de ponto fixo, caso ele exista.
Este procedimento pode ou n˜ao convergir. Quando converge temos
lim
k→∞
xk = xp
A convergˆencia pode depender do ponto inicial x0.
Exerc´ıcio 2.1. Considere T (x) = x(3 − x2
)/2. Efetue o processo iterativo partindo
de diferentes valores iniciais.
Verifique a convergˆencia para os pontos fixos x = −1, x = 1 (estes s˜ao est´aveis)e
x = 0 (este ´e inst´avel).
Fa¸ca um esbo¸co do eixo real marcando os pontos fixos e as bacias de atra¸c˜ao.
%------------------------------
function [x]=iteracao(x0)
x(1)=x0;
for k=1:100
x(k+1)=x(k)*(3-x(k)^2)/2;
end
plot(x,’*-’)
%------------------------------
Exerc´ıcio 2.2. O conjunto de Mandelbrot. Considere a equa¸c˜ao para z ∈ (C),
z0 = 0; (2.1.2)
zk+1 = z2
k + c (2.1.3)
O conjunto de Maldelbrot ´e o conjunto de todos c ∈ C, tais que a itera¸c˜ao acima tenha
sempre |zk| < 2. Considere a fun¸c˜ao
%------------------------------
function [c]=mandelbrot(Total)
c =(rand-0.5+i*(rand-0.5))*3;
8. Se¸c˜ao 2.2: Representa¸c˜ao de n´umeros 4
z(1)=0;
k =1;
while(k<Total)&&(abs(z(k)<2))
z(k+1)=z(k)^2+c;
k =k+1;
end
if(abs(z(k))<2)
plot(c,’.r’);hold on
end
%------------------------------
Cada vez que o programa ´e rodado, um c aleat´orio ´e escolhido, e ser´a plotado caso
perten¸ca ao conjunto de Mandelbrot. Rode o programa com a linha
for k=1:1000; mandelbrot(100); end;
Qual a influˆencia da vari´avel T otal?
2.2. Representa¸c˜ao de n´umeros
Veja [2, 3].
Representa¸c˜ao de n´umeros, por exemplo, representa¸c˜ao decimal:
(123.456)10 = 1×102
+ 2×101
+ 3×100
+ 4×10−1
+ 5×10−2
+ 6×10−3
(2.2.1)
onde a base ´e β = 10 e os d´ıgitos poss´ıveis s˜ao {0, 1, . . ., 8, 9}.
Representa¸c˜ao bin´aria:
(1001.101)2 = 1×23
+ 0×22
+ 0×21
+ 1×20
+ 1×2−1
+ 0×2−2
+ 1×2−3
(2.2.2)
= 23
+ 20
+ 2−1
+ 2−3
(2.2.3)
= 8 + 1 + 0.5 + 0.125 (2.2.4)
= (9.625)10 (2.2.5)
onde a base ´e β = 2 e os d´ıgitos poss´ıveis s˜ao {0, 1}.
2.3. Bits, bytes e palavras
Um bit ´e a menor unidade de informa¸c˜ao, podendo representar 0 ou 1.
Um byte ´e um conjunto de 8 bits, por exemplo, 00101101.
Um computador ´e normalmente estruturado de tal forma a ler/escrever uma
palavra por endere¸co de mem´oria. Tipicamente uma palavra ´e um conjunto de 32 bits.
Na realidade o padr˜ao atual (com o Windows Vista) ´e 64 bits.
2.4. Representa¸c˜ao de n´umeros inteiros
Usando 32 bits, reservando um bit para o sinal, podemos representar somente 232
n´umeros, metade deles positivos e metade negativos.
9. Se¸c˜ao 2.5: Representa¸c˜ao de n´umeros reais 5
2.5. Representa¸c˜ao de n´umeros reais
Algumas possibilidades s˜ao representa¸c˜ao fracion´aria, representa¸c˜ao em ponto-fixo e
representa¸c˜ao em ponto flutuante. Utilizando ponto flutuante, cada n´umero x ´e repre-
sentado como
x = ±M×2±E
,
1
2
≤ M < 1 (2.5.1)
onde a mantissa ´e da forma
M = (0.b0b1b2b3 . . .)2, b0 = 1 (2.5.2)
Como b0 = 1, o zero deve ser representado por conven¸c˜ao, de forma diferente - por
exemplo utilizar o menor n´umero represent´avel como sendo o zero.
Exemplo 1.
O n´umero (−11.75)10 = (−0.101111)2×2(+100)2
.
2.5.1. Precis˜ao (IEEE754)
Em simples precis˜ao (32 bits) temos F(2, 23, 8) onde a base ´e β = 2, M = 23 bits s˜ao
usados na mantissa (mais um para o sinal) e E = 8 bits para o expoente.
Figura 2.1: Simples Precis˜ao
Em dupla precis˜ao (64 bits) temos F(2, 52, 11) onde a base ´e β = 2, M = 52
bits s˜ao usados na mantissa (mais um para o sinal) e E = 11 bits para o expoente.
Figura 2.2: Dupla Precis˜ao
Em qu´adrupla precis˜ao (128 bits) temos F(2, 112, 15) onde a base ´e β = 2,
M = 112 e e E = 15.
2.6. Arredondamento
Como um computador possui precis˜ao finita, ao representar x = 2/3 = (0.66666)10
(que em bin´ario ´e x = (0.10101010 . . .)2) no computador precisamos arredondar o
n´umero. Por´em, x = (0.10101010 . . .)2 est´a entre dois n´umeros represent´aveis:
10. Se¸c˜ao 2.6: Arredondamento 6
• (0.1010 . . .1010)2
• (0.1010 . . .1011)2
2.6.1. Erro absoluto e relativo
Sendo x um n´umero real e ˜x a representa¸c˜ao desse n´umero, o erro absoluto ´e definido
como
Eabs = |x − ˜x| (2.6.1)
e o erro relativo ´e definido como
Erel =
|x − ˜x|
|x|
. (2.6.2)
2.6.2. Arredondamento por corte
Supondo p = 24, podemos ignorar os bits b24b25 . . . em diante obtendo
x ≈ ˜x = (0.1010 . . .1010)2. (2.6.3)
O erro m´aximo no arredondamento por corte ser´a a distˆancia entre dois n´umeros repre-
sent´aveis,
ǫcorte = β−p+1
= 2−23
= 0.119209×10−6
. (2.6.4)
2.6.3. Arredondamento por proximidade
Verificando o bit b24 podemos arredondar para cima se b24 = 1 e para baixo se b24 = 0.
(Na verdade, adiciona-se 1 ao bit b24 e arredonda-se por corte 0.b0 . . . b23).
O erro m´aximo no arredondamento por proximidade ser´a a metade do arredon-
damento por corte,
ǫprox = ǫcorte/2 = 2−23
/2 = 0.596046×10−7
. (2.6.5)
fornecendo aproximadamente 7 d´ıgitos de precis˜ao decimal.
Exerc´ıcio 2.3. Quantos d´ıgitos de precis˜ao decimal temos aproximadamente em dupla
precis˜ao?
2.6.4. Caracteriza¸c˜ao de uma representa¸c˜ao
• p: a precis˜ao ´e a quantidade de bits dispon´ıvel para representar o n´umero;
• MINR: o menor n´umero represent´avel em m´odulo;
• MAXR: o maior n´umero represent´avel em m´odulo;
• ǫ: o epsilon de m´aquina ´e o menor n´umero represent´avel tal que 1 + ǫ = 1; (ou
ainda, β−p+1
)
Exemplo 2.
Utilizando simples precis˜ao temos uma precis˜ao de p = 23 + 1 = 24 bits (mais um pois
b0 = 1 sempre).
11. Se¸c˜ao 2.7: Opera¸c˜oes em ponto flutuante 7
MINR = (0.1000 . . .0000)2×2(−1111111)2
(2.6.6)
= 2−1
×2−127
(2.6.7)
≈ (2.938735×10−39
)10 (2.6.8)
MAXR = (0.1111 . . .1111)2×2(+1111111)2
(2.6.9)
= (2−1
+ . . . 2−24
)×2+127
(2.6.10)
≈ (1.70141×1038
)10 (2.6.11)
ǫ = 2−p
= 2−24
(2.6.12)
≈ (0.596046×10−7
)10 (2.6.13)
utilizando arredondamento por proximidade.
2.7. Opera¸c˜oes em ponto flutuante
Dizemos que cada opera¸c˜ao em ponto flutuante (⊕ = +, −, ÷, ×) apresenta um erro
da ordem do epsilon de m´aquina,
fl(x ⊕ y) = x ⊕ y(1 + δ), |δ| ≤ ǫ (2.7.1)
A seguir temos exemplo de adi¸c˜ao e subtra¸c˜ao em ponto flutuante. Multiplica¸c˜ao e
divis˜ao s˜ao feitas de modo semelhante.
Exemplo 3.
Seja x = 123456.7 e y = 101.7654 e uma precis˜ao de 7 d´ıgitos.
x = 1.234567×105
(2.7.2)
+y = 1.017654×102
(2.7.3)
x = 1.234567×105
(2.7.4)
+y = 0.001017654×105
(2.7.5)
− − − − − − − − − − (2.7.6)
z = 1.235584654×105
(2.7.7)
que ´e o valor exato. Arredondando e normalizando
˜z = 1.235585×105
(2.7.8)
Erro relativo:
Erel =
|z − ˜z|
|z|
(2.7.9)
=
|1.235584654×105
− 1.235585×105
|
|1.235584654×105|
(2.7.10)
≈ 5.29304081×10−7
< 10−6
= ǫcorte (2.7.11)
12. Se¸c˜ao 2.7: Opera¸c˜oes em ponto flutuante 8
Exemplo 4.
Seja x = 123456.7 e y = 0.009876543 e uma precis˜ao de 7 d´ıgitos.
x = 1.234567×105
(2.7.12)
+y = 9.876543×10−3
(2.7.13)
x = 1.234567 ×105
(2.7.14)
+y = 0.00000009876543×105
(2.7.15)
− − − − − − − − − − − − − (2.7.16)
z = 1.23456709876543×105
(2.7.17)
˜z = 1.234567×105
(2.7.18)
A adi¸c˜ao n˜ao fez nenhum efeito.
2.7.1. Cancelamento catastr´ofico
Quando dois n´umeros s˜ao muito pr´oximos e uma subtra¸c˜ao ´e realizada, pode acontecer
um cancelamento catastr´ofico.
Exemplo 5.
Considere p = 7 e os n´umeros x = 123457.1467 e y = 123456.659 com representa¸c˜oes
˜x = 123457.1 e ˜y = 123456.7. Calculando z = x − y temos:
˜x = 1.234571×105
(2.7.19)
−˜y = 1.234567×105
(2.7.20)
− − − − − − − − − − − − − (2.7.21)
z = 0.000004×105
(2.7.22)
˜z = 4.000000×10−1
(2.7.23)
O resultado verdadeiro ´e z = 4.877×10−1
, portanto um erro relativo de
Erel =
|4.877×10−1
− 4×10−1
|
|4.877×10−1|
≈ 0.1798 . . . (2.7.24)
o que fornece uma diferen¸ca relativa de 17.98%.
2.7.2. A comutatividade n˜ao ´e v´alida
Opera¸c˜oes em ponto flutuante n˜ao s˜ao comutativas:
(x + y) + z = (1234.567 + 45.67844) + 0.0004 (2.7.25)
= (1280.245) + 0.0004 (2.7.26)
= 1280.245 (2.7.27)
mas
x + (y + z) = 1234.567 + (45.67844 + 0.0004) (2.7.28)
= 1234.567 + (45.67884) (2.7.29)
= 1280.246 (2.7.30)
13. Se¸c˜ao 2.7: Opera¸c˜oes em ponto flutuante 9
2.7.3. A distributividade n˜ao ´e v´alida
Opera¸c˜oes em ponto flutuante n˜ao s˜ao distributivas:
(x ∗ z) + (y ∗ z) = (1234.567×3.333333) + (1.234567×3.333333) (2.7.31)
= (4115.223) + (4.115223) (2.7.32)
= 4119.338 (2.7.33)
mas
(x + y) ∗ z = (1234.567 + 1.234567)×3.333333 (2.7.34)
= 1235.802×3.333333 (2.7.35)
= 4119.340 (2.7.36)
Exerc´ıcio 2.4. C´alculos podem ser rearranjados de tal forma a reduzir alguns tipos
de erros. Archimedes aproximou π calculando o per´ımetro de pol´ıgonos inscritos e
circunscritos em um c´ırculo, iniciando com hex´agonos e dobrando o n´umero de lados.
A f´ormula de recorrˆencia ´e
t0 =
1
√
3
(2.7.37)
ti+1 =
t2
i + 1 − 1
ti
(2.7.38)
π ≈ 6×2i
×ti, (2.7.39)
Calcule a sequencia que aproxima π imprimindo as aproxima¸c˜oes e o erro relativo a cada
itera¸c˜ao. Essa forma apresenta um cancelamento catastr´ofico. Reescreva a f´ormula de
itera¸c˜ao e recalcule a sequˆencia.
Exerc´ıcio 2.5. Escreva um algoritmo (em Matlab, Fortran ou C) que calcule o valor
do epsilon de m´aquina. Rode o programa e imprima os resultados.
Exerc´ıcio 2.6. Escreva um algoritmo que calcule MINR, o menor n´umero repre-
sent´avel. Rode o programa e imprima os resultados.
Exerc´ıcio 2.7. Sabemos do c´alculo que
lim
n→∞
(1 +
1
n
)n
= e (2.7.40)
Aproxime o valor de e usando Matlab. Qual o “limite da m´aquina”? Explique.
Exerc´ıcio 2.8. A constante de Euler dada por
γ = .57721566490153286 . . . (2.7.41)
´e definida como o limite
γ = lim
n→∞
γn, (2.7.42)
γn = 1 +
1
2
+
1
3
+ . . . +
1
n
− ln n. (2.7.43)
Assumindo que γ − γn ≈ cn−d
, n → ∞, para alguma constante c, d > 0, tente
determinar c e d experimentalmente usando um computador.
14. 10
Aula 2 e 3 .
Aproxima¸c˜oes
.
Cunha, Bortoli et al
Cap´ıtulo 3:
Aproxima¸c˜oes
3.1. Aproxima¸c˜ao de ordem p
Objetivo:
Aproximar a fun¸c˜ao f(t) ∈ C(R) por um polinˆomio q(t)
de ordem p.
O polinˆomio pode ser expresso como a combina¸c˜ao linear de p polinˆomios φk(t)
que formam uma base para o espa¸co polinomial, de tal forma que q(t) = c0φ0(t) +
c1φ1(t) + . . . + cpφp(t).
Um poss´ıvel maneira de obter tal polinˆomio ´e impor p + 1 condi¸c˜oes de compa-
tibilidade, como por exemplo, podemos exigir que
f(t0) = q(t0), . . . , f(tp) = q(tp). (3.1.1)
Fixe a base φk(t) = tk
, k = 0, . . . , p. Note que o polinˆomio q(t) que satisfaz
3.1.1 ´e ´unico e n˜ao depende da escolha da base.
O problema ent˜ao torna-se encontrar q(t) = c0 + c1t + . . . + cptp
≈ f(t) tal que
3.1.1 seja satisfeito. Assim obtemos o sistema
f(t0) = c0 + c1t0 + c2t2
0 + . . . + cptp
0 (3.1.2)
f(t1) = c0 + c1t1 + c2t2
1 + . . . + cptp
1 (3.1.3)
... =
... (3.1.4)
f(tp) = c0 + c1tp + c2t2
p + . . . + cptp
p (3.1.5)
que pode ser escrito na forma matricial
1 t0 . . . tp
0
1 t1 . . . tp
1
...
...
...
1 tp . . . tp
p
c0
c1
...
cp
=
f(t0)
f(t1)
...
f(tp)
(3.1.6)
onde a matriz apresentada ´e a matriz de Vandermonde. Resolvendo o sistema obtemos
os coeficientes ck para a interpola¸c˜ao polinomial.
Exerc´ıcio 3.1. Fixe tk = k e monte matrizes de Vandermonde de tamanho n =
1, 2, . . ., 30 plotando um gr´afico do n´umero de condicionamento da matriz de Vander-
monde com respeito a n (utilize a fun¸c˜ao cond do Matlab).
15. Se¸c˜ao 3.2: Aproxima¸c˜ao em diferen¸cas finitas 11
3.2. Aproxima¸c˜ao em diferen¸cas finitas
Objetivo:
Obter uma discretiza¸c˜ao para a fun¸c˜ao f′
(t) em t = t∗
de ordem p.
Dados p + 1 pontos [t0, t1, . . . , tp], queremos obter uma aproxima¸c˜ao para a
derivada de f(t) calculada em t∗
do tipo
f′
(t∗
) ≈ c0f(t0) + c1f(t1) + . . . + cpf(tp) (3.2.1)
que seja exata para polinˆomios at´e ordem p.
Por exemplo, podemos aproximar a derivada de f(t) como
f′
(t0) =
f(t0 + h) − f(t0)
h
(3.2.2)
=
1
h
f(t1) −
1
h
f(t0) (3.2.3)
Seja q(t) = c0φ0(t)+c1φ1(t)+. . .+cpφp(t) o polinˆomio de ordem p que aproxima
f(t). Fixe a base φk(t) = tk
. Como a regra (3.2.1) deve ser exata para qualquer q(t)
at´e ordem p, ent˜ao tamb´em deve ser exata para qualquer fun¸c˜ao da base. Substituindo
f(t) por φ0(t) = 1 em (3.2.1) obtemos
φ′
0(t)|t∗ = (1)′
|t∗ = c0φ0(t0) + c1φ0(t1) + . . . + cpφ0(tp) (3.2.4)
0 = c0 + c1 + . . . + cp (3.2.5)
Da mesma forma para k = 1, . . . , p, obtemos
(t)′
t∗ = 1 = c0t0 + c1t1 + . . . + cptp (3.2.6)
(t2
)′
t∗ = 2t∗
= c0t2
0 + c1t2
1 + . . . + cpt2
p (3.2.7)
(t3
)′
t∗ = 3(t∗
)2
= c0t3
0 + c1t3
1 + . . . + cpt3
p (3.2.8)
... =
... (3.2.9)
(tp
)′
t∗ = p(t∗
)p−1
= c0tp
0 + c1tp
1 + . . . + cptp
p (3.2.10)
que pode ser escrito na forma matricial
1 1 . . . 1
t0 t1 . . . tp
t2
0 t2
1 . . . t2
p
...
...
...
tp
0 tp
1 . . . tp
p
c0
c1
c2
...
cp
=
0
1
2t∗
...
p(t∗
)p−1
(3.2.11)
Resolvendo o sistema obtemos os coeficientes ck para a regra de diferencia¸c˜ao.
Exemplo 6.
Seja p = 2, [t0, t1, t2] = [−h, 0, h] e t∗
= t1 = 0, obtenha uma regra de diferencia¸c˜ao
para aproximar f′
(t∗
).
16. Se¸c˜ao 3.3: Integra¸c˜ao Num´erica, quadratura 12
Solu¸c˜ao: A regra ter´a a forma
f′
(t∗
) ≈ c0f(t0) + c1f(t1) + c2f(t2) (3.2.12)
≈ c0f0 + c1f1 + c2f2 (3.2.13)
Considere a base polinomial [φ0(t), φ1(t), φ2(t)] = [1, t, t2
] e substitua f(t) por φk(t)
obtendo
(1)′
t=0 = 0 = c0(1) + c1(1) + c2(1) (3.2.14)
(t)′
t=0 = 1 = c0(−h) + c1(0) + c2(h) (3.2.15)
(t2
)′
t=0 = 0 = c0(−h)2
+ c1(0)2
+ c2(h)2
(3.2.16)
que pode ser escrito na forma matricial
1 1 1
−h 0 h
h2
0 h2
c0
c1
c2
=
0
1
0
(3.2.17)
Resolvendo o sistema obtemos [c0, c1, c2] = [− 1
2h , 0, 1
2h ] fornecendo a regra
f′
|t=t1 ≈ −
1
2h
f0 +
1
2h
f2 (3.2.18)
=
f2 − f0
2h
(3.2.19)
Exerc´ıcio 3.2. Seja [t0, t1, t2] = [0, h, 2h] e t∗
= t0 = 0, obtenha uma regra unilateral
de diferencia¸c˜ao para aproximar f′
(t0).
Exerc´ıcio 3.3. Seja [t0, t1, t2] = [−h, 0, h] e t∗
= t1 = 0, obtenha uma regra de
diferencia¸c˜ao para aproximar f′′
(t∗
).
Exerc´ıcio 3.4. Seja [t0, t1, . . . , t4] = [−2h, −h, 0, h, 2h] e t∗
= 0, obtenha uma regra
de diferencia¸c˜ao para aproximar f′
(t∗
).
Exerc´ıcio 3.5. Seja [t0, t1, . . . , t4] = [−2h, −h, 0, h, 2h] e t∗
= 0, obtenha uma regra
de diferencia¸c˜ao para aproximar f′′
(t∗
).
Exerc´ıcio 3.6. Seja [t0, t1, . . . , t4] = [0, h, 3h, 6h, 10h] e t∗
= 0, obtenha uma regra
de diferencia¸c˜ao para aproximar f′
(t∗
).
3.3. Integra¸c˜ao Num´erica, quadratura
Objetivo:
Obter uma regra para integra¸c˜ao para a fun¸c˜ao f(t) em
[a, b] de ordem p .
17. Se¸c˜ao 3.3: Integra¸c˜ao Num´erica, quadratura 13
Dados p + 1 pontos [t0, t1, . . . , tp], queremos obter uma aproxima¸c˜ao para
b
a
f(t) dt ≈ c0f(t0) + c1f(t1) + . . . + cpf(tp) (3.3.1)
que seja exata para polinˆomios at´e ordem p.
Aproxime f(t) pelo polinˆomio q(t) = c0φ0(t)+c1φ1(t)+. . .+cpφp(t) de ordem
p. Escolha uma base, por exemplo, φk(t) = tk
. Como a regra (3.3.1) deve ser exata
para qualquer q(t) at´e ordem p, ent˜ao tamb´em deve ser exata para qualquer fun¸c˜ao da
base. Substituindo f(t) por φ0(t) = 1 em (3.3.1) obtemos a identidade
b
a
φ0(t) dt = t|b
a = c0φ0(t0) + c1φ0(t1) + . . . + cpφ0(tp) (3.3.2)
b − a = c0 + c1 + . . . + cp (3.3.3)
Da mesma forma para φk(t), k = 1, . . . , p, obtemos
(t2
/2)|b
a =
b2
− a2
2
= c0t0 + c1t1 + . . . + cptp (3.3.4)
(t3
/3)|b
a =
b3
− a3
3
= c0t2
0 + c1t2
1 + . . . + cpt2
p (3.3.5)
... =
... (3.3.6)
bp+1
− ap+1
p + 1
= c0tp
0 + c1tp
1 + . . . + cptp
p (3.3.7)
que pode ser escrito na forma matricial
1 1 . . . 1
t0 t1 . . . tp
t2
0 t2
1 . . . t2
p
...
...
...
tp
0 tp
1 . . . tp
p
c0
c1
c2
...
cp
=
b − a
b2
−a2
2
b3
−a3
3
...
bp+1
−ap+1
p+1
(3.3.8)
Resolvendo o sistema obtemos os coeficientes ck para a regra de integra¸c˜ao.
Exemplo 7.
Seja p = 2, [t0, t1, t2] = [0, h/2, h] e [a, b] = [t0, t2], obtenha uma regra de integra¸c˜ao
para aproximar
b
a
f(t) dt.
Solu¸c˜ao: A regra ter´a a forma
b
a
f(t) dt ≈ c0f(t0) + c1f(t1) + c2f(t2) (3.3.9)
≈ c0f0 + c1f1 + c2f2 (3.3.10)
Considere a base polinomial [φ0(t), φ1(t), φ2(t)] = [1, t, t2
] e substitua f(t) por φk(t)
18. Se¸c˜ao 3.4: Quadratura Gaussiana 14
obtendo
h
0
1 dt = h = c0(1) + c1(1) + c2(1) (3.3.11)
h
0
t dt = h2
/2 = c0(0) + c1(h/2) + c2(h) (3.3.12)
h
0
t2
dt = h3
/3 = c0(0)2
+ c1(h/2)2
+ c2(h)2
(3.3.13)
que pode ser escrito na forma matricial
1 1 1
0 h/2 h
0 h2
/4 h2
c0
c1
c2
=
h
h2
/2
h3
/3
(3.3.14)
Resolvendo o sistema obtemos [c0, c1, c2] = [h
6 , 4h
6 , h
6 ] fornecendo a regra
h
0
f(t) dt ≈
h
6
f0 +
4h
6
f1 +
h
6
f2 (3.3.15)
=
f0 + 4f1 + f2
6
h (3.3.16)
Exerc´ıcio 3.7. Seja [t0, t1, t2, t3] = [0, h/3, 2h/3, h] e [a, b] = [0, h], obtenha uma
regra de integra¸c˜ao para aproximar
h
0
f(t) dt.
Exerc´ıcio 3.8. Uma regra que n˜ao utiliza os extremos. Seja [t1, t2, t3] = [h/4, h/2, 3h/4]
e [a, b] = [0, h], obtenha uma regra de integra¸c˜ao para aproximar
h
0
f(t) dt.
Exerc´ıcio 3.9. Seja [t0, t1, . . . , t4] = [0, h/4, h/2, 3h/4, h] e [a, b] = [0, h], obtenha
uma regra de integra¸c˜ao para aproximar
h
0 f(t) dt.
3.4. Quadratura Gaussiana
Objetivo:
Obter uma regra para integra¸c˜ao para a fun¸c˜ao f(t) em
[a, b] podendo variar a posi¸c˜ao dos n´os.
Queremos encontrar a melhor posi¸c˜ao de p pontos [t1, . . . , tp] e os melhores pesos
wk tal que a aproxima¸c˜ao
b
a
f(t) dt ≈ w1f(t1) + . . . + wpf(tp) (3.4.1)
possua ordem m´axima de aproxima¸c˜ao.
Para obter os coeficientes cl´assicos, tome [a, b] = [−1, 1]. (Para outros intervalos,
basta fazer uma mudan¸ca de intervalo na integral.)
19. Se¸c˜ao 3.5: Ordem de aproxima¸c˜ao 15
Note que temos p n´os e p pesos para determinar. Portanto podemos aproximar
f(t) pelo polinˆomio q(t) = c0 + c1t + . . . + cmtm
onde m = 2p − 1. A regra (3.4.1)
deve ser exata para qualquer φk(t) polinˆomio da base. Substituindo f(t) por φ0(t) = 1
em (3.3.1) obtemos a identidade
1
−1
φ0(t) dt = t|1
−1 = w1φ0(t1) + . . . + wpφ0(tp) (3.4.2)
2 = w1 + . . . + wp (3.4.3)
Da mesma forma para φk(t), k = 1, . . . , m, obtemos
(t2
/2)|1
−1 = 0 = w1t1 + . . . + wptp (3.4.4)
(t3
/3)|1
−1 = 2/3 = w1t2
1 + . . . + wpt2
p (3.4.5)
(t4
/4)|1
−1 = 0 = w1t3
1 + . . . + wpt3
p (3.4.6)
... =
... (3.4.7)
(1)m+1
− (−1)m+1
p + 1
= w1tm
1 + . . . + wptm
p (3.4.8)
que ´e um sistema n˜ao linear com 2p equa¸c˜oes e inc´ognitas wk, tk, k = 1, . . . , p.
Exerc´ıcio 3.10. Calcule os n´os e pesos para a quadratura de Gauss utilizando 2 n´os
no intervalo [−1, 1].
Exerc´ıcio 3.11. Calcule os n´os e pesos para a quadratura de Gauss utilizando 3 n´os
no intervalo [−1, 1].
3.5. Ordem de aproxima¸c˜ao
Considere a defini¸c˜ao da derivada de f(x) como
f′
(x) ≈
f(x + h) − f(x)
h
(3.5.1)
Se f ´e linear (f(x) = ax + b), ent˜ao a equa¸c˜ao acima ´e exata. Caso contr´ario a
aproxima¸c˜ao possui um erro.
Expandindo em s´erie de Taylor temos,
f(x + h) = f(x) + hfx(x) +
h2
2
fxx(x) + O(h3
) (3.5.2)
A nota¸c˜ao f(x) = O(g(x)) quando x → a significa que
|f(x)| ≤ C|g(x)| (3.5.3)
para uma constante C (normalmente consideramos x → 0 ou x → ∞).
Isolando fx(x) na s´erie de Taylor obtemos
f′
(x) =
f(x + h) − f(x)
h
−
h
2
fxx(x) + O(h2
) (3.5.4)
=
f(x + h) − f(x)
h
+ O(h) (3.5.5)
Quando h → 0, o erro na aproxima¸c˜ao ´e da ordem h.
20. Se¸c˜ao 3.5: Ordem de aproxima¸c˜ao 16
Exerc´ıcio 3.12. Para a fun¸c˜ao f(x) = sin(x), aproxime f′
(1) utilizando a derivada
pra frente para valores h = 10−1
, 10−2
, 10−3
, . . .. Plote o erro relativo na aproxima¸c˜ao
na escala logar´ıtmica, utilizando o comando loglog. Use h no eixo x e o erro relativo
Er(h) no eixo y. Identifique a ordem 1 do m´etodo na curva plotada e explique o que
acontece no gr´afico.
Exerc´ıcio 3.13. Obtenha a express˜ao para o erro da derivada central f′
(x) ≈ f(x+h)−f(x−h)
2h ,
utilizando a s´erie de Taylor. Repita o exerc´ıcio anterior utilizando derivada central. Iden-
tifique a ordem do m´etodo no gr´afico.
3.5.1. Integra¸c˜ao
Exemplo 8.
Aproxime
π
0
sin(x)dx utilizando 10 subintervalos iguais e a regra trapezoidal
xi+1
xi
f(t) dt ≈
fi + fi+1
2
h (3.5.6)
. Aproxime tamb´em para 102
, 103
, 104
intervalos.
Solu¸c˜ao: Note que h = π−0
10 = π
10 .
%------------------------
function [S]=trapezio(N)
h = (pi-0)/N % subintervalos
x = 0:h:pi; % dominio
f = sin(x);
S = 0; % Inicia com 0
for i=1:N-1
ds = h*(f(i)+f(i+1))/2; % subarea
S = S + ds; % acumula
end
end
%------------------------
Rode
T(1)=trapezio(10)
T(2)=trapezio(100)
T(3)=trapezio(1000)
T(4)=trapezio(10000)
semilogy(T)
Exerc´ıcio 3.14. Aproxime
π
0
sin(x)dx utilizando N subintervalos iguais e a regra de
Simpson
xi+2
xi
f(t) dt ≈
fi + 4fi+1 + fi+2
6
h (3.5.7)
21. 17
. Aproxime tamb´em para N = 102
, 103
, 104
intervalos. (Note que em cada subintervalo
existem 3 n´os consecutivos, fazendo com que o for pule de 2 em 2 n´os. Por quˆe?)
Plote o erro na escala logar´ıtmica em y.
Exerc´ıcio 3.15. Aproxime
π
0
sin(x)dx utilizando N subintervalos iguais e a uma
quadratura de Gauss com 2 n´os em cada subintervalo (veja como obter os n´os na se¸c˜ao
anterior ou na literatura). Note que os n´os devem ser transladados para o subintervalo j´a
que eles s˜ao fornecidos no intervalo (−1, 1). Aproxime tamb´em para N = 102
, 103
, 104
intervalos. Plote o erro na escala logar´ıtmica em y.
Aula 4 e 5 .
Equa¸c˜oes Diferenciais Ordin´arias e M´etodo de Euler
.
Butcher, Iserles
Cap´ıtulo 4:
Equa¸c˜oes Diferenciais Ordin´arias
Bibliografia: Cap.1 [5], Sec.11,20,21,22 e [1]
Objetivo:
Resolver ou aproximar a solu¸c˜ao de uma equa¸c˜ao dife-
rencial ordin´aria (EDO).
Considere a EDO de 1.a ordem,
u′
(t) = f(t, u(t)) (4.0.1)
u(t0) = a (4.0.2)
onde u(t) : R → R, e u(t0) = a ´e chamada de condi¸c˜ao inicial, e o problema ´e
chamado de Problema de Valor Inicial (PVI).
Usando a mesma terminologia podemos representar fun¸c˜oes vetoriais, i.e., caso
u(t) ∈ RN
,
u′
(t) = f(t, u(t)) (4.0.3)
u(t0) = a (4.0.4)
22. 18
onde u(t) = [u1(t), u2(t), . . . , uN (t)] : R → RN
e a = [a1, . . . , aN ] ∈ RN
. Ou seja,
u′
1(t) = f1(t, u1(t), . . . , uN (t)) (4.0.5)
u′
2(t) = f2(t, u1(t), . . . , uN (t)) (4.0.6)
... =
... (4.0.7)
u′
N (t) = fN (t, u1(t), . . . , uN (t)) (4.0.8)
e condi¸c˜oes iniciais
u1(t0) = a1 (4.0.9)
u2(t0) = a2 (4.0.10)
... =
... (4.0.11)
uN (t0) = aN (4.0.12)
Note que dependendo do problema, podemos ter condi¸c˜oes de contorno.
Exemplo 9.
du
dt
= t (4.0.13)
u(0) = a (4.0.14)
Exemplo 10.
du
dt
= u (4.0.15)
u(0) = a (4.0.16)
Exemplo 11.
du
dt
= u + t (4.0.17)
u(0) = a (4.0.18)
Exemplo 12.
du
dt
= sin(u2
+ sin(t)) (4.0.19)
u(0) = a (4.0.20)
23. Se¸c˜ao 4.1: Teoria de equa¸c˜oes diferenciais 19
Exemplo 13.
du1
dt
= u2 (4.0.21)
du2
dt
= −u1/(u2 + u3) (4.0.22)
du3
dt
= u2 + t (4.0.23)
u1(0) = 4 (4.0.24)
u2(0) = 5 (4.0.25)
u3(0) = 6 (4.0.26)
Exemplo 14.
Modelo presa-predador (Lotka-Volterra)
u′
= u(2 − v) (4.0.27)
v′
= v(u − 1) (4.0.28)
Exerc´ıcio 4.1. Dado o problema de valor inicial
u′′′
− 3u′′
+ 2uu′
= 0, u(l) = 2, u′
(l) = −1, u′′
(l) = 4, (4.0.29)
mostre como reformular este problema na forma
y′
= f(y), y(t0) = y0 (4.0.30)
onde y(t) = [y1(t), y2(t), y3(t)], f : R3
− > R3
.
Exerc´ıcio 4.2. Considere o PVI n˜ao autˆonomo,
u′
= tu + t2
v, u(0) = 3, (4.0.31)
v′
= u − v + 2tw, v(0) = 2, (4.0.32)
w′
= u +
v
1 + t
w(0) = 5. (4.0.33)
Reescreva-o como um problema autˆonomo (sem dependˆencia expl´ıcita na vari´avel inde-
pendente t).
4.1. Teoria de equa¸c˜oes diferenciais
Uma quest˜ao fundamental em matem´atica aplicada ´e analisar se um modelo matem´atico
dado por um PVI ´e ´util para predizer o comportamento temporal do objeto de estudo.
Ou seja, o problema proposto ´e bem posto(well-posed)? Dividindo a pergunta
em trˆes partes:
• Existe uma solu¸c˜ao para o PV I?
• A solu¸c˜ao ´e ´unica?
• Qu˜ao sens´ıvel ´e a solu¸c˜ao a pequenas perturba¸c˜oes nas condi¸c˜oes iniciais?
24. 20
Defini¸c˜ao 4.1.1. A fun¸c˜ao f : [a, b]×RN
→ RN
´e Lipschitz (na segunda
vari´avel) se ∃ constante L, tal que ∀t ∈ [a, b] e u, v ∈ RN
,
f(·, u) − f(·, v) ≤ L u − v .
Defini¸c˜ao 4.1.2. Seja (M, ρ) um espa¸co m´etrico com m´etrica ρ. A fun¸c˜ao
φ : M → M ´e dita uma contra¸c˜ao se ∃k, 0 ≤ k < 1 tal que ∀ζ, η ∈ M,
ρ(φ(η), φ(ζ)) ≤ kρ(η, ζ). (4.1.1)
Lema 4.1.3. Seja (M, ρ) um espa¸co m´etrico completo e φ : M → M uma con-
tra¸c˜ao. Ent˜ao ∃!ξ ∈ M tal que φ(ξ) = ξ.
Teorema 4.1.4. Seja f : [a, b]×RN
→ RN
cont´ınua na primeira vari´avel e Lips-
chitz na segunda vari´avel. Ent˜ao ∃ uma ´unica solu¸c˜ao para o PVI
u′
(t) = f(t, u(t)) (4.1.2)
u(t0) = a. (4.1.3)
Veja a prova em Butcher.
4.1.1. Dependˆencia na condi¸c˜ao inicial
Se u(t) e v(t) s˜ao solu¸c˜oes do PVI com f Lipschitz com u(t0) = u0, v(t0) = v0, ent˜ao
d
dt
u(t) − v(t) ≤ L u(t) − v(t)
Multiplicando por e−Lt
,
d
dt
(e−Lt
u(t) − v(t) ) ≤ 0
implicando que
u(t) − v(t) ≤ eL(t−t0)
u0 − v0 .
Cap´ıtulo 5:
M´etodo de Euler
Seja o PVI
u′
(t) = f(t, u(t)) (5.0.1)
u(t0) = a (5.0.2)
Ao inv´es de solucionar o problema para qualquer t > t0, (achar u(t)), iremos aproximar
u(t) em t1 = t0 + h.
Integre (5.0.1) de t0 at´e t1 e obtenha:
t1
t0
u′
(t) dt =
t1
t0
f(t, u(t)) dt (5.0.3)
u(t1) − u(t0) =
t1
t0
f(t, u(t)) dt (5.0.4)
25. 21
Supondo f(t, u(t)) ≈ f(t0, u(t0)) (constante) no intervalo pequeno,
u(t1) − u(t0) ≈ f(t0, u(t0))
t1
t0
dt (5.0.5)
u(t1) ≈ u(t0) + f(t0, u(t0))
t1
t0
dt (5.0.6)
u(t1) ≈ u(t0) + f(t0, u(t0))(t1 − t0) (5.0.7)
u(t1) ≈ u(t0) + hf(t0, u(t0)) (5.0.8)
Para simplificar a nota¸c˜ao, denote por un ≡ u(tn) a solu¸c˜ao aproximada em tn
e temos
u1 ≈ u0 + hf(t0, u0) (5.0.9)
Este procedimento pode ser estendido para t2, t3, . . ., onde
tn+1 = tn + h = t0 + nh, n = 1, 2, . . .
obtendo o m´etodo de Euler,
M´etodo de Euler
un+1 = un + h f(tn, un) (5.0.10)
para n = 0, 1, 2 . . .. (Note que o passo h ´e constante, entretanto poderia ser vari´avel:
hn = tn − tn−1.)
Exemplo 15.
Aproxime a solu¸c˜ao do PVI
du
dt
= −0.5u + 2 + t (5.0.11)
u(0) = 8 (5.0.12)
Teste para h = 1.6, 0.8, 0.4, 0.2, 0.1.
Note que a solu¸c˜ao exata do problema ´e
u(t) = 2t + 8e−t/2
(5.0.13)
Itere a f´ormula
un+1 = un + h(−0.5un + 2 + tn), u0 = 3 (5.0.14)
atrav´es do c´odigo abaixo:
%---------------------------
function [u,t]=euler(h,Tmax)
u(1)= 8;
t(1)= 0;
itmax = Tmax/h;
for n=1:itmax
t(n+1)= t(n) + h;
26. 22
0 1 2 3 4 5
6
6.5
7
7.5
8
8.5
9
9.5
10
10.5
11
Solucao do PVI
t
u
u(n+1)= u(n) + h*(-0.5*u(n)+2+t(n));
exata(n+1)= 2*t(n+1)+8*exp(-t(n+1)/2);
erro(n+1) = abs(exata(n+1)-u(n+1))/abs(exata(n+1));
end
figure(1); plot(t,u,’g*-’);
title(’Solucao do PVI’)
xlabel(’t’);ylabel(’u’); hold on
figure(2); plot(t,erro,’b*-’);
title(’Erro’); hold on
%---------------------------
Veja abaixo a solu¸c˜ao para h = 1, 0.5, 0.1, 0.05:
Exerc´ıcio 5.1. Aproxime a solu¸c˜ao do PVI
du
dt
= sin t (5.0.15)
u(0) = 1 (5.0.16)
para t ∈ [0, 10].
a. Plote a solu¸c˜ao para h = 0.16, 0.08, 0.04, 0.02, 0.01.
b. Utilizando a solu¸c˜ao exata, plote um gr´afico do erro em escala logar´ıtmica. Co-
mente os resultados.
27. Se¸c˜ao 5.1: Erro de truncamento 23
c. Para t = 10, qual a rela¸c˜ao entre o erro e h (erro = f(h)). Comente.
Exerc´ıcio 5.2. Aproxime a solu¸c˜ao do PVI
du
dt
=
t2
1 − u2
(5.0.17)
u(0) = 0 (5.0.18)
para t > 0.
a. Plote a solu¸c˜ao para h = 0.5 e t ∈ [0, 20].
b. Tente aproximar melhor a solu¸c˜ao diminuindo h.
c. Note que existe T∗ tal que a solu¸c˜ao deixa de existir para t > T∗. Forne¸ca uma
justificativa para este fato e encontre T∗.
5.1. Erro de truncamento
Sendo u(tn) a solu¸c˜ao exata em tn e un a solu¸c˜ao aproximada, defina o erro num´erico
como en = un − u(tn).
Expandindo em s´erie de Taylor
u(tn+1) = u(tn) + hu′
(tn) + h2
u′′
(tn)/2 + O(h3
) (5.1.1)
e utilizando a equa¸c˜ao diferencial,
u(tn+1) = u(tn) + hf(tn, un) + h2
u′′
(tn)/2 + O(h3
) (5.1.2)
Subtraindo (5.1.2) do m´etodo de Euler
un+1 = un + h f(tn, un) (5.1.3)
temos
un+1 − u(tn+1) =un − u(tn) (5.1.4)
+ h(f(tn, u(tn) + en) − f(tn, u(tn))) + O(h2
) (5.1.5)
en+1 =en + h(f(tn, u(tn) + en) − f(tn, u(tn))) + O(h2
) (5.1.6)
Usando a condi¸c˜ao de Lipschitz em f temos
en+1 ≤ en + h f(tn, u(tn) + en) − f(tn, u(tn)) + ch2
(5.1.7)
≤ en + hL u(tn) + en − u(tn) + ch2
(5.1.8)
≤ en + hL en + ch2
(5.1.9)
≤ (1 + hL) en + ch2
(5.1.10)
5.1.1. Erro de truncamento Local
O Erro de Truncamento Local ´e o erro cometido em uma itera¸c˜ao do m´etodo num´erico
supondo que a solu¸c˜ao exata ´e conhecida no passo anterior.
Assim, supondo que a solu¸c˜ao ´e exata em tn, obtemos que o ETL ´e
ET Ln+1
Euler = h2
/2 u′′
(tn) + O(h3
)
28. Se¸c˜ao 5.1: Erro de truncamento 24
5.1.2. Erro de truncamento Global
Seja T = tn+1 − t0 = h(n + 1), temos dois casos: se L = 0 ent˜ao
en+1 ≤ en + ch2
(5.1.11)
≤ en−1 + ch2
+ ch2
(5.1.12)
≤ en−2 + ch2
+ ch2
+ ch2
(5.1.13)
≤ . . . (5.1.14)
≤ e0 + (n + 1)ch2
(5.1.15)
≤ e0 + T ch (5.1.16)
e se L = 0 ent˜ao
en+1 ≤ (1 + hL) en + ch2
(5.1.17)
en+1 + ch/L ≤ (1 + hL) en + ch/L + ch2
(5.1.18)
en+1 + ch/L ≤ (1 + hL) en + (1 + hL)ch/L (5.1.19)
en+1 + ch/L ≤ (1 + hL)( en + ch/L) (5.1.20)
en+1 + ch/L ≤ (1 + hL)n+1
( e0 + ch/L) (5.1.21)
en+1 + ch/L ≤ e(n+1)hL
( e0 + ch/L) (5.1.22)
en+1 ≤ eT L
( e0 + ch/L) − ch/L (5.1.23)
en+1 ≤ eT L
e0 + eT L
ch/L − ch/L (5.1.24)
en+1 ≤ eT L
e0 + (eT L
− 1)ch/L (5.1.25)
O Erro de Truncamento Global ´e o erro cometido durante v´arias itera¸c˜oes do
m´etodo num´erico.
Supondo que a solu¸c˜ao exata ´e conhecida em t0, temos e0 = 0 e ET G ´e
ET Gn+1
Euler = O(h)
5.1.3. Convergˆencia
Um m´etodo ´e dito convergente se para toda EDO com f Lipschitz e todo T > 0
temos que
lim
h−>0
max
∀n
un − u(tn) = 0
Convergˆencia significa que a solu¸c˜ao num´erica tende a solu¸c˜ao verdadeira
Teorema 5.1.1. O m´etodo de Euler ´e convergente.
Supondo que o erro em t0 ´e zero temos ∀T > t0 e f Lipschitz
lim
h−>0
en+1 = lim
h−>0
(eT L
− 1)ch/L = 0 (5.1.26)
O m´etodo de Euler possui ET L = O(h2
) e ´e um m´etodo de ordem 1.
29. Se¸c˜ao 5.2: A regra do trap´ezio 25
5.1.4. Paradoxo da ordem
Cont´ınuo: u(t) resolve exatamente u′
(t) = f(t, u(t)).
Discreto: un+1 resolve exatamente un+1 =
F(f, t, un, . . . , u0).
Por´em
un+1 resolve aproximadamente u′
(t) = f(t, u(t)),
ou seja, un+1 − u(tn) = O(hp+1
).
u(t) resolve aproximadamente
u(tn+1) − F(f, t, u(tn), . . . , u(t0)) = O(hp+1
).
Alternativamente, um m´etodo ´e chamado de ordem p se recupera exatamente
toda solu¸c˜ao polinomial de ordem p.
Sob certas condi¸c˜oes, como ET L = O(hp+1
), quando o n´umero de passos
aumenta como O(n) = O(h−1
) temos que ET G = O(hp
).
5.2. A regra do trap´ezio
O m´etodo de Euler aproxima f como uma constante f(t0, u0) no intervalo [t0, t1].
Podemos melhorar isso usando a regra do trap´ezio,
u(t1) = u(t0) +
t1
t0
f(t, u(t)) dt (5.2.1)
u(t1) ≈ u(t0) + (t1 − t0
1
2
f(t0, u(t0)) +
1
2
f(t1, u(t1)) (5.2.2)
motivando o
m´etodo trapezoidal
un+1 = un +
h
2
(f(tn, un) + f(tn+1, un+1)) (5.2.3)
O erro de truncamento local ´e
ET Ln+1
T rap = O(h3
)
portanto o m´etodo ´e de ordem 2. Pode ser mostrado que o erro de truncamento global
´e
ET Gn+1
T rap = O(h2
)
30. Se¸c˜ao 5.3: O m´etodo theta 26
(entretanto n˜ao deve se concluir que ET G = ET L/h)
O m´etodo trapezoidal ´e dito impl´ıcito, pois para obter un+1 ´e necess´ario calcular
f(tn+1, un+1). Para resolver esse problema devemos resolver a equa¸c˜ao para un+1 (ou
ainda um sistema alg´ebrico de equa¸c˜oes).
Inspirado no m´etodo anterior, ao inv´es de aproximar
u′
(t) ≈
1
2
[f(tn, un) + f(tn+1, un+1)] (5.2.4)
podemos aproximar
u′
(t) ≈ f(tn +
h
2
,
1
2
(un + un+1)). (5.2.5)
levando ao
m´etodo do ponto m´edio
un+1 = un + hf(tn +
h
2
,
1
2
(un + un+1)). (5.2.6)
Exerc´ıcio 5.3. Mostre que o m´etodo do ponto m´edio ´e convergente e de ordem 2.
5.3. O m´etodo theta
Tanto o m´etodo de Euler quanto o m´etodo trapezoidal se encaixam no m´etodo
un+1 = un + h(θf(tn, un) + (1 − θ)f(tn+1, un+1)) (5.3.1)
com θ = 1 e θ = 1
2 respectivamente. O m´etodo ´e expl´ıcito somente para θ = 1. Para
θ = 0, temos um m´etodo impl´ıcito de primeira ordem chamado
m´etodo de Euler impl´ıcito
un+1 = un + hf(tn+1, un+1). (5.3.2)
Exerc´ıcio 5.4. O sistema linear u′
= Au, u(0) = u0, onde A ´e uma matriz sim´etrica
´e resolvido pelo m´etodo de Euler.
a. Seja en = un − u(nh), n = 0, 1, . . ., prove que
en 2 ≤ u0 2 max
λ∈σ(A)
|(1 + hλ)n
− enhλ
|, (5.3.3)
onde σ(A) ´e o conjunto dos autovalores de A e · 2 ´e a norma euclidiana.
b. Demonstre que para −1 ≪ x ≤ 0 e n = 0, 1, . . . ´e v´alida a express˜ao
enx
−
1
2
nx2
e(n−1)x
≤ (1 + x)n
≤ enx
. (5.3.4)
(Dica: Prove que 1 + x ≤ ex
, 1 + x + 1
2 x2
≥ ex
, para todo x ≤ 0 e argumente
que, se |a − 1| e |b| s˜ao pequenos, ´e verdade que (a − b)n
≥ an
− nan−1
b.
31. Se¸c˜ao 5.4: O m´etodo de Taylor 27
c. Suponha que o maior autovalor de A ´e λmax < 0. Prove que, quando h− > 0 e
nh− > t ∈ [0, t∗
],
en 2 ≤
1
2
tλ2
maxeλmaxt
u0 2h ≤
1
2
t∗
λ2
max u0 2h (5.3.5)
5.4. O m´etodo de Taylor
Uma maneira simples de aumentar a ordem do m´etodo ´e utilizar diretamente a s´erie de
Taylor. Considere a expans˜ao
u(t + h) = u(t) + hu′
(t) +
h2
2!
u′′
(t) +
h3
3!
u′′′
(t) + . . . (5.4.1)
Utilizando dois termos temos o m´etodo de Euler. Utilizando os trˆes primeiros
termos da s´erie e substituindo u′
(t) = f(t, x) e u′′
(t) = ft(t, x) temos o
m´etodo de Taylor de ordem 2
un+1 = un + hf(tn, un) +
h2
2!
ft(tn, un) (5.4.2)
m´etodo de Taylor de ordem 3
un+1 = un + hf(tn, un) +
h2
2!
ft(tn, un) +
h3
3!
ftt(tn, un)
Exerc´ıcio 5.5. Aproxime a solu¸c˜ao do PVI
du
dt
= sin t (5.4.3)
u(0) = 1 (5.4.4)
para t ∈ [0, 10].
a. Plote a solu¸c˜ao para h = 0.16, 0.08, 0.04, 0.02, 0.01 para o m´etodo de Taylor de
ordem 1, 2 e 3. (Plote todos de ordem 1 no mesmo gr´afico, ordem 2 em outro
gr´afico e ordem 3 outro gr´afico separado.)
b. Utilizando a solu¸c˜ao exata, plote um gr´afico do erro em escala logar´ıtmica. Co-
mente os resultados (novamente, em cada gr´afico separado para cada m´etodo
repita os valores acima)
c. Fixe agora o valor h = 0.02 e plote no mesmo gr´afico uma curva para cada
m´etodo.
d. Plote em um gr´afico o erro em t = 10 para cada um dos m´etodos (uma curva
para cada ordem) a medida que h diminui. (Use escala loglog)
Exerc´ıcio 5.6. Aproxime a solu¸c˜ao do modelo presa-predador (Lotka-Volterra)
x′
= x(2 − y), x(0) = 1 (5.4.5)
y′
= y(x − 1), y(0) = 1 (5.4.6)
32. 28
utilizando o m´etodo de Euler. Escolha apropriadamente h e ilustre graficamente a
convergˆencia. Plote solu¸c˜oes no plano de fase (plano xy).
Exerc´ıcio 5.7. Aproxime a solu¸c˜ao do PVI
du
dt
=
cos(t + u)
1 + u2
(5.4.7)
u(0) = 0 (5.4.8)
utilizando o m´etodo do trap´ezio. Escolha apropriadamente h e ilustre graficamente a
convergˆencia.
Para resolver o m´etodo impl´ıcito, utilize por exemplo itera¸c˜ao de ponto fixo ou
o m´etodo de Newton.
a. Plote a solu¸c˜ao para diferentes valores de h.
b. Para h = 0.01 e T = 10 conte o n´umero total de itera¸c˜oes necess´arias de cada
passo do m´etodo impl´ıcito para obter a solu¸c˜ao usando uma tolerˆancia de 10−15
na solu¸c˜ao do problema impl´ıcito.
c. Repita o exerc´ıcio anterior com h = 0.01, T = 10 e tolerˆancia de 10−8
.
d. Repita o exerc´ıcio anterior com h = 0.01, T = 10 e tolerˆancia de 10−4
.
e. Repita o exerc´ıcio anterior utilizando o m´etodo de Euler com diferentes valores de
h, at´e T = 10 de tal forma que a solu¸c˜ao seja t˜ao pr´oxima da solu¸c˜ao do m´etodo
do trap´ezio quanto poss´ıvel. Conte as itera¸c˜oes necess´arias para obter a solu¸c˜ao
com o m´etodo de Euler com o mesmo erro que o m´etodo do trap´ezio.
f. Compare, para esse exerc´ıcio, o m´etodo de Euler e o do trap´ezio.
Aula 6 e 7 .
M´etodos de passo m´ultiplo
.
Butcher, Iserles
Cap´ıtulo 6:
M´etodos de Passo M´ultiplo
Bibliografia: Cap.2 [5], e Sec.24 [1].
Seja a EDO
u′
(t) = f(t, u(t)) (6.0.1)
u(t0) = a (6.0.2)
33. Se¸c˜ao 6.1: O m´etodo de Adams-Bashforth 29
Integrando a EDO em [tn+1, tn] obtemos
un+1 = un +
tn+1
tn
f(t, u(t)) dt (6.0.3)
Denote por fn ≡ f(tn, un). Um m´etodo de passo simples utiliza fn+1 e fn. Um
m´etodo de passo m´ultiplo utiliza tamb´em s valores anteriores j´a calculados como
fn−1, fn−2, . . . , fn−s, onde s ≥ 1 inteiro.
un+1 = un + h[bsfn+1 + bs−1fn + . . . + b1fn−s+2 + b0fn−s+1] (6.0.4)
Para conformidade com [5], translade s − 1 ´ındices,
un+s = un+s−1 + h[bsfn+s + bs−1fn+s−1 + . . . + b1fn+1 + b0fn] (6.0.5)
e teremos
un+s = un+s−1 + h
s
m=0
bmfn+m (6.0.6)
De forma geral
um m´etodo de passo m´ultiplo ser´a
s
m=0
amun+m = h
s
m=0
bmfn+m (6.0.7)
6.1. O m´etodo de Adams-Bashforth
Quando as = 1, as−1 = −1, am = 0 para m = s − 2, . . . , 0, bs = 0 temos um m´etodo
de Adams-Bashforth do tipo
un+s = un+s−1 + h
s−1
m=0
bmfn+m (6.1.1)
Note que os m´etodos de Adams-Bashforth s˜ao expl´ıcitos pois bs = 0.
Exemplo 16.
Vamos obter o m´etodo de Adams-Bashforth para s = 4 como
un+4 = un+3 +
tn+4
tn+3
f(t, u(t)) dt (6.1.2)
un+4 = un+3 + h
3
m=0
bmfn+m (6.1.3)
un+4 = un+3 + h[b3fn+3 + b2fn+2 + b1fn+1 + b0fn] (6.1.4)
Para isso devemos obter [b3, b2, b1, b0] tal que o m´etodo seja exato para polinˆomios at´e
ordem 3. Podemos obter esses coeficientes de maneira an´aloga a obter os coeficientes
de um m´etodo para integra¸c˜ao como em 3.1.
34. Se¸c˜ao 6.1: O m´etodo de Adams-Bashforth 30
Supondo que os n´os tk estejam igualmente espa¸cados, e para facilidade dos
c´alculos, como o intervalo de integra¸c˜ao ´e [tn+3, tn+4], translade tn+3 para a origem
tal que [tn, tn+1, . . . , tn+4] = [−3h, −2h, −h, 0, h].
Considere a base [φ0(t), . . . , φ3(t)] = [1, t, t2
, t3
] e substitua f(t) por φk(t) ob-
tendo
h
0
1 dt = h = h(b0(1) + b1(1) + b2(1) + b3(1))
h
0
t dt =
h2
2
= h(b0(0) + b1(−h) + b2(−2h) + b3(−3h))
h
0
t2
dt =
h3
3
= h(b0(0)2
+ b1(−h)2
+ b2(−2h)2
+ b3(−3h)2
)
h
0
t3
dt =
h4
4
= h(b0(0)3
+ b1(−h)3
+ b2(−2h)3
+ b3(−3h)3
)
que pode ser escrito na forma matricial
1 1 1 1
0 −1 −2 −3
0 1 4 9
0 −1 −8 −27
b0
b1
b2
b3
=
1
1/2
1/3
1/4
(6.1.5)
Resolvendo o sistema obtemos
[b0, b1, b2, b3] = [−
9
24
,
37
24
, −
59
24
,
55
24
]
fornecendo
o m´etodo de Adams-Bashforth de 4 est´agios
un+4 = un+3 +
h
24
[55fn+3 − 59fn+2 + 37fn+1 − 9fn]
(6.1.6)
Dica: Para encontrar coeficientes no formato fracion´ario utilize format rat no
Matlab.
Exerc´ıcio 6.1. Mostre que o m´etodo de Adams-Bashforth para s = 2 ´e dado por
un+2 = un+1 +
h
2
[3fn+1 − fn] (6.1.7)
Exerc´ıcio 6.2. Mostre que o m´etodo de Adams-Bashforth para s = 3 ´e dado por
un+3 = un+2 +
h
12
[23fn+2 − 16fn+1 + 5fn] (6.1.8)
35. Se¸c˜ao 6.2: Ordem e convergˆencia de m´etodos de passo m´ultiplo 31
6.1.1. C´odigo
%---------------------------
function [u]=adamsbashforth3(h,itmax)
t(1)=0; u(1)=2; f(1)= func( t(1), u(1) );
t(2)=t(1)+h; u(2)=u2; f(2)= func( t(2), u(2) );
t(3)=t(2)+h; u(3)=u3; f(3)= func( t(3), u(3) );
for n=3:itmax
t(n+1)= t(n) + h;
u(n+1)= u(n) + h/12*(23*f(n)-16* f(n-1) +5*f(n-2));
f(n+1)= func( t(n+1), u(n+1) );
end
end
%---------------------------
function [fu]=func(t,u)
fu = u+t
end
%---------------------------
Note a defini¸c˜ao da fun¸c˜ao f em na fun¸c˜ao func.
6.2. Ordem e convergˆencia de m´etodos de passo m´ultiplo
Mais geralmente, um m´etodo de passo m´ultiplo ser´a da forma
s
m=0
amun+m = h
s
m=0
bmfn+m (6.2.1)
Por conven¸c˜ao normalizamos a equa¸c˜ao acima tomando as = 1. Quando bs = 0 temos
um m´etodo expl´ıcito e quando bs = 0 temos um m´etodo impl´ıcito.
O m´etodo ser´a de ordem p se o ET L(u(t)) = ψ(u(t)) = O(hp+1
) para u(t)
suficientemente suave, ou ainda, a solu¸c˜ao exata resolve aproximadamente (6.2.1), tal
que,
ψ(u(t)) :=
s
m=0
amu(t + mh) − h
s
m=0
bmu′
(t + mh) (6.2.2)
=O(hp+1
), h → 0 (6.2.3)
Dois polinˆomios s˜ao usados para estudar o m´etodo (6.2.1):
ρ(w) =
s
m=0
amwm
, σ(w) =
s
m=0
bmwm
, (6.2.4)
Teorema 6.2.1. O m´etodo de passo m´ultiplo ´e de ordem p ≥ 1 se e somente se
ρ(w) − σ(w) ln w = O(|w − 1|p+1
) w → 1
36. Se¸c˜ao 6.2: Ordem e convergˆencia de m´etodos de passo m´ultiplo 32
Demonstra¸c˜ao. Expandindo u(t + mh) e u′
(t + mh) como s´erie de Taylor,
u(t + mh) =
∞
k=0
u(k)
(t)
k!
mk
hk
(6.2.5)
u′
(t + mh) =
∞
k=0
u(k+1)
(t)
k!
mk
hk
(6.2.6)
u′
(t + mh) =
∞
k=1
u(k)
(t)
(k − 1)!
mk−1
hk−1
(6.2.7)
Assumindo que u(t) ´e anal´ıtica temos
ψ(u(t)) =
s
m=0
amu(t + mh) − h
s
m=0
bmu′
(t + mh)
=
s
m=0
am
∞
k=0
u(k)
(t)
k!
mk
hk
− h
s
m=0
bm
∞
k=1
u(k)
(t)
(k − 1)!
mk−1
hk−1
=(
s
m=0
am)u(t) +
∞
k=1
s
m=0
am
u(k)
(t)
k!
mk
hk
− hbm
u(k)
(t)
(k − 1)!
mk−1
hk−1
=(
s
m=0
am)u(t) +
∞
k=1
u(k)
(t)
k!
hk
s
m=0
(ammk
− bmkmk−1
)
Para o m´etodo ser de ordem p ´e necess´ario e suficiente que todos termos at´e ordem
hp
sejam zero, ou seja,
s
m=0
am = 0 (6.2.8)
s
m=0
(ammk
− bmkmk−1
) = 0, k = 1, . . . , p (6.2.9)
Por outro lado, fazendo w = ez
(quando z− > 0 temos w− > 1), e expan-
37. Se¸c˜ao 6.2: Ordem e convergˆencia de m´etodos de passo m´ultiplo 33
dindo em s´erie de Taylor
ρ(ez
) − zσ(ez
) =
s
m=0
amemz
− z
s
m=0
bmemz
(6.2.10)
=
s
m=0
(am − zbm)emz
(6.2.11)
=
s
m=0
(am − zbm)(
∞
k=0
mk
zk
k!
) (6.2.12)
=
∞
k=0
zk
k!
s
m=0
ammk
− zbmmk
(6.2.13)
=
∞
k=0
zk
k!
s
m=0
ammk
− bmkmk−1
(6.2.14)
Temos ent˜ao que
ρ(ez
) − zσ(ez
) = O(zp+1
), z− > 0 (6.2.15)
ρ(w) − ln wσ(w) = O(|w − 1|p+1
), w− > 1 (6.2.16)
se e somente se o m´etodo ´e de ordem p, ou seja, as condi¸c˜oes (6.2.8) s˜ao v´alidas.
6.2.1. Convergˆencia de m´etodos de passo m´ultiplo
Alternativamente,
ψ(u(t)) = O(hp+1
)
para u(t) arbitr´aria se e somente se ψ(q(t)) = 0 ∀q(t) ∈ Pp
.
Isto ´e equivalente a ψ(φk(t)) = 0 para a base polinomial φk(t) = tk
, k =
0, . . . , p.
Por exemplo, para φ0(t) = 1 obtemos
ψ(φ0) =
s
m=0
amψ0(t + mh) − h
s
m=0
bmψ′
0(t + mh) (6.2.17)
=
s
m=0
am = 0 (6.2.18)
e para ψk(t) = tk
, obtemos
ψ(φk) =
s
m=0
amψk(t + mh) − h
s
m=0
bmψ′
k(t + mh) (6.2.19)
=
s
m=0
am(mh)k
− h
s
m=0
bmk(mh)k−1
(6.2.20)
= hk
s
m=0
ammk
− bmkmk−1
(6.2.21)
(6.2.22)
38. Se¸c˜ao 6.2: Ordem e convergˆencia de m´etodos de passo m´ultiplo 34
que ´e igual a zero para k = 1, . . . , p sob a condi¸c˜ao (6.2.8).
Exemplo 17.
Considere o m´etodo (6.1.7) de Adams-Bashforth de ordem 2.
un+2 = un+1 +
h
2
[3fn+1 − fn] (6.2.23)
Podemos calcular (fa¸ca ξ = w − 1),
ρ(w) − σ(w) ln w = (w2
− w) − (
3
2
w −
1
2
) ln w (6.2.24)
= (ξ2
+ ξ) − (1 +
3
2
ξ)(ξ −
1
2
ξ2
+
1
3
ξ3
+ . . .) (6.2.25)
=
5
12
ξ3
+ O(ξ4
) (6.2.26)
o qual valida a ordem 2 para o m´etodo.
Exerc´ıcio 6.3. Verifique que o m´etodo (6.1.8) de Adams-Bashforth para s = 3 ´e
realmente de ordem 3.
Exerc´ıcio 6.4. Verifique que o m´etodo (6.1.6) de Adams-Bashforth para s = 4 ´e
realmente de ordem 4.
Exerc´ıcio 6.5. Verifique que o m´etodo
un+2 − 3un+1 + 2un =
h
12
[13fn+2 − 20fn+1 − 5fn] (6.2.27)
possui ordem 2, por´em n˜ao ´e convergente (sem usar o pr´oximo teorema). (Dica: use a
EDO u′
(t) = 0, u(0) = 1).
6.2.2. Teorema de equivalˆencia de Dahlquist
Dizemos que um polinˆomio obedece a condi¸c˜ao da raiz se todas suas ra´ızes possuem
|z| ≤ 1 e as ra´ızes com |z| = 1 s˜ao simples.
Teorema 6.2.2 (Teorema de equivalˆencia de Dahlquist). Suponha que o erro em
u1, . . . , us−1 tende a zero quando h− > 0. O m´etodo de passo m´ultiplo ´e convergente
se e somente se o erro ´e de ordem p ≥ 1 e ρ(z) obedece a condi¸c˜ao da raiz.
Por exemplo o m´etodo (6.2.27) possui
ρ(w) = (w − 1)(w − 2) (6.2.28)
violando a condi¸c˜ao da raiz.
Exemplo 18.
Prove que o m´etodo de passo 3
un+3 +
27
11
un+2 −
27
11
un+1 − un = (6.2.29)
=
h
11
[3fn+3 + 27fn+2 + 27fn+1 + 3fn] (6.2.30)
39. Se¸c˜ao 6.3: O m´etodo de Adams-Moulton 35
possui ordem 6 por´em n˜ao ´e convergente.
Solu¸c˜ao: Verifique que o m´etodo ´e ordem 6. Entretanto o polinˆomio
ρ(w) = w3
+
27
11
w2
−
27
11
w − 1 (6.2.31)
= (w − 1) w +
19 + 4
√
15
11
w +
19 − 4
√
15
11
(6.2.32)
que falha na condi¸c˜ao da raiz.
Exerc´ıcio 6.6. Prove que todos os m´etodos de Adams-Bashforth satisfazem a condi¸c˜ao
da raiz.
6.2.3. A primeira barreira de Dahlquist
Um m´etodo de passo m´ultiplo possui 2s + 1 coeficientes am,bm. Poder´ıamos definir
tais coeficientes de tal forma a obter ordem m´axima.
Conclus˜ao? Poder´ıamos obter m´etodos com s est´agios e ordem 2s.
Entretanto tal m´etodo (impl´ıcito de passo s e ordem 2s) n˜ao ´e convergente para
s ≥ 3 (como o m´etodo (6.2.29) visto acima).
´E poss´ıvel provar que a ordem m´axima de convergˆencia para um m´etodo de
passo m´ultiplo s ´e no m´aximo 2⌊(s + 2)/2⌋ para m´etodos impl´ıcitos e s para m´etodos
expl´ıcitos. Esta ´e a primeira barreira de Dahlquist.
6.3. O m´etodo de Adams-Moulton
Quando as = 1, as−1 = −1, am = 0 para m = s − 2, . . . , 0, bs = 0 temos um m´etodo
de Adams-Moulton do tipo
un+s = un+s−1 + h
s
m=0
bmfn+m (6.3.1)
Note que os m´etodos de Adams-Moulton s˜ao impl´ıcitos pois bs = 0.
Exemplo 19.
Vamos obter o m´etodo de Adams-Moulton para s = 3 como
un+3 = un+2 +
tn+4
tn+3
f(t, u(t)) dt (6.3.2)
un+3 = un+2 + h
3
m=0
bmfn+m (6.3.3)
un+3 = un+2 + h[b3fn+3 + b2fn+2 + b1fn+1 + b0fn] (6.3.4)
Para isso devemos obter [b3, b2, b1, b0] tal que o m´etodo seja exato para polinˆomios at´e
ordem 3. Podemos obter esses coeficientes de maneira an´aloga a obter os coeficientes
de um m´etodo para integra¸c˜ao como em 3.1.
40. Se¸c˜ao 6.4: M´etodo BDF 36
Supondo que os n´os tk estejam igualmente espa¸cados, e para facilidade dos
c´alculos, como o intervalo de integra¸c˜ao ´e [tn+2, tn+3], translade tn+2 para a origem
tal que [tn, tn+1, . . . , tn+3] = [−2h, −h, 0, h].
Considere a base [φ0(t), . . . , φ3(t)] = [1, t, t2
, t3
] e substitua f(t) por φk(t) ob-
tendo
h
0
1 dt = h = h(b0(1) + b1(1) + b2(1) + b3(1))
h
0
t dt =
h2
2
= h(b0(h) + b1(0) + b2(−h) + b3(−2h))
h
0
t2
dt =
h3
3
= h(b0(h)2
+ b1(0)2
+ b2(−h)2
+ b3(−2h)2
)
h
0
t3
dt =
h4
4
= h(b0(h)3
+ b1(0)3
+ b2(−h)3
+ b3(−2h)3
)
que pode ser escrito na forma matricial
1 0 1 1
1 0 −1 −2
1 0 1 4
1 0 −1 −8
b0
b1
b2
b3
=
1
1/2
1/3
1/4
(6.3.5)
Resolvendo o sistema obtemos
[b0, b1, b2, b3] = [
1
24
, −
5
24
,
19
24
,
9
24
, ]
fornecendo a regra
un+3 = un+2 +
h
24
[9fn+3 + 19fn+2 − 5fn+1 + fn] (6.3.6)
Exerc´ıcio 6.7. Encontre o m´etodo de Adams-Moulton para s = 2.
Exerc´ıcio 6.8. Encontre o m´etodo de Adams-Moulton para s = 3.
Exemplo 20.
Um m´etodo de ordem s expl´ıcito ´e chamado de m´etodo de Nystron se ρ(w) = ws−2
(w2
−
1).
Exemplo 21.
Um m´etodo de ordem s + 1 impl´ıcito ´e chamado de m´etodo de Milne se ρ(w) =
ws−2
(w2
− 1).
6.4. M´etodo BDF
Um m´etodo de ordem s com s est´agios ´e chamado de m´etodo BDF-Backward Dif-
ferentiation Formula se σ(w) = bsws
, onde bs ∈ R.
41. Se¸c˜ao 6.4: M´etodo BDF 37
Lema 6.4.1. Para um m´etodo BDF temos
bs =
s
m=1
1
m
−1
, ρ(w) = bs
s
m=1
1
m
ws−m
(w − 1)m
(6.4.1)
Demonstra¸c˜ao. Sendo p = s a ordem, o teorema 6.2.1 implica que
ρ(w) − bsws
ln w = O(|w − 1|s+1
), w− > 1
Substituindo v = 1/w,
ρ(
1
v
) −
bs
vs
ln(
1
v
) = O(|
1
v
− 1|s+1
), v− > 1
vs
ρ(
1
v
) + bs ln v = O(|1 − v|s+1
), v− > 1
Como
ln v = ln [1 + (v − 1)] =
s
m=1
(−1)m−1
m
(v − 1)m
+ O(|v − 1|s+1
)
deduzimos que
vs
ρ(1/v) = bs
s
m=1
(−1)m−1
m
(v − 1)m
Portanto
ρ(w) = bsv−s
s
m=1
(−1)m
m
(v − 1)m
(6.4.2)
= bs
s
m=1
(−1)m
m
ws
(w−1
− 1)m
(6.4.3)
= bs
s
m=1
1
m
ws−m
(w − 1)m
(6.4.4)
Para completar a prova, falta derivar a forma expl´ıcita para bs, que segue impondo
as = 1 em ρ(w).
Exemplo 22.
Mostre que o m´etodo BDF com s = 3 ´e
un+3 −
18
11
un+2 +
9
11
un+1 −
2
11
un =
6
11
hfn+3 (6.4.5)
Solu¸c˜ao: Para s = 3 temos que
bs =
1
1 + 1
2 + 1
3
=
6
11
e
ρ(w) =
6
11
[w2
(w − 1) +
1
2
w(w − 1)2
+
1
3
(w − 1)3
] (6.4.6)
= w3
−
18
11
w2
+
9
11
w −
2
11
(6.4.7)
42. 38
Teorema 6.4.2. O polinˆomio ρ(w) em (6.4.1) satisfaz a condi¸c˜ao da raiz e o m´etodo
BDF ´e convergente se e somente se 1 ≤ s ≤ 6.
Exerc´ıcio 6.9. Mostre que o m´etodo BDF com s = 1 ´e o m´etodo de Euler impl´ıcito.
Exerc´ıcio 6.10. Mostre que o m´etodo BDF com s = 2 ´e
un+2 −
4
3
un+1 +
1
3
un =
2
3
hfn+2 (6.4.8)
Exerc´ıcio 6.11. Mostre que os m´etodos BDF com s = 2 e s = 3 s˜ao convergentes.
Exerc´ıcio 6.12. Determine a ordem do m´etodo de passo 3,
un+3 − un =
h
8
[3fn+3 + 9fn+2 + 9fn+1 + 3fn] (6.4.9)
Este m´etodo ´e convergente?
Exerc´ıcio 6.13. Aproxime a solu¸c˜ao do PVI
du
dt
= sin t (6.4.10)
u(0) = 1 (6.4.11)
para t ∈ [0, 10]. Utilize o m´etodo de Adams-Bashforth com s = 3 e plote os resultados
como nos exerc´ıcios anteriores. Compare os resultados utilizando nos passos iniciais o
m´etodo de:
a. Euler;
b. Taylor;
c. Runge-Kutta.
Aula 8 .
M´etodos de Runge-Kutta
.
Butcher, Iserles
Cap´ıtulo 7:
M´etodos de Runge-Kutta
Bibliografia: Cap.3 [5], Sec.23 [1].
43. Se¸c˜ao 7.1: M´etodo de Runge-Kutta Expl´ıcito 39
7.1. M´etodo de Runge-Kutta Expl´ıcito
Seja a EDO
u′
(t) = f(t, u(t)) (7.1.1)
u(t0) = a (7.1.2)
Integrando a EDO em [tn, tn+1] obtemos
un+1 = un +
tn+1
tn
f(t, u(t)) dt (7.1.3)
Um m´etodo de passo simples utiliza fn e fn+1. Queremos aumentar a ordem do m´etodo,
por´em utilizando somente valores de f entre [tn, tn+1].
un un+1
| |
tn tn+1
τ1 τ2 · · · τν
un+1 = un +
tn+1
tn
f(t, u(t)) dt (7.1.4)
= un + h
1
0
f(tn + hτ, u(tn + hτ)) dτ (7.1.5)
= un + h
ν
j=1
bjf(tn + cjh, u(tn + cjh)) (7.1.6)
Denote por τj = tn + cjh, Uj ≡ u(τj) e Fj ≡ f(τj, Uj), j = 1, . . . , ν. Inicie
com U1 = un (c1 = 0) como a solu¸c˜ao no passo anterior e aproxime Uj, j = 2, . . . , ν,
com uma combina¸c˜ao linear de F1, . . . , Fj−1, ou seja,
U1 = un (7.1.7)
U2 = un + ha21F1 (7.1.8)
U3 = un + ha31F1 + ha32F2 (7.1.9)
= . . . (7.1.10)
Uν = un + h
ν−1
i=1
aνiFi (7.1.11)
un+1 = un + h
ν
i=1
biFi (7.1.12)
onde A = (aij) ´e a matriz de RK (triangular inferior com diagonal zero), bj s˜ao os
pesos RK e cj s˜ao os n´os RK.
Os coeficientes podem ser resumidos em uma tabela na forma
c A
bT =
c1 a11 a12
c2 a21 a22
b1 b2
44. Se¸c˜ao 7.2: M´etodo de RK ν = 2 40
7.2. M´etodo de RK ν = 2
Assumindo suavidade suficiente em f, expanda em s´erie de Taylor
F2 = f(tn + c2h, U2) (7.2.1)
= f(tn + c2h, un + a21hfn) (7.2.2)
= fn + h[c2
∂fn
∂t
+ a21
∂fn
∂u
fn] + O(h2
) (7.2.3)
fazendo com que (7.1.12) se torne
un+1 = un + h[b1F1 + b2F2] (7.2.4)
= un + h(b1 + b2)fn + h2
b2[c2
∂fn
∂t
+ a21
∂fn
∂u
fn] + O(h3
) (7.2.5)
Usando a EDO e derivando-a obtemos
ut = f(t, u) (7.2.6)
utt = ft + fuut = ft + fuf (7.2.7)
e expandindo em s´erie de Taylor a solu¸c˜ao exata em tn+1,
u(tn+1) = un + hut +
h2
2
utt + O(h3
) (7.2.8)
= un + hfn +
h2
2
[ft + fuf] + O(h3
) (7.2.9)
e comparando com (7.2.5) obtemos as condi¸c˜oes para ordem p ≥ 2,
b1 + b2 = 1, b2c2 =
1
2
a21 = c2 (7.2.10)
O sistema possui mais de uma solu¸c˜ao. Algumas escolhas comuns s˜ao
0
1
2
1
2
0 1
,
0
2
3
2
3
1
4
3
4
e
0
1 1
1
2
1
2
onde a ´ultima tabela fornece o m´etodo de Heun (ou Euler modificado):
U1 = un (7.2.11)
U2 = un + hF1 (7.2.12)
un+1 = un + h[
1
2
F1 +
1
2
F2] (7.2.13)
Note que o m´etodo ´e de ordem p = 2 pois os termos que sobraram s˜ao de O(h3
).
Seguindo um procedimento similar (veja [5],p39-40), podemos obter as condi¸c˜oes
para um m´etodo com ν = 3 e ordem p = 3, que s˜ao
b1 + b2 + b3 = 1,b2c2 + b3c3 =
1
2
(7.2.14)
b2c2
2 + b3c2
3 =
1
3
,b3a32c2 =
1
6
(7.2.15)
Alguns exemplos de m´etodos de RK de 3 est´agios s˜ao o m´etodo cl´assico de
Runge-Kutta
45. Se¸c˜ao 7.3: M´etodo de Runge-Kutta impl´ıcito (IRK) 41
0
1
2
1
2
1 −1 2
1
6
4
6
1
6
e o m´etodo de Nystrom
0
2
3
2
3
2
3 0 2
3
2
8
3
8
3
8
Com paciˆencia e a ajuda de um software alg´ebrico (como Maple) ´e poss´ıvel
encontrar um m´etodo de quarta ordem e ν = 4 est´agios como
0
1
2
1
2
1
2 0 1
2
1 0 0 1
1
6
2
6
2
6
1
6
7.3. M´etodo de Runge-Kutta impl´ıcito (IRK)
No conjunto de equa¸c˜oes (7.1.7)-(7.1.12), Uk depende em valores conhecidos F1, . . . , Fk−1
tornando o m´etodo expl´ıcito.
Entretanto se Uk depender de F1, . . . , Fν temos um m´etodo impl´ıcito como
Uj = un + h
ν
i=1
ajiFi, j = 1, . . . , ν (7.3.1)
un+1 = un + h
ν
i=1
biFi (7.3.2)
onde A = (aij) ´e a matriz de RK. ´E necess´ario que
ν
i=1
aji = cj, j = 1, . . . , ν (7.3.3)
para que o m´etodo possua ordem p ≥ 1.
Exemplo 23.
Um m´etodo de Runge-Kutta Impl´ıcito (IRK) de dois est´agios ´e dado por
U1 = un + h/4[f(tn, U1) − f(tn +
2
3
h, U2)] (7.3.4)
U2 = un + h/12[3f(tn, U1) + 5f(tn +
2
3
h, U2)] (7.3.5)
un+1 = un + h/4[f(tn, U1) + 3f(tn +
2
3
h, U2)] (7.3.6)
que possui uma tabela como
0 1
4 −1
4
2
3
1
4
5
12
1
4
3
4
46. Se¸c˜ao 7.4: Estimativa da ordem de convergˆencia 42
Exerc´ıcio 7.1. Mostre que o m´etodo IRK com 2 est´agios do exemplo anterior ´e de
ordem 3.
Exerc´ıcio 7.2. Aproxime a solu¸c˜ao do PVI
du
dt
=
cos(t + u)
1 + u2
(7.3.7)
u(0) = 0 (7.3.8)
utilizando o m´etodo de Runge Kutta de 4 est´agios. Escolha apropriadamente h e ilustre
graficamente a convergˆencia.
a. Plote a solu¸c˜ao para diferentes valores de h.
b. Repita o exerc´ıcio anterior utilizando o m´etodo de Euler com diferentes valores
de h, at´e T = 10 de tal forma que a solu¸c˜ao seja t˜ao pr´oxima da solu¸c˜ao obtiva
via RK quanto poss´ıvel.
c. Compare o n´umero de itera¸c˜oes, para esse exerc´ıcio, entre o m´etodo de Euler e o
de Runge-Kutta.
Exerc´ıcio 7.3. Aproxime a solu¸c˜ao do PVI
u′′
+ 0.125u′
+ u = 0 (7.3.9)
u(0) = 2 u′
(0) = 0 (7.3.10)
para t ∈ [0, 20]. Utilize o m´etodo de Runge Kutta de 4 est´agios. Escolha apropriada-
mente h e ilustre graficamente a convergˆencia.
a. Transforme o PVI num sistema de EDO’s de primeira ordem nas vari´aveis [y1(t), y2(t)] =
[u(t), u′
(t)].
b. Plote a solu¸c˜ao u(t).
c. Plote a solu¸c˜ao no espa¸co de fases [y1, y2].
7.4. Estimativa da ordem de convergˆencia
Ferziger and Peric, Computational Methods for Fluid Dynamics, p.335.
Raramente temos a solu¸c˜ao exata u(t) para calcular o erro obtido na solu¸c˜ao
num´erica. Entretanto, se a solu¸c˜ao ´e suave o suficiente e o espa¸camento h ´e pe-
queno suficientemente, podemos usar o seguinte procedimento para estimar a ordem do
m´etodo (ou ainda, o erro na solu¸c˜ao).
Como visto nos exemplo num´ericos anteriores, em gr´aficos na escala loglog, se
h ´e grande n˜ao obtemos a ordem de convergˆencia utilizada (por exemplo, encontramos
que o m´etodo de Euler possui ordem p ≈ 0.7 onde deveria ser 1). A medida que
h decresce se aproximando de 0, a ordem de convergˆencia tende a se aproximar de
p ≈ 1. (Entretanto h n˜ao pode ficar muito pequeno a ponto que as opera¸c˜oes de ponto
flutuante atrapalhem na convergˆencia).
Portanto existe uma faixa hmin < h < hmax onde o m´etodo apresenta a ordem
desejada. Essa regi˜ao depende do m´etodo e do PVI estudado.
47. 43
Mas se estivermos nessa regi˜ao podemos aproximar a ordem do m´etodo da se-
guinte forma: Considere a solu¸c˜ao para um determinado t = T ∗
fixo, u(T ∗
). Considere
tamb´em as aproxima¸c˜oes das solu¸c˜oes obtidas com espa¸camento h, denotada por uh
; a
aproxima¸c˜ao obtida com espa¸camento dividido por 2, h/2, denotada por uh/2
; a apro-
xima¸c˜ao obtida com espa¸camento h/4, denotada por uh/4
,. . . e assim por diante, todas
calculadas em t = T ∗
.
7.4.1. M´etodo 1
Podemos utilizar uma solu¸c˜ao bem refinada, por exemplo, uh/16
como sendo uma boa
aproxima¸c˜ao da solu¸c˜ao exata e supormos que u∗
= uh/16
. Desta forma podemos
aproximar o erro por eh
= u(h)
− u∗
e a ordem do m´etodo ´e estimada como
p ≈
log(eh
) − log(eh/2
)
log(h) − log(h/2)
(7.4.1)
≈
log eh
eh/2
log(h/(h/2))
(7.4.2)
≈
log eh
eh/2
log(2)
(7.4.3)
≈
log uh
−u∗
uh/2−u∗
log(2)
(7.4.4)
(7.4.5)
7.4.2. M´etodo 2
Segundo Ferziger/Peric/Roache, podemos tamb´em estimar p diretamente de
p ≈
log uh/2
−uh
uh/4−uh/2
log(2)
(7.4.6)
(7.4.7)
Aula 9, 10 e 11 .
Regi˜oes de Estabilidade
.
Butcher, Iserles
Cap´ıtulo 8:
48. Se¸c˜ao 8.1: Equa¸c˜oes “Stiff” 44
Dom´ınio de Estabilidade
8.1. Equa¸c˜oes “Stiff”
A defini¸c˜ao n˜ao ´e exatamente clara:
Uma equa¸c˜ao diferencial ´e “stiff” se alguns m´etodos num´ericos s˜ao numerica-
mente inst´aveis, a menos que o passo seja extremamente pequeno.
Considere a EDO linear
u′
= Au, u(0) = u0, A =
−100 1
0 −1/10
(8.1.1)
com a decomposi¸c˜ao A = V ΛV −1
onde
V =
1 1
0 999/10
, Λ =
−100 0
0 −1/10
(8.1.2)
A solu¸c˜ao exata ´e
u(t) = eAt
u0 = V eΛt
V −1
u0, eΛt
=
e−100t
0
0 e−0.1t (8.1.3)
Ou seja, existem vetores x1 e x2 dependentes de u0 (exerc´ıcio 8.1) tal que
u(t) = e−100t
x1 + e−0.1t
x2, t ≥ 0 (8.1.4)
Note que a medida que t avan¸ca o termo e−100t
cai rapidamente enquanto que e−0.1t
´e um pouco mais lento levando a u(t) ≈ e−0.1t
x2.
Aplicando o m´etodo de Euler obtemos solu¸c˜ao aproximada
u1 = u0 + hAu0 = (I + hA)u0, (8.1.5)
u2 = (I + hA)u1 = (I + hA)2
u0, (8.1.6)
... =
... (8.1.7)
un = (I + hA)n
u0 (8.1.8)
un = V (I + hΛ)n
V −1
u0 (8.1.9)
un = V
(1 − 100h)n
0
0 (1 − 0.1h)n V −1
u0 (8.1.10)
de onde segue que a solu¸c˜ao aproximada ´e dada por
un = (1 − 100h)n
x1 + (1 − 0.1h)n
x2 (8.1.11)
onde x1 e x2 s˜ao os mesmos vetores que aparecem na solu¸c˜ao exata.
Suponha que h > 1/50. Ent˜ao |1 − 100h| > 1 e a solu¸c˜ao aproximada cresce
geometricamente (diferente da solu¸c˜ao exata).
Suponha que escolhemos a condi¸c˜ao inicial igual ao autovetor
u0 =
1
999/10
correspondente a λ2 = −0.1. Ent˜ao x1 = 0, x2 = u0 e
un = (1 − 0.1h)n
u0, n = 1, 2, . . . (8.1.12)
49. Se¸c˜ao 8.1: Equa¸c˜oes “Stiff” 45
que converge para 0 quando n → ∞ e h < 20.
Suponha que utilizamos h = 1. O m´etodo deveria convergir (pois h < 20)
entretanto pequenos erros de arredondamento cometidos pela m´aquina a cada itera¸c˜ao
s˜ao amplificados pelo termo (1 − 100h)n
que rapidamente destr´oi a solu¸c˜ao.
Exemplo 24.
Resolva o sistema (8.1.1) utilizando o m´etodo de Euler no Matlab e verifique as ob-
serva¸c˜oes.
Nem todo m´etodo num´erico possui tal comportamento. Considere a regra tra-
pezoidal aplicada1
em u′
= Au,
I −
1
2
hA u1 = I +
1
2
hA u0 (8.1.13)
u1 =
I + 1
2 hA
I − 1
2 hA
u0 (8.1.14)
u2 =
I + 1
2 hA
I − 1
2 hA
u1 =
I + 1
2 hA
I − 1
2 hA
2
u0 (8.1.15)
... =
... (8.1.16)
un =
I + 1
2 hA
I − 1
2 hA
n
u0 (8.1.17)
e substituindo a fatora¸c˜ao deduzimos
un =
1 − 50h
1 + 50h
n
x1 +
1 − h/20
1 + h/20
n
x2 (8.1.18)
Como
1 − 50h
1 + 50h
< 1 e
1 − h/20
1 + h/20
< 1 (8.1.19)
para todo h > 0, conclu´ımos que un → 0 quando n → ∞. Isto recupera o correto
comportamento assint´otico da EDO sem depender da escolha de h.
A regra trapezoidal n˜ao requer restri¸c˜ao no passo h para evitar instabilidade
(ainda assim ´e necess´ario escolher h > 0 pequeno tal que o erro local seja razo´avel).
Assim a equa¸c˜ao (8.1.1) ´e um exemplo de uma equa¸c˜ao “stiff”. Note que esta
defini¸c˜ao n˜ao ´e precisa e varia na literatura.
Defini¸c˜ao 8.1.1. A raz˜ao |λ1|
|λn| entre o maior e menor autovalor (em m´odulo)
do sistema de EDOs (ou dos autovalores da matriz Jacobiana de um sistema
geral) ´e chamada stiffness ratio.
No exemplo discutido a stiffness ratio ´e |−100|
|1/10| = 103
. Note que para o caso n˜ao
linear a an´alise pode se tornar complicada.
1(exerc´ıcio 8.2)
50. Se¸c˜ao 8.2: Dom´ınio de Estabilidade Linear 46
Exerc´ıcio 8.1. Encontre os vetores x1 e x2 dependentes de u0 e independentes de t
discutidos no texto.
Exerc´ıcio 8.2. No exemplo do m´etodo do trap´ezio obtemos a express˜ao
I + B
I − B
n
(8.1.20)
a. Verifique que tal express˜ao faz sentido somente se (I +B) e (I −B)−1
comutam.
b. Prove que (I + B) e (I − B)−1
comutam.
8.2. Dom´ınio de Estabilidade Linear
Suponha que um m´etodo num´erico seja aplicado em
u′
= λu, t ≥ 0, u(0) = 1, (8.2.1)
onde λ ∈ C que possui solu¸c˜ao exata u(t) = eλt
. Note que limt→0 u(t) = 0 se e
somente se ℜλ < 0. N˜ao estamos interessados no momento em solu¸c˜oes que crescem
rapidamente (ℜλ > 0).
Defini¸c˜ao 8.2.1. O dom´ınio de estabilidade linear D do m´etodo num´erico
´e o conjunto de todos hλ ∈ C tal que limn→∞ un = 0.
Ou seja, D ´e o conjunto de todos hλ para o qual o correto comportamento
assint´otico de (8.2.1) ´e recuperado, tal que essa equa¸c˜ao seja est´avel.
Exemplo 25.
Utilizando o M´etodo de Euler para solucionar (8.2.1) obtemos
un = (1 + hλ)n
, n = 0, 1, . . . (8.2.2)
Portanto limn→∞ un = 0 se e somente se |1 + hλ| < 1. Conclu´ımos ent˜ao que
DEuler = {z ∈ C : |1 + z| < 1} (8.2.3)
´e o interior de um disco no plano complexo de raio 1 e centro em z = −1 como na
Fig.8.1.
Caso tenhamos um sistema de EDO’s,
u′
= Au, u(0) = u0, (8.2.4)
podemos obter que
un =
d
k=1
(1 + hλk)n
xk, n = 0, 1, . . . (8.2.5)
onde A = V ΛV −1
, V ´e a matriz dos autovetores e Λ = diag(λ1, . . . , λd).
Defini¸c˜ao 8.2.2. O sistema de EDO’s (8.2.4) ´e assintoticamente est´avel
se e somente se ℜλk < 0, k = 1, . . . , d.
51. Se¸c˜ao 8.2: Dom´ınio de Estabilidade Linear 47
−3 −2 −1 0 1
−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
Figura 8.1: Regi˜ao de estabilidade para o m´etodo de Euler, |1 + z| < 1
Para que o m´etodo de Euler seja est´avel, ´e necess´ario que h seja escolhido tal
que |1 + hλk| < 1, ∀k. Ou seja, todos os produtos hλk devem estar em DEuler. Ou
seja, h deve ser escolhido de acordo com os autovalores do sistema2
.
Tal an´alise pode ser facilmente estendida para o sistema n˜ao homogˆeneo u′
=
Au + b (veja exerc´ıcios).
Para o caso EDO n˜ao-linear, seja
u′
= f(t, u), t ≥ t0, u(t0) = u0 (8.2.6)
´e comum requerer que no passo n
hλn,1, hλn,2, . . . , hλn,d ∈ D (8.2.7)
onde λn,k s˜ao os autovalores da matriz Jacobiana
Jn :=
∂f(tn, un)
∂u
,
baseado na hip´otese que o comportamento local da EDO ´e modelado por
u′
= un + Jn(u − un) (8.2.8)
Esta pr´atica n˜ao ´e exata e fornece apenas uma id´eia local do comportamento da EDO
(podendo levar a conclus˜oes errˆoneas).
Exemplo 26.
2Note que estamos assumindo que existe a decomposi¸c˜ao em autovalores. Poder´ıamos usar a
forma de Jordan o que dificultaria a demonstra¸c˜ao.
52. Se¸c˜ao 8.3: Estabilidade dos m´etodos de Taylor 48
Utilizando o m´etodo trapezoidal para solucionar (8.2.1) obtemos
un =
1 + hλ/2
1 − hλ/2
n
, n = 0, 1, . . . (8.2.9)
Conclu´ımos ent˜ao que
DT r = {z ∈ C :
1 + z/2
1 − z/2
< 1} (8.2.10)
Note que DT r = C−
, o semiplano negativo. Portanto o m´etodo do trap´ezio imita a
estabilidade assint´otica da EDO linear sem restri¸c˜ao no passo h.
Defini¸c˜ao 8.2.3. Um m´etodo num´erico ´e chamado A-est´avel se
{z ∈ C : ℜz < 0} ⊆ D
Exemplo 27.
A regra do trap´ezio ´e A-est´avel (incondicionalmente est´avel) e o m´etodo de Euler ´e
est´avel somente para |1 + hλ| < 1.
Exerc´ıcio 8.3. Mostre que o m´etodo theta ´e A-est´avel se e somente se 0 ≤ θ ≤ 1
2 .
8.3. Estabilidade dos m´etodos de Taylor
Exerc´ıcio 8.4. Prove que para um m´etodo de Taylor de ordem p para a EDO (8.2.1)
temos
p(z) = 1 + z +
z2
2!
+
z3
3!
+ . . . +
zp
p!
(8.3.1)
onde un = (p(z))n
u0 e a regi˜ao de estabilidade ´e dada por
DT = {z ∈ C : |p(z)| < 1} (8.3.2)
Plote as regi˜oes de estabilidade para o m´etodo de Taylor para p = 1, . . . , 6 no
mesmo gr´afico.
8.4. Estabilidade dos m´etodos de Runge-Kutta
Denote
U :=
U1
...
Uν
, 1 :=
1
...
1
(8.4.1)
53. Se¸c˜ao 8.4: Estabilidade dos m´etodos de Runge-Kutta 49
−4 −3 −2 −1 0 1 2 3 4
−4
−3
−2
−1
0
1
2
3
4
Figura 8.2: Regi˜ao de estabilidade paras os m´etodos de Taylor de ordem 1, . . . , 4
(interior as curvas). A curva mais interna ´e para p = 1
Aplicando o m´etodo de Runge-Kutta (7.3.1) na EDO linear (8.2.1) obtemos
Uj = un + h
ν
i=1
ajiFi, j = 1, . . . , ν (8.4.2)
Uj = un + hλ
ν
i=1
ajiUi, (8.4.3)
U = 1un + hλAU, (8.4.4)
(I − hλA)U = 1un, (8.4.5)
U = (I − hλA)−1
1un, (8.4.6)
e assumindo que I − hλA n˜ao ´e singular,
un+1 = un + hλ
ν
j=1
bjUj (8.4.7)
un+1 = (1 + hλbT
(I − hλA)−1
1)un, n = 0, 1, . . . (8.4.8)
Denote por Pα o conjunto de todos polinˆomios at´e grau α e por Pα/β o conjunto
de todas fun¸c˜oes racionais p/q onde p ∈ Pα e q ∈ Pβ.
Lema 8.4.1. Para todo m´etodo de Runge-Kutta (7.3.1) existe r ∈ Pν/ν tal que
un = [r(hλ)]n
, n = 0, 1, . . . .
Al´em disso, se o m´etodo de Runge-Kutta ´e expl´ıcito ent˜ao r ∈ Pν
54. Se¸c˜ao 8.4: Estabilidade dos m´etodos de Runge-Kutta 50
Demonstra¸c˜ao. Veja prova em [5], p. 60.
Lema 8.4.2. Suponha que um m´etodo num´erico aplicado a (8.2.1) produz uma
seq¨uˆencia un = [r(hλ)]n
, n = 0, 1, . . . onde r ´e uma fun¸c˜ao arbitr´aria. Ent˜ao
D = {z ∈ C : |r(z)| < 1}.
Demonstra¸c˜ao. A prova segue direto da defini¸c˜ao de D.
Corol´ario 1. Nenhum m´etodo de Runge-Kutta expl´ıcito (ERK) pode ser A-est´avel.
Demonstra¸c˜ao. Dado um m´etodo ERK, o lema 8.4.2 fornece que r ∈ Pν e
r(z) := 1 + zbT
(I − zA)−1
1 (8.4.9)
o que implica que r(0) = 1. Nenhum polinˆomio, com exce¸c˜ao r(z) ≡ c ∈ (−1, 1)
pode ser limitado por 1 no semiplano negativo ℜz < 0, o que exclui A-estabilidade.
Exemplo 28.
Considere o m´etodo IRK com tabela
0 1
4 −1
4
2
3
1
4
5
12
1
4
3
4
Substituindo em (8.4.9) obtemos a fun¸c˜ao
r(z) =
1 + 1
3 z
1 − 2
3 z + 1
6 z2
(8.4.10)
Para checar A-estabilidade, representamos z = ρeiθ
, ρ > 0, 1
2 π < θ < 3
2 π e checamos
se |r(ρeiθ
) < 1|:
1 + 1
3 z
1 − 2
3 z + 1
6 z2
< 1 (8.4.11)
1 +
1
3
z < 1 −
2
3
z +
1
6
z2
(8.4.12)
1 +
1
3
ρeiθ
2
< 1 −
2
3
ρeiθ
+
1
6
ρ2
e2iθ
2
(8.4.13)
55. Se¸c˜ao 8.4: Estabilidade dos m´etodos de Runge-Kutta 51
como |w|2
= w ¯w,
1 +
2
3
ρ cos θ +
ρ2
9
<1 −
4
3
ρ cos θ + ρ2
(
cos 2θ
3
+
4
9
) −
2
9
ρ3
cos θ +
ρ4
36
(8.4.14)
6
3
ρ cos θ +
2
9
ρ3
cos θ < ρ2
(
1
3
cos 2θ +
3
9
) +
1
36
ρ4
(8.4.15)
2ρ cosθ +
2
9
ρ3
cos θ <
ρ2
3
(cos 2θ + 1) +
ρ4
36
(8.4.16)
2ρ cosθ(1 +
1
9
ρ2
) <
2ρ2
3
cos2
θ +
ρ4
36
(8.4.17)
2ρ cos θ(9 + ρ2
) < 6ρ2
cos2
θ +
ρ4
4
(8.4.18)
A inequa¸c˜ao ´e verdadeira para z ∈ C−
, pois temos
1
2
π < θ <
3
2
π ⇒ cos θ < 0
e os outros termos s˜ao positivos.
O que demonstra que o m´etodo ´e A-est´avel.
Exemplo 29.
O m´etodo IRK com tabela
1
3
5
12 − 1
12
1 3
4
1
4
3
4
1
4
possui a mesma fun¸c˜ao
r(z) =
1 + 1
3 z
1 − 2
3 z + 1
6 z2
(8.4.19)
que o m´etodo anterior, portanto tamb´em ´e A-est´avel. Sua regi˜ao de estabilidade ´e
exterior a curva da figura 8.3.
Lema 8.4.3. Seja r uma fun¸c˜ao racional que n˜ao ´e constante. Ent˜ao ∀z ∈ C−
temos |r(z)| < 1 se e somente se todos os p´olos de r tem parte real positiva e ∀t ∈ R
temos |r(it)| ≤ 1.
Exemplo 30.
Os p´olos de
r(z) =
1 + 1
3 z
1 − 2
3 z + 1
6 z2
(8.4.20)
s˜ao 2±i
√
2; que est˜ao no semiplano complexo com parte real positiva. Al´em disso,
|r(it)| ≤ 1, ∀t ∈ R pois
1 +
1
3
it
2
≤ 1 −
2
3
it −
1
6
t2
2
, t ∈ R, (8.4.21)
1 +
1
9
t2
≤ 1 +
1
9
t2
+
1
36
t4
, t ∈ R. (8.4.22)
56. Se¸c˜ao 8.4: Estabilidade dos m´etodos de Runge-Kutta 52
−6 −4 −2 0 2 4 6
−6
−4
−2
0
2
4
6
Figura 8.3: Regi˜ao de estabilidade (exterior a curva) para o m´etodo IRK com
polinˆomio r(z) =
1+ 1
3 z
1− 2
3 z+ 1
6 z2
implicando que o m´etodo ´e A-est´avel.
Exerc´ıcio 8.5. Prove o lema anterior.
Exerc´ıcio 8.6. Prove que para um m´etodo Runge-Kutta expl´ıcito de ν est´agios possui
r(z) = 1 + z +
z2
2!
+
z3
3!
+ . . . +
zp
p!
(8.4.23)
onde a regi˜ao de estabilidade ´e dada por
DT = {z ∈ C : |r(z)| < 1} (8.4.24)
Plote as regi˜oes de estabilidade para os m´etodos de Runge-Kutta para ν =
1, . . . , 6 no mesmo gr´afico.
Exerc´ıcio 8.7. Calcule explicitamente a fun¸c˜ao r(z) para os m´etodos de Runge-Kutta
dados pelas tabelas abaixo,
a.
0 0 0
2
3
1
3
1
3
1
4
3
4
b.
1
6
1
6 0
5
6
2
3
1
6
1
2
1
2
57. Se¸c˜ao 8.5: Estabilidade dos m´etodos de passo m´ultiplo 53
c.
0 0 0 0
1
2
1
4
1
4 0
1 0 1 0
1
6
4
6
1
6
Estes m´etodos s˜ao A-est´aveis? Plote a regi˜ao de estabilidade de cada m´etodo.
8.5. Estabilidade dos m´etodos de passo m´ultiplo
Suponha que um m´etodo de passo m´ultiplo (6.2.1) seja aplicado a EDO linear (8.2.1)
obtendo
s
m=0
amun+m = h
s
m=0
bmfn+m (8.5.1)
s
m=0
amun+m = hλ
s
m=0
bmun+m (8.5.2)
que pode ser escrita como
s
m=0
(am − hλbm)un+m = 0, (8.5.3)
s
m=0
αmun+m = 0, n = 0, 1, . . . (8.5.4)
Similarmente a equa¸c˜oes diferenciais, a equa¸c˜ao `a diferen¸cas possui solu¸c˜ao como o
polinˆomio caracter´ıstico
η(w) :=
s
m=0
αmwn
. (8.5.5)
Sejam w1, . . . , wq as ra´ızes de η(w) com multiplicidade k1, . . . , kq, onde ki = s. A
solu¸c˜ao da equa¸c˜ao a diferen¸cas ´e
un =
q
i=1
(
ki−1
j=0
cijnj
)wn
i , n = 0, 1, . . . (8.5.6)
onde as constantes cij s˜ao unicamente determinadas pelos valores iniciais u0, . . . , us−1.
Lema 8.5.1. Suponha que as ra´ızes (em fun¸c˜ao de w) de
η(z, w) :=
s
m=0
(am − bmz)wm
, z ∈ C (8.5.7)
s˜ao w1(z), . . . , wq(z)(z) com multiplicidade k1(z), . . . , kq(z)(z) respectivamente. O
m´etodo de passo m´ultiplo ´e A-est´avel se e somente se
|wi(z)| < 1, i = 1, . . . , q(z), ∀z ∈ C−
. (8.5.8)
58. Se¸c˜ao 8.5: Estabilidade dos m´etodos de passo m´ultiplo 54
Lema 8.5.2. O m´etodo de passo m´ultiplo ´e A-est´avel se e somente se bs > 0 e
|w1(it)|, . . . , |wq(it)(it)| ≤ 1, t ∈ R (8.5.9)
onde wk s˜ao as ra´ızes de η(z, ·) do lema 8.5.1.
Teorema 8.5.3. O m´etodo BDF de 2 est´agios ´e A-est´avel.
Teorema 8.5.4 (A segunda barreira de Dahlquist). A ordem m´axima de um m´etodo
de passo m´ultiplo A-est´avel ´e dois.
Exemplo 31.
O m´etodo BDF de 2 est´agios
un+2 −
4
3
un+1 +
1
3
un =
2
3
hfn+2 (8.5.10)
para o PVI u′
= λu, que possui polinˆomio caracter´ıstico
w2
−
4
3
w +
1
3
=
2
3
hλ(w2
) (8.5.11)
ou
η(w) := (1 − z
2
3
)w2
−
4
3
w +
1
3
. (8.5.12)
O polinˆomio η(w) possui duas ra´ızes (encontradas com o Maple)
w1 =
−4 + 2(1 + 2z)1/2
−6 + 4z
, (8.5.13)
w2 =
−4 − 2(1 + 2z)1/2
−6 + 4z
(8.5.14)
Para que o m´etodo seja est´avel, ´e necess´ario que |w1| < 1 e |w2| < 1.
Tal condi¸c˜ao ´e satisfeita para a regi˜ao dentro da curva na figura 8.4.
Exemplo 32.
Plote a regi˜ao de estabilidade do m´etodo de BDF de ordem 2 e 3.
Exemplo 33.
Plote a regi˜ao de estabilidade do m´etodo de Adams-Bashforth de ordem 2 e 3.
Exemplo 34.
Plote a regi˜ao de estabilidade do m´etodo de Adams-Moulton de ordem 2 e 3.
Aula 12-15 .
Equa¸c˜oes Diferenciais Parciais Hiperb´olicas
.
Strikwerda: Cap. 1
59. 55
y~
1
2
0
-2
-1
x~
4320 1
Figura 8.4: Regi˜ao de estabilidade (exterior a curva) para o m´etodo BDF s = 2
Cap´ıtulo 9:
Equa¸c˜oes Diferenciais Parciais hiperb´olicas
9.1. Equa¸c˜ao da onda unidirecional
Considere a equa¸c˜ao da onda unidirecional (ou equa¸c˜ao de advec¸c˜ao)
ut + aux = 0 (9.1.1)
u(t = 0, x) = u0(x) (9.1.2)
como exemplo mais simples de EDP hiperb´olica. Este ´e um Problema de Valor Inicial-
PVI.
A solu¸c˜ao desta equa¸c˜ao ´e
u(t, x) = u0(x − at) (9.1.3)
A solu¸c˜ao tem a mesma forma ∀t. ´E um deslocamento a direita se a > 0 ou a esquerda
se a < 0.
As linhas no plano (x, t) no qual ξ = x − at ´e constante s˜ao chamadas carac-
ter´ısticas.
O parˆametro a ´e a velocidade de propaga¸c˜ao da onda ao longo da caracter´ıstica.
Apesar da equa¸c˜ao fazer sentido somente se u ´e diferenci´avel, u0 n˜ao precisa ser
diferenci´avel. Em geral, solu¸c˜oes descont´ınuas s˜ao permitidas.
60. Se¸c˜ao 9.2: Sistemas de EDP’s hiperb´olicas 56
Considere o problema mais geral
ut + aux = −bu + f(t, x) (9.1.4)
u(0, x) = u0(x) (9.1.5)
Fazendo a substitui¸c˜ao t = τ e x = ξ + aτ, e ˜u(τ, ξ) = u(t, x). Assim
˜uτ = ut
∂t
∂τ
+ ux
∂x
∂τ
(9.1.6)
= ut + uxa (9.1.7)
= −b˜u + f(τ, ξ + aτ) (9.1.8)
ou seja,
˜uτ = −b˜u + f(τ, ξ + aτ) (9.1.9)
Esta EDO possui solu¸c˜ao
˜u(τ, ξ) = u0(ξ)e−bτ
+
τ
0
f(σ, ξ + aτ)e−b(τ−σ)
dσ (9.1.10)
que retornando para (x, t) temos
u(t, x) = u0(x − at)e−bt
+
t
0
f(s, x − a(t − s))e−b(t−s)
ds (9.1.11)
A solu¸c˜ao depende somente em (t′
, x′
) tal que x′
−at′
= x−at, i.e., somente os valores
de u e f na caracter´ıstica (t, x) para 0 ≤ t′
≤ t.
9.2. Sistemas de EDP’s hiperb´olicas
Um sistema da forma
ut + Aux + Bu = F(t, x) (9.2.1)
´e hiperb´olico se a matriz A ´e diagonaliz´avel com autovalores reais.
Diagonaliz´avel implica que
Λ = PAP−1
=
λ1
...
λd
(9.2.2)
Fazendo a substitui¸c˜ao w = Pu (no caso que B = 0),
wt + Λwx = PF(t, x) = ˜F(t, x) (9.2.3)
ou
wi
t + λiwi
x = fi
(t, x) (9.2.4)
reduzindo o sistema a um conjunto de equa¸c˜oes independentes. Se B = 0 ent˜ao o
sistema ´e acoplado, mas somente para os termos sem derivadas.
O termo Bu causa crescimento, decaimento ou oscila¸c˜oes, mas n˜ao causa mu-
dan¸cas na forma com que a solu¸c˜ao se move ao longo das caracter´ısticas.
61. Se¸c˜ao 9.2: Sistemas de EDP’s hiperb´olicas 57
Exemplo 35.
O sistema
u
v t
+
2 1
1 2
u
v x
= 0 (9.2.5)
com dado inicial
u(x, 0) = u0(x) =
1, |x| ≤ 1
0, |x| > 1
(9.2.6)
v(x, 0) = 0 (9.2.7)
Somando e subtraindo as equa¸c˜oes obtemos
(u + v)t + 3(u + v)x = 0 (9.2.8)
(u − v)t + (u − v)x = 0 (9.2.9)
ou
w1
t + 3w1
x = 0, w1
(0, x) = u0(x) (9.2.10)
w2
t + w2
x = 0, w2
(0, x) = u0(x) (9.2.11)
onde a matriz para essa transforma¸c˜ao ´e
P =
1 1
1 −1
, P−1
=
1
2
1
2
1
2 −1
2
. (9.2.12)
A solu¸c˜ao ´e
w1
(t, x) = w1
0(x − 3t) = u0(x − 3t) (9.2.13)
w2
(t, x) = w2
0(x − t) = u0(x − t) (9.2.14)
ou nas vari´aveis u e v,
u(t, x) =
1
2
(w1
+ w2
) =
1
2
[u0(x − 3t) + u0(x − t)] (9.2.15)
v(t, x) =
1
2
(w1
− w2
) =
1
2
[u0(x − 3t) − u0(x − t)] (9.2.16)
Note que a solu¸c˜ao depende de duas partes independentes, uma onda propagando-
se com velocidade 3 e outra com velocidade 1.
Observa¸c˜ao: Caso a equa¸c˜ao
ut + a(t, x)ux = 0 (9.2.17)
tenha velocidade de propaga¸c˜ao a(t, x) vari´avel ou seja um sistema do tipo
ut + A(t, x)ux + B(t, x)u = F(t, x) (9.2.18)
as caracter´ısticas n˜ao s˜ao necessariamente linhas retas.
Para um exemplo online do m´etodo das caracter´ısticas veja
http://www.scottsarra.org/shock/shockApplet.html
62. Se¸c˜ao 9.3: Condi¸c˜oes de contorno 58
Exerc´ıcio 9.1. Mostre que o PVI
ut + (1 + x2
)ux = 0 (9.2.19)
n˜ao ´e bem definido. (Considere a regi˜ao originando no eixo x.)
Exerc´ıcio 9.2. Obtenha a solu¸c˜ao do sistema
ut + ux + vx = 0, u(x, 0) = u0(x) (9.2.20)
vt + ux − vx = 0, v(x, 0) = v0(x) (9.2.21)
9.3. Condi¸c˜oes de contorno
Considere a equa¸c˜ao (veja a figura 9.1)
ut + aux = 0, 0 ≤ x ≤ 1, t > 0 (9.3.1)
0
x
t
Figura 9.1: Curvas caracter´ısticas para a > 0.
Se a > 0 as caracter´ısticas se propagam para a direita. Vemos que a solu¸c˜ao
deve ser especificada no contorno x = 0. Al´em disso, nenhuma condi¸c˜ao de contorno
deve ser dada em x = 1.
Para a condi¸c˜ao inicial u(0, x) = u0(x) e condi¸c˜ao de contorno u(t, 0) = g(t) a
solu¸c˜ao ´e dada por
u(t, x) =
u0(x − at), x − at > 0
g(t − x/a), x − at < 0
(9.3.2)
Em x − at = 0 haver´a uma descontinuidade se u0(0) = g(0). Se a < 0 o papel dos
contornos ´e trocado.
Exemplo 36.
Considere o sistema
u
v t
+
a b
b a
u
v x
= 0 (9.3.3)
em 0 ≤ x ≤ 1. Os autovalores s˜ao a + b e a − b. Consideremos o caso onde a, b > 0.
63. Se¸c˜ao 9.3: Condi¸c˜oes de contorno 59
0
x
t
0
x
t
Figura 9.2: Curvas caracter´ısticas para 0 < b < a e 0 < a < b.
Se 0 < b < a ent˜ao ambas as caracter´ısticas se propagam para a direita (veja
a figura 9.2). Isto significa que u e v devem ser especificadas em x = 0. Note que a
declividade da curva caracter´ıstica ´e a inversa da velocidade.
Se 0 < a < b, ent˜ao as caracter´ısticas se movem em dire¸c˜ao opostas (j´a que a
λ2 = a − b < 0).
Transformando o sistema encontramos
(u + v)t + (a + b)(u + v)x = 0 (9.3.4)
(u − v)t + (a − b)(u − v)x = 0 (9.3.5)
Assim devemos especificar a condi¸c˜ao de contorno u + v em x = 0 (pois move-se para
a direita) e u − v em x = 1. De forma geral, as condi¸c˜oes de contorno devem ser da
forma
u + v = α0(u − v) + β0(t), x = 0 (9.3.6)
u − v = α1(u + v) + β1(t), x = 1 (9.3.7)
para o problema ter uma ´unica solu¸c˜ao (dito um problema bem-posto). Note que tal
condi¸c˜ao de contorno especifica a caracter´ıstica incoming em termos da caracter´ıstica
outgoing.
Note que:
• especificar u ou v em x = 0 e especificar u ou v em x = 1 torna o sistema
bem-posto;
• especificar u − v em x = 0 torna o sistema mal-posto;
• especificar u + v em x = 1 torna o sistema mal-posto;
• o n´umero de condi¸c˜oes de contorno ´e igual ao n´umero de caracter´ısticas incoming.
• Problemas peri´odicos
Podemos tamb´em fornecer condi¸c˜oes de contorno peri´odicas como
u(t, 0) = u(t, 1) (9.3.8)
que na verdade n˜ao ´e uma condi¸c˜ao de contorno, j´a que num problema peri´odico n˜ao
h´a contornos.
64. Se¸c˜ao 9.4: Diferen¸cas finitas 60
Exerc´ıcio 9.3. Considere o problema (9.3.3) com a = 0 e b = 1, e condi¸c˜oes de
contorno
u(t, 0) = 0 v(t, 1) = 1 (9.3.9)
Mostre que se a condi¸c˜ao inicial ´e
u(0, x) = x v(0, x) = 1 (9.3.10)
ent˜ao a solu¸c˜ao ´e u(t, x) = x e v(t, x) = 1 − t, para t ≥ 0, 0 ≤ x ≤ 1.
Exerc´ıcio 9.4. Considere o problema (9.3.3) com a = 0 e b = 1, e condi¸c˜oes de
contorno
u(t, 0) = 0 v(t, 1) = 1 + t (9.3.11)
Mostre que se a condi¸c˜ao inicial ´e
u(0, x) = x v(0, x) = 1 (9.3.12)
ent˜ao para 0 ≤ x + t ≤ 3 a solu¸c˜ao ´e
u
v
=
x
1 − t
, 0 ≤ t < 1 − x,
2x + t − 1
2 − x − 2t
, 1 − x ≤ t < 1 + x,
3x
3 − 3t
, 1 + x ≤ t < 3 − x.
(9.3.13)
9.4. Diferen¸cas finitas
Defini¸c˜ao 9.4.1. Sejam 0 < h, k ≪ 1, uma malha ou grid ser´a os pontos
(tn, xi) = (nk, ih) para arbitr´arios n, i inteiros.
Denotamos
vn
i ≡ v(tn, xi) (9.4.1)
o valor de v no ponto (tn, xi).
A id´eia b´asica do m´etodo de diferen¸cas finitas ´e substituir as derivadas por dife-
ren¸cas finitas. Por exemplo, a derivada forward ´e
∂u
∂t
(nk, ih) ≈
u((n + 1)k, ih) − u(nk, ih)
k
(9.4.2)
e a derivada central ´e
∂u
∂t
(nk, ih) ≈
u((n + 1)k, ih) − u((n − 1)k, ih)
2k
(9.4.3)
Considerando a equa¸c˜ao de advec¸c˜ao
ut + aux = 0 (9.4.4)
podemos obter os seguintes esquemas/m´etodos
65. Se¸c˜ao 9.4: Diferen¸cas finitas 61
Forward-Time Forward-Space (FTFS)
vn+1
i − vn
i
k
+ a
vn
i+1 − vn
i
h
= 0 (9.4.5)
Forward-Time Backward-Space (FTBS)
vn+1
i − vn
i
k
+ a
vn
i − vn
i−1
h
= 0 (9.4.6)
Forward-Time Central-Space (FTCS)
vn+1
i − vn
i
k
+ a
vn
i+1 − vn
i−1
2h
= 0 (9.4.7)
Leapfrog
vn+1
i − vn−1
i
2k
+ a
vn
i+1 − vn
i−1
2h
= 0 (9.4.8)
Lax-Friedrichs
vn+1
i − 1
2 (vn
i+1 + vn
i−1)
k
+ a
vn
i+1 − vn
i−1
2h
= 0 (9.4.9)
Qual desses esquemas funciona? Qual ´e mais preciso? Qual ´e mais eficiente?
Cada um deles pode ser reescrito isolando vn+1
i . O primeiro se torna
vn+1
i = vn
i − a
k
h
(vn
i+1 − vn
i ) (9.4.10)
onde λ = k/h. Note que ´e um esquema de passo simples. Conhecidos v0
i ´e poss´ıvel
determinar vn
i para todo n.
Entretanto para usar o esquema Leapfrog (9.4.8) (que ´e de passo m´ultiplo), ´e
necess´ario fornecer os valores de v0
i e v1
i , e usar o esquema para n ≥ 2.
9.4.1. C´odigos
Para utilizar o esquema com diferen¸cas pra frente no tempo e no espa¸co (9.4.5) n˜ao
precisamos armazenar a solu¸c˜ao para todos os valores de tempo n, apenas os mais
recentes. A id´eia ´e usar um vetor v(i) para armazenar a solu¸c˜ao no tempo n, vn
i , e
um vetor vnew(i) para o tempo n + 1, vn+1
i .
Os valores de vnew s˜ao calculados a partir do tempo anterior v. Depois que vnew
est´a calculado, os valores de v s˜ao atualizados com esses valores e o passo de tempo ´e
incrementado.
66. Se¸c˜ao 9.4: Diferen¸cas finitas 62
Note no c´odigo que temos N intervalos iguais e N+1 pontos de x1 at´e xN+1.
function [v]=adveccao(N,Tfinal)
L = 1; % extremo direito
a = 1; % velocidade
h = L/N; % passo
k = 0.8*h; % passo de tempo
x = linspace(0,L,N+1); % dominio
v = exp(-8*(x-0.5).^2) % cond. inicial
ItTotal = Tfinal/k;
for n=1:ItTotal
for i=2:N;
vnew(i)=v(i) +a*k*(v(i+1)-v(i))/h;
end
vnew(1 ) = 0; % cond.contorno
vnew(N+1) = 0; % cond.contorno
v = vnew;
end
plot(x,v,’r*-’);xlabel(’x’);ylabel(’v’);
title(’Solucao em t=2’)
Exemplo 37.
Compute a solu¸c˜ao de ut + ux = 0 para −3 ≤ x ≤ 3 e t ≥ 0 com condi¸c˜oes
u0(x) =
1 − |x|, |x| ≤ 1
0, c.c.
(9.4.11)
u(x, −3) = 0 (9.4.12)
usando h = 0.1 e λ = 0.8 usando o m´etodo (9.4.5)
vn+1
i − vn
i
k
+ a
vn
i+1 − vn
i
h
= 0. (9.4.13)
Plote a solu¸c˜ao aproximada para o tempo t = 1.6 juntamente com a solu¸c˜ao
exata.
Repita o c´alculo com h = 0.05 e λ = 0.8.
Repita o c´alculo com h = 0.1 e λ = 1.6.
Talvez reduzindo o valor de h. Repita o c´alculo com h = 0.05 e λ = 1.6.
Exemplo 38.
Repita o exerc´ıcio anterior, por´em utilizando o m´etodo de Lax-Friedrichs,
vn+1
i − 1
2 (vn
i+1 + vn
i−1)
k
+ a
vn
i+1 − vn
i−1
2h
= 0. (9.4.14)
Note que ´e necess´ario fornecer uma condi¸c˜ao extra no extremo direito x = 3, tal como,
vn+1
N = vn+1
N−1.
67. Se¸c˜ao 9.4: Diferen¸cas finitas 63
Exemplo 39.
Repita o exerc´ıcio anterior, por´em utilizando o m´etodo de Leapfrog,
vn+1
i − vn−1
i
2k
+ a
vn
i+1 − vn
i−1
2h
= 0. (9.4.15)
Aqui tamb´em ´e necess´ario fornecer uma condi¸c˜ao extra no extremo direito x = 3, tal
como, vn+1
N = vn+1
N−1. Al´em disso, esse esquema requer que outro esquema seja usado
para calcular a solu¸c˜ao em n = 1 (pode ser necess´ario armazenar trˆes passos de tempo
consecutivos).
Exerc´ıcio 9.5. Para x ∈ [−1, 3] e t ∈ [0, 2.4], resolva
ut + ux = 0 (9.4.16)
u(0, x) =
cos2
(πx), |x| ≤ 1
2
0, c.c.
(9.4.17)
u(t, −1) = 0. (9.4.18)
Use quatro esquemas:
a. (FTBS) com λ = 0.8 e h = 1
10 , 1
20 , 1
40 .
b. (FTCS) com λ = 0.8 e h = 1
10 , 1
20 , 1
40 .
c. (Lax-Friedrichs) com λ = 0.8,λ = 1.6 e h = 1
10 , 1
20 , 1
40 .
d. (Leapfrog) com λ = 0.8 e h = 1
10 , 1
20 , 1
40 .
Para os esquemas (b), (c) e (d) utilize a condi¸c˜ao a direita vn+1
N = vn+1
N−1 em x = 3.
Para o esquema (d) use o esquema (b) para calcular a solu¸c˜ao em n = 1.
Para cada esquema determine se o esquema ´e ´util/in´util (a solu¸c˜ao n˜ao pode
crescer demais). Fa¸ca v´arios gr´aficos. Relate o que acontece ao diminuir h para os
esquemas in´uteis. Existe um padr˜ao? Para os casos ´uteis, como o erro decresce quando
o espa¸camento da malha decresce, i.e, quando h diminui pela metade, como o erro ´e
reduzido?
Exerc´ıcio 9.6. Resolva o sistema
ut +
1
3
(t − 2)ux +
2
3
(t + 1)wx +
1
3
u = 0 (9.4.19)
wt +
1
3
(t + 1)ux +
1
3
(2t − 1)wx −
1
3
w = 0 (9.4.20)
pelo m´etodo de Lax-Friedrichs. Cada equa¸c˜ao ´e aproximada como no caso escalar e
iterada passo a passo. As condi¸c˜oes iniciais s˜ao
u(0, x) = max(0, 1 − |x|) (9.4.21)
w(0, x) = max(0, 1 − 2|x|) (9.4.22)
Considere x ∈ [−3, 3] e t ∈ [0, 2]. Fa¸ca h = 1/20 e λ = 1
2 . Use as condi¸c˜oes de
contorno
unew(1)=0; unew(N)=0;
wnew(1)=wnew(2); wnew(N)=wnew(N-1);
68. Se¸c˜ao 9.5: Convergˆencia e consistˆencia 64
Descreva o comportamento da solu¸c˜ao para t ∈ [1.5, 2]. Fa¸ca alguns gr´aficos.
Exerc´ıcio 9.7. Resolva
ut +
1
3
(t − 2)ux +
2
3
(t + 1)wx = 0 (9.4.23)
wt +
1
3
(t + 1)ux +
1
3
(2t − 1)wx = 0 (9.4.24)
como no exerc´ıcio anterior. Examinando a solu¸c˜ao num´erica obtenha uma solu¸c˜ao
anal´ıtica para o problema.
9.5. Convergˆencia e consistˆencia
Considere EDP’s lineares da forma
P(∂t, ∂x)u = f(t, x) (9.5.1)
de 1.a ordem no tempo. Assuma que dada uma condi¸c˜ao inicial u(0, x) a solu¸c˜ao ´e
unicamente determinada. Veja os exemplos:
ut − buxx + aux = 0 (9.5.2)
ut − cutxx + buxxxx = 0 (9.5.3)
ut + cutx + aux = 0 (9.5.4)
Para um m´etodo num´erico ser ´util ´e necess´ario que sua solu¸c˜ao aproxime a
solu¸c˜ao da EDP e que a aproxima¸c˜ao melhore quando h, k tendem a zero.
Defini¸c˜ao 9.5.1. Um esquema de diferen¸cas finitas de passo simples que apro-
xima uma EDP ´e convergente se para qualquer u(t, x) exata e un
i aproximada,
tal que u0
m converge para u0(x) quando h → 0, ent˜ao un
i converge para u(t, x)
quando h, k convergem para zero.
Para m´etodos de passo m´ultiplo onde ´e necess´ario especificar os primeiros n´ıveis,
a defini¸c˜ao ´e alterada requerendo que uj
i convirja para u0(xj) para 0 ≤ j ≤ J.
Exemplo 40.
Nos exemplos anteriores, os esquemas de Lax-Friedrichs e leapfrog s˜ao convergentes
para λ = 0.8. Quando h, k decrescem, as solu¸c˜oes se tornam melhores. Quando
λ = 1.6 o esquema de Lax-Friedrichs n˜ao ´e convergente.
Defini¸c˜ao 9.5.2. Dada uma EDP Pu = f e um esquema em diferen¸cas finitas
Ph,kv = f, dizemos que o esquema ´e consistente com a EDP se para qualquer
φ(t, x) suave
Pφ − Ph,kφ → 0 quando k, h → 0, (9.5.5)
a convergˆencia sendo pontual em cada ponto da malha.
Pode ser necess´ario restringir a maneira que h e k tendem a zero.
69. Se¸c˜ao 9.5: Convergˆencia e consistˆencia 65
Exemplo 41.
Considere o esquema FTFS com operador de diferen¸cas dado por
Pk,hφ =
φn+1
i − φn
i
k
+ a
φn
i+1 − φn
i
h
(9.5.6)
associado ao operador cont´ınuo
Pφ = φt + aφx. (9.5.7)
onde
φn
i = φ(nk, ih) (9.5.8)
Expandindo em s´erie de Taylor para t e x obtemos,
φn+1
i = φn
i + kφt +
1
2
k2
φtt + O(k3
) (9.5.9)
φn
i+1 = φn
i + hφx +
1
2
h2
φxx + O(h3
) (9.5.10)
onde as derivadas s˜ao calculadas em (tn, xi), e assim
Pk,hφ = φt + aφx +
1
2
kφtt +
1
2
hφxx + O(k2
) + O(h2
) (9.5.11)
levando a
Pφ − Pk,hφ = −
1
2
kφtt −
1
2
hφxx + O(k2
) + O(h2
) (9.5.12)
=→ 0 quando k, h → 0 (9.5.13)
Portanto, o esquema ´e consistente.
Exemplo 42.
Para o esquema de Lax-Friedrichs
Pk,hφ =
φn+1
i − 1
2 (φn
i+1 + φn
i−1)
k
+ a
φn
i+1 − φn
i−1
2h
(9.5.14)
usando a s´erie de Taylor
φn
i+1 = φn
i + hφx +
1
2
h2
φxx +
1
6
h3
φxxx + O(h4
) (9.5.15)
φn
i−1 = φn
i − hφx +
1
2
h2
φxx −
1
6
h3
φxxx + O(h4
) (9.5.16)
onde as derivadas s˜ao calculadas em (tn, xi); obtendo
1
2
(φn
i+1 + φn
i−1) = φn
i +
1
2
h2
φxx + O(h4
) (9.5.17)
e
φn
i+1 − φn
i−1
2h
= φx +
1
6
h2
φxxx + O(h4
) (9.5.18)
70. Se¸c˜ao 9.6: Estabilidade 66
Substituindo no esquema obtemos
Pk,hφ = φt + aφx +
1
2
kφtt −
1
2
k−1
h2
φxx (9.5.19)
+
1
6
ah2
φxxx + O(h4
+ k−1
h4
+ k2
) (9.5.20)
Assim, Pφ − Pk,hφ → 0 quando h, k → 0 e ´e consistente se k−1
h2
→ 0.
Consistˆencia implica que a solu¸c˜ao da EDP, se for suave, ´e uma solu¸c˜ao aproxi-
mada do problema discreto. Similarmente, conergˆencia significa que a solu¸c˜ao discreta
aproxima a solu¸c˜ao da EDP. Consistˆencia ´e uma condi¸c˜ao necess´aria para convergˆencia,
mas um esquema pode ser consistente e n˜ao convergente.
Exemplo 43.
Considere a equa¸c˜ao ut + ux = 0 com o esquema
un+1
i − un
i
k
+ a
un
i+1 − un
i
h
= 0 (9.5.21)
que pode ser reescrito como
un+1
i = un
i −
k
h
(un
i+1 − un
i ) (9.5.22)
= (1 + λ)un
i − λun
i+1 (9.5.23)
onde λ = k/h. Este esquema ´e consistente (exemplo anterior). Considere a condi¸c˜ao
inicial
u0(x) =
1, −1 ≤ x ≤ 0
0, c.c.
(9.5.24)
A solu¸c˜ao ´e uma transla¸c˜ao de u0 da esquerda para a direita, ou seja, a informa¸c˜ao est´a
se movendo nessa dire¸c˜ao. Entretanto o esquema (9.5.23) calcula a solu¸c˜ao em (tn, xi)
utilizando somente informa¸c˜ao de pontos a direita xi e xi+1 em tempos anteriores.
Assim a solu¸c˜ao ser´a vn
i = 0 para i > 0 e n > 0, n˜ao podendo convergir para
u(t, x).
Exerc´ıcio 9.8. Mostre que o esquema FTCS (9.4.7) ´e consistente com ut + ux = 0.
Exerc´ıcio 9.9. Mostre que o esquema leapfrog (9.4.8) ´e consistente com ut +ux = 0.
Exerc´ıcio 9.10. Mostre que o esquema
vn+1
i − vn
i
k
+ c
vn+1
i+1 − vn+1
i−1 − vn
i+1 + vn
i−1
2kh
+ a
vn
i+1 − vn
i−1
2h
= fn
i (9.5.25)
´e consistente com a equa¸c˜ao ut + cutx + aux = f.
9.6. Estabilidade
O ´ultimo exemplo mostra que consistˆencia n˜ao ´e suficiente para garantir convergˆencia.
Considere EDP’s homogˆeneas, f = 0.
71. Se¸c˜ao 9.6: Estabilidade 67
Defini¸c˜ao 9.6.1. A norma L2
na malha ´e definida como
w h := (h
∞
i=−∞
|wi|2
)
1
2 (9.6.1)
Defini¸c˜ao 9.6.2. Um esquema em diferen¸cas finitas Pk,hvn
i = 0 para uma
equa¸c˜ao de 1.a ordem ´e est´avel numa regi˜ao Λ se ∃J inteiro tal que ∀T > 0,
∃CT tal que
vn
h ≤ CT
J
j=0
vj 2
h (9.6.2)
para 0 ≤ nk ≤ T , com (k, h) ∈ Λ.
Isto significa que para ser est´avel a solu¸c˜ao em t ∈ [0, T ] deve permanecer
limitada por CT vezes a norma dos J + 1 dados iniciais (J = 0 para m´etodos de passo
simples e J > 0 para passo m´ultiplo).
Uma regi˜ao de estabilidade Λ ⊂ R2
´e limitada, cont´em a origem e uma sequˆencia
(kν, hν) → (0, 0) quando ν → ∞. Um exemplo comum ´e uma regi˜ao da forma
{(k, h) : 0 < k ≤ ch ≤ C}, para algum c, C > 0.
Exemplo 44.
Mostre que um esquema da forma
un+1
i = αun
i + βun
i+1 (9.6.3)
´e est´avel se |α| + |β| ≤ 1.
Solu¸c˜ao: Calculando a norma de un+1
, temos
∞
i=−∞
|un+1
i |2
=
∞
i=−∞
|αun
i + βun
i+1|2
(9.6.4)
≤
∞
i=−∞
|α|2
|un
i |2
+ 2|α||β||un
i ||un
i+1| + |β|2
|un
i+1|2
(9.6.5)
≤
∞
−∞
α|2
|un
i |2
+ |α||β|(|un
i |2
+ |un
i+1|2
) + |β|2
|un
i+1|2
(9.6.6)
=
∞
−∞
(|α|2
+ 2|α||β| + |β|2
)|un
i |2
(9.6.7)
=(|α| + |β|)2
∞
i=−∞
|un
i |2
(9.6.8)
onde usamos 2xy ≤ x2
+ y2
. Assim
un+1
h ≤ (|α| + |β|) un
h (9.6.9)