Você está na página 1de 129

PPGMAP .

METODOS NUMERICOS PARA EQUACOES DIFERENCIAIS


.
Dagoberto Adriano Rizzotto Justo

Tabela de Conteudo
1. Introducao
1.1. Objetivos
1.1.1.Sub-objetivos
1.2. Avaliacao
1.3. Bibliografia
2. Aritmetica no computador
2.1. Processo Iterativo
2.2. Representacao de numeros
2.3. Bits, bytes e palavras
2.4. Representacao de numeros inteiros
2.5. Representacao de numeros reais
2.5.1.Precisao (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.Caracterizacao de uma representacao
2.7. Operacoes em ponto flutuante
2.7.1.Cancelamento catastrofico
2.7.2.A comutatividade nao e valida
2.7.3.A distributividade nao e valida
3. Aproximacoes
3.1. Aproximacao de ordem p
3.2. Aproximacao em diferencas finitas
3.3. Integracao Numerica, quadratura
3.4. Quadratura Gaussiana
Tabela de Conteudo (cont.) 2

3.5. Ordem de aproximacao


3.5.1.Integracao
4. Equacoes Diferenciais Ordinarias
4.1. Teoria de equacoes diferenciais
4.1.1.Dependencia na condicao inicial
5. Metodo de Euler
5.1. Erro de truncamento
5.1.1.Erro de truncamento Local
5.1.2.Erro de truncamento Global
5.1.3.Convergencia
5.1.4.Paradoxo da ordem
5.2. A regra do trapezio
5.3. O metodo theta
5.4. O metodo de Taylor
6. Metodos de Passo Multiplo
6.1. O metodo de Adams-Bashforth
6.1.1.Codigo
6.2. Ordem e convergencia de metodos de passo multiplo
6.2.1.Convergencia de metodos de passo multiplo
6.2.2.Teorema de equivalencia de Dahlquist
6.2.3.A primeira barreira de Dahlquist
6.3. O metodo de Adams-Moulton
6.4. Metodo BDF
7. Metodos de Runge-Kutta
7.1. Metodo de Runge-Kutta Explcito
7.2. Metodo de RK = 2
7.3. Metodo de Runge-Kutta implcito (IRK)
7.4. Estimativa da ordem de convergencia
7.4.1.Metodo 1
7.4.2.Metodo 2
8. Domnio de Estabilidade
8.1. Equacoes Stiff
8.2. Domnio de Estabilidade Linear
8.3. Estabilidade dos metodos de Taylor
8.4. Estabilidade dos metodos de Runge-Kutta
8.5. Estabilidade dos metodos de passo multiplo
9. Equacoes Diferenciais Parciais hiperbolicas
9.1. Equacao da onda unidirecional
9.2. Sistemas de EDPs hiperbolicas
Tabela de Conteudo (cont.) 3

9.3. Condicoes de contorno


Problemas periodicos
9.4. Diferencas finitas
9.4.1.Codigos
9.5. Convergencia e consistencia
9.6. Estabilidade
9.7. Teorema de equivalencia de Lax-Richtmyer
9.8. Condicao CFL
10. Analise de esquemas de diferencas finitas
10.1. Analise de Fourier
10.1.1.
Analisando EDPs
10.1.2.
Em mais que uma dimensao
10.2. Analise de Von Neumann
10.2.1.
A condicao de estabilidade
10.3. Comentarios sobre instabilidade e estabilidade
10.3.1.
Condicoes de estabilidade para coeficientes variaveis
10.3.2.
Estabilidade numerica e estabilidade dinamica
11. Ordem de Precisao
11.1. Esquema Lax-Wendroff
11.2. Esquema Cranck-Nicolson
11.3. O smbolo de um esquema de DF
11.4. Ordem de precisao da solucao
11.5. Estabilidade LW e CN
11.6. Condicoes de contorno
11.7. Sistemas Tridiagonais
12. Estabilidade para esquemas de passo multiplo
12.1. Estabilidade do esquema leapfrog
12.1.1.
Inicializando o esquema leapfrog
12.1.2.
Notacao de Diferencas
12.2. Estabilidade para esquemas de passo multiplo
13. Equacoes Diferenciais Parciais Parabolicas
13.1. Equacao do calor
13.2. Sistemas parabolicos
13.3. Diferencas finitas
13.3.1.
Mais alguns esquemas
13.4. Dissipacao e suavidade
13.5. Condicao de contorno
Tabela de Conteudo (cont.) 4

13.6. Equacao de conveccao-difusao


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 multiplo
14.3. Duas e tres dimensoes
14.3.1.
Introducao
14.3.2.
Analise
14.4. Time-Split
15. Esquema ADI
15.1. Algoritmo de Peaceman-Rachford
15.2. Condicao de contorno
15.2.1.
Estabilidade
15.3. Implementacao
16. Equacoes de segunda ordem
16.1. Equacao da Onda
16.2. Diferencas finitas
16.2.1.
O primeiro passo
16.3. Condicoes de contorno
16.4. Equacao de segunda ordem em 2 e 3 dimensoes
17. Equacoes Diferenciais Parciais Elpticas
17.1. Equacao de Poisson
17.1.1.
Princpio do Maximo
17.2. Esquemas de Diferencas Finitas
17.3. Sistema Unidimensional
17.4. Sistema Bidimensional
17.4.1.
Metodo de Jacobi
17.4.2.
Metodo de Gauss-Seidel
17.4.3.
Metodo SOR
1

Aula 1 .
Introducao
.
.

Captulo 1:
Introducao
1.1. Objetivos
resolver numericamente equacoes diferenciais
explorar diferentes metodos numericos
entender quando metodos numericos funcionam

1.1.1. Sub-objetivos
experimento - hipoteses - teoria
literatura ingles
latex (WinEdt)
Matlab (ou Scilab 1 ) ou Fortran ou C
pesquisa bibliografica (biblioteca e internet)

1.2. Avaliacao
Temas de casa e trabalhos parciais. IMPORTANTE: respeitar datas de entrega.
Digitados em latex.
Possibilidade de apresentacao de trabalhos.
Participacao.
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:
1 www.scilab.org
Secao 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 calculo numerico:
Cunha, Cardoso, Bortoli, Facchin. Introducao ao Calculo Numerico2.

2 link: www.mat.ufrgs.br/dago
3

Captulo 2:
Aritmetica no computador
2.1. Processo Iterativo
Veja [9]. Considere uma transformacao

V V
T : . (2.1.1)
x T (x) = y
Aplique a transformacao 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 nao convergir. Quando converge temos
lim xk = xp
k
A convergencia pode depender do ponto inicial x0 .
Exerccio 2.1. Considere T (x) = x(3 x2 )/2. Efetue o processo iterativo partindo
de diferentes valores iniciais.
Verifique a convergencia para os pontos fixos x = 1, x = 1 (estes sao estaveis)e
x = 0 (este e instavel).
Faca um esboco do eixo real marcando os pontos fixos e as bacias de atracao.
%------------------------------
function [x]=iteracao(x0)
x(1)=x0;
for k=1:100
x(k+1)=x(k)*(3-x(k)^2)/2;
end
plot(x,*-)
%------------------------------

Exerccio 2.2. O conjunto de Mandelbrot. Considere a equacao para z (C),


z0 = 0; (2.1.2)
zk+1 = zk2 + c (2.1.3)
O conjunto de Maldelbrot e o conjunto de todos c C, tais que a iteracao acima tenha
sempre |zk | < 2. Considere a funcao
%------------------------------
function [c]=mandelbrot(Total)
c =(rand-0.5+i*(rand-0.5))*3;
Secao 2.2: Representacao de numeros 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 aleatorio e escolhido, e sera plotado caso
pertenca ao conjunto de Mandelbrot. Rode o programa com a linha
for k=1:1000; mandelbrot(100); end;
Qual a influencia da variavel T otal?

2.2. Representacao de numeros


Veja [2, 3].
Representacao de numeros, por exemplo, representacao decimal:
(123.456)10 = 1102 + 2101 + 3100 + 4101 + 5102 + 6103 (2.2.1)
onde a base e = 10 e os dgitos possveis sao {0, 1, . . . , 8, 9}.
Representacao binaria:
(1001.101)2 = 123 + 022 + 021 + 120 + 121 + 022 + 123 (2.2.2)
3 0 1 3
=2 +2 +2 +2 (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 dgitos possveis sao {0, 1}.

2.3. Bits, bytes e palavras


Um bit e a menor unidade de informacao, 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 endereco de memoria. Tipicamente uma palavra e um conjunto de 32 bits.
Na realidade o padrao atual (com o Windows Vista) e 64 bits.

2.4. Representacao de numeros inteiros


Usando 32 bits, reservando um bit para o sinal, podemos representar somente 232
numeros, metade deles positivos e metade negativos.
Secao 2.5: Representacao de numeros reais 5

2.5. Representacao de numeros reais


Algumas possibilidades sao representacao fracionaria, representacao em ponto-fixo e
representacao em ponto flutuante. Utilizando ponto flutuante, cada numero x e repre-
sentado como
1
x = M 2E , M <1 (2.5.1)
2
onde a mantissa e da forma
M = (0.b0 b1 b2 b3 . . .)2 , b0 = 1 (2.5.2)
Como b0 = 1, o zero deve ser representado por convencao, de forma diferente - por
exemplo utilizar o menor numero representavel como sendo o zero.
Exemplo 1.
O numero (11.75)10 = (0.101111)22(+100)2 .

2.5.1. Precisao (IEEE754)


Em simples precisao (32 bits) temos F (2, 23, 8) onde a base e = 2, M = 23 bits sao
usados na mantissa (mais um para o sinal) e E = 8 bits para o expoente.

Figura 2.1: Simples Precisao

Em dupla precisao (64 bits) temos F (2, 52, 11) onde a base e = 2, M = 52
bits sao usados na mantissa (mais um para o sinal) e E = 11 bits para o expoente.

Figura 2.2: Dupla Precisao

Em quadrupla precisao (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 precisao finita, ao representar x = 2/3 = (0.66666)10
(que em binario e x = (0.10101010 . . .)2 ) no computador precisamos arredondar o
numero. Porem, x = (0.10101010 . . .)2 esta entre dois numeros representaveis:
Secao 2.6: Arredondamento 6

(0.1010 . . . 1010)2
(0.1010 . . . 1011)2

2.6.1. Erro absoluto e relativo


Sendo x um numero real e x a representacao desse numero, o erro absoluto e definido
como
Eabs = |x x| (2.6.1)
e o erro relativo e definido como
|x x|
Erel = . (2.6.2)
|x|

2.6.2. Arredondamento por corte


Supondo p = 24, podemos ignorar os bits b24 b25 . . . em diante obtendo
x x = (0.1010 . . . 1010)2 . (2.6.3)
O erro maximo no arredondamento por corte sera a distancia entre dois numeros repre-
sentaveis,
corte = p+1 = 223 = 0.119209106 . (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 maximo no arredondamento por proximidade sera a metade do arredon-
damento por corte,
prox = corte/2 = 223 /2 = 0.596046107 . (2.6.5)
fornecendo aproximadamente 7 dgitos de precisao decimal.
Exerccio 2.3. Quantos dgitos de precisao decimal temos aproximadamente em dupla
precisao?

2.6.4. Caracterizacao de uma representacao


p: a precisao e a quantidade de bits disponvel para representar o numero;
MINR: o menor numero representavel em modulo;
MAXR: o maior numero representavel em modulo;
: o epsilon de maquina e o menor numero representavel tal que 1 + 6= 1; (ou
ainda, p+1 )

Exemplo 2.
Utilizando simples precisao temos uma precisao de p = 23 + 1 = 24 bits (mais um pois
b0 = 1 sempre).
Secao 2.7: Operacoes em ponto flutuante 7

M IN R = (0.1000 . . . 0000)2 2(1111111)2 (2.6.6)


1 127
=2 2 (2.6.7)
39
(2.93873510 )10 (2.6.8)
(+1111111)2
M AXR = (0.1111 . . . 1111)2 2 (2.6.9)
1 24 +127
= (2 + ...2 )2 (2.6.10)
38
(1.7014110 )10 (2.6.11)
p 24
=2 =2 (2.6.12)
7
(0.59604610 )10 (2.6.13)
utilizando arredondamento por proximidade.

2.7. Operacoes em ponto flutuante


Dizemos que cada operacao em ponto flutuante ( = +, , , ) apresenta um erro
da ordem do epsilon de maquina,
f l(x y) = x y(1 + ), || (2.7.1)
A seguir temos exemplo de adicao e subtracao em ponto flutuante. Multiplicacao e
divisao sao feitas de modo semelhante.
Exemplo 3.
Seja x = 123456.7 e y = 101.7654 e uma precisao de 7 dgitos.
x = 1.234567105 (2.7.2)
2
+y = 1.01765410 (2.7.3)

x = 1.234567105 (2.7.4)
5
+y = 0.00101765410 (2.7.5)
(2.7.6)
z = 1.235584654105 (2.7.7)
que e o valor exato. Arredondando e normalizando
z = 1.235585105 (2.7.8)
Erro relativo:
|z z|
Erel = (2.7.9)
|z|
|1.235584654105 1.235585105 |
= (2.7.10)
|1.235584654105 |
5.29304081107 < 106 = corte (2.7.11)
Secao 2.7: Operacoes em ponto flutuante 8

Exemplo 4.
Seja x = 123456.7 e y = 0.009876543 e uma precisao de 7 dgitos.
x = 1.234567105 (2.7.12)
3
+y = 9.87654310 (2.7.13)

x = 1.234567 105 (2.7.14)


5
+y = 0.0000000987654310 (2.7.15)
(2.7.16)
z = 1.23456709876543105 (2.7.17)
5
z = 1.23456710 (2.7.18)
A adicao nao fez nenhum efeito.

2.7.1. Cancelamento catastrofico


Quando dois numeros sao muito proximos e uma subtracao e realizada, pode acontecer
um cancelamento catastrofico.
Exemplo 5.
Considere p = 7 e os numeros x = 123457.1467 e y = 123456.659 com representacoes
x = 123457.1 e y = 123456.7. Calculando z = x y temos:
x = 1.234571105 (2.7.19)
5
y = 1.23456710 (2.7.20)
(2.7.21)
5
z = 0.00000410 (2.7.22)
1
z = 4.00000010 (2.7.23)
1
O resultado verdadeiro e z = 4.87710 , portanto um erro relativo de
|4.87710 4101 |
1
Erel = 0.1798 . . . (2.7.24)
|4.877101 |
o que fornece uma diferenca relativa de 17.98%.

2.7.2. A comutatividade nao e valida


Operacoes em ponto flutuante nao sao 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)
Secao 2.7: Operacoes em ponto flutuante 9

2.7.3. A distributividade nao e valida


Operacoes em ponto flutuante nao sao distributivas:
(x z) + (y z) = (1234.5673.333333) + (1.2345673.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.8023.333333 (2.7.35)
= 4119.340 (2.7.36)
Exerccio 2.4. Calculos podem ser rearranjados de tal forma a reduzir alguns tipos
de erros. Archimedes aproximou calculando o permetro de polgonos inscritos e
circunscritos em um crculo, iniciando com hexagonos e dobrando o numero de lados.
A formula de recorrencia e
1
t0 = (2.7.37)
3
p
t2i + 1 1
ti+1 = (2.7.38)
ti
62i ti , (2.7.39)
Calcule a sequencia que aproxima imprimindo as aproximacoes e o erro relativo a cada
iteracao. Essa forma apresenta um cancelamento catastrofico. Reescreva a formula de
iteracao e recalcule a sequencia.
Exerccio 2.5. Escreva um algoritmo (em Matlab, Fortran ou C) que calcule o valor
do epsilon de maquina. Rode o programa e imprima os resultados.
Exerccio 2.6. Escreva um algoritmo que calcule MINR, o menor numero repre-
sentavel. Rode o programa e imprima os resultados.
Exerccio 2.7. Sabemos do calculo que
1 n
lim (1 +
) =e (2.7.40)
n
n
Aproxime o valor de e usando Matlab. Qual o limite da maquina? Explique.
Exerccio 2.8. A constante de Euler dada por
= .57721566490153286 . . . (2.7.41)
e definida como o limite
= lim n , (2.7.42)
n
1 1 1
n = 1 +
+ + . . . + ln n. (2.7.43)
2 3 n
Assumindo que n cnd , n , para alguma constante c, d > 0, tente
determinar c e d experimentalmente usando um computador.
10

Aula 2 e 3 .
Aproximacoes
.
Cunha, Bortoli et al

Captulo 3:
Aproximacoes
3.1. Aproximacao de ordem p

Objetivo:
Aproximar a funcao f (t) C(R) por um polinomio q(t)
de ordem p.

O polinomio pode ser expresso como a combinacao linear de p polinomios k (t)


que formam uma base para o espaco polinomial, de tal forma que q(t) = c0 0 (t) +
c1 1 (t) + . . . + cp p (t).
Um possvel maneira de obter tal polinomio e impor p + 1 condicoes de compa-
tibilidade, como por exemplo, podemos exigir que
f (t0 ) = q(t0 ), . . . , f (tp ) = q(tp ). (3.1.1)
k
Fixe a base k (t) = t , k = 0, . . . , p. Note que o polinomio q(t) que satisfaz
3.1.1 e unico e nao depende da escolha da base.
O problema entao torna-se encontrar q(t) = c0 + c1 t + . . . + cp tp f (t) tal que
3.1.1 seja satisfeito. Assim obtemos o sistema
f (t0 ) = c0 + c1 t0 + c2 t20 + . . . + cp tp0 (3.1.2)
f (t1 ) = c0 + c1 t1 + c2 t21 + ...+ cp tp1 (3.1.3)
.. ..
.=. (3.1.4)
f (tp ) = c0 + c1 tp + c2 t2p + ... + cp tpp (3.1.5)
que pode ser escrito na forma matricial
1 t0 . . . tp0

c0 f (t0 )
1 t1 . . . tp1 c1 f (t1 )
.. .. .. .. = .. (3.1.6)


. . . . .
p
1 tp . . . tp cp f (tp )
onde a matriz apresentada e a matriz de Vandermonde. Resolvendo o sistema obtemos
os coeficientes ck para a interpolacao polinomial.
Exerccio 3.1. Fixe tk = k e monte matrizes de Vandermonde de tamanho n =
1, 2, . . . , 30 plotando um grafico do numero de condicionamento da matriz de Vander-
monde com respeito a n (utilize a funcao cond do Matlab).
Secao 3.2: Aproximacao em diferencas finitas 11

3.2. Aproximacao em diferencas finitas

Objetivo:
Obter uma discretizacao para a funcao f (t) em t = t
de ordem p.

Dados p + 1 pontos [t0 , t1 , . . . , tp ], queremos obter uma aproximacao para a


derivada de f (t) calculada em t do tipo
f (t ) c0 f (t0 ) + c1 f (t1 ) + . . . + cp f (tp ) (3.2.1)
que seja exata para polinomios ate ordem p.
Por exemplo, podemos aproximar a derivada de f (t) como
f (t0 + h) f (t0 )
f (t0 ) = (3.2.2)
h
1 1
= f (t1 ) f (t0 ) (3.2.3)
h h
Seja q(t) = c0 0 (t)+c1 1 (t)+. . .+cp p (t) o polinomio 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)
ate ordem p, entao tambem deve ser exata para qualquer funcao 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 = c0 t0 + c1 t1 + . . . + cp tp (3.2.6)
(t2 )t = 2t =
c0 t20 + c1 t21 + ...+ cp t2p (3.2.7)
(t3 )t = 2
3(t ) = c0 t30 + c1 t31 + ...+ cp t3p (3.2.8)
.. ..
.=. (3.2.9)
(tp )t = p(t ) p1
= c0 tp0 + c1 tp1 + ...+ cp tpp (3.2.10)
que pode ser escrito na forma matricial

1 1 ... 1 c0 0
t0 t1 . . . tp c1 1
2 2
t0 t1 . . . t2p 2t

c2 =

(3.2.11)
.. .. .. .. ..


. . . . .
tp0 tp1 . . . tpp cp p(t )p1
Resolvendo o sistema obtemos os coeficientes ck para a regra de diferenciacao.
Exemplo 6.
Seja p = 2, [t0 , t1 , t2 ] = [h, 0, h] e t = t1 = 0, obtenha uma regra de diferenciacao
para aproximar f (t ).
Secao 3.3: Integracao Numerica, quadratura 12

Solucao: A regra tera a forma


f (t ) c0 f (t0 ) + c1 f (t1 ) + c2 f (t2 ) (3.2.12)
c0 f 0 + c1 f 1 + c2 f 2 (3.2.13)
2
Considere a base polinomial [0 (t), 1 (t), 2 (t)] = [1, t, t ] 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 2 2
= 0 = c0 (h) + c1 (0) + c2 (h) 2
(3.2.16)
que pode ser escrito na forma matricial

1 1 1 c0 0
h 0 h c1 = 1 (3.2.17)
h2 0 h2 c2 0
1 1
Resolvendo o sistema obtemos [c0 , c1 , c2 ] = [ 2h , 0, 2h ] fornecendo a regra
1 1
f |t=t1 f0 + f2 (3.2.18)
2h 2h
f2 f0
= (3.2.19)
2h


Exerccio 3.2. Seja [t0 , t1 , t2 ] = [0, h, 2h] e t = t0 = 0, obtenha uma regra unilateral
de diferenciacao para aproximar f (t0 ).
Exerccio 3.3. Seja [t0 , t1 , t2 ] = [h, 0, h] e t = t1 = 0, obtenha uma regra de
diferenciacao para aproximar f (t ).
Exerccio 3.4. Seja [t0 , t1 , . . . , t4 ] = [2h, h, 0, h, 2h] e t = 0, obtenha uma regra
de diferenciacao para aproximar f (t ).
Exerccio 3.5. Seja [t0 , t1 , . . . , t4 ] = [2h, h, 0, h, 2h] e t = 0, obtenha uma regra
de diferenciacao para aproximar f (t ).
Exerccio 3.6. Seja [t0 , t1 , . . . , t4 ] = [0, h, 3h, 6h, 10h] e t = 0, obtenha uma regra
de diferenciacao para aproximar f (t ).

3.3. Integracao Numerica, quadratura

Objetivo:
Obter uma regra para integracao para a funcao f (t) em
[a, b] de ordem p .
Secao 3.3: Integracao Numerica, quadratura 13

Dados p + 1 pontos [t0 , t1 , . . . , tp ], queremos obter uma aproximacao para


Z b
f (t) dt c0 f (t0 ) + c1 f (t1 ) + . . . + cp f (tp ) (3.3.1)
a
que seja exata para polinomios ate ordem p.
Aproxime f (t) pelo polinomio 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) ate ordem p, entao tambem deve ser exata para qualquer funcao da
base. Substituindo f (t) por 0 (t) = 1 em (3.3.1) obtemos a identidade
Z b
0 (t) dt = t|ba = c0 0 (t0 ) + c1 0 (t1 ) + . . . + cp 0 (tp ) (3.3.2)
a
b a = c0 + c1 + . . . + cp (3.3.3)
Da mesma forma para k (t), k = 1, . . . , p, obtemos
b 2 a2
(t2 /2)|ba = = c 0 t0 + c 1 t1 + . . . + c p tp (3.3.4)
2
b 3 a3
(t3 /3)|ba = = c0 t20 + c1 t21 + . . . + cp t2p (3.3.5)
3
.. ..
.=. (3.3.6)
p+1 p+1
b a
= c0 tp0 + c1 tp1 + . . . + cp tpp (3.3.7)
p+1
que pode ser escrito na forma matricial
ba

1 1 ... 1 c0
t0 b2 a2
t1 . . . tp c1 2 3


2 3
2 2 b a

t0 t1 . . . tp c2 =
(3.3.8)

3
.. .. .. .. .

. . . .
..

tp0 p
t1 . . . tpp cp bp+1
a p+1

p+1

Resolvendo o sistema obtemos os coeficientes ck para a regra de integracao.


Exemplo 7.
Seja p = 2, [t0 , t1 , t2 ] = [0, h/2, h] e [a, b] = [t0 , t2 ], obtenha uma regra de integracao
Rb
para aproximar a f (t) dt.

Solucao: A regra tera a forma


Z b
f (t) dt c0 f (t0 ) + c1 f (t1 ) + c2 f (t2 ) (3.3.9)
a
c0 f 0 + c1 f 1 + c2 f 2 (3.3.10)
Considere a base polinomial [0 (t), 1 (t), 2 (t)] = [1, t, t2 ] e substitua f (t) por k (t)
Secao 3.4: Quadratura Gaussiana 14

obtendo
Z h
1 dt = h = c0 (1) + c1 (1) + c2 (1) (3.3.11)
0
Z h
t dt = h2 /2 = c0 (0) + c1 (h/2) + c2 (h) (3.3.12)
0
Z h
t2 dt = h3 /3 = c0 (0)2 + c1 (h/2)2 + c2 (h)2 (3.3.13)
0
que pode ser escrito na forma matricial

1 1 1 c0 h
0 h/2 h c1 = h2 /2 (3.3.14)
0 h2 /4 h2 c2 h3 /3
Resolvendo o sistema obtemos [c0 , c1 , c2 ] = [ h6 , 4h h
6 , 6 ] fornecendo a regra
Z h
h 4h h
f (t) dt f0 + f1 + f2 (3.3.15)
0 6 6 6
f0 + 4f1 + f2
= h (3.3.16)
6

Exerccio 3.7. Seja [t0 , t1 , t2 , t3 ] = [0, h/3, 2h/3, h] e [a, b] = [0, h], obtenha uma
Rh
regra de integracao para aproximar 0 f (t) dt.
Exerccio 3.8. Uma regra que nao utiliza os extremos. Seja [t1 , t2 , t3 ] = [h/4, h/2, 3h/4]
Rh
e [a, b] = [0, h], obtenha uma regra de integracao para aproximar 0 f (t) dt.
Exerccio 3.9. Seja [t0 , t1 , . . . , t4 ] = [0, h/4, h/2, 3h/4, h] e [a, b] = [0, h], obtenha
Rh
uma regra de integracao para aproximar 0 f (t) dt.

3.4. Quadratura Gaussiana

Objetivo:
Obter uma regra para integracao para a funcao f (t) em
[a, b] podendo variar a posicao dos nos.

Queremos encontrar a melhor posicao de p pontos [t1 , . . . , tp ] e os melhores pesos


wk tal que a aproximacao
Z b
f (t) dt w1 f (t1 ) + . . . + wp f (tp ) (3.4.1)
a
possua ordem maxima de aproximacao.
Para obter os coeficientes classicos, tome [a, b] = [1, 1]. (Para outros intervalos,
basta fazer uma mudanca de intervalo na integral.)
Secao 3.5: Ordem de aproximacao 15

Note que temos p nos e p pesos para determinar. Portanto podemos aproximar
f (t) pelo polinomio q(t) = c0 + c1 t + . . . + cm tm onde m = 2p 1. A regra (3.4.1)
deve ser exata para qualquer k (t) polinomio da base. Substituindo f (t) por 0 (t) = 1
em (3.3.1) obtemos a identidade
Z 1
0 (t) dt = t|11 = w1 0 (t1 ) + . . . + wp 0 (tp ) (3.4.2)
1
2 = w1 + . . . + wp (3.4.3)
Da mesma forma para k (t), k = 1, . . . , m, obtemos
(t2 /2)|11 = 0 = w1 t1 + . . . + wp tp (3.4.4)
3
(t /3)|11 = 2/3 = w1 t21 + ... + wp t2p (3.4.5)
(t4 /4)|11 =0= w1 t31 + ... + wp t3p (3.4.6)
.. ..
.=. (3.4.7)
m+1 m+1
(1) (1)
= w1 tm m
1 + . . . + wp tp (3.4.8)
p+1
que e um sistema nao linear com 2p equacoes e incognitas wk , tk , k = 1, . . . , p.
Exerccio 3.10. Calcule os nos e pesos para a quadratura de Gauss utilizando 2 nos
no intervalo [1, 1].
Exerccio 3.11. Calcule os nos e pesos para a quadratura de Gauss utilizando 3 nos
no intervalo [1, 1].

3.5. Ordem de aproximacao


Considere a definicao da derivada de f (x) como
f (x + h) f (x)
f (x) (3.5.1)
h
Se f e linear (f (x) = ax + b), entao a equacao acima e exata. Caso contrario a
aproximacao possui um erro.
Expandindo em serie de Taylor temos,
h2
f (x + h) = f (x) + hfx (x) +fxx (x) + O(h3 ) (3.5.2)
2
A notacao 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 serie de Taylor obtemos
f (x + h) f (x) h
f (x) = fxx (x) + O(h2 ) (3.5.4)
h 2
f (x + h) f (x)
= + O(h) (3.5.5)
h
Quando h 0, o erro na aproximacao e da ordem h.
Secao 3.5: Ordem de aproximacao 16

Exerccio 3.12. Para a funcao f (x) = sin(x), aproxime f (1) utilizando a derivada
pra frente para valores h = 101 , 102 , 103 , . . .. Plote o erro relativo na aproximacao
na escala logartmica, utilizando o comando loglog. Use h no eixo x e o erro relativo
Er(h) no eixo y. Identifique a ordem 1 do metodo na curva plotada e explique o que
acontece no grafico.
Exerccio 3.13. Obtenha a expressao para o erro da derivada central f (x) f (x+h)f 2h
(xh)
,
utilizando a serie de Taylor. Repita o exerccio anterior utilizando derivada central. Iden-
tifique a ordem do metodo no grafico.

3.5.1. Integracao
Exemplo R8.

Aproxime 0 sin(x)dx utilizando 10 subintervalos iguais e a regra trapezoidal
Z xi+1
fi + fi+1
f (t) dt h (3.5.6)
xi 2
. Aproxime tambem para 102 , 103 , 104 intervalos.

Solucao: 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)

R
Exerccio 3.14. Aproxime 0 sin(x)dx utilizando N subintervalos iguais e a regra de
Simpson
Z xi+2
fi + 4fi+1 + fi+2
f (t) dt h (3.5.7)
xi 6
17

. Aproxime tambem para N = 102 , 103 , 104 intervalos. (Note que em cada subintervalo
existem 3 nos consecutivos, fazendo com que o for pule de 2 em 2 nos. Por que?)
Plote o erro na escala logartmica em y.
R
Exerccio 3.15. Aproxime 0 sin(x)dx utilizando N subintervalos iguais e a uma
quadratura de Gauss com 2 nos em cada subintervalo (veja como obter os nos na secao
anterior ou na literatura). Note que os nos devem ser transladados para o subintervalo ja
que eles sao fornecidos no intervalo (1, 1). Aproxime tambem para N = 102 , 103 , 104
intervalos. Plote o erro na escala logartmica em y.

Aula 4 e 5 .
Equacoes Diferenciais Ordinarias e Metodo de Euler
.
Butcher, Iserles

Captulo 4:
Equacoes Diferenciais Ordinarias
Bibliografia: Cap.1 [5], Sec.11,20,21,22 e [1]

Objetivo:
Resolver ou aproximar a solucao de uma equacao dife-
rencial ordinaria (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 condicao inicial, e o problema e
chamado de Problema de Valor Inicial (PVI).
Usando a mesma terminologia podemos representar funcoes vetoriais, i.e., caso
u(t) RN ,
u (t) = f (t, u(t)) (4.0.3)
u(t0 ) = a (4.0.4)
18

onde u(t) = [u1 (t), u2 (t), . . . , uN (t)] : R RN e a = [a1 , . . . , aN ] RN . Ou seja,


u1 (t) = f1 (t, u1 (t), . . . , uN (t)) (4.0.5)
u2 (t) = f2 (t, u1 (t), . . . , uN (t)) (4.0.6)
.. ..
.=. (4.0.7)
uN (t) = fN (t, u1 (t), . . . , uN (t)) (4.0.8)
e condicoes 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 condicoes de contorno.
Exemplo 9.

du
=t (4.0.13)
dt
u(0) = a (4.0.14)

Exemplo 10.

du
=u (4.0.15)
dt
u(0) = a (4.0.16)

Exemplo 11.

du
=u+t (4.0.17)
dt
u(0) = a (4.0.18)

Exemplo 12.

du
= sin(u2 + sin(t)) (4.0.19)
dt
u(0) = a (4.0.20)
Secao 4.1: Teoria de equacoes diferenciais 19

Exemplo 13.

du1
= u2 (4.0.21)
dt
du2
= u1 /(u2 + u3 ) (4.0.22)
dt
du3
= u2 + t (4.0.23)
dt
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)

Exerccio 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 .
Exerccio 4.2. Considere o PVI nao autonomo,
u = tu + t2 v, u(0) = 3, (4.0.31)

v = u v + 2tw, v(0) = 2, (4.0.32)
v
w = u + w(0) = 5. (4.0.33)
1+t
Reescreva-o como um problema autonomo (sem dependencia explcita na variavel inde-
pendente t).

4.1. Teoria de equacoes diferenciais


Uma questao fundamental em matematica aplicada e analisar se um modelo matematico
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 tres partes:
Existe uma solucao para o P V I?
A solucao e unica?
Quao sensvel e a solucao a pequenas perturbacoes nas condicoes iniciais?
20

Definicao 4.1.1. A funcao f : [a, b]RN RN e Lipschitz (na segunda


variavel) se constante L, tal que t [a, b] e u, v RN ,
kf (, u) f (, v)k Lku vk.

Definicao 4.1.2. Seja (M, ) um espaco metrico com metrica . A funcao


: M M e dita uma contracao se k, 0 k < 1 tal que , M ,
((), ()) k(, ). (4.1.1)

Lema 4.1.3. Seja (M, ) um espaco metrico completo e : M M uma con-


tracao. Entao ! M tal que () = .
Teorema 4.1.4. Seja f : [a, b]RN RN contnua na primeira variavel e Lips-
chitz na segunda variavel. Entao uma unica solucao 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. Dependencia na condicao inicial


Se u(t) e v(t) sao solucoes do PVI com f Lipschitz com u(t0 ) = u0 , v(t0 ) = v0 , entao
d
ku(t) v(t)k Lku(t) v(t)k
dt
Multiplicando por eLt ,
d Lt
(e ku(t) v(t)k) 0
dt
implicando que
ku(t) v(t)k eL(tt0 ) ku0 v0 k.

Captulo 5:
Metodo de Euler
Seja o PVI
u (t) = f (t, u(t)) (5.0.1)
u(t0 ) = a (5.0.2)
Ao inves 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 ate t1 e obtenha:
Z t1 Z t1

u (t) dt = f (t, u(t)) dt (5.0.3)
t0 t0
Z t1
u(t1 ) u(t0 ) = f (t, u(t)) dt (5.0.4)
t0
21

Supondo f (t, u(t)) f (t0 , u(t0 )) (constante) no intervalo pequeno,


Z t1
u(t1 ) u(t0 ) f (t0 , u(t0 )) dt (5.0.5)
t0
Z t1
u(t1 ) u(t0 ) + f (t0 , u(t0 )) dt (5.0.6)
t0
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 notacao, denote por un u(tn ) a solucao 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 metodo de Euler,

Metodo 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 variavel:


hn = tn tn1 .)
Exemplo 15.
Aproxime a solucao do PVI
du
= 0.5u + 2 + t (5.0.11)
dt
u(0) = 8 (5.0.12)
Teste para h = 1.6, 0.8, 0.4, 0.2, 0.1.
Note que a solucao exata do problema e
u(t) = 2t + 8et/2 (5.0.13)
Itere a formula
un+1 = un + h(0.5un + 2 + tn ), u0 = 3 (5.0.14)
atraves do codigo 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;
22

Solucao do PVI
11

10.5

10

9.5

8.5
u

7.5

6.5

6
0 1 2 3 4 5
t

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 solucao para h = 1, 0.5, 0.1, 0.05:

Exerccio 5.1. Aproxime a solucao do PVI


du
= sin t (5.0.15)
dt
u(0) = 1 (5.0.16)
para t [0, 10].
a. Plote a solucao para h = 0.16, 0.08, 0.04, 0.02, 0.01.
b. Utilizando a solucao exata, plote um grafico do erro em escala logartmica. Co-
mente os resultados.
Secao 5.1: Erro de truncamento 23

c. Para t = 10, qual a relacao entre o erro e h (erro = f (h)). Comente.

Exerccio 5.2. Aproxime a solucao do PVI


du t2
= (5.0.17)
dt 1 u2
u(0) = 0 (5.0.18)
para t > 0.
a. Plote a solucao para h = 0.5 e t [0, 20].
b. Tente aproximar melhor a solucao diminuindo h.
c. Note que existe T tal que a solucao deixa de existir para t > T . Forneca uma
justificativa para este fato e encontre T .

5.1. Erro de truncamento


Sendo u(tn ) a solucao exata em tn e un a solucao aproximada, defina o erro numerico
como en = un u(tn ).
Expandindo em serie de Taylor
u(tn+1 ) = u(tn ) + hu (tn ) + h2 u (tn )/2 + O(h3 ) (5.1.1)
e utilizando a equacao diferencial,
u(tn+1 ) = u(tn ) + hf (tn , un ) + h2 u (tn )/2 + O(h3 ) (5.1.2)
Subtraindo (5.1.2) do metodo de Euler
un+1 = un + h f (tn , un ) (5.1.3)
temos
un+1 u(tn+1 ) =un u(tn ) (5.1.4)
2
+ h(f (tn , u(tn ) + en ) f (tn , u(tn ))) + O(h ) (5.1.5)

en+1 =en + h(f (tn , u(tn ) + en ) f (tn , u(tn ))) + O(h2 ) (5.1.6)
Usando a condicao de Lipschitz em f temos
ken+1 k ken k + hkf (tn , u(tn ) + en ) f (tn , u(tn ))k + ch2 (5.1.7)
2
ken k + hLku(tn ) + en u(tn )k + ch (5.1.8)
2
ken k + hLken k + ch (5.1.9)
2
(1 + hL)ken k + ch (5.1.10)

5.1.1. Erro de truncamento Local


O Erro de Truncamento Local e o erro cometido em uma iteracao do metodo numerico
supondo que a solucao exata e conhecida no passo anterior.
Assim, supondo que a solucao e exata em tn , obtemos que o ETL e
ET Ln+1 2 3
Euler = h /2ku (tn )k + O(h )
Secao 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 entao
ken+1 k ken k + ch2 (5.1.11)
2 2
ken1 k + ch + ch (5.1.12)
2 2 2
ken2 k + ch + ch + ch (5.1.13)
... (5.1.14)
ke0 k + (n + 1)ch2 (5.1.15)
ke0 k + T ch (5.1.16)
e se L 6= 0 entao
ken+1 k (1 + hL)ken k + ch2 (5.1.17)
2
ken+1 k + ch/L (1 + hL)ken k + ch/L + ch (5.1.18)
ken+1 k + ch/L (1 + hL)ken k + (1 + hL)ch/L (5.1.19)
ken+1 k + ch/L (1 + hL)(ken k + ch/L) (5.1.20)
n+1
ken+1 k + ch/L (1 + hL) (ke0 k + ch/L) (5.1.21)
(n+1)hL
ken+1 k + ch/L e (ke0 k + ch/L) (5.1.22)
TL
ken+1 k e (ke0 k + ch/L) ch/L (5.1.23)
TL TL
ken+1 k e ke0 k + e ch/L ch/L (5.1.24)
TL TL
ken+1 k e ke0 k + (e 1)ch/L (5.1.25)
O Erro de Truncamento Global e o erro cometido durante varias iteracoes do
metodo numerico.
Supondo que a solucao exata e conhecida em t0 , temos ke0 k = 0 e ET G e
ET Gn+1
Euler = O(h)

5.1.3. Convergencia
Um metodo e dito convergente se para toda EDO com f Lipschitz e todo T > 0
temos que

lim max kun u(tn )k = 0


h>0 n

Convergencia significa que a solucao numerica tende a solucao verdadeira


Teorema 5.1.1. O metodo de Euler e convergente.
Supondo que o erro em t0 e zero temos T > t0 e f Lipschitz
lim ken+1 k = lim (eT L 1)ch/L = 0 (5.1.26)
h>0 h>0

O metodo de Euler possui ET L = O(h2 ) e e um metodo de ordem 1.


Secao 5.2: A regra do trapezio 25

5.1.4. Paradoxo da ordem

Contnuo: u(t) resolve exatamente u (t) = f (t, u(t)).

Discreto: un+1 resolve exatamente un+1 =


F (f, t, un , . . . , u0 ).

Porem

un+1 resolve aproximadamente u (t) = f (t, u(t)),


ou seja, kun+1 u(tn )k = O(hp+1 ).

u(t) resolve aproximadamente


u(tn+1 ) F (f, t, u(tn ), . . . , u(t0 )) = O(hp+1 ).

Alternativamente, um metodo e chamado de ordem p se recupera exatamente


toda solucao polinomial de ordem p.
Sob certas condicoes, como ET L = O(hp+1 ), quando o numero de passos
aumenta como O(n) = O(h1 ) temos que ET G = O(hp ).

5.2. A regra do trapezio


O metodo de Euler aproxima f como uma constante f (t0 , u0 ) no intervalo [t0 , t1 ].
Podemos melhorar isso usando a regra do trapezio,
Z t1
u(t1 ) = u(t0 ) + f (t, u(t)) dt (5.2.1)
t0
 
1 1
u(t1 ) u(t0 ) + (t1 t0 f (t0 , u(t0 )) + f (t1 , u(t1 )) (5.2.2)
2 2
motivando o

metodo trapezoidal
h
un+1 = un + (f (tn , un ) + f (tn+1 , un+1 )) (5.2.3)
2

O erro de truncamento local e


ET Ln+1 3
T rap = O(h )

portanto o metodo e de ordem 2. Pode ser mostrado que o erro de truncamento global
e
ET Gn+1 2
T rap = O(h )
Secao 5.3: O metodo theta 26

(entretanto nao deve se concluir que ET G = ET L/h)


O metodo trapezoidal e dito implcito, pois para obter un+1 e necessario calcular
f (tn+1 , un+1 ). Para resolver esse problema devemos resolver a equacao para un+1 (ou
ainda um sistema algebrico de equacoes).
Inspirado no metodo anterior, ao inves de aproximar
1
u (t) [f (tn , un ) + f (tn+1 , un+1 )] (5.2.4)
2
podemos aproximar
h 1
u (t) f (tn + , (un + un+1 )). (5.2.5)
2 2
levando ao

metodo do ponto medio


h 1
un+1 = un + hf (tn + , (un + un+1 )). (5.2.6)
2 2

Exerccio 5.3. Mostre que o metodo do ponto medio e convergente e de ordem 2.

5.3. O metodo theta


Tanto o metodo de Euler quanto o metodo trapezoidal se encaixam no metodo
un+1 = un + h(f (tn , un ) + (1 )f (tn+1 , un+1 )) (5.3.1)
1
com = 1 e = respectivamente. O metodo e explcito somente para = 1. Para
2
= 0, temos um metodo implcito de primeira ordem chamado

metodo de Euler implcito


un+1 = un + hf (tn+1 , un+1 ). (5.3.2)

Exerccio 5.4. O sistema linear u = Au, u(0) = u0 , onde A e uma matriz simetrica
e resolvido pelo metodo de Euler.
a. Seja en = un u(nh), n = 0, 1, . . ., prove que
ken k2 ku0 k2 max |(1 + h)n enh |, (5.3.3)
(A)

onde (A) e o conjunto dos autovalores de A e kk2 e a norma euclidiana.


b. Demonstre que para 1 x 0 e n = 0, 1, . . . e valida a expressao
1
enx nx2 e(n1)x (1 + x)n enx . (5.3.4)
2
(Dica: Prove que 1 + x ex , 1 + x + 21 x2 ex , para todo x 0 e argumente
que, se |a 1| e |b| sao pequenos, e verdade que (a b)n an nan1 b.
Secao 5.4: O metodo de Taylor 27

c. Suponha que o maior autovalor de A e max < 0. Prove que, quando h > 0 e
nh > t [0, t ],
1 1
ken k2 t2max emax t ku0 k2 h t 2max ku0 k2 h (5.3.5)
2 2

5.4. O metodo de Taylor


Uma maneira simples de aumentar a ordem do metodo e utilizar diretamente a serie de
Taylor. Considere a expansao
h2 h3
u(t + h) = u(t) + hu (t) + u (t) + u (t) + . . . (5.4.1)
2! 3!
Utilizando dois termos temos o metodo de Euler. Utilizando os tres primeiros
termos da serie e substituindo u (t) = f (t, x) e u (t) = ft (t, x) temos o

metodo de Taylor de ordem 2


h2
un+1 = un + hf (tn , un ) + ft (tn , un ) (5.4.2)
2!

metodo de Taylor de ordem 3


h2 h3
un+1 = un + hf (tn , un ) + ft (tn , un ) + ftt (tn , un )
2! 3!

Exerccio 5.5. Aproxime a solucao do PVI


du
= sin t (5.4.3)
dt
u(0) = 1 (5.4.4)
para t [0, 10].
a. Plote a solucao para h = 0.16, 0.08, 0.04, 0.02, 0.01 para o metodo de Taylor de
ordem 1, 2 e 3. (Plote todos de ordem 1 no mesmo grafico, ordem 2 em outro
grafico e ordem 3 outro grafico separado.)
b. Utilizando a solucao exata, plote um grafico do erro em escala logartmica. Co-
mente os resultados (novamente, em cada grafico separado para cada metodo
repita os valores acima)
c. Fixe agora o valor h = 0.02 e plote no mesmo grafico uma curva para cada
metodo.
d. Plote em um grafico o erro em t = 10 para cada um dos metodos (uma curva
para cada ordem) a medida que h diminui. (Use escala loglog)

Exerccio 5.6. Aproxime a solucao 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)
28

utilizando o metodo de Euler. Escolha apropriadamente h e ilustre graficamente a


convergencia. Plote solucoes no plano de fase (plano xy).
Exerccio 5.7. Aproxime a solucao do PVI
du cos(t + u)
= (5.4.7)
dt 1 + u2
u(0) = 0 (5.4.8)
utilizando o metodo do trapezio. Escolha apropriadamente h e ilustre graficamente a
convergencia.
Para resolver o metodo implcito, utilize por exemplo iteracao de ponto fixo ou
o metodo de Newton.
a. Plote a solucao para diferentes valores de h.
b. Para h = 0.01 e T = 10 conte o numero total de iteracoes necessarias de cada
passo do metodo implcito para obter a solucao usando uma tolerancia de 1015
na solucao do problema implcito.
c. Repita o exerccio anterior com h = 0.01, T = 10 e tolerancia de 108 .
d. Repita o exerccio anterior com h = 0.01, T = 10 e tolerancia de 104 .
e. Repita o exerccio anterior utilizando o metodo de Euler com diferentes valores de
h, ate T = 10 de tal forma que a solucao seja tao proxima da solucao do metodo
do trapezio quanto possvel. Conte as iteracoes necessarias para obter a solucao
com o metodo de Euler com o mesmo erro que o metodo do trapezio.
f. Compare, para esse exerccio, o metodo de Euler e o do trapezio.

Aula 6 e 7 .
Metodos de passo multiplo
.
Butcher, Iserles

Captulo 6:
Metodos de Passo Multiplo
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)
Secao 6.1: O metodo de Adams-Bashforth 29

Integrando a EDO em [tn+1 , tn ] obtemos


Z tn+1
un+1 = un + f (t, u(t)) dt (6.0.3)
tn

Denote por fn f (tn , un ). Um metodo de passo simples utiliza fn+1 e fn . Um


metodo de passo multiplo utiliza tambem s valores anteriores ja calculados como
fn1 , fn2 , . . . , fns , onde s 1 inteiro.

un+1 = un + h[bs fn+1 + bs1 fn + . . . + b1 fns+2 + b0 fns+1 ] (6.0.4)


Para conformidade com [5], translade s 1 ndices,
un+s = un+s1 + h[bs fn+s + bs1 fn+s1 + . . . + b1 fn+1 + b0 fn ] (6.0.5)
e teremos
s
X
un+s = un+s1 + h bm fn+m (6.0.6)
m=0
De forma geral

um metodo de passo multiplo sera


Xs Xs
am un+m = h bm fn+m (6.0.7)
m=0 m=0

6.1. O metodo de Adams-Bashforth


Quando as = 1, as1 = 1, am = 0 para m = s 2, . . . , 0, bs = 0 temos um metodo
de Adams-Bashforth do tipo
s1
X
un+s = un+s1 + h bm fn+m (6.1.1)
m=0
Note que os metodos de Adams-Bashforth sao explcitos pois bs = 0.
Exemplo 16.
Vamos obter o metodo de Adams-Bashforth para s = 4 como
Z tn+4
un+4 = un+3 + f (t, u(t)) dt (6.1.2)
tn+3
3
X
un+4 = un+3 + h bm fn+m (6.1.3)
m=0
un+4 = un+3 + h[b3 fn+3 + b2 fn+2 + b1 fn+1 + b0 fn ] (6.1.4)
Para isso devemos obter [b3 , b2 , b1 , b0 ] tal que o metodo seja exato para polinomios ate
ordem 3. Podemos obter esses coeficientes de maneira analoga a obter os coeficientes
de um metodo para integracao como em 3.1.
Secao 6.1: O metodo de Adams-Bashforth 30

Supondo que os nos tk estejam igualmente espacados, e para facilidade dos


calculos, como o intervalo de integracao 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
Z h
1 dt = h = h(b0 (1) + b1 (1) + b2 (1) + b3 (1))
0
h
h2
Z
t dt = = h(b0 (0) + b1 (h) + b2 (2h) + b3 (3h))
0 2
h
h3
Z
t2 dt = = h(b0 (0)2 + b1 (h)2 + b2 (2h)2 + b3 (3h)2 )
0 3
h
h4
Z
t3 dt = = h(b0 (0)3 + b1 (h)3 + b2 (2h)3 + b3 (3h)3 )
0 4
que pode ser escrito na forma matricial

1 1 1 1 b0 1
0 1 2 3 b1 1/2
b2 = 1/3 (6.1.5)

0 1 4 9
0 1 8 27 b3 1/4
Resolvendo o sistema obtemos
9 37 59 55
[b0 , b1 , b2 , b3 ] = [ , , , ]
24 24 24 24
fornecendo

o metodo de Adams-Bashforth de 4 estagios


h
un+4 = un+3 + [55fn+3 59fn+2 + 37fn+1 9fn ]
24
(6.1.6)

Dica: Para encontrar coeficientes no formato fracionario utilize format rat no


Matlab.
Exerccio 6.1. Mostre que o metodo de Adams-Bashforth para s = 2 e dado por
h
un+2 = un+1 + [3fn+1 fn ] (6.1.7)
2
Exerccio 6.2. Mostre que o metodo de Adams-Bashforth para s = 3 e dado por
h
un+3 = un+2 + [23fn+2 16fn+1 + 5fn ] (6.1.8)
12
Secao 6.2: Ordem e convergencia de metodos de passo multiplo 31

6.1.1. Codigo
%---------------------------
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 definicao da funcao f em na funcao func.

6.2. Ordem e convergencia de metodos de passo multiplo


Mais geralmente, um metodo de passo multiplo sera da forma
s
X s
X
am un+m = h bm fn+m (6.2.1)
m=0 m=0
Por convencao normalizamos a equacao acima tomando as = 1. Quando bs = 0 temos
um metodo explcito e quando bs 6= 0 temos um metodo implcito.
O metodo sera de ordem p se o ET L(u(t)) = (u(t)) = O(hp+1 ) para u(t)
suficientemente suave, ou ainda, a solucao exata resolve aproximadamente (6.2.1), tal
que,
Xs Xs
(u(t)) := am u(t + mh) h bm u (t + mh) (6.2.2)
m=0 m=0
p+1
=O(h ), h0 (6.2.3)
Dois polinomios sao usados para estudar o metodo (6.2.1):
s
X s
X
(w) = am w m , (w) = bm w m , (6.2.4)
m=0 m=0
Teorema 6.2.1. O metodo de passo multiplo e de ordem p 1 se e somente se
(w) (w) ln w = O(|w 1|p+1 ) w1
Secao 6.2: Ordem e convergencia de metodos de passo multiplo 32

Demonstracao. Expandindo u(t + mh) e u (t + mh) como serie de Taylor,



X u(k) (t)
u(t + mh) = mk h k (6.2.5)
k!
k=0

X u(k+1) (t) k k
u (t + mh) = m h (6.2.6)
k!
k=0

X u(k) (t) k1 k1
u (t + mh) = m h (6.2.7)
(k 1)!
k=1

Assumindo que u(t) e analtica temos


s
X s
X
(u(t)) = am u(t + mh) h bm u (t + mh)
m=0 m=0
s s
X X u(k) (t) X X u(k) (t) k1 k1
= am mk h k h bm m h
m=0
k! m=0
(k 1)!
k=0 k=1
s X
s (k)
X X u (t) k k u(k) (t) k1 k1
=( am )u(t) + am m h hbm m h
m=0
k! (k 1)!
k=1 m=0
s (k) s
X X u (t) k X
=( am )u(t) + h (am mk bm kmk1 )
m=0
k! m=0
k=1
Para o metodo ser de ordem p e necessario e suficiente que todos termos ate ordem
hp sejam zero, ou seja,
Xs
am = 0 (6.2.8)
m=0
s
X
(am mk bm kmk1 ) = 0, k = 1, . . . , p (6.2.9)
m=0

Por outro lado, fazendo w = ez (quando z > 0 temos w > 1), e expan-
Secao 6.2: Ordem e convergencia de metodos de passo multiplo 33

dindo em serie de Taylor


s
X s
X
(ez ) z(ez ) = am emz z bm emz (6.2.10)
m=0 m=0
Xs
= (am zbm )emz (6.2.11)
m=0
s
X X mk z k
= (am zbm )( ) (6.2.12)
m=0
k!
k=0
s
X zk X
= am mk zbmmk (6.2.13)
k! m=0
k=0
k Xs
X z
= am mk bm kmk1 (6.2.14)
k! m=0
k=0
Temos entao que
(ez ) z(ez ) = O(z p+1 ), z > 0 (6.2.15)
p+1
(w) ln w(w) = O(|w 1| ), w > 1 (6.2.16)
se e somente se o metodo e de ordem p, ou seja, as condicoes (6.2.8) sao validas.

6.2.1. Convergencia de metodos de passo multiplo


Alternativamente,
(u(t)) = O(hp+1 )
para u(t) arbitraria se e somente se (q(t)) = 0 q(t) P p .
Isto e equivalente a (k (t)) = 0 para a base polinomial k (t) = tk , k =
0, . . . , p.
Por exemplo, para 0 (t) = 1 obtemos
s
X s
X
(0 ) = am 0 (t + mh) h bm 0 (t + mh) (6.2.17)
m=0 m=0
Xs
= am = 0 (6.2.18)
m=0

e para k (t) = tk , obtemos


s
X s
X
(k ) = am k (t + mh) h bm k (t + mh) (6.2.19)
m=0 m=0
Xs s
X
= am (mh)k h bm k(mh)k1 (6.2.20)
m=0 m=0
s
X
= hk am mk bm kmk1 (6.2.21)
m=0
(6.2.22)
Secao 6.2: Ordem e convergencia de metodos de passo multiplo 34

que e igual a zero para k = 1, . . . , p sob a condicao (6.2.8).


Exemplo 17.
Considere o metodo (6.1.7) de Adams-Bashforth de ordem 2.
h
un+2 = un+1 + [3fn+1 fn ] (6.2.23)
2
Podemos calcular (faca = w 1),
3 1
(w) (w) ln w = (w2 w) ( w ) ln w (6.2.24)
2 2
3 1 1
= ( + ) (1 + )( 2 + 3 + . . .)
2
(6.2.25)
2 2 3
5 3 4
= + O( ) (6.2.26)
12
o qual valida a ordem 2 para o metodo.

Exerccio 6.3. Verifique que o metodo (6.1.8) de Adams-Bashforth para s = 3 e


realmente de ordem 3.
Exerccio 6.4. Verifique que o metodo (6.1.6) de Adams-Bashforth para s = 4 e
realmente de ordem 4.
Exerccio 6.5. Verifique que o metodo
h
un+2 3un+1 + 2un = [13fn+2 20fn+1 5fn ] (6.2.27)
12
possui ordem 2, porem nao e convergente (sem usar o proximo teorema). (Dica: use a
EDO u (t) = 0, u(0) = 1).

6.2.2. Teorema de equivalencia de Dahlquist


Dizemos que um polinomio obedece a condicao da raiz se todas suas razes possuem
|z| 1 e as razes com |z| = 1 sao simples.
Teorema 6.2.2 (Teorema de equivalencia de Dahlquist). Suponha que o erro em
u1 , . . . , us1 tende a zero quando h > 0. O metodo de passo multiplo e convergente
se e somente se o erro e de ordem p 1 e (z) obedece a condicao da raiz.
Por exemplo o metodo (6.2.27) possui
(w) = (w 1)(w 2) (6.2.28)
violando a condicao da raiz.
Exemplo 18.
Prove que o metodo de passo 3
27 27
un+3 + un+2 un+1 un = (6.2.29)
11 11
h
= [3fn+3 + 27fn+2 + 27fn+1 + 3fn ] (6.2.30)
11
Secao 6.3: O metodo de Adams-Moulton 35

possui ordem 6 porem nao e convergente.

Solucao: Verifique que o metodo e ordem 6. Entretanto o polinomio


27 27
(w) = w3 + w2 w 1 (6.2.31)
11 11
! !
19 + 4 15 19 4 15
= (w 1) w + w+ (6.2.32)
11 11
que falha na condicao da raiz. 

Exerccio 6.6. Prove que todos os metodos de Adams-Bashforth satisfazem a condicao


da raiz.

6.2.3. A primeira barreira de Dahlquist


Um metodo de passo multiplo possui 2s + 1 coeficientes am ,bm . Poderamos definir
tais coeficientes de tal forma a obter ordem maxima.
Conclusao? Poderamos obter metodos com s estagios e ordem 2s.
Entretanto tal metodo (implcito de passo s e ordem 2s) nao e convergente para
s 3 (como o metodo (6.2.29) visto acima).
E possvel provar que a ordem maxima de convergencia para um metodo de
passo multiplo s e no maximo 2(s + 2)/2 para metodos implcitos e s para metodos
explcitos. Esta e a primeira barreira de Dahlquist.

6.3. O metodo de Adams-Moulton


Quando as = 1, as1 = 1, am = 0 para m = s 2, . . . , 0, bs 6= 0 temos um metodo
de Adams-Moulton do tipo
Xs
un+s = un+s1 + h bm fn+m (6.3.1)
m=0
Note que os metodos de Adams-Moulton sao implcitos pois bs 6= 0.
Exemplo 19.
Vamos obter o metodo de Adams-Moulton para s = 3 como
Z tn+4
un+3 = un+2 + f (t, u(t)) dt (6.3.2)
tn+3
3
X
un+3 = un+2 + h bm fn+m (6.3.3)
m=0
un+3 = un+2 + h[b3 fn+3 + b2 fn+2 + b1 fn+1 + b0 fn ] (6.3.4)
Para isso devemos obter [b3 , b2 , b1 , b0 ] tal que o metodo seja exato para polinomios ate
ordem 3. Podemos obter esses coeficientes de maneira analoga a obter os coeficientes
de um metodo para integracao como em 3.1.
Secao 6.4: Metodo BDF 36

Supondo que os nos tk estejam igualmente espacados, e para facilidade dos


calculos, como o intervalo de integracao 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
Z h
1 dt = h = h(b0 (1) + b1 (1) + b2 (1) + b3 (1))
0
h
h2
Z
t dt = = h(b0 (h) + b1 (0) + b2 (h) + b3 (2h))
0 2
h
h3
Z
t2 dt = = h(b0 (h)2 + b1 (0)2 + b2 (h)2 + b3 (2h)2 )
0 3
h
h4
Z
t3 dt = = h(b0 (h)3 + b1 (0)3 + b2 (h)3 + b3 (2h)3 )
0 4
que pode ser escrito na forma matricial

1 0 1 1 b0 1
1 0 1 2 b1 1/2
= (6.3.5)
1 0 1 4 b2 1/3
1 0 1 8 b3 1/4
Resolvendo o sistema obtemos
1 5 19 9
[b0 , b1 , b2 , b3 ] = [ , , , ,]
24 24 24 24
fornecendo a regra
h
un+3 = un+2 + [9fn+3 + 19fn+2 5fn+1 + fn ] (6.3.6)
24

Exerccio 6.7. Encontre o metodo de Adams-Moulton para s = 2.


Exerccio 6.8. Encontre o metodo de Adams-Moulton para s = 3.

Exemplo 20.
Um metodo de ordem s explcito e chamado de metodo de Nystron se (w) = ws2 (w2
1).
Exemplo 21.
Um metodo de ordem s + 1 implcito e chamado de metodo de Milne se (w) =
ws2 (w2 1).

6.4. Metodo BDF


Um metodo de ordem s com s estagios e chamado de metodo BDF-Backward Dif-
ferentiation Formula se (w) = bs ws , onde bs R.
Secao 6.4: Metodo BDF 37

Lema 6.4.1. Para um metodo BDF temos


s
!1 s
X 1 X 1 sm
bs = , (w) = bs w (w 1)m (6.4.1)
m=1
m m=1
m

Demonstracao. Sendo p = s a ordem, o teorema 6.2.1 implica que


(w) bs ws ln w = O(|w 1|s+1 ), w > 1
Substituindo v = 1/w,
1 bs 1 1
( ) s ln( ) = O(| 1|s+1 ), v > 1
v v v v
1
v s ( ) + bs ln v = O(|1 v|s+1 ), v > 1
v
Como
s
X (1)m1
ln v = ln [1 + (v 1)] = (v 1)m + O(|v 1|s+1 )
m=1
m
deduzimos que
s
s
X (1)m1
v (1/v) = bs (v 1)m
m=1
m
Portanto
s
X (1)m
(w) = bs v s (v 1)m (6.4.2)
m=1
m
s
X (1)m s 1
= bs w (w 1)m (6.4.3)
m=1
m
s
X 1 sm
= bs w (w 1)m (6.4.4)
m=1
m
Para completar a prova, falta derivar a forma explcita para bs , que segue impondo
as = 1 em (w).

Exemplo 22.
Mostre que o metodo BDF com s = 3 e
18 9 2 6
un+3 un+2 + un+1 un = hfn+3 (6.4.5)
11 11 11 11

Solucao: Para s = 3 temos que


1 6
bs = 1 1 =
1+ 2 + 3
11
e
6 2 1 1
(w) = [w (w 1) + w(w 1)2 + (w 1)3 ] (6.4.6)
11 2 3
18 9 2
= w3 w2 + w (6.4.7)
11 11 11
38


Teorema 6.4.2. O polinomio (w) em (6.4.1) satisfaz a condicao da raiz e o metodo
BDF e convergente se e somente se 1 s 6.
Exerccio 6.9. Mostre que o metodo BDF com s = 1 e o metodo de Euler implcito.
Exerccio 6.10. Mostre que o metodo BDF com s = 2 e
4 1 2
un+2 un+1 + un = hfn+2 (6.4.8)
3 3 3
Exerccio 6.11. Mostre que os metodos BDF com s = 2 e s = 3 sao convergentes.
Exerccio 6.12. Determine a ordem do metodo de passo 3,
h
un+3 un = [3fn+3 + 9fn+2 + 9fn+1 + 3fn ] (6.4.9)
8
Este metodo e convergente?
Exerccio 6.13. Aproxime a solucao do PVI
du
= sin t (6.4.10)
dt
u(0) = 1 (6.4.11)
para t [0, 10]. Utilize o metodo de Adams-Bashforth com s = 3 e plote os resultados
como nos exerccios anteriores. Compare os resultados utilizando nos passos iniciais o
metodo de:
a. Euler;
b. Taylor;
c. Runge-Kutta.

Aula 8 .
Metodos de Runge-Kutta
.
Butcher, Iserles

Captulo 7:
Metodos de Runge-Kutta
Bibliografia: Cap.3 [5], Sec.23 [1].
Secao 7.1: Metodo de Runge-Kutta Explcito 39

7.1. Metodo de Runge-Kutta Explcito


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
Z tn+1
un+1 = un + f (t, u(t)) dt (7.1.3)
tn
Um metodo de passo simples utiliza fn e fn+1 . Queremos aumentar a ordem do metodo,
porem utilizando somente valores de f entre [tn , tn+1 ].
un un+1
| |
tn tn+1
1 2
Z tn+1
un+1 = un + f (t, u(t)) dt (7.1.4)
tn
Z 1
= un + h f (tn + h, u(tn + h )) d (7.1.5)
0

X
= un + h bj f (tn + cj h, u(tn + cj h)) (7.1.6)
j=1

Denote por j = tn + cj h, Uj u(j ) e Fj f (j , Uj ), j = 1, . . . , . Inicie


com U1 = un (c1 = 0) como a solucao no passo anterior e aproxime Uj , j = 2, . . . , ,
com uma combinacao linear de F1 , . . . , Fj1 , ou seja,

U1 = u n (7.1.7)
U2 = un + ha21 F1 (7.1.8)
U3 = un + ha31 F1 + ha32 F2 (7.1.9)
= ... (7.1.10)
1
X
U = u n + h ai Fi (7.1.11)
i=1
X
un+1 = un + h bi Fi (7.1.12)
i=1

onde A = (aij ) e a matriz de RK (triangular inferior com diagonal zero), bj sao os


pesos RK e cj sao os nos RK.
Os coeficientes podem ser resumidos em uma tabela na forma
c1 a11 a12
c A
T = c2 a21 a22
b
b1 b2
Secao 7.2: Metodo de RK = 2 40

7.2. Metodo de RK = 2
Assumindo suavidade suficiente em f , expanda em serie de Taylor
F2 = f (tn + c2 h, U2 ) (7.2.1)
= f (tn + c2 h, un + a21 hfn ) (7.2.2)
fn fn
= fn + h[c2 + a21 fn ] + O(h2 ) (7.2.3)
t u
fazendo com que (7.1.12) se torne
un+1 = un + h[b1 F1 + b2 F2 ] (7.2.4)
fn fn
= un + h(b1 + b2 )fn + h2 b2 [c2 + a21 fn ] + O(h3 ) (7.2.5)
t u
Usando a EDO e derivando-a obtemos
ut = f (t, u) (7.2.6)
utt = ft + fu ut = ft + fu f (7.2.7)
e expandindo em serie de Taylor a solucao exata em tn+1 ,
h2
u(tn+1 ) = un + hut + utt + O(h3 ) (7.2.8)
2
h2
= un + hfn + [ft + fu f ] + O(h3 ) (7.2.9)
2
e comparando com (7.2.5) obtemos as condicoes para ordem p 2,
1
b1 + b2 = 1, b2 c2 = a21 = c2 (7.2.10)
2
O sistema possui mais de uma solucao. Algumas escolhas comuns sao
0 0 0
1 1
2 2 , 23 23 e 1 1
1 3 1 1
0 1 4 4 2 2
onde a ultima tabela fornece o metodo de Heun (ou Euler modificado):
U1 = u n (7.2.11)
U2 = un + hF1 (7.2.12)
1 1
un+1 = un + h[ F1 + F2 ] (7.2.13)
2 2
Note que o metodo e de ordem p = 2 pois os termos que sobraram sao de O(h3 ).
Seguindo um procedimento similar (veja [5],p39-40), podemos obter as condicoes
para um metodo com = 3 e ordem p = 3, que sao
1
b1 + b2 + b3 = 1,b2 c2 + b3 c3 = (7.2.14)
2
1 1
b2 c22 + b3 c23 = ,b3 a32 c2 = (7.2.15)
3 6
Alguns exemplos de metodos de RK de 3 estagios sao o metodo classico de
Runge-Kutta
Secao 7.3: Metodo de Runge-Kutta implcito (IRK) 41

0
1 1
2 2
1 1 2
1 4 1
6 6 6
e o metodo de Nystrom
0
2 2
3 3
2 2
3 0 3
2 3 3
8 8 8
Com paciencia e a ajuda de um software algebrico (como Maple) e possvel
encontrar um metodo de quarta ordem e = 4 estagios como
0
1 1
2 2
1 1
2 0 2
1 0 0 1
1 2 2 1
6 6 6 6

7.3. Metodo de Runge-Kutta implcito (IRK)


No conjunto de equacoes (7.1.7)-(7.1.12), Uk depende em valores conhecidos F1 , . . . , Fk1
tornando o metodo explcito.
Entretanto se Uk depender de F1 , . . . , F temos um metodo implcito como
X
Uj = u n + h aji Fi , j = 1, . . . , (7.3.1)
i=1

X
un+1 = un + h bi Fi (7.3.2)
i=1

onde A = (aij ) e a matriz de RK. E necessario que



X
aji = cj , j = 1, . . . , (7.3.3)
i=1
para que o metodo possua ordem p 1.
Exemplo 23.
Um metodo de Runge-Kutta Implcito (IRK) de dois estagios e dado por
2
U1 = un + h/4[f (tn , U1 ) f (tn + h, U2 )] (7.3.4)
3
2
U2 = un + h/12[3f (tn, U1 ) + 5f (tn + h, U2 )] (7.3.5)
3
2
un+1 = un + h/4[f (tn , U1 ) + 3f (tn + h, U2 )] (7.3.6)
3
que possui uma tabela como
0 14 41
2 1 5
3 4 12
1 3
4 4
Secao 7.4: Estimativa da ordem de convergencia 42

Exerccio 7.1. Mostre que o metodo IRK com 2 estagios do exemplo anterior e de
ordem 3.
Exerccio 7.2. Aproxime a solucao do PVI
du cos(t + u)
= (7.3.7)
dt 1 + u2
u(0) = 0 (7.3.8)
utilizando o metodo de Runge Kutta de 4 estagios. Escolha apropriadamente h e ilustre
graficamente a convergencia.
a. Plote a solucao para diferentes valores de h.
b. Repita o exerccio anterior utilizando o metodo de Euler com diferentes valores
de h, ate T = 10 de tal forma que a solucao seja tao proxima da solucao obtiva
via RK quanto possvel.
c. Compare o numero de iteracoes, para esse exerccio, entre o metodo de Euler e o
de Runge-Kutta.

Exerccio 7.3. Aproxime a solucao 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 metodo de Runge Kutta de 4 estagios. Escolha apropriada-
mente h e ilustre graficamente a convergencia.
a. Transforme o PVI num sistema de EDOs de primeira ordem nas variaveis [y1 (t), y2 (t)] =
[u(t), u (t)].
b. Plote a solucao u(t).
c. Plote a solucao no espaco de fases [y1 , y2 ].

7.4. Estimativa da ordem de convergencia


Ferziger and Peric, Computational Methods for Fluid Dynamics, p.335.
Raramente temos a solucao exata u(t) para calcular o erro obtido na solucao
numerica. Entretanto, se a solucao e suave o suficiente e o espacamento h e pe-
queno suficientemente, podemos usar o seguinte procedimento para estimar a ordem do
metodo (ou ainda, o erro na solucao).
Como visto nos exemplo numericos anteriores, em graficos na escala loglog, se
h e grande nao obtemos a ordem de convergencia utilizada (por exemplo, encontramos
que o metodo de Euler possui ordem p 0.7 onde deveria ser 1). A medida que
h decresce se aproximando de 0, a ordem de convergencia tende a se aproximar de
p 1. (Entretanto h nao pode ficar muito pequeno a ponto que as operacoes de ponto
flutuante atrapalhem na convergencia).
Portanto existe uma faixa hmin < h < hmax onde o metodo apresenta a ordem
desejada. Essa regiao depende do metodo e do PVI estudado.
43

Mas se estivermos nessa regiao podemos aproximar a ordem do metodo da se-


guinte forma: Considere a solucao para um determinado t = T fixo, u(T ). Considere
tambem as aproximacoes das solucoes obtidas com espacamento h, denotada por uh ; a
aproximacao obtida com espacamento dividido por 2, h/2, denotada por uh/2 ; a apro-
ximacao obtida com espacamento h/4, denotada por uh/4 ,. . . e assim por diante, todas
calculadas em t = T .

7.4.1. Metodo 1
Podemos utilizar uma solucao bem refinada, por exemplo, uh/16 como sendo uma boa
aproximacao da solucao exata e supormos que u = uh/16 . Desta forma podemos
aproximar o erro por eh = ku(h) u k e a ordem do metodo e estimada como
log(eh ) log(eh/2 )
p (7.4.1)
log(h) log(h/2)
 h 
log eeh/2
(7.4.2)
log(h/(h/2))
 h 
log eeh/2
(7.4.3)
log(2)
 h 
ku u k
log ku h/2 u k
(7.4.4)
log(2)
(7.4.5)

7.4.2. Metodo 2
Segundo Ferziger/Peric/Roache, podemos tambem estimar p diretamente de
 h/2 
log kukuh/4 uh/2k
uhk

p (7.4.6)
log(2)
(7.4.7)

Aula 9, 10 e 11 .
Regioes de Estabilidade
.
Butcher, Iserles

Captulo 8:
Secao 8.1: Equacoes Stiff 44

Domnio de Estabilidade

8.1. Equacoes Stiff


A definicao nao e exatamente clara:
Uma equacao diferencial e stiff se alguns metodos numericos sao numerica-
mente instaveis, a menos que o passo seja extremamente pequeno.
Considere a EDO linear
 
100 1
u = Au, u(0) = u0 , A= (8.1.1)
0 1/10
com a decomposicao A = V V 1 onde
   
1 1 100 0
V = , = (8.1.2)
0 999/10 0 1/10

A solucao exata e
e100t
 
At t 1 t 0
u(t) = e u0 = V e V u0 , e = (8.1.3)
0 e0.1t
Ou seja, existem vetores x1 e x2 dependentes de u0 (exerccio 8.1) tal que
u(t) = e100t x1 + e0.1t x2 , t0 (8.1.4)
100t
Note que a medida que t avanca o termo e cai rapidamente enquanto que e0.1t
0.1t
e um pouco mais lento levando a u(t) e x2 .
Aplicando o metodo de Euler obtemos solucao aproximada
u1 = u0 + hAu0 = (I + hA)u0 , (8.1.5)
2
u2 = (I + hA)u1 = (I + hA) u0 , (8.1.6)
.. ..
.=. (8.1.7)
n
un = (I + hA) u0 (8.1.8)
n 1
un = V (I + h) V u0 (8.1.9)
(1 100h)n
 
0
un = V V 1 u0 (8.1.10)
0 (1 0.1h)n
de onde segue que a solucao aproximada e dada por
un = (1 100h)nx1 + (1 0.1h)n x2 (8.1.11)
onde x1 e x2 sao os mesmos vetores que aparecem na solucao exata.
Suponha que h > 1/50. Entao |1 100h| > 1 e a solucao aproximada cresce
geometricamente (diferente da solucao exata).
Suponha que escolhemos a condicao inicial igual ao autovetor
 
1
u0 =
999/10
correspondente a 2 = 0.1. Entao x1 = 0, x2 = u0 e
un = (1 0.1h)n u0 , n = 1, 2, . . . (8.1.12)
Secao 8.1: Equacoes Stiff 45

que converge para 0 quando n e h < 20.


Suponha que utilizamos h = 1. O metodo deveria convergir (pois h < 20)
entretanto pequenos erros de arredondamento cometidos pela maquina a cada iteracao
sao amplificados pelo termo (1 100h)n que rapidamente destroi a solucao.
Exemplo 24.
Resolva o sistema (8.1.1) utilizando o metodo de Euler no Matlab e verifique as ob-
servacoes.
Nem todo metodo numerico possui tal comportamento. Considere a regra tra-
pezoidal aplicada1 em u = Au,
   
1 1
I hA u1 = I + hA u0 (8.1.13)
2 2
I + 12 hA
 
u1 = u0 (8.1.14)
I 12 hA
2
I + 12 hA I + 12 hA
  
u2 = u1 = u0 (8.1.15)
I 12 hA I 21 hA
.. ..
.=. (8.1.16)
1 n
I + 2 hA

un = u0 (8.1.17)
I 12 hA
e substituindo a fatoracao deduzimos
 n  n
1 50h 1 h/20
un = x1 + x2 (8.1.18)
1 + 50h 1 + h/20
Como

1 50h 1 h/20
1 + 50h < 1 e 1 + h/20 < 1 (8.1.19)

para todo h > 0, conclumos que un 0 quando n . Isto recupera o correto


comportamento assintotico da EDO sem depender da escolha de h.
A regra trapezoidal nao requer restricao no passo h para evitar instabilidade
(ainda assim e necessario escolher h > 0 pequeno tal que o erro local seja razoavel).
Assim a equacao (8.1.1) e um exemplo de uma equacao stiff. Note que esta
definicao nao e precisa e varia na literatura.

|1 |
Definicao 8.1.1. A razao |n|
entre o maior e menor autovalor (em modulo)
do sistema de EDOs (ou dos autovalores da matriz Jacobiana de um sistema
geral) e chamada stiffness ratio.

|100|
No exemplo discutido a stiffness ratio e |1/10| = 103 . Note que para o caso nao
linear a analise pode se tornar complicada.
1 (exerccio 8.2)
Secao 8.2: Domnio de Estabilidade Linear 46

Exerccio 8.1. Encontre os vetores x1 e x2 dependentes de u0 e independentes de t


discutidos no texto.
Exerccio 8.2. No exemplo do metodo do trapezio obtemos a expressao
 n
I +B
(8.1.20)
I B
a. Verifique que tal expressao faz sentido somente se (I + B) e (I B)1 comutam.
b. Prove que (I + B) e (I B)1 comutam.

8.2. Domnio de Estabilidade Linear


Suponha que um metodo numerico seja aplicado em
u = u, t 0, u(0) = 1, (8.2.1)
t
onde C que possui solucao exata u(t) = e . Note que limt0 u(t) = 0 se e
somente se < 0. Nao estamos interessados no momento em solucoes que crescem
rapidamente ( > 0).

Definicao 8.2.1. O domnio de estabilidade linear D do metodo numerico


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


assintotico de (8.2.1) e recuperado, tal que essa equacao seja estavel.
Exemplo 25.
Utilizando o Metodo 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. Conclumos entao 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 EDOs,


u = Au, u(0) = u0 , (8.2.4)
podemos obter que
d
X
un = (1 + hk )n xk , n = 0, 1, . . . (8.2.5)
k=1

onde A = V V 1 , V e a matriz dos autovetores e = diag(1 , . . . , d ).

Definicao 8.2.2. O sistema de EDOs (8.2.4) e assintoticamente estavel


se e somente se k < 0, k = 1, . . . , d.
Secao 8.2: Domnio de Estabilidade Linear 47

1.5

0.5

0.5

1.5

2
3 2 1 0 1

Figura 8.1: Regiao de estabilidade para o metodo de Euler, |1 + z| < 1

Para que o metodo de Euler seja estavel, e necessario que h seja escolhido tal
que |1 + hk | < 1, k. Ou seja, todos os produtos hk devem estar em DEuler . Ou
seja, h deve ser escolhido de acordo com os autovalores do sistema2 .
Tal analise pode ser facilmente estendida para o sistema nao homogeneo u =
Au + b (veja exerccios).
Para o caso EDO nao-linear, seja
u = f (t, u), t t0 , u(t0 ) = u0 (8.2.6)
e comum requerer que no passo n
hn,1 , hn,2 , . . . , hn,d D (8.2.7)
onde n,k sao os autovalores da matriz Jacobiana
f (tn , un )
Jn := ,
u
baseado na hipotese que o comportamento local da EDO e modelado por
u = un + Jn (u un ) (8.2.8)
Esta pratica nao e exata e fornece apenas uma ideia local do comportamento da EDO
(podendo levar a conclusoes erroneas).
Exemplo 26.
2 Note que estamos assumindo que existe a decomposicao em autovalores. Poderamos usar a

forma de Jordan o que dificultaria a demonstracao.


Secao 8.3: Estabilidade dos metodos de Taylor 48

Utilizando o metodo trapezoidal para solucionar (8.2.1) obtemos


 n
1 + h/2
un = , n = 0, 1, . . . (8.2.9)
1 h/2
Conclumos entao que

1 + z/2
DT r = {z C :
< 1} (8.2.10)
1 z/2
Note que DT r = C , o semiplano negativo. Portanto o metodo do trapezio imita a
estabilidade assintotica da EDO linear sem restricao no passo h.

Definicao 8.2.3. Um metodo numerico e chamado A-estavel se


{z C : z < 0} D

Exemplo 27.
A regra do trapezio e A-estavel (incondicionalmente estavel) e o metodo de Euler e
estavel somente para |1 + h| < 1.
Exerccio 8.3. Mostre que o metodo theta e A-estavel se e somente se 0 21 .

8.3. Estabilidade dos metodos de Taylor


Exerccio 8.4. Prove que para um metodo de Taylor de ordem p para a EDO (8.2.1)
temos
z2 z3 zp
p(z) = 1 + z + + + ... + (8.3.1)
2! 3! p!
onde un = (p(z))n u0 e a regiao de estabilidade e dada por
DT = {z C : |p(z)| < 1} (8.3.2)
Plote as regioes de estabilidade para o metodo de Taylor para p = 1, . . . , 6 no
mesmo grafico.

8.4. Estabilidade dos metodos de Runge-Kutta


Denote

U1 1
~ := . ~1 := .
U .. , .. (8.4.1)
U 1
Secao 8.4: Estabilidade dos metodos de Runge-Kutta 49

4
4 3 2 1 0 1 2 3 4

Figura 8.2: Regiao de estabilidade paras os metodos de Taylor de ordem 1, . . . , 4


(interior as curvas). A curva mais interna e para p = 1

Aplicando o metodo de Runge-Kutta (7.3.1) na EDO linear (8.2.1) obtemos



X
Uj = u n + h aji Fi , j = 1, . . . , (8.4.2)
i=1
X
Uj = un + h aji Ui , (8.4.3)
i=1
~ = ~1un + hAU
U ~, (8.4.4)
~ = ~1un ,
(I hA)U (8.4.5)
~ = (I hA)1~1un ,
U (8.4.6)
e assumindo que I hA nao e singular,
X
un+1 = un + h bj Uj (8.4.7)
j=1

un+1 = (1 + hbT (I hA)1~1)un , n = 0, 1, . . . (8.4.8)


Denote por P o conjunto de todos polinomios ate grau e por P/ o conjunto
de todas funcoes racionais p/q onde p P e q P .
Lema 8.4.1. Para todo metodo de Runge-Kutta (7.3.1) existe r P/ tal que
un = [r(h)]n , n = 0, 1, . . . .
Alem disso, se o metodo de Runge-Kutta e explcito entao r P
Secao 8.4: Estabilidade dos metodos de Runge-Kutta 50

Demonstracao. Veja prova em [5], p. 60.

Lema 8.4.2. Suponha que um metodo numerico aplicado a (8.2.1) produz uma
sequencia un = [r(h)]n , n = 0, 1, . . . onde r e uma funcao arbitraria. Entao
D = {z C : |r(z)| < 1}.
Demonstracao. A prova segue direto da definicao de D.
Corolario 1. Nenhum metodo de Runge-Kutta explcito (ERK) pode ser A-estavel.
Demonstracao. Dado um metodo 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 polinomio, com excecao r(z) c (1, 1)
pode ser limitado por 1 no semiplano negativo z < 0, o que exclui A-estabilidade.

Exemplo 28.
Considere o metodo IRK com tabela
1
0 4 41
2 1 5
3 4 12
1 3
4 4
Substituindo em (8.4.9) obtemos a funcao
1 + 13 z
r(z) = (8.4.10)
1 23 z + 16 z 2
Para checar A-estabilidade, representamos z = ei , > 0, 12 < < 32 e checamos
se |r(ei ) < 1|:
1 + 13 z


1 2 z + 1 z2 < 1 (8.4.11)

3 6

1 + 1 z < 1 2 z + 1 z 2

(8.4.12)
3 3 6
2 2
1 + 1 ei < 1 2 ei + 1 2 e2i

(8.4.13)
3 3 6
Secao 8.4: Estabilidade dos metodos de Runge-Kutta 51

como |w|2 = ww,


2 2 4 cos 2 4 2 4
1 + cos + <1 cos + 2 ( + ) 3 cos + (8.4.14)
3 9 3 3 9 9 36
6 2 3 1 3 1
cos + cos < 2 ( cos 2 + ) + 4 (8.4.15)
3 9 3 9 36
2 3 2 4
2 cos + cos < (cos 2 + 1) + (8.4.16)
9 3 36
1 2 22 2 4
2 cos (1 + ) < cos + (8.4.17)
9 3 36
4

2 cos (9 + 2 ) < 62 cos2 + (8.4.18)
4
A inequacao e verdadeira para z C , pois temos
1 3
< < cos < 0
2 2
e os outros termos sao positivos.
O que demonstra que o metodo e A-estavel.

Exemplo 29.
O metodo IRK com tabela
1 5 1
3 12 12
3 1
1 4 4
3 1
4 4
possui a mesma funcao
1 + 13 z
r(z) = (8.4.19)
1 23 z + 16 z 2
que o metodo anterior, portanto tambem e A-estavel. Sua regiao de estabilidade e
exterior a curva da figura 8.3.

Lema 8.4.3. Seja r uma funcao racional que nao e constante. Entao z C
temos |r(z)| < 1 se e somente se todos os polos de r tem parte real positiva e t R
temos |r(it)| 1.
Exemplo 30.
Os polos de
1 + 13 z
r(z) = (8.4.20)
1 23 z + 16 z 2

sao 2i 2; que estao no semiplano complexo com parte real positiva. Alem disso,
|r(it)| 1, t R pois
2 2
1 + 1 it 1 2 it 1 t2 , t R,

(8.4.21)
3 3 6
1 1 1
1 + t2 1 + t2 + t4 , t R. (8.4.22)
9 9 36
Secao 8.4: Estabilidade dos metodos de Runge-Kutta 52

6
6 4 2 0 2 4 6

Figura 8.3: Regiao de estabilidade (exterior a curva) para o metodo IRK com
1+ 1 z
polinomio r(z) = 1 2 z+3 1 z2
3 6

implicando que o metodo e A-estavel.

Exerccio 8.5. Prove o lema anterior.


Exerccio 8.6. Prove que para um metodo Runge-Kutta explcito de estagios possui
z2 z3 zp
r(z) = 1 + z + + + ... + (8.4.23)
2! 3! p!
onde a regiao de estabilidade e dada por
DT = {z C : |r(z)| < 1} (8.4.24)
Plote as regioes de estabilidade para os metodos de Runge-Kutta para =
1, . . . , 6 no mesmo grafico.
Exerccio 8.7. Calcule explicitamente a funcao r(z) para os metodos de Runge-Kutta
dados pelas tabelas abaixo,
0 0 0
2 1 1
a. 3 3 3
1 3
4 4
1 1
6 6 0
5 2 1
b. 6 3 6
1 1
2 2
Secao 8.5: Estabilidade dos metodos de passo multiplo 53

0 0 0 0
1 1 1
2 4 4 0
c.
1 0 1 0
1 4 1
6 6 6
Estes metodos sao A-estaveis? Plote a regiao de estabilidade de cada metodo.

8.5. Estabilidade dos metodos de passo multiplo


Suponha que um metodo de passo multiplo (6.2.1) seja aplicado a EDO linear (8.2.1)
obtendo
Xs Xs
am un+m = h bm fn+m (8.5.1)
m=0 m=0
Xs Xs
am un+m = h bm un+m (8.5.2)
m=0 m=0
que pode ser escrita como
Xs
(am hbm )un+m = 0, (8.5.3)
m=0
s
X
m un+m = 0, n = 0, 1, . . . (8.5.4)
m=0
Similarmente a equacoes diferenciais, a equacao a diferencas possui solucao como o
polinomio caracterstico
Xs
(w) := m wn . (8.5.5)
m=0
P
Sejam w1 , . . . , wq as razes de (w) com multiplicidade k1 , . . . , kq , onde ki = s. A
solucao da equacao a diferencas e
q kX
X i 1

un = ( cij nj )win , n = 0, 1, . . . (8.5.6)


i=1 j=0

onde as constantes cij sao unicamente determinadas pelos valores iniciais u0 , . . . , us1 .
Lema 8.5.1. Suponha que as razes (em funcao de w) de
s
X
(z, w) := (am bm z)wm , zC (8.5.7)
m=0

sao w1 (z), . . . , wq(z) (z) com multiplicidade k1 (z), . . . , kq(z) (z) respectivamente. O
metodo de passo multiplo e A-estavel se e somente se
|wi (z)| < 1, i = 1, . . . , q(z), z C . (8.5.8)
Secao 8.5: Estabilidade dos metodos de passo multiplo 54

Lema 8.5.2. O metodo de passo multiplo e A-estavel se e somente se bs > 0 e


|w1 (it)|, . . . , |wq(it) (it)| 1, tR (8.5.9)
onde wk sao as razes de (z, ) do lema 8.5.1.

Teorema 8.5.3. O metodo BDF de 2 estagios e A-estavel.


Teorema 8.5.4 (A segunda barreira de Dahlquist). A ordem maxima de um metodo
de passo multiplo A-estavel e dois.
Exemplo 31.
O metodo BDF de 2 estagios
4 1 2
un+2 un+1 + un = hfn+2 (8.5.10)
3 3 3
para o PVI u = u, que possui polinomio caracterstico
4 1 2
w2 w + = h(w2 ) (8.5.11)
3 3 3
ou
2 4 1
(w) := (1 z )w2 w + . (8.5.12)
3 3 3
O polinomio (w) possui duas razes (encontradas com o Maple)
4 + 2(1 + 2z)1/2
w1 = , (8.5.13)
6 + 4z
4 2(1 + 2z)1/2
w2 = (8.5.14)
6 + 4z
Para que o metodo seja estavel, e necessario que |w1 | < 1 e |w2 | < 1.
Tal condicao e satisfeita para a regiao dentro da curva na figura 8.4.

Exemplo 32.
Plote a regiao de estabilidade do metodo de BDF de ordem 2 e 3.
Exemplo 33.
Plote a regiao de estabilidade do metodo de Adams-Bashforth de ordem 2 e 3.
Exemplo 34.
Plote a regiao de estabilidade do metodo de Adams-Moulton de ordem 2 e 3.

Aula 12-15 .
Equacoes Diferenciais Parciais Hiperbolicas
.
Strikwerda: Cap. 1
55

y~ 0
0 1 2 3 4
x~

-1

-2

Figura 8.4: Regiao de estabilidade (exterior a curva) para o metodo BDF s = 2

Captulo 9:
Equacoes Diferenciais Parciais hiperbolicas
9.1. Equacao da onda unidirecional
Considere a equacao da onda unidirecional (ou equacao de adveccao)
ut + aux = 0 (9.1.1)
u(t = 0, x) = u0 (x) (9.1.2)
como exemplo mais simples de EDP hiperbolica. Este e um Problema de Valor Inicial-
PVI.
A solucao desta equacao e
u(t, x) = u0 (x at) (9.1.3)
A solucao 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 sao chamadas carac-
tersticas.
O parametro a e a velocidade de propagacao da onda ao longo da caracterstica.
Apesar da equacao fazer sentido somente se u e diferenciavel, u0 nao precisa ser
diferenciavel. Em geral, solucoes descontnuas sao permitidas.
Secao 9.2: Sistemas de EDPs hiperbolicas 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 substituicao t = e x = + a , e u(, ) = u(t, x). Assim
t x
u = ut + ux (9.1.6)

= ut + ux a (9.1.7)
= bu + f (, + a ) (9.1.8)
ou seja,
u = bu + f (, + a ) (9.1.9)
Esta EDO possui solucao
Z
u(, ) = u0 ()eb + f (, + a )eb( ) d (9.1.10)
0
que retornando para (x, t) temos
Z t
u(t, x) = u0 (x at)ebt + f (s, x a(t s))eb(ts) ds (9.1.11)
0
A solucao depende somente em (t , x ) tal que x at = x at, i.e., somente os valores
de u e f na caracterstica (t, x) para 0 t t.

9.2. Sistemas de EDPs hiperbolicas


Um sistema da forma
ut + Aux + Bu = F (t, x) (9.2.1)
e hiperbolico se a matriz A e diagonalizavel com autovalores reais.
Diagonalizavel implica que

1
= P AP 1 =
..
(9.2.2)
.
d
Fazendo a substituicao w = P u (no caso que B = 0),
wt + wx = P F (t, x) = F (t, x) (9.2.3)
ou
wti + i wxi = f i (t, x) (9.2.4)
reduzindo o sistema a um conjunto de equacoes independentes. Se B 6= 0 entao o
sistema e acoplado, mas somente para os termos sem derivadas.
O termo Bu causa crescimento, decaimento ou oscilacoes, mas nao causa mu-
dancas na forma com que a solucao se move ao longo das caractersticas.
Secao 9.2: Sistemas de EDPs hiperbolicas 57

Exemplo 35.
O sistema
    
u 2 1 u
+ =0 (9.2.5)
v t 1 2 v x
com dado inicial

1, |x| 1
u(x, 0) = u0 (x) = (9.2.6)
0, |x| > 1
v(x, 0) = 0 (9.2.7)
Somando e subtraindo as equacoes obtemos
(u + v)t + 3(u + v)x = 0 (9.2.8)
(u v)t + (u v)x = 0 (9.2.9)
ou
wt1 + 3wx1 = 0, w1 (0, x) = u0 (x) (9.2.10)
wt2 + wx2 = 0, 2
w (0, x) = u0 (x) (9.2.11)
onde a matriz para essa transformacao e
  1 1

1 1 1
P = , P = 21 2 . (9.2.12)
1 1 2 12
A solucao e
w1 (t, x) = w01 (x 3t) = u0 (x 3t) (9.2.13)
2
w (t, x) = w02 (x t) = u0 (x t) (9.2.14)
ou nas variaveis u e v,
1 1 1
u(t, x) = (w + w2 ) = [u0 (x 3t) + u0 (x t)] (9.2.15)
2 2
1 1
v(t, x) = (w1 w2 ) = [u0 (x 3t) u0 (x t)] (9.2.16)
2 2
Note que a solucao depende de duas partes independentes, uma onda propagando-
se com velocidade 3 e outra com velocidade 1.

Observacao: Caso a equacao


ut + a(t, x)ux = 0 (9.2.17)
tenha velocidade de propagacao a(t, x) variavel ou seja um sistema do tipo
ut + A(t, x)ux + B(t, x)u = F (t, x) (9.2.18)
as caractersticas nao sao necessariamente linhas retas.
Para um exemplo online do metodo das caractersticas veja
http://www.scottsarra.org/shock/shockApplet.html
Secao 9.3: Condicoes de contorno 58

Exerccio 9.1. Mostre que o PVI


ut + (1 + x2 )ux = 0 (9.2.19)
nao e bem definido. (Considere a regiao originando no eixo x.)
Exerccio 9.2. Obtenha a solucao 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. Condicoes de contorno


Considere a equacao (veja a figura 9.1)
ut + aux = 0, 0 x 1, t > 0 (9.3.1)

x
0

Figura 9.1: Curvas caractersticas para a > 0.

Se a > 0 as caractersticas se propagam para a direita. Vemos que a solucao


deve ser especificada no contorno x = 0. Alem disso, nenhuma condicao de contorno
deve ser dada em x = 1.
Para a condicao inicial u(0, x) = u0 (x) e condicao de contorno u(t, 0) = g(t) a
solucao e dada por

u0 (x at), x at > 0
u(t, x) = (9.3.2)
g(t x/a), x at < 0
Em x at = 0 havera uma descontinuidade se u0 (0) 6= g(0). Se a < 0 o papel dos
contornos e trocado.
Exemplo 36.
Considere o sistema
    
u a b u
+ =0 (9.3.3)
v t b a v x
em 0 x 1. Os autovalores sao a + b e a b. Consideremos o caso onde a, b > 0.
Secao 9.3: Condicoes de contorno 59

t t

x x
0 0

Figura 9.2: Curvas caractersticas para 0 < b < a e 0 < a < b.

Se 0 < b < a entao ambas as caractersticas 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 caracterstica e a inversa da velocidade.
Se 0 < a < b, entao as caractersticas se movem em direcao opostas (ja 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 condicao de contorno u + v em x = 0 (pois move-se para
a direita) e u v em x = 1. De forma geral, as condicoes 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 solucao (dito um problema bem-posto). Note que tal
condicao de contorno especifica a caracterstica incoming em termos da caracterstica
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 numero de condicoes de contorno e igual ao numero de caractersticas incoming.

Problemas periodicos
Podemos tambem fornecer condicoes de contorno periodicas como
u(t, 0) = u(t, 1) (9.3.8)
que na verdade nao e uma condicao de contorno, ja que num problema periodico nao
ha contornos.
Secao 9.4: Diferencas finitas 60

Exerccio 9.3. Considere o problema (9.3.3) com a = 0 e b = 1, e condicoes de


contorno
u(t, 0) = 0 v(t, 1) = 1 (9.3.9)
Mostre que se a condicao inicial e
u(0, x) = x v(0, x) = 1 (9.3.10)
entao a solucao e u(t, x) = x e v(t, x) = 1 t, para t 0, 0 x 1.
Exerccio 9.4. Considere o problema (9.3.3) com a = 0 e b = 1, e condicoes de
contorno
u(t, 0) = 0 v(t, 1) = 1 + t (9.3.11)
Mostre que se a condicao inicial e
u(0, x) = x v(0, x) = 1 (9.3.12)
entao para 0 x + t 3 a solucao e
 
x
1t , 0 t < 1 x,



 
 
u 2x + t 1
= , 1 x t < 1 + x, (9.3.13)
v
2 x  2t
3x


, 1 + x t < 3 x.


3 3t

9.4. Diferencas finitas

Definicao 9.4.1. Sejam 0 < h, k 1, uma malha ou grid sera os pontos


(tn , xi ) = (nk, ih) para arbitrarios n, i inteiros.

Denotamos
vin v(tn , xi ) (9.4.1)
o valor de v no ponto (tn , xi ).
A ideia basica do metodo de diferencas finitas e substituir as derivadas por dife-
rencas finitas. Por exemplo, a derivada forward e
u u((n + 1)k, ih) u(nk, ih)
(nk, ih) (9.4.2)
t k
e a derivada central e
u u((n + 1)k, ih) u((n 1)k, ih)
(nk, ih) (9.4.3)
t 2k
Considerando a equacao de adveccao
ut + aux = 0 (9.4.4)
podemos obter os seguintes esquemas/metodos
Secao 9.4: Diferencas finitas 61

Forward-Time Forward-Space (FTFS)


vin+1 vin v n vin
+ a i+1 =0 (9.4.5)
k h

Forward-Time Backward-Space (FTBS)


vin+1 vin v n vi1
n
+a i =0 (9.4.6)
k h

Forward-Time Central-Space (FTCS)


vin+1 vin v n vi1
n
+ a i+1 =0 (9.4.7)
k 2h

Leapfrog
vin+1 vin1 v n vi1
n
+ a i+1 =0 (9.4.8)
2k 2h

Lax-Friedrichs
vin+1 12 (vi+1
n n
+ vi1 ) v n vi1
n
+ a i+1 = 0 (9.4.9)
k 2h

Qual desses esquemas funciona? Qual e mais preciso? Qual e mais eficiente?
Cada um deles pode ser reescrito isolando vin+1 . O primeiro se torna
k n
vin+1 = vin a (vi+1 vin ) (9.4.10)
h
onde = k/h. Note que e um esquema de passo simples. Conhecidos vi0 e possvel
determinar vin para todo n.
Entretanto para usar o esquema Leapfrog (9.4.8) (que e de passo multiplo), e
necessario fornecer os valores de vi0 e vi1 , e usar o esquema para n 2.

9.4.1. Codigos
Para utilizar o esquema com diferencas pra frente no tempo e no espaco (9.4.5) nao
precisamos armazenar a solucao para todos os valores de tempo n, apenas os mais
recentes. A ideia e usar um vetor v(i) para armazenar a solucao no tempo n, vin , e
um vetor vnew(i) para o tempo n + 1, vin+1 .
Os valores de vnew sao calculados a partir do tempo anterior v. Depois que vnew
esta calculado, os valores de v sao atualizados com esses valores e o passo de tempo e
incrementado.
Secao 9.4: Diferencas finitas 62

Note no codigo que temos N intervalos iguais e N+1 pontos de x1 ate 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 solucao de ut + ux = 0 para 3 x 3 e t 0 com condicoes

1 |x|, |x| 1
u0 (x) = (9.4.11)
0, c.c.
u(x, 3) = 0 (9.4.12)
usando h = 0.1 e = 0.8 usando o metodo (9.4.5)
vin+1 vin v n vin
+ a i+1 = 0. (9.4.13)
k h
Plote a solucao aproximada para o tempo t = 1.6 juntamente com a solucao
exata.
Repita o calculo com h = 0.05 e = 0.8.
Repita o calculo com h = 0.1 e = 1.6.
Talvez reduzindo o valor de h. Repita o calculo com h = 0.05 e = 1.6.
Exemplo 38.
Repita o exerccio anterior, porem utilizando o metodo de Lax-Friedrichs,
vin+1 12 (vi+1
n n
+ vi1 ) v n vi1
n
+ a i+1 = 0. (9.4.14)
k 2h
Note que e necessario fornecer uma condicao extra no extremo direito x = 3, tal como,
n+1 n+1
vN = vN 1 .
Secao 9.4: Diferencas finitas 63

Exemplo 39.
Repita o exerccio anterior, porem utilizando o metodo de Leapfrog,
vin+1 vin1 v n vi1
n
+ a i+1 = 0. (9.4.15)
2k 2h
Aqui tambem e necessario fornecer uma condicao extra no extremo direito x = 3, tal
n+1 n+1
como, vN = vN 1 . Alem disso, esse esquema requer que outro esquema seja usado
para calcular a solucao em n = 1 (pode ser necessario armazenar tres passos de tempo
consecutivos).
Exerccio 9.5. Para x [1, 3] e t [0, 2.4], resolva
ut + ux = 0 (9.4.16)
1
cos2 (x),

|x| 2
u(0, x) = (9.4.17)
0, c.c.
u(t, 1) = 0. (9.4.18)
Use quatro esquemas:
1 1 1
a. (FTBS) com = 0.8 e h = 10 , 20 , 40 .
1 1 1
b. (FTCS) com = 0.8 e h = 10 , 20 , 40 .
1 1 1
c. (Lax-Friedrichs) com = 0.8, = 1.6 e h = 10 , 20 , 40 .
1 1 1
d. (Leapfrog) com = 0.8 e h = 10 , 20 , 40 .
n+1 n+1
Para os esquemas (b), (c) e (d) utilize a condicao a direita vN = vN 1 em x = 3.
Para o esquema (d) use o esquema (b) para calcular a solucao em n = 1.
Para cada esquema determine se o esquema e util/inutil (a solucao nao pode
crescer demais). Faca varios graficos. Relate o que acontece ao diminuir h para os
esquemas inuteis. Existe um padrao? Para os casos uteis, como o erro decresce quando
o espacamento da malha decresce, i.e, quando h diminui pela metade, como o erro e
reduzido?
Exerccio 9.6. Resolva o sistema
1 2 1
ut + (t 2)ux + (t + 1)wx + u = 0 (9.4.19)
3 3 3
1 1 1
wt + (t + 1)ux + (2t 1)wx w = 0 (9.4.20)
3 3 3
pelo metodo de Lax-Friedrichs. Cada equacao e aproximada como no caso escalar e
iterada passo a passo. As condicoes iniciais sao
u(0, x) = max(0, 1 |x|) (9.4.21)
w(0, x) = max(0, 1 2|x|) (9.4.22)
1
Considere x [3, 3] e t [0, 2]. Faca h = 1/20 e = 2. Use as condicoes de
contorno
unew(1)=0; unew(N)=0;
wnew(1)=wnew(2); wnew(N)=wnew(N-1);
Secao 9.5: Convergencia e consistencia 64

Descreva o comportamento da solucao para t [1.5, 2]. Faca alguns graficos.


Exerccio 9.7. Resolva
1 2
ut + (t 2)ux + (t + 1)wx = 0 (9.4.23)
3 3
1 1
wt + (t + 1)ux + (2t 1)wx = 0 (9.4.24)
3 3
como no exerccio anterior. Examinando a solucao numerica obtenha uma solucao
analtica para o problema.

9.5. Convergencia e consistencia


Considere EDPs lineares da forma
P (t , x )u = f (t, x) (9.5.1)
de 1.a ordem no tempo. Assuma que dada uma condicao inicial u(0, x) a solucao 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 metodo numerico ser util e necessario que sua solucao aproxime a
solucao da EDP e que a aproximacao melhore quando h, k tendem a zero.

Definicao 9.5.1. Um esquema de diferencas finitas de passo simples que apro-


xima uma EDP e convergente se para qualquer u(t, x) exata e uni aproximada,
tal que u0m converge para u0 (x) quando h 0, entao uni converge para u(t, x)
quando h, k convergem para zero.

Para metodos de passo multiplo onde e necessario especificar os primeiros nveis,


a definicao e alterada requerendo que uji convirja para u0 (xj ) para 0 j J.
Exemplo 40.
Nos exemplos anteriores, os esquemas de Lax-Friedrichs e leapfrog sao convergentes
para = 0.8. Quando h, k decrescem, as solucoes se tornam melhores. Quando
= 1.6 o esquema de Lax-Friedrichs nao e convergente.

Definicao 9.5.2. Dada uma EDP P u = f e um esquema em diferencas finitas


Ph,k v = 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 convergencia sendo pontual em cada ponto da malha.

Pode ser necessario restringir a maneira que h e k tendem a zero.


Secao 9.5: Convergencia e consistencia 65

Exemplo 41.
Considere o esquema FTFS com operador de diferencas dado por
n+1 ni n ni
Pk,h = i
+ a i+1 (9.5.6)
k h
associado ao operador contnuo
P = t + ax . (9.5.7)
onde
ni = (nk, ih) (9.5.8)
Expandindo em serie de Taylor para t e x obtemos,
1
n+1
i = ni + kt + k 2 tt + O(k 3 ) (9.5.9)
2
1
n n
i+1 = i + hx + h2 xx + O(h3 ) (9.5.10)
2
onde as derivadas sao calculadas em (tn , xi ), e assim
1 1
Pk,h = t + ax + ktt + hxx + O(k 2 ) + O(h2 ) (9.5.11)
2 2
levando a
1 1
P Pk,h = ktt hxx + O(k 2 ) + O(h2 ) (9.5.12)
2 2
= 0 quando k, h 0 (9.5.13)
Portanto, o esquema e consistente.

Exemplo 42.
Para o esquema de Lax-Friedrichs
n+1 21 (ni+1 + ni1 ) n ni1
Pk,h = i
+ a i+1 (9.5.14)
k 2h
usando a serie de Taylor
1 1
ni+1 = ni + hx + h2 xx + h3 xxx + O(h4 ) (9.5.15)
2 6
1 1
ni1 = ni hx + h2 xx h3 xxx + O(h4 ) (9.5.16)
2 6
onde as derivadas sao calculadas em (tn , xi ); obtendo
1 n 1
(i+1 + ni1 ) = ni + h2 xx + O(h4 ) (9.5.17)
2 2
e
ni+1 ni1 1
= x + h2 xxx + O(h4 ) (9.5.18)
2h 6
Secao 9.6: Estabilidade 66

Substituindo no esquema obtemos


1 1
Pk,h = t + ax + ktt k 1 h2 xx (9.5.19)
2 2
1 2
+ ah xxx + O(h + k 1 h4 + k 2 )
4
(9.5.20)
6
Assim, P Pk,h 0 quando h, k 0 e e consistente se k 1 h2 0.
Consistencia implica que a solucao da EDP, se for suave, e uma solucao aproxi-
mada do problema discreto. Similarmente, conergencia significa que a solucao discreta
aproxima a solucao da EDP. Consistencia e uma condicao necessaria para convergencia,
mas um esquema pode ser consistente e nao convergente.
Exemplo 43.
Considere a equacao ut + ux = 0 com o esquema
un+1 uni un uni
i
+ a i+1 =0 (9.5.21)
k h
que pode ser reescrito como
k n
un+1 = uni (u uni ) (9.5.22)
i
h i+1
= (1 + )uni uni+1 (9.5.23)
onde = k/h. Este esquema e consistente (exemplo anterior). Considere a condicao
inicial

1, 1 x 0
u0 (x) = (9.5.24)
0, c.c.
A solucao e uma translacao de u0 da esquerda para a direita, ou seja, a informacao esta
se movendo nessa direcao. Entretanto o esquema (9.5.23) calcula a solucao em (tn , xi )
utilizando somente informacao de pontos a direita xi e xi+1 em tempos anteriores.
Assim a solucao sera vin = 0 para i > 0 e n > 0, nao podendo convergir para
u(t, x).
Exerccio 9.8. Mostre que o esquema FTCS (9.4.7) e consistente com ut + ux = 0.
Exerccio 9.9. Mostre que o esquema leapfrog (9.4.8) e consistente com ut +ux = 0.
Exerccio 9.10. Mostre que o esquema
vin+1 vin v n+1 vi1
n+1 n
vi+1 n
+ vi1 v n vi1
n
+ c i+1 + a i+1 = fin (9.5.25)
k 2kh 2h
e consistente com a equacao ut + cutx + aux = f .

9.6. Estabilidade
O ultimo exemplo mostra que consistencia nao e suficiente para garantir convergencia.
Considere EDPs homogeneas, f = 0.
Secao 9.6: Estabilidade 67

Definicao 9.6.1. A norma L2 na malha e definida como



1
X
kwkh := (h |wi |2 ) 2 (9.6.1)
i=

Definicao 9.6.2. Um esquema em diferencas finitas Pk,h vin = 0 para uma


equacao de 1.a ordem e estavel numa regiao se J inteiro tal que T > 0,
CT tal que
J
X
kv n kh CT kv j k2h (9.6.2)
j=0

para 0 nk T , com (k, h) .

Isto significa que para ser estavel a solucao em t [0, T ] deve permanecer
limitada por CT vezes a norma dos J + 1 dados iniciais (J = 0 para metodos de passo
simples e J > 0 para passo multiplo).
Uma regiao de estabilidade R2 e limitada, contem a origem e uma sequencia
(k , h ) (0, 0) quando . Um exemplo comum e uma regiao da forma
{(k, h) : 0 < k ch C}, para algum c, C > 0.
Exemplo 44.
Mostre que um esquema da forma
un+1
i = uni + uni+1 (9.6.3)
e estavel se || + || 1.

Solucao: Calculando a norma de un+1 , temos


X X
n+1 2
|ui | = |uni + uni+1 |2 (9.6.4)
i= i=
X
||2 |uni |2 + 2|||||uni ||uni+1 | + ||2 |uni+1 |2 (9.6.5)
i=
X
|2 |uni |2 + ||||(|uni |2 + |uni+1 |2 ) + ||2 |uni+1 |2 (9.6.6)


X
= (||2 + 2|||| + ||2 )|uni |2 (9.6.7)


X
=(|| + ||)2 |uni |2 (9.6.8)
i=

onde usamos 2xy x2 + y 2 . Assim


kun+1 kh (|| + ||)kun kh (9.6.9)
Secao 9.7: Teorema de equivalencia de Lax-Richtmyer 68

e o metodo e estavel se || + || 1. 
Exemplo 45.
Note que o metodo forward-time forward-space
vin+1 vin v n vin
+ a i+1 =0 (9.6.10)
k h
ou transformando,
n
vi+1 vin
vin+1 = vin ak (9.6.11)
h
vin+1 = (1 + a)vin avi+1
n
(9.6.12)
com = k/h, se enquadra no exemplo anterior. Assim tal metodo e estavel se
|1 + a| + |a| 1 (9.6.13)
ou
1 a 0 (9.6.14)
Veremos adiante que esta e uma condicao necessaria.

Definicao 9.6.3. O PVI de 1.a ordem P u = 0 e bem-posto se T 0, CT


tal que
Z Z
|u(t, x)|2 dx CT |u(0, x)|2 dx, (9.6.15)

para 0 t T .

9.7. Teorema de equivalencia de Lax-Richtmyer


Teorema 9.7.1 (Teorema de equivalencia de Lax-Richtmyer). Um esquema de
diferencas finitas consistente para um PVI bem-posto e convergente se e somente
se ele e estavel.
Determinar se um esquema e convergente diretamente da definicao, pode ser
complicado. Entretanto, determinar consistencia e simples, e estabilidade e facil tambem
como veremos. Entao convergencia segue pelo teorema.
Note que, pelo teorema, esquemas instaveis nao devem ser considerados pois nao
serao convergentes.
Exerccio 9.11. Mostre que esquemas da forma
un+1
i = uni+1 + uni1 (9.7.1)
sao estaveis se || + || 1. Conclua que o esquema de Lax-Friedrichs e estavel se
|a| 1.
Secao 9.8: Condicao CFL 69

Exerccio 9.12. Multiplicando o esquema Leapfrog (9.4.8) por un+1 i + un1


i e so-
mando em i = . . . , obtemos
X
|vin+1 |2 + |vin |2 + a(vin+1 vi+1
n n+1 n
vi+1 vi ) (9.7.2)
X
= |vin |2 + |vin1 |2 + a(vin vi+1
n1 n
vi+1 vin1 ) (9.7.3)
X
= |vi1 |2 + |vi0 |2 + a(vi1 vi+1
0 1
vi+1 vi0 ) (9.7.4)
Use a desigualdade 12 (x2 + y 2 ) xy 12 (x2 + y 2 ) para mostrar que

X
X
(1 |a|) |vin+1 |2 + |vin |2 (1 + |a|) |vi1 |2 + |vi0 |2 (9.7.5)
i= i=

e conclua que o esquema e estavel para || < 1.


Exerccio 9.13. Multiplique o esquema (9.5.25) com fin = 0 por
1. vin+1 + vin , some em i = . . . e conclua que o esquema e estavel para
a < 1.
n+1 n
2. vi+1 + vi1 , some em i = . . . e conclua que o esquema e estavel para
a > 1.

9.8. Condicao CFL

Definicao 9.8.1. O domnio de dependencia de ut + aux = 0 para o ponto


(t, x) e dado pela curva caracterstica x at = .

Definicao 9.8.2. O domnio de dependencia numerica de um metodo


explcito do tipo
un+1
i = uni1 + uni + uni+1 (9.8.1)
e dado por um triangulo envolvendo todos os pontos abaixo do ponto (xi , tn ),
se propagando ate a condicao inicial de u0in ate u0in .

Teorema 9.8.3. Uma condicao necessaria para estabilidade de um esquema explcito


da forma un+1i = uni1 + uni + uni+1 para ut + aux = 0 com = k/h constante e
a condicao Courant-Friedrichs-Lewy (CFL),
|a| 1. (9.8.2)
Para sistemas, onde u e um vetor, e A, , , sao matrizes, devemos ter |ai | 1
para todos autovalores ai de A.
Demonstracao. Para que o esquema seja estavel e necessario que domnio de de-
pendencia da EDP esteja contido no domnio de dependencia numerico.
Considere o ponto (t, x) = (1, 0). A curva caracterstica que passa por (1, 0) e
tem = 0a1 = a com equacao a = xat. Portanto solucao u(1, 0) depende do
Secao 9.8: Condicao CFL 70

ponto inicial com t = 0 na equacao caracterstica obtemos a = x a0 implicando


x = a.
Porem usando o esquema de diferencas finitas, un0 depende dos valores da
condicao inicial u0i , para n i n. Ou seja, o domnnio de dependencia numerica
se propaga ate a condicao inicial no intervalo x [nh, nh]. Temos que tn = 1 = nk,
implicando n = k1 . Assim o domnio de dependencia numerica e x [ hk , hk ] =
[1 , 1 ].
Assim para que o metodo seja estavel e necessario que a [1 , 1 ], ou
seja, |a| 1 , ou |a| 1.
Para sistemas, u(1, x) depende de u0 (x) em x [a, a] onde a = max(ai )
e a maior velocidade caracterstica. Se |a| 1 entao |ai | 1 e todas curvas
caractersticas pertencem ao domnio de dependencia numerica.
Veja a pagina http://www.cse.uiuc.edu/iem/pde/wavecfl/ para uma ex-
plicacao iterativa da condicao CFL.
Teorema 9.8.4. Nenhum esquema explcito consistente e incondicionalmente estavel
para sistemas de EDPs hiperbolicas.
Exemplo 46.
O esquema implcito1

Backward-Time Backward-Space,
n+1 n+1
vin+1 vin v vi1
+a i =0 (9.8.3)
k h

e incondicionalmente estavel para qualquer (porem a > 0).


Temos
(1 + a)vin+1 = vin + avi1
n+1
(9.8.4)
e elevando ao quadrado,
(1 + a)2 |vin+1 |2 |vin |2 + 2a|vin ||vi1
n+1 n+1 2
| + (a)2 |vi1 | (9.8.5)
n+1 2
(1 + a)|vin |2 + (a + (a)2
)|vi1 | (9.8.6)
Somando em i, obtemos
X
X
X
(1 + a)2 |vin+1 |2 (1 + a) |vin |2 + (a + (a)2 ) n+1 2
|vi1 | (9.8.7)

que fornece a estimativa



X
X
|vin+1 |2 |vin |2 (9.8.8)

e mostra que o esquema e estavel para qualquer quando a > 0.


Note que o esquema e estavel independente de porem a precisao ainda depende
de .
1 Note que o teorema nao se aplica aqui por este ser implcito.
71

Exerccio 9.14. Mostre que esquemas da forma


n+1 n+1 n
vm+1 + vm1 = vm (9.8.9)
sao estaveis se ||| ||| 1. Conclua que o esquema de Lax-Friedrichs reverso
1 n+1 n+1
2 (vm+1 + vm1 n
) vm v n+1 vm1
n+1
+ a m+1 =0 (9.8.10)
k 2h
e estavel se |a| 1.

Aula 16, 17 .
Analise de Esquemas de Diferencas Finitas
.
Strikwerda: Cap. 2

Captulo 10:
Analise de esquemas de diferencas finitas
10.1. Analise de Fourier
Seja R o eixo real contnuo, Z os inteiros e hZ = {hi : i Z} uma malha de inteiros.
Para u(x) R, a transformada de Fourier e sua inversa sao definidas como
Z
1
u() = eix u(x) dx (10.1.1)
2
Z
1
u(x) = eix u() d (10.1.2)
2

Se v e uma funcao definida na malha hZ para m Z, a transformada de Fourier


(e sua inversa) sao definidas como

1 X im
v() = e vm (10.1.3)
2 i=
Z
1
vm = eim v() d (10.1.4)
2
para [, ] e v() = v().
Note que vm pode ser interpretada como uma superposicao de ondas v().
Secao 10.1: Analise de Fourier 72

Se h e o espacamento da malha, podemos mudar as variaveis e obter



1 X imh
v() = e vm h (10.1.5)
2 i=
Z /h
1
vm = eimh v() d (10.1.6)
2 /h
para [/h, /h].
Defina as normas

Definicao 10.1.1. norma L2 de u(x):


Z 1/2
kuk2 := |u(x)|2 dx (10.1.7)

norma L2 na malha de v:

!1/2
X
2
kvkh := h |vm | (10.1.8)

Relacoes de Parseval:
Z Z
kuk22 = |u(x)|2 dx = |u()|2 d = kuk22 (10.1.9)

e
Z /h
X
kvk2h = |v()|2 d = |vm |2 h = kvk2h (10.1.10)
/h

Esta relacao sera util para substituir a estimativa na estabilidade pela forma
equivalente
J
X
kv n kh CT kv j kh (10.1.11)
j=0

Note que nao existe tal relacao se usarmos1 a norma infinito.


Diferenciando a transformada inversa
Z
1
u(x) = eix u() d (10.1.12)
2
com relacao a x obtemos
Z
1
ux (x) = eix i u() d (10.1.13)
2
Z
1
ux (x) = eix ux () d (10.1.14)
2
e com isso conclumos
1 nao diretamente [11].
Secao 10.1: Analise de Fourier 73

ux () = i u()

10.1.1. Analisando EDPs


Isolando ux na equacao da onda
ut + aux = 0, (10.1.15)
obtemos ux = a1 ut .
Substituindo em (10.1.13),
Z
1 1
ut = ux (t, x) = eix i u(t, ) d (10.1.16)
a 2
Z
1
ut (t, x) = eix iau(t, ) d (10.1.17)
2
Ou seja, u satisfaz a EDO
ut = iau (10.1.18)
cuja solucao e
u(t, ) = eiat u0 () (10.1.19)
Usando a relacao de Parseval e o fato que
|eiat | = | cos(at) i sin(at)| = 1,
temos
Z
kuk2 = |u(t, x)|2 dx (10.1.20)

Z
= |u(t, )|2 d (10.1.21)

Z
= |eiat u0 ()|2 d (10.1.22)

Z
= |u0 ()|2 d (10.1.23)

Z
= |u0 (x)|2 dx (10.1.24)

= ku0 k2 (10.1.25)
mostrando que o PVI e bem-posto. Mostra ainda que a norma da solucao e constante.

10.1.2. Em mais que uma dimensao


A transformada de Fourier e definida em Rd como
1
Z
u() = eix u(x) dx (10.1.26)
(2)d/2 Rd
1
Z
u(x) = eix u() d (10.1.27)
(2)d/2 Rd
Secao 10.2: Analise de Von Neumann 74

onde x e o produto interno em Rd .


Exerccio 10.1. Mostre utilizando transformada de Fourier que o PVI ut = uxxx e
bem-posto.
Exerccio 10.2. Mostre utilizando transformada de Fourier que o PVI ut +ux +bu = 0
e bem-posto.
Exerccio 10.3. Mostre utilizando transformada de Fourier que o PVI ut +aux +buy =
0 e bem-posto.

10.2. Analise de Von Neumann


Usando transformada de Fourier vamos estudar a estabilidade de um esquema de dife-
rencas finitas. Considere o esquema F T BS
n+1
vm n
vm v n vm1
n
+a m =0 (10.2.1)
k h
que pode ser reescrito como
n+1 n n
vm = (1 a)vm + avm1 , (10.2.2)
n
onde = k/h. Usando a transformada de Fourier inversa para v obtemos,
Z /h
n 1
vm = eimh v n () d (10.2.3)
2 /h
n n
que substituindo na equacao anterior para vm e vm1 ,
Z /h
n+1 1
vm =(1 a) eimh v n () d (10.2.4)
2 /h
Z /h
1
+ a ei(m1)h v n () d (10.2.5)
2 /h
Z /h
1
= eimh [(1 a) + aeih ]v n () d (10.2.6)
2 /h
e comparando com a formula da transformada inversa, obtemos
v n+1 () = [(1 a) + aeih ]v n () (10.2.7)
n
= g(h)v () (10.2.8)
onde
g(h) = (1 a) + aeih (10.2.9)
e o fator de amplificacao. Note que avancar um passo no tempo e equivalente a
multiplicar cada frequencia v n () pelo fator de amplificacao. Desta forma obtemos2
v n () = g(h)n v 0 () (10.2.10)
2 note que g(h)n esta elevado na potencia n e v0 () esta na iteracao 0.
Secao 10.2: Analise de Von Neumann 75

Tal formula e usada para estudar a estabilidade do metodo de diferencas finitas,


similarmente a analise anterior do PVI ser bem posto. Pela relacao de Parseval, se
|g(h)| < 1 entao

X
kv n k2h = h n 2
|vm | (10.2.11)

Z /h
= |v n ()|2 d (10.2.12)
/h
Z /h
= |g(h)|2n |v 0 ()|2 d (10.2.13)
/h
Z /h
|v 0 ()|2 d (10.2.14)
/h
X
0 2
=h |vm | (10.2.15)

= kv 0 k2h (10.2.16)
mostrando que o sistema e estavel por definicao.
Resta mostrar sob quais condicoes que |g(h)| < 1. Tomando = h,
|g()|2 = |(1 a) + aei |2 (10.2.17)
2 2 2 2
= (1 a + a cos ) + a sin (10.2.18)

= (1 2a sin2 )2 + 4a2 2 sin2 cos2 (10.2.19)
2 2 2
2 2 2 4
= 1 4a sin + 4a sin + 4a sin2 cos2
2 2
(10.2.20)
2 2 2 2
2
= 1 4a(1 a) sin (10.2.21)
2
de onde temos que |g()| e limitado por 1 se 0 a 1.
Entretanto se a / [0, 1] e e fixo quando h 0 e k 0, entao |g()| > 1
para alguns e o esquema e instavel, como mostraremos.

10.2.1. A condicao de estabilidade


Teorema 10.2.1. Um esquema de diferencas finitas de passo simples (com coe-
ficientes constantes) e estavel se e somente se K (independente de , k e h) e
espacamentos h0 , k0 > 0 tais que
|g(, k, h)| 1 + Kk (10.2.22)
, 0 < k k0 ,0 < h h0 . Se g = g(), entao a condicao de estabilidade e
|g()| 1. (10.2.23)
Demonstracao. Veja [11], p.44.
Secao 10.2: Analise de Von Neumann 76

Este teorema mostra que para determinar a estabilidade devemos considerar


g(h) (esta observacao e chamada de analise de von Neumann).
Exemplo 47.
Considere o esquema FTFS para o qual
g(h) = 1 + a aeih (10.2.24)
onde a > 0 e e constante. Temos que

|g|2 = 1 + 4a(1 + a) sin2 . (10.2.25)
2
Se e constante, podemos usar a condicao |g()| 1, e temos que |g| > 1 para 6= 0,
o que implica que o esquema e instavel. Lembre que pelo exemplo 43, sabemos que tal
esquema nao e convergente.
Podemos tambem obter expressoes para g sem escrever as integrais. Basta
n
substituirmos vm por g n eim (tal procedimento e apenas um atalho para o metodo
anterior).
Exemplo 48.
Usaremos o esquema F T CS
n+1
vm n
vm v n vm1n
+ a m+1 =0 (10.2.26)
k 2h
n
para mostrar tal procedimento. Substitua vm por g n eimh e obtenha
g n+1 eim g n eim g n ei(m+1) g n ei(m1)
+a (10.2.27)
k 2h
i i
 
g 1 e e
=g n eim +a =0 (10.2.28)
k 2h
que fornece
g = 1 ia sin() (10.2.29)
com = k/h. Se e constante, entao g e independente de h e k e
|g()|2 = 1 + a2 2 sin2 () (10.2.30)
Como |g| > 1 para 6= 0 ou = , pelo teorema anterior, este esquema e instavel.

Exemplo 49.
Considere o metodo de Lax-Friedrichs
vmn+1
12 (vm+1
n n
+ vm1 ) v n vm1
n
+ a m+1 n
vm =0 (10.2.31)
k 2h
para a equacao
ut + aux u = 0 (10.2.32)
O fator de amplificacao e
g(, k, h) = cos() ia sin() + k (10.2.33)
Secao 10.2: Analise de Von Neumann 77

e
|g|2 = (cos() + k)2 + a2 2 sin2 () (10.2.34)
2
(1 + k) (10.2.35)
se |a| 1. Note que como o PVI possui solucoes que crescem com o tempo, qualquer
esquema consistente e estavel para este PVI deve ter |g| > 1 para alguns .

Corolario 2. Se um esquema como no teorema 10.2.1 e modificado tal que a di-


ferenca resulta somente na adicao de termos em g que sao O(k) uniformemente
em , entao o esquema modificado e estavel se e somente se o esquema original e
estavel.
Demonstracao. Se g e o fator de amplificacao para o esquema e |g| 1 + Kk, entao
o fator de amplificacao do esquema modificado, g , satisfaz
|g | = |g + O(k)| 1 + Kk + Ck = 1 + K1 k (10.2.36)
Da o esquema modificado e estavel se o esquema original e estavel, e vice-versa.

Teorema 10.2.2. Um esquema consistente de passo simples para


ut + aux + bu = 0 (10.2.37)
e estavel se e somente se ele e estavel quando b = 0. Alem disso, quando k = h e
e constante, a condicao de estabilidade se torna
|g(, 0, 0)| 1 (10.2.38)
Demonstracao. Pela consistencia, o termo bu adiciona um termo O(k) a g. Pelo
corolario anterior tal termo nao afeta estabilidade.
Expandindo em serie de Taylor em k e h,
g(, k, h) = g(, 0, 0) + O(h) + O(k), (10.2.39)
e se h = 1 k, entao h = O(k). Alem disso, se [, ], o termo O(k) e uniforme-
mente limitado. Assim, pelo corolario, a condicao de estabilidade e
|g(, 0, 0)| 1 + Kk, (10.2.40)
para algum K. Como o lado esquerdo nao depende de k e 0 < k 1, temos que a
estimativa3 e valida se e somente se
|g(, 0, 0)| 1. (10.2.41)

Note que |g| 1 + Kk e equivalente a |g|2 1 + K1 k.


Exerccio 10.4. Faca a analise de Von Neumann para o metodo de Lax-Friedrichs do
exemplo 49. Utilize o teorema anterior e analise a equacao sem o termo bu.
3 Similarmente e provado a ultima parte do teorema.
Secao 10.2: Analise de Von Neumann 78

Exemplo 50.
Considere o esquema em dois estagios composto pelo esquema FTCS e um operador
suavizante:
n+1 n 1 n n n
vm = vm a(vm+1 vm1 ) + kfm (10.2.42)
2
n+1 1 n+1 n+1 n+1
vm = (vm+1 + 2vm + vm1 ) (10.2.43)
4
Para aplicar a analise de Von Neumman, poderamos reescrever esse metodo
como uma unica equacao eliminando v. Entretanto, aplicando um procedimento similar,
n+1
substitumos vm por gg n eim e vm
n
por g n eim . Obtemos
g = 1 ia sin (10.2.44)
1
g = (1 + cos )g = g cos2 (10.2.45)
2 2
e

|g|2 = |g|2 cos4 = (1 + a2 2 sin2 ()) cos4 (10.2.46)
2 2
Para estabilidade devemos ter

(1 + a2 2 sin2 ()) cos4 1 (10.2.47)
2

(1 + 4a2 2 sin2 cos2 ) cos4 1 (10.2.48)
2 2 2

4a2 2 sin2 cos6 1 cos4 (10.2.49)
2 2 2

(1 cos2 )(1 + cos2 ) (10.2.50)
2 2

sin2 (1 + cos2 ) (10.2.51)
2 2

4a2 2 cos6 1 + cos2 (10.2.52)
2 2
que deve ser verdade .
Quando = 0, a condicao necessaria se torna
1
a2 2 (10.2.53)
2
Assumindo isto e que cos e limitado por 1 obtemos

4a2 2 cos6 2 cos2 1 + cos2 (10.2.54)
2 2 2
Assim, o esquema e estavel se e somente se
1
|a| (10.2.55)
2
Note que esse esquema requer mais trabalho por passo de tempo e possui uma
condicao de estabilidade mais restrita que o esquema de Lax-Friedrichs. Note tambem
que o esquema FTCS e instavel sem o termo dissipativo.
Secao 10.3: Comentarios sobre instabilidade e estabilidade 79

Exemplo 51.
Considere a equacao ut + auxxx = f e o esquema
v n + vm1 n
vmn+1
= m+1 (10.2.56)
2
1
akh3 (vm+2 n n
2vm+1 n
+ 2vm1 n
vm2 n
) + kfm (10.2.57)
2
Esse esquema e consistente com o PVI se k 1 h2 0 com k, h 0 (veja os exerccios).
O fator de amplificacao e

g() = cos + 4akh3 i sin sin2 (10.2.58)
2
e o esquema e estavel se e somente se
4|a|kh3 (10.2.59)
e limitado. A condicao de consistencia e de estabilidade nao podem ser ambas satisfei-
tas. Assim o esquema nao e convergente, pois nao pode ser consistente e estavel.
Exerccio 10.5. Mostre que o esquema BTCS (??) e consistente com ut + aux = 0
e e incondicionalmente estavel.
Exerccio 10.6. Verifique a condicao de estabilidade para o exemplo 51.
Exerccio 10.7. Mostre que o esquema box
n+1
n+1
(vm + vm+1 n
) (vm n
+ vm+1 ) (v n+1 vm n+1 n
) + (vm+1 n
vm )
+ a m+1 n
= fm (10.2.60)
2k 2h
e consistente com ut + aux = f e e estavel para todo .
Exerccio 10.8. Determine a estabilidade do esquema
n+ 1 n a n n n
vm 2 = vm (v vm1 ) + kfm (10.2.61)
2 m+1
n+1 n a n+ 12 n+ 1 n+1
vm = vm (vm+1 vm12 ) + kfm (10.2.62)
2
n+ 12
onde vm e uma variavel temporaria, como v.
Exerccio 10.9. Usando analise de von Neumann, mostre que o esquema de Lax-
Friedrichs reverso do exerccio 9.8.10 e estavel para |a| 1.

10.3. Comentarios sobre instabilidade e estabilidade


Instabilidade numerica esta relacionada com oscilacoes de altas frequencias.
Considere o esquema de Lax-Friedrichs, com a = 1.6. Temos que |g()|2 =
cos2 + a2 2 sin2 , que possui maximo em |a| = 1.6, quando = /2. A
razao kv n+1 kh /kv n kh 1.6.
Instabilidade pode ser vista como rapido crescimento dos modos de altas frequencias.
Instabilidade aparece mais cedo com dados iniciais que apresentem modos de altas
frequencias.
Secao 10.3: Comentarios sobre instabilidade e estabilidade 80

Instabilidade e um fenomeno essencialmente local, que se espalha globalmente.


Demonstracoes requerem um bom entendimento de analise de Fourier.
Entender instabilidade numerica ajuda a diferenciar entre erros de programacao e
instabilidade do esquema numerico.

10.3.1. Condicoes de estabilidade para coeficientes variaveis


A analise nao se aplica diretamente!! Entretanto, considere a equacao ut +a(t, x)ux =
0 com o esquema de Lax-Friedrichs
n 1 n n 1 n n
vm = (vm+1 + vm1 ) a(tn , xn )(vm+1 vm1 ) (10.3.1)
2 2
A condicao de estabilidade se torna |a(tn , xm )| 1, (tn , xm ) no domnio.
O procedimento geral e considerar cada problema em cada passo de tempo se-
paradamente, congelando os coeficientes. Se cada problema com coeficientes fixos e
estavel, entao esperamos que o problema com coeficientes variaveis tambem seja estavel.
Veja [11], p. 51 para referencias.

10.3.2. Estabilidade numerica e estabilidade dinamica


A definicao 9.6.2 e a de estabilidade numerica.
A estabilidade dinamica refere-se a propriedade de pequenas perturbacoes sobre
o estado inicial de um sistema gerarem pequenas variacoes no estado final deste
sistema (havera decaimento nas variacoes, ou pelo menos nao crescimento, quanto
t cresce).
Portanto estabilidade dinamica refere-se ao comportamento das solucoes quando
t e estabilidade numerica refere-se ao comportamento da solucoes sobre
um intervalo de tempo finito quando a malha e refinada.
Considere a equacao, para x R, t > 0,
ut + aux + bu = 0 (10.3.2)
Se b > 0 entao a solucao e dinamicamente estavel, ja que qualquer solucao decai
com o tempo.
Se b < 0, entao e dinamicamente instavel, pois cresce sem limites quando t
aumenta.
Para um esquema numerico, a estabilidade numerica nao depende de b (teorema
10.2.2). Podemos usar qualquer esquema convergente para computar a solucao
do PVI; entretanto um esquema numericamente instavel aplicado a uma equacao
dinamicamente instavel nao achara solucoes convergentes.
Exerccio 10.10. Aproxime a solucao da equacao
ut + ux = 0, 1 x 3, 0 t 1 (10.3.3)

1 |x|, |x| 1
u(0, x) = (10.3.4)
0, c.c.
u(t, 1) = 0 (10.3.5)
81

com o esquema FTFS 9.4.5. Use h = 0.1 e = 0.8. Demonstre que a instabilidade
numerica cresce por um fator de |g()| por unidade de tempo. Comente o aparecimento
n
da instabilidade no grafico de vm . Utilize a condicao de contorno un+1
M = un+1
M1 em
x = 3.

Exerccio 10.11.
a. Aproxime a solucao da equacao
ut + ux = 0, 1 x 3, 0 t 4 (10.3.6)

1 |x|, |x| 1
u1 (0, x) = (10.3.7)
0, c.c.
u(t, 1) = 0 (10.3.8)
usando o esquema FTCS 9.4.7. Use h = 0.1 e = 0.8. Use un+1
M = un+1
M1 em
x = 3.
b. Repita o item a. com
u2 (0, x) = sin(x) (10.3.9)
u(t, 1) = sin(1 + t) (10.3.10)
c. Demonstre que a instabilidade e evidente mais cedo para u1 (x) do que para
u2 (x). Mostre que o crescimento da instabilidade e aproximadamente |g(/2)|.
Use un+1
M = un+1
M1 para o contorno direito.

Exerccio 10.12. Resolva numericamente a equacao


ut + (1 + x)ux = 0, 3 x 3, 0 t 2 (10.3.11)
(10.3.12)

1 |x|, |x| 1
u(0, x) = (10.3.13)
0, c.c.
u(t, 3) = 0 (10.3.14)
usando o esquema de Lax-Friedrichs (10.3.1) com = 0.5 e = 1. Demonstre que
a instabilidade ocorre quando |(1 + xm )| > 1. Use un+1
M = 0.

Aula 18, 19, 20 .


Ordem de precisao
.
Strikwerda: Cap. 3

Captulo 11:
Secao 11.1: Esquema Lax-Wendroff 82

Ordem de Precisao

Nos captulos anteriores analisamos os esquemas somente quanto a convergencia. Uti-


lizando o teorema de Lax-Richtmeyer consideramos a estabilidade e a consistencia.
Antes de definir precisao considere os seguintes esquemas.

11.1. Esquema Lax-Wendroff


Para obter o esquema de Lax-Wendroff para a equacao
ut = aux + f (11.1.1)
utilizamos a serie de Taylor
k2
u(t + k, x) = u(t, x) + kut (t, x) + utt (t, x) + O(k 3 ). (11.1.2)
2
Usando a equacao diferencial obtemos
utt = autx + ft = a2 uxx afx + ft (11.1.3)
e substituindo na serie obtemos
k2
u(t + k, x) = u(t, x) + kut (t, x) + utt (t, x) + O(k 3 )
2
k2 2
=u(t, x) + k(aux + f ) + (a uxx afx + ft ) + O(k 3 )
2
a2 k 2 ak 2 k2
=u(t, x) akux + uxx + kf fx + ft + O(k 3 )
2 2 2
Trocando as derivadas em x por diferencas finitas de segunda ordem e ft por uma
diferenca pra frente obtemos
un unm1
un+1
m = unm ak m+1
2h
a2 k 2 unm+1 2unm + unm1
+
2 h2
n+1 n n n
f + fm ak 2 fm+1 fm1
+k m
2 2 2h
+ O(kh2 ) + O(k 3 )
fornecendo o esquema de Lax-Wendroff
un+1 unm un unm1 a2 k unm+1 2unm + unm1
m
a m+1 (11.1.4)
k 2h 2 h2
n+1 n n n
f + fm f
ak m+1 f m1
= m (11.1.5)
2 2 2h
ou ainda
a n a2 2 n
un+1
m = unm (um+1 unm1 ) + (um+1 2unm + unm1 ) (11.1.6)
2 2
k n+1 n ak n n
+ (fm + fm ) (fm+1 fm1 ) (11.1.7)
2 4
Secao 11.2: Esquema Cranck-Nicolson 83

11.2. Esquema Cranck-Nicolson


Para derivar esse esquema comecamos com a formula
un+1
n+ 12
m unm
(ut )m = + O(k 2 ) (11.2.1)
k
para ut calculado em (t + 12 k, x). Tambem usamos a relacao
n+ 21 (ux )n+1
m + (ux )nm
(ux )m = + O(k 2 ) (11.2.2)
" 2 #
1 un+1 n+1
m+1 um1 unm+1 unm1
= + (11.2.3)
2 2h 2h
+ O(k 2 ) + O(h2 ) (11.2.4)
obtendo o metodo de Crank-Nicolson
un+1 unm un+1 un+1 n n
m1 + um+1 um1 f n+1 + fmn
m
+ a m+1 = m (11.2.5)
k 4h 2
ou ainda,
a n+1 a n+1
u + un+1
m u = (11.2.6)
4 m+1 4 m1
a n a n k
u + unm + u + (f n+1 + fmn
) (11.2.7)
4 m+1 4 m1 2 m
Uma EDP (contnua) P u = f pode ser aproximada por um esquema (discreto)
como Pk,h u = Rk,h f onde cada expressao calculada no ponto (tn , xm ) envolve somente
uma soma finita de pontos vizinhos.

Definicao 11.2.1. Um esquema Pk,h u = Rk,h f consistente com a EDP P u =


f possui ordem de precisao p no tempo e ordem q no espaco se para qualquer
(t, x) suave
T = Pk,h Rk,h P = O(k p ) + O(hq ). (11.2.8)
Dizemos que o esquema e de ordem (p, q).

Note a correlacao entre consistencia e ordem de precisao: o operador Rk,h deve


ser uma aproximacao do operador identidade para que Pk,h seja consistente com P .

Definicao 11.2.2. O erro de truncamento e definido como T = Pk,h


Rk,h P .

Exemplo 52.
Mostraremos que o metodo de Lax-Wendroff e de ordem (2, 2). Usando serie de Taylor,
para o lado esquerdo de (11.1.4) calculado em (tn , xm ) obtemos
k a2 k
t + tt + ax xx + O(k 2 ) + O(h2 ). (11.2.9)
2 2
Secao 11.3: O smbolo de um esquema de DF 84

Para uma funcao suave f (t, x) o lado direito se torna


k ak
f+ ft fx + O(k 2 ) + O(h2 ) (11.2.10)
2 2
e se f = t + ax = P , temos
k k ak a2 k
t + ax + tt + axt xt xx + O(k 2 ) + O(h2 ). (11.2.11)
2 2 2 2
que e da mesma ordem que (11.2.9) ate ordem O(k 2 ) + O(h2 ). Portanto o esquema e
de ordem (2, 2).
n n
Por outro lado, se no esquema de Lax-Wendroff usarmos Rh,k fm = fm , i.e.,
a n
un+1
m = unm (u unm1 ) (11.2.12)
2 m+1
a2 2 n
+ (um+1 2unm + unm1 ) + kfm
n
(11.2.13)
2
possui ordem de precisao (1, 2).
Note que para determinar a ordem da precisao usamos a forma (11.1.4) ao inves
de (11.1.6) que e obtida multiplicando por k a primeira expressao.
A definicao de precisao nao pode ser aplicada diretamente ao metodo de Lax-
Friedrichs, por exemplo, pois contem O(h2 k 1 ). Assumindo que k depende de h,
k = (h), onde e uma funcao suave de h e (0) = 0.

Definicao 11.2.3. Um esquema Pk,h u = Rk,h f , com k = (h), consistente


com a EDP P u = f possui ordem de precisao r se para qualquer (t, x) suave,
Pk,h Rk,h P = O(hr ). (11.2.14)

Tomando (h) = h, o esquema de Lax-Friedrichs e consistente com a equacao


da onda unidirecional de acordo com a ultima definicao.

11.3. O smbolo de um esquema de DF

Definicao 11.3.1. O smbolo pk,h (s, ) de um operador de diferencas Pk,h e


definido por
Pk,h (eskn , eimh ) = pk,h (s, )eskn eimh (11.3.1)
Isto e, o smbolo e a quantidade multiplicando a funcao nm = eskn eimh na
malha depois de aplicar o operador de diferencas Pk,h em nm .

Exemplo 53.
O operador de diferencas para o esquema de Lax-Wendroff e
esk 1 ia a2 k 1
pk,h (s, ) = + sin h + 2 2 sin2 ( h) (11.3.2)
k h h 2
Secao 11.3: O smbolo de um esquema de DF 85

e
1 sk iak
rk,h (s, ) = (e + 1) sin h (11.3.3)
2 2h

Definicao 11.3.2. O smbolo p(s, ) do operador diferencial P e definido por


P (est eix ) = p(s, )est eix (11.3.4)
Isto e, o smbolo e a quantidade multiplicando a funcao (t, x) = est eix depois
de aplicar o operador P em (t, x).

Teorema 11.3.3. Um esquema Pk,h u = Rk,h f consistente com a EDP P u = f


possui ordem de precisao (p, q) se e somente se para cada s e ,
pk,h (s, )
p(s, ) = O(k p ) + O(hq ). (11.3.5)
rk,h (s, )
Demonstracao. Segue diretamente das definicoes de consistencia e dos smbolos.
Tambem e necessario expandir Pk,h em serie de Taylor, veja [11], p. 57.
Na prova do teorema, obtemos que
pk,h (s, ) rk,h (s, )p(s, ) = O(k p ) + O(hq ). (11.3.6)
que e utilizada na pratica para mostrar ordem de precisao.
Corolario 3. Um esquema Pk,h u = Rk,h f consistente com a EDP P u = f onde
k = (h) possui ordem de precisao r se e somente se para cada s e ,
pk,h (s, )
p(s, ) = O(hr ). (11.3.7)
rk,h (s, )

Exemplo 54.
Vamos provar que o metodo de Crank-Nicolson e de ordem (2, 2). Utilizando (11.2.5)
un+1 unm un+1 un+1 n n
m1 + um+1 um1 f n+1 + fm
n
m
+ a m+1 = m (11.3.8)
k 4h 2

un+1 unm un+1 un+1 n


m1 + um+1 um1
n
f n+1 + fm
n
m
+ a m+1 = m (11.3.9)
k 4h 2
obtemos
esk 1 esk + 1 sin(h)
pk,h (s, ) = + ia (11.3.10)
k 2 h
e
esk + 1
rk,h (s, ) = (11.3.11)
2
Temos entao que o lado esquerdo de (11.3.6) torna-se
esk 1 esk + 1 sin(h) esk + 1
+ ia (s + ia) (11.3.12)
k 2 h 2
Secao 11.4: Ordem de precisao da solucao 86

Devemos expandir em serie de Taylor, mas antes1 , multiplique por esk/2 = O(1) temos
esk/2 esk/2 esk/2 + esk/2 sin(h) esk/2 + esk/2
+ ia (s + ia) (11.3.13)
k 2 h 2
Utilizando as expansoes em serie de Taylor,
esk/2 esk/2 s3 k 2
=s+ + O(k 4 ) (11.3.14)
k 24
esk/2 + esk/2 s2 k 2
=1+ + O(k 4 ) (11.3.15)
2 8
sin(h) 3 h2
= + O(h4 ) (11.3.16)
h 6
obtemos
s3 k 2 s2 k 2 3 h2
[s + + O(k 4 )] + ia[1 + + O(k 4 )][ + O(h4 )]
24 8 6
s2 k 2
[1 + + O(k 4 )](s + ia)
8
s3 k 2 s2 k 2 3 h2
=s + + ia[1 + ][ ]
24 8 6
s2 k 2
[1 + ](s + ia) + O(k 4 + h4 + k 2 h2 )
8
k 2 s3 3 h2
= ia + O(k 4 + h4 + k 2 h2 )
12 6
=O(k 2 + h2 )
O que implica que o metodo e de ordem (2, 2).

11.4. Ordem de precisao da solucao


Nas secoes anteriores tratavamos da ordem de precisao de um esquema de diferencas
finitas. Este se relaciona com a ordem de precisao da solucao, que pode ser calculada
da solucao obtida numericamente.

Definicao 11.4.1. Seja u(t, x) a solucao do PVI e um esquema de DF com


u0m = u(0, xm ). Assuma que k = (h). O erro em t = nk e calculado por
Error(t) = ku(t, ) un kh (11.4.1)

1
X
= (h |u(t, xm ) unm |2 ) 2 = O(hr ) (11.4.2)
m=

A ordem de precisao da solucao e definida pelo numero r, caso exista.

Se o dado inicial e suave, entao a ordem de precisao do esquema e a numerica


sao iguais (Cap.10 [11]). Se o erro e medido com outra norma, a ordem da precisao
pode ser diferente.
1 Podemos expandir diretamente em serie de Taylor essa ultima expressao
Secao 11.5: Estabilidade LW e CN 87

11.5. Estabilidade LW e CN
Exemplo 55.
O esquema de Lax-Wendroff para ut + aux = 0 e
a n a2 2 n
un+1
m = unm (um+1 unm1 ) + (um+1 2unm + unm1 ) (11.5.1)
2 2
que possui fator de amplificacao
a i a2 2 i
g() = 1 (e ei ) + (e 2 + ei ) (11.5.2)
2 2
= 1 ia sin a2 2 (1 cos ) (11.5.3)

= 1 2a2 2 sin2 ia sin (11.5.4)
2
com magnitude

|g()|2 = (1 2a2 2 sin2 )2 + (2a sin cos )2 (11.5.5)
2 2 2
2
= 1 4a2 2 sin2 + 4a4 4 sin4 + 4a2 2 sin2 cos2 (11.5.6)
2 2 2 2

= 1 4a2 2 (1 a2 2 ) sin4 (11.5.7)
2
Assim, o esquema de Lax-Wendroff e estavel (|g()| 1) se e somente se |a| 1.

Exemplo 56.
Para o metodo de Crank-Nicolson (11.2.5), obtemos
1 i 12 a sin
g() = (11.5.8)
1 + i 12 a sin
e
1 + ( 12 a sin )2
|g()|2 = =1 (11.5.9)
1 + ( 12 a sin )2
O que implica que o esquema e estavel , ou seja, incondicionalmente estavel.

Exerccio 11.1. Mostre que o esquema MacCormack


un+1
m = unm a(unm+1 unm ) + kfm
n
(11.5.10)
1 n
un+1
m = (u + un+1 a(un+1 un+1 n+1
m1 ) + kfm ) (11.5.11)
2 m m m

possui segunda ordem de precisao para ut + aux = 0. Mostre que para f = 0, o


esquema e identico ao esquema de Lax-Wendroff.
Exerccio 11.2. Mostre que o esquema box
1
[(un+1 + un+1 n n
m+1 ) (um + um+1 )] (11.5.12)
2k m
a
+ [(un+1 un+1 n n
m ) + (um+1 um )] (11.5.13)
2h m+1
1 n+1 n+1 n n
= (fm+1 + fm + fm+1 + fm ) (11.5.14)
4
Secao 11.5: Estabilidade LW e CN 88

possui ordem de precisao (2, 2) para ut + aux = f . Mostre que e estavel para todo .

Exerccio 11.3. Usando o esquema box (exerccio anterior), resolva


ut + ux = sin(x t), 0 x 1, 0 t 1.2 (11.5.15)
u(0, x) = sin(x) (11.5.16)
u(t, 0) = (1 + t) sin(t) (11.5.17)
1 1
Demonstre que a solucao e de segunda ordem de precisao usando = 1.2, h = 10 , 20 ,
1 1
40 e 80 . Compute o erro na norma L 2 e L . Mostre que o esquema box em (10.2.60)
e de primeira ordem. Para implementar o esquema box, note que un+1 0 e dado pela
condicao de contorno e un+1
m+1 pode ser determinado pelo esquema.
Exerccio 11.4. Resolva numericamente a equacao
ut + ux = 0, 1 x 1, 0 t 1.2 (11.5.18)
u(0, x) = sin(2x) (11.5.19)
u(t, 1) = u(t, 1) (11.5.20)
Use dois metodos:
a. FTBS com = 0.8.
b. Lax-Wendroff com = 0.8.
Demonstre que a solucao de a. e de primeira ordem e de b. e de segunda ordem de
1 1 1 1
precisao usando h = 10 , 20 , 40 e 80 . Compute o erro na norma L2 e L . (Nao some
ambos os extremos da malha).
Exerccio 11.5. Resolva numericamente ut + ux = cos2 u com o esquema (11.2.12)
tratando cos2 u como f (t, x). Mostre que o esquema e de primeira ordem. A solucao
exata e dada por
tan[u(t, x)] = tan[u0 (x t)] + t (11.5.21)
Use uma funcao suave, tal como sin(x t), como condicao inicial e de contorno.
Exerccio 11.6. Modifique o esquema do exerccio anterior para ser de segunda ordem
e explcito. Existem varias maneiras de fazer isso. Pode-se usar cos2 un+1
m = cos2 (unm )
n n+1 n 2
sin(2vm )(vm vm ) + O(k ). Outro modo e calcular explicitamente ft na derivacao
do esquema de Lax-Wendroff e eliminar todos as derivadas em t usando a equacao
diferencial.

Exerccio 11.7. Determine a precisao e a estabilidade do esquema abaixo para ut +


utx + aux = f ,
ka un+1 un+1
un+1
m + (1 + ) m+1 m1
= (11.5.22)
2 2h
ka unm+1 unm1 k n+1
unm + (1 ) + (fm n
+ fm ) (11.5.23)
2 2h 2
Dica: Note que o esquema e simetrico em n+ 21 , tal como o esquema de Crank-Nicolson.
Secao 11.6: Condicoes de contorno 89

Exerccio 11.8. Mostre que o esquema do exemplo 51 possui smbolo


esk cos h sin2 ( 12 h) sin(h)
g() = + 4ai (11.5.24)
k h3
e comente sobre a precisao do esquema.

11.6. Condicoes de contorno


Ao resolver um problema de valor inicial e de contorno numericamente devemos discre-
tizar tambem as condicoes de contorno do problema contnuo. Muitos esquemas re-
querem tambem condicoes de contorno numericas adicionais, para determinar a solucao
unicamente.
Considere o esquema de Lax-Wendroff e o PVIC ut + aux = 0, 0 x 1. Tal
esquema pode ser aplicado somente nos ponto interiores e nao nos pontos do contorno,
pois, por exemplo, para calcular un+1
m em xm sao necessarios os valores de u em xm1
e xm+1 (que nao estao disponveis ora num extremo, ora no outro). Veja o estencil do
esquema abaixo.
un+1
m
n+1
|
n
unm1 unm unm+1
Assumindo a > 0, a onda esta viajando para a direita, assim un0 deve dado de
acordo com PVIC. Entretanto em xM , o ultimo ponto da malha a direita, devemos
calcular de outro modo unM , pois usando o esquema necessitaramos de u em xM+1 que
nao esta disponvel. Nesse caso uma condicao de contorno numerica adicional deve ser
fornecida.
Uma possibilidade e extrapolar o valor no contorno de acordo com o valor no
interior. Por exemplo cada uma das condicoes de contorno numericas seguintes:
un+1
M = un+1
M1 (11.6.1)
un+1
M = 2un+1 n+1
M1 uM2 (11.6.2)
un+1
M = unM1 (11.6.3)
un+1
M = 2unM1 un1
M2 (11.6.4)
As duas primeiras formulas sao extrapolacoes da solucao nos pontos interiores
para o contorno. As duas ultimas sao chamadas extrapolacoes quasi-caractersticas,
pois a extrapolacao e feita atraves de pontos proximos as caractersticas.
Condicoes de contorno numericas geralmente tomam a forma de formulas de
diferencas laterais. Poderamos ter
un+1
M = unM a(unM unM1 ) (11.6.5)
Entretanto esta formula pode ser obtida aplicando o esquema de Lax-Wendroff para
un+1
M e utilizar
un+1 n+1 n+1
M+1 = 2uM uM1 (11.6.6)
Secao 11.7: Sistemas Tridiagonais 90

Este exemplo ilustra o uso de pontos extras ou pontos fantasmas ou pontos fictcios
fora do domnio para auxiliar na determinacao de valores nos contornos.
Dificuldades extras aparecem com condicoes de contorno numericas, pois certas
condicoes de contorno podem causar instabilidades quando utilizadas com determi-
nados esquemas. Por exemplo, (11.6.1) e (11.6.2) juntas com o esquema leapfrog
sao instaveis, onde (11.6.3) e (11.6.4) sao estaveis. Para o esquema Crank-Nicolson,
(11.6.3) e (11.6.4) sao instaveis quando a > 2, porem (11.6.1) e (11.6.2) sao estaveis
(Cap.11, [11]).
A analise da instabilidade devida a condicao de contorno numerica adicional pode
se tornar algebricamente longa. Na pratica, em caso de suspeita de tal instabilidade, e
mais facil implementar outra condicao de contorno.
Exerccio 11.9. Resolva numericamente ut + ux = 0, 0 x 1 com o esquema
leapfrog e as seguintes condicoes de contorno. Somente d. deveria funcionar. Por que?
a. Em x = 0, u especificado; em x = 1 use (11.6.2).
b. Em x = 0, u especificado; em x = 1, u = 0.
c. Em x = 0, (11.6.2); em x = 1 use (11.6.3).
d. Em x = 0, u especificado; em x = 1 use (11.6.3).

11.7. Sistemas Tridiagonais


Para usar esquemas como o Crank-Nicolson (e outros esquemas implcitos) devemos
resolver um sistema tridiagonal de equacoes. Podemos usar o algoritmo de Thomas
abaixo para isso. Como o sistema e tridiagonal, podemos fornecer apenas tres vetores
com os coeficientes ai , bi e ci do sistema tridiagonal
b1 x1 + c1 x2 = d1 (11.7.1)
ai xi1 + bi xi + ci xi+1 = di , 2iN 1 (11.7.2)
bN xN 1 + cN xN = dN (11.7.3)
Veja o algoritmo de Thomas, que resolve um sistema tridiagonal, incluindo as
equacoes para os contornos por eliminacao Gaussiana.

%%%%%%%%%%%%%%%%%%%%%%
% algoritmo de Thomas, resolve sistema tridiagonal
% a(i)*x(i-1) + b(i)*x(i) + c(i)*x(i+1) + d(i) = 0
%%%%%%%%%%%%%%%%%%%%%%
function [x]=thomas(a,b,c,d)
n=length(a);

c(1) = c(1)/b(1);
d(1) = d(1)/b(1);
for i = 2:n
id = (b(i) - c(i-1)*a(i));
c(i)=c(i)/id; % ultimo valor nao usado
91

d(i)=(d(i) - a(i)*d(i-1))/id;
end

x(n) = d(n); %retrosubstituicao


for i= n-1:-1:1
x(i) = d(i) - c(i)*x(i+1);
end
%%%%%%%%%%%%%%%%%%%%%%
Note que os pontos interiores da malha estao entre 2 i n 1. A primeira
linha e reservada para a condicao de contorno em x1 e a ultima linha para xN .
Para o algoritmo de Thomas ser bem condicionado, e suficiente que a matriz
obtida seja diagonal dominante (|ai | + |ci | |bi |).
Para o caso periodico, e necessario uma extensao desse algoritmo que e obtido
atraves de um caso especial da formula de Sherman-Morrison.
Exerccio 11.10. Resolva numericamente a equacao
ut + ux = 0, 1 x 1, 0 t 1.2 (11.7.4)

1 |x|, |x| 1
u(0, x) = (11.7.5)
0, c.c.
u(t, 1) = 0 (11.7.6)
1 1 1 1
Use o metodo de Cranck-Nicolson. Utilize h = 10 , 20 , 40 e 80 . Compute o erro na
norma L2 e L .

Aula 21, 22 .
Estabilidade para Passo Multiplo
.
Strikwerda: Cap. 4

Captulo 12:
Estabilidade para esquemas de passo multiplo
12.1. Estabilidade do esquema leapfrog
Considere a equacao ut + aux = 0 e o esquema Leapfrog
vin+1 vin1 v n vi1 n
+ a i+1 =0 (12.1.1)
2k 2h
Aplicando a transformada inversa de Fourier obtemos
Z /h
eimh (v n+1 () + 2ia sin(h)v n () v n1 ()) d = 0 (12.1.2)
/h
Secao 12.1: Estabilidade do esquema leapfrog 92

o que implica que


v n+1 () + 2ia sin(h)v n () v n1 () = 0 (12.1.3)
Para resolver essa equacao de recorrencia, tomamos1 v n = g n . Assim obtemos
g 2 + 2ia sin(h)g 1 = 0 (12.1.4)
que possui razes
q
g1,2 (h) = ia sin(h) 1 a2 2 sin2 (h) (12.1.5)
de onde temos dois casos:
Quando as razes sao diferentes, a solucao e
v n () = C1 ()g1n (h) + C2 ()g2n (h) (12.1.6)
Usando a definicao 9.6.2 (com J = 1), para estabilidade devemos ter
kv n kh CT (kv 0 k2h + kv 1 k2h ) (12.1.7)
o que implica que (teorema 10.2.1)
|g1 (h)| 1 + Kk e |g2 (h)| 1 + Kk (12.1.8)
deve ser satisfeita. Tomando constante podemos usar a condicao de estabilidade
|g1 (h)| 1 e |g2 (h)| 1 (12.1.9)
De (12.1.5), tomando |a| 1 obtemos
|g1 |2 = |g2 |2 (12.1.10)
2 2 2
= (a sin(h)) + (1 (a) sin (h)) (12.1.11)
=1 (12.1.12)
Se |a| > 1 o esquema e instavel, pois para h = /2 temos
p
|g2 | = |a| + (a)2 1 > 1 (12.1.13)

Quando as razes sao iguais a solucao e


v n () = C1 ()g n (h) + C2 ()ng n (h) (12.1.14)
Isto acontece somente se |a sin | = 1. Pela analise anterior temos que |a| 1
para ser estavel. Assim, somente quando |a| = 1 e = /2 temos que
g1 = g2 = i.
Nesse caso a solucao e

v n () = C1 ( )(i)n + C2 ( )n(i)n (12.1.15)
2h 2h
que em geral2 cresce linearmente com n, tornando o sistema instavel para |a| = 1
e = /2.
1 Em vn , n representa um ndice e em g n , n representa a potencia.
2 quando as condicoes iniciais tornam C2 = 0 a solucao nao cresce
Secao 12.1: Estabilidade do esquema leapfrog 93

Assim a condicao de estabilidade necessaria e suficiente para o esquema leapfrog


e
|a| < 1. (12.1.16)

12.1.1. Inicializando o esquema leapfrog


Para os passos iniciais de um esquema de passo multiplo podemos utilizar qualquer
outro metodo de passo simples. Ate mesmo um esquema instavel, desde que seja
consistente. O pequeno crescimento na solucao sera mantido sem ser amplificado devido
a estabilidade do esquema leapfrog ou outro esquema de passo multiplo.
Se e constante o esquema de inicializacao pode ser uma ordem de precisao
a menos que o esquema de passo multiplo sem comprometer a precisao do esquema
(Cap.10, [11]).
Por exemplo, usar o esquema F T CS para inicializar o esquema leapfrog nao
afeta a estabilidade ou a precisao do esquema leapfrog.
Vamos examinar novamente a solucao anterior, que depende de g1 e g2 . Assuma
que utilizamos o esquema F T CS para obter v 1 como
v 1 () = (1 ia sin(h))v 0 () (12.1.17)
Utilizando as condicoes iniciais em (12.1.6) obtemos
v 0 () = C1 + C2 (12.1.18)
1
v () = C1 g1 (h) + C2 g2 (h) (12.1.19)
e resolvendo o sistema obtemos as constantes
g2 v 0 v 1
C1 = (12.1.20)
g1 g2
g1 v 0 v 1
C2 = (12.1.21)
g1 g2
e usando a condicao inicial
g2 v 0 (1 ia sin(h))v 0
C1 = (12.1.22)
g1 g2
g1 v (1 ia sin(h))v 0
0
C2 = (12.1.23)
g1 g2
g2 1 + ia sin 0
C1 = v (12.1.24)
g1 g2
g1 1 + ia sin 0
C2 = v (12.1.25)
g1 g2
p
1 1 a2 2 sin2 0
C1,2 = v (12.1.26)
g1 g2
p
1 + 1 a2 2 sin2 0
C1,2 = v (12.1.27)
g1 g2
Secao 12.1: Estabilidade do esquema leapfrog 94

e como
p
g1 g2 = 2 1 a2 2 sin2 (12.1.28)
obtemos
p
1 + 1 a2 2 sin2 0
C1,2 = p v (12.1.29)
2 1 a2 2 sin2
Expandindo a raiz em serie de Taylor
 2 2
a4 4

p 1 a
1 a2 2 sin2 = 1 a2 2 2 + 4 + O(6 ) (12.1.30)
2 6 8
1
= 1 a2 2 2 + O(4 ) (12.1.31)
2
obtemos a magnitude das constantes C1 e C2 como
1 + (1 21 a2 2 2 + O(4 )) 0
C1,2 = v (12.1.32)
2 + O(2 )
1 + 1 + O(2 ) 0
C1,2 = v (12.1.33)
2 + O(2 )
C1 = O(0 )v 0 (12.1.34)
2 0
C2 = O( )v (12.1.35)
Esta ultima formula nos mostra que para |h| pequeno, teremos C2 tambem
pequeno e a solucao se comporta como a de um metodo de passo simples com fator de
amplificacao g1 .
A parte da solucao associada com g2 e chamada modo parasita. Com = 0,
temos g2 = 1 implicando que o modo parasita oscila rapidamente (alem disso ele viaja
na direcao oposta da onda, Cap.5 [11]).
Exemplo 57.
Considere a solucao do problema
ut + aux = 0, 1 x 1 (12.1.36)
1
cos2 (xm ), |x|

u(0, x) = 2 (12.1.37)
0, c.c.
com a = 1, = 0.9. Utilize FTCS para calcular u1m . Fixe un = 0 em ambos
os contornos, note que a direita e inconsistente com a EDP. Essa inconsistencia sera
aumentada pelo modo parasita.
Plotando o grafico para t = 0.45 temos que a solucao esta se movendo para
a direita e para t = 1.80 esta se movendo para a esquerda. A condicao de contorno
inconsistente gera um modo parasita oscilatorio e se movendo na direcao errada. Em
t = 3.6 o modo parasita foi convertido para o pulso original pela condicao de contorno
a esquerda.
Em qualquer calculo com metodos de passo multiplo, existirao modos parasi-
tas. Em muitos casos eles devem ser eliminados ou reduzidos. Podemos reduzir eles
utilizando dissipacao.
Secao 12.1: Estabilidade do esquema leapfrog 95

Exemplo 58.
Considere o esquema leapfrog de ordem (2, 4)
vin+1 vin1 v n + 8vi+1 n n
8vi1 n
+ vi2
+ a i+2 =0 (12.1.38)
2k 12h
onde a equacao para o fator de amplificacao e
2
g 2 + 2gia(1 + sin2 ) sin 1 = 0 (12.1.39)
3 2
4 cos
g 2 + 2gia( ) sin 1 = 0 (12.1.40)
3
que possui fatores de amplificacao
r
4 cos 4 cos 2 2
g1,2 = ia sin 1 a2 2 ( ) sin (12.1.41)
3 3
A condicao para estabilidade (e razes diferentes) e
4 cos
|a|| sin | < 1 (12.1.42)
3
para . O extremo dessa funcao ocorre quando
d
[(4 cos ) sin ] = 1 + 4 cos 2 cos2 = 0 (12.1.43)
d
ou seja, quando
r
3
cos = 1 (12.1.44)
2
Substituindo em (12.1.42) obtemos que a condicao necessaria e suficiente para estabi-
lidade e
1   12


1 3
|a| < 1 + 6 . (12.1.45)
6 2

12.1.2. Notacao de Diferencas

vm+1 vm
+ vm = (12.1.46)
h

vm vm1
vm = (12.1.47)
h

vm+1 vm1
0 vm = (12.1.48)
2h
Secao 12.2: Estabilidade para esquemas de passo multiplo 96

vm+1 2vm + vm1


2 vm = (12.1.49)
h2

Note que 0 = (+ )/2 e 2 = (+ )/h.


Exerccio 12.1. Mostre que o esquema leapfrog (2, 2) para ut + auxxx = f dado por
n+1 n1
vm vm
+ a 2 0 vm
n n
= fm (12.1.50)
2k
com = k/h3 constante e estavel se e somente se
2
|a| < 3/2 (12.1.51)
3

12.2. Estabilidade para esquemas de passo multiplo


A estabilidade do esquema de passo multiplo
Pk,h v = Rk,h f (12.2.1)
e determinada pelas razes do polinomio de amplificacao (g, ) dado por
 
ln g
(g, ) = kpk,h , (12.2.2)
k h
ou equivalentemente,
(esk , h) = kpk,h (s, ) (12.2.3)
Podemos obter assumindo que
n
vm = g n eim (12.2.4)
e solucao de (12.2.1) com f = 0.
Exemplo 59.
Considere o esquema de passo multiplo para ut + aux = 0 dado por
3vmn+1
4vm n
+ vmn1 v n+1 vm1
n+1
+ a m+1 n+1
= fm (12.2.5)
2k 2h
O polinomio para o fator de amplificacao e
 2 
3g 4g + 1 2ia sin
(g, ) = k + (12.2.6)
2k 2h
1 1
(g, ) = (3 + 2ia sin )g 2 2g + (12.2.7)
2 2
A estabilidade desse metodo depende das razes desse polinomio (esse esquema possui
ordem de precisao (2, 2) e e incondicionalmente estavel).
Secao 12.2: Estabilidade para esquemas de passo multiplo 97

Para um metodo de passo simples, (g, ) e um polinomio de grau 1 e possui


solucao geral dada por (10.2.10). Para um metodo de passo multiplo, e um polinomio
de grau J, e se as razes sao distintas a solucao geral3 e
J
X
v n () = C ()g (h)n (12.2.8)
=1
A condicao de estabilidade e que
|g (h)| 1 + Kk, = 1, . . . , J (12.2.9)
ou quando (g, ) e independente de k e h,
|g (h)| 1, = 1, . . . , J (12.2.10)
Caso as razes sejam multiplas, por exemplo, gj possui multiplicidade mj = 3, a solucao
geral possui um termo da forma
Cj0 ()gj (h)n + Cj1 ()ngj (h)n + Cj2 ()n2 gj (h)n (12.2.11)
Se |gj | < 1 entao a quantidade e limitada.
Teorema 12.2.1. Se o polinomio de amplificacao (g, ) e independente de k e h,
entao o esquema de diferencas finitas e estavel se e somente se todas as razes g
de satisfazem
a. |g ()| 1 e
b. se g () = 1, entao g () deve ser uma raiz simples.
Exerccio 12.2. Mostre que o metodo de segunda ordem para ut + aux = 0 dado
por
!
n+1 n n1 n+1 n+1
7vm 8vm + vm 2vm+1 + vm1 n+2/3
+ a0 = fm (12.2.12)
6k 2h
possui polinomio de amplificacao
(g) = (7 + 4i)g 2 (8 2i)g + 1 (12.2.13)
onde = a sin . Calcule as razes g1 (, a) e g2 (, a) e plote a regiao de estabilidade
(eixos coordenados e a).

Exerccio 12.3. Um certo esquema com ordem de precisao (3, 4) possui polinomio
de amplificacao
= (23 12 + 12i)g 3 (21 12 12i)g 2 3g + 1 (12.2.14)

a2 2 sin2 (/2)
= (12.2.15)
1 23 sin2 (/2)
a sin()
= (12.2.16)
1 23 sin2 (/2)
3 Os coeficientes C () sao determinados pelos dados iniciais nos nveis n = 0 a J 1 e podem
P 1 j
ser limitados por C J 0 |v |.
98

Calcule as razes desse polinomio. Plote a regiao de estabilidade. Verifique numerica-


mente que o esquema e estavel se e somente se

5
|a| (12.2.17)
3

Aula 23, 24 .
Equacoes Diferenciais Parciais Parabolicas
.
Strikwerda: Cap. 6

Captulo 13:
Equacoes Diferenciais Parciais Parabolicas
13.1. Equacao do calor
Considere a equacao do calor (ou equacao de difusao)
ut = buxx (13.1.1)
u(t = 0, x) = u0 (x) (13.1.2)
como exemplo mais simples de EDP parabolica, onde b > 0.
Aplicando a transformada de Fourier obtemos
ut = b 2 u (13.1.3)
que possui solucao
2
u(t, ) = eb t u0 () (13.1.4)
e aplicando a transformada inversa obtemos a solucao
Z
1 2
u(t, x) = eix eb t u0 () d (13.1.5)
2
A solucao mostra que u(t, x) e obtida pelo amortecimento dos modos de alta frequencia
de u0 .
Utilizando a condicao inicial
Z
1
u0 = eiy u0 (y) dy (13.1.6)
2
na solucao obtemos
Z Z
1 2 1
u(t, x) = eix eb t eiy u0 (y) dy d (13.1.7)
2 2
Z Z
1 1 2
= eix eb t eiy d u0 (y)dy (13.1.8)
4
Secao 13.2: Sistemas parabolicos 99

onde calculando a integral interna,


obtemos a solucao geral
Z
1 2
u(t, x) = e(xy) /4bt u0 (y)dy (13.1.9)
4bt
Note os seguintes fatos sobre a solucao:
Podemos interpretar u(t, x) como uma media ponderada de u0 ;
A solucao e infinitamente diferenciavel;
Se u0 0 entao u(t, x) 0, t.

ku(t, )k ku(t , )k , t > t . (13.1.10)

13.2. Sistemas parabolicos


Considere u Rp . O sistema de equacoes diferenciais
ut = Buxx + Aux + Cu + F (t, x) (13.2.1)
e parabolico se todos os autovalores de B tem parte real positiva (B nao e necessaria-
mente diagonalizavel e nenhuma restricao e feita em A e B).
Teorema 13.2.1. O PVI (13.2.1) e bem-posto no sentido da definicao 9.6.3. Tambem,
para cada T > 0, CT tal que
Z Z tZ
2
|u(t, x)| dx + |ux (s, x)|2 dx ds (13.2.2)
0
Z Z t Z 
CT |u(0, x)|2 dx + |F (s, x)|2 dx ds (13.2.3)
0
para 0 t T .
Note que a estimativa acima e mais forte que a da definicao pois fornece um cota
superior para a ux . Um sistema parabolico com p equacoes definido em x = [x0 , xM ]
requer p condicoes de contorno em cada extremo.
Exerccio 13.1. Prove a estimativa (13.2.2) para o caso escalar (13.1.1) pelo metodo
da energia, i.e., multiplique (13.1.1) por u(t, x) e use integracao por partes em t e x.

13.3. Diferencas finitas


Considere o esquema FTCS para a equacao de difusao

FTCS
vmn+1 n
vm v n 2vmn n
+ vm1
= b m+1 2
(13.3.1)
k h
Secao 13.3: Diferencas finitas 100

ou
n+1 n n n
vm = (1 2b)vm + b(vm+1 + vm1 ) (13.3.2)
onde = k/h2 . O esquema e claramente de 1.a ordem no tempo e 2.a ordem no
espaco. A analise da estabilidade e feita da mesma forma que anteriormente, ou seja,
n
substitumos vm por g n eim . O fator de amplificacao satisfaz
g1 ei 2 + ei
=b (13.3.3)
k h2
bk
g = 1 + 2 (ei + ei 2) (13.3.4)
h

g = 1 4b sin2 ( ) (13.3.5)
2
Como g e real, a condicao de estabilidade |g| < 1 e equivalente a

4b sin2 ( ) 2 (13.3.6)
2
que e satisfeita se e somente se
1
b (13.3.7)
2
Note que quanto |g| < 1 implica em um decrescimento da solucao, uma propriedade
desejada para esquemas parabolicos, ja que a solucao numerica se tornara mais suave
com o tempo, semelhante a EDP.
A condicao de estabilidade implica que k < h2 /(2b), o que pode tornar-se muito
severo a medida que h diminui.

13.3.1. Mais alguns esquemas

Backward-Time Central-Space (BTCS)


n+1
vm n
vm v n+1 2vm
n+1 n+1
+ vm1
= b m+1 2
+ fmn
k h
(13.3.8)

Este esquema e implcito e incondicionalmente estavel. Possui ordem (1, 2) e e dissipa-


tivo quando > > 0.

Crank-Nicolson
n+1 n n+1 n+1 n+1
vm vm b vm+1 2vm + vm1
=
k 2 h2
n n n n+1 n
b vm+1 2vm + vm1 fm + fm
+ + (13.3.9)
2 h2 2
Secao 13.3: Diferencas finitas 101

Este esquema e implcito, incondicionalmente estavel e de segunda ordem, i.e., ordem


de precisao (2, 2). E dissipativo de ordem 2 se e constante, mas nao dissipativo se
e constante.

Leapfrog
n+1
vm n1
vm v n 2vm
n n
+ vm1
= b m+1 n
+ fm
2k h2
(13.3.10)

Este esquema e instavel .

Esquema Du Fort-Frankel
n+1
vm n1
vm v n (vm
n+1 n1
+ vm n
) + vm1
= b m+1 n
+ fm
2k h2
(13.3.11)

Pode ser visto como uma modificacao do esquema leapfrog. O esquema e explcito,
incondicionalmente estavel e possui ordem O(h2 ) + O(k 2 ) + O(k 2 h2 ). O esquema e
nao-dissipativo, o que limita sua utilidade. Pode ser reescrito como
n+1 n n n1
(1 + 2b)vm = 2b(vm+1 + vm1 ) + (1 2b)vm (13.3.12)
O polinomio de amplificacao e
(1 + 2b)g 2 4b cos g (1 2b) = 0 (13.3.13)
que possui solucao
p
2b cos 1 4b2 2 sin2
g1,2 = (13.3.14)
1 + 2b
Se 1 4b2 2 sin2 0, entao
p
2b| cos | + 1 4b2 2 sin2
|g1,2 | (13.3.15)
1 + 2b
2b + 1
=1 (13.3.16)
1 + 2b
e se 1 4b2 2 sin2 < 0, entao
(2b cos )2 + 4b2 2 sin2 1
|g1,2 |2 = (13.3.17)
(1 + 2b)2
4b2 2 1
= 2 2 <1 (13.3.18)
4b + 4b + 1
Assim, , temos |g1,2 | < 1. Alem disso quando g1 = g2 ambos sao menores que 1
implicando estabilidade.
Entretanto o esquema Du Fort-Frankel e consistente somente se k/h tende a
zero com k e h.
Secao 13.4: Dissipacao e suavidade 102

Teorema 13.3.1. Um esquema de diferencas finitas consistente para o sistema


parabolico (13.2.1) e convergente somente se k/h tende a zero quando k 0 e
h 0.

13.4. Dissipacao e suavidade


Teorema 13.4.1. Um esquema de passo simples consistente com (13.1.1) dissipa-
tivo de ordem 2 com constante satisfaz
n
X
kv n+1 k2h + ck k+ v k2h kv 0 k2h (13.4.1)
=1

para v 0 e n 0.
Podemos usar o teorema para mostrar que solucoes se tornam mais suaves com
o tempo, i.e., a norma das derivadas de alta ordem sao limitadas e tendem a zero numa
taxa que e mais rapido que a norma de u. Como |g| 1, temos
kv +1 kh kv kh (13.4.2)
Como + v tambem e solucao do esquema, temos
k+ v +1 kh k+ v kh (13.4.3)
portanto do teorema,
kv n+1 k2h + ctk+ v n k2h kv 0 k2h (13.4.4)
o que mostra que para nk = t > 0 que k+ v n k2h e limitado. De fato, temos
k+ v n k2h Ct1 kv 0 k2h (13.4.5)
o que mostra que k+ v n k2h 0 quando t aumenta.
Como + v n satisfaz a equacao a diferencas, temos que nk = t > 0 e r inteiro
r n 2
que k+ v kh e limitado. Assim a solucao do esquema de diferencas, se torna mais
suave quando t aumenta.

13.5. Condicao de contorno


As EDPs parabolicas requerem uma condicao de contorno em cada ponto do contorno.
Condicoes de Dirichlet sao facilmente implementadas especificando a solucao nos pontos
dos contorno.
Para condicao de contorno de Neumann existem mais opcoes. Podemos utilizar
v n v0n
ux (tn , x0 ) 1 (13.5.1)
h
que e uma aproximacao de primeira ordem. Se utilizarmos o esquema de Crank-Nicolson
ou FTCS, estaremos baixando a ordem de precisao do metodo. Uma aproximacao de
segunda ordem unilateral e dada por
3v0n + 4v1n v2n
ux (tn , x0 ) (13.5.2)
2h
o que mantera a precisao de segunda ordem.
Secao 13.5: Condicao de contorno 103

Podemos tambem utilizar a aproximacao de segunda ordem


v n v1
n
ux (tn , x0 ) 1 . (13.5.3)
2h
n
Para isso precisamos aplicar tambem o esquema em x0 para eliminar o valor v1 . Assim
o metodo continuara de segunda ordem.
Exerccio 13.2. Justifique a estabilidade e ordem de precisao do esquema BTCS,
Crank-Nicolson e leapfrog.
Exerccio 13.3. Mostre que o esquema para (13.1.1) da forma
n+1 n 1 n n
vm = vm + (vm+1 + vm1 ), (13.5.4)
2
com constante quando k, h 0, e consistente com a equacao do calor somente se
= 1 2b.

Exerccio 13.4. Considere os dois esquemas para (13.1.1)

Esquema A:
n+1/2 n 1
vm = vm + kb 2 vm n
(13.5.5)
2
n+1 n
vm = vm + kb 2 vm
n+1/2
(13.5.6)

Esquema B:
n+1 n
vm = vm + kb 2 vm
n
(13.5.7)
n+1 n 1
vm = vm + k( 2 vmn+1
+ 2 vm
n
) (13.5.8)
2

a. Mostre que os dois esquemas sao na realidade o mesmo.


b. Mostre que esse esquema e de ordem (2, 2).
1 1
c. Mostre que esse esquema e estavel se b 2 e mostre que 2 g 1.
d. Discuta as vantagens e desvantagens do esquema comparados ao esquema FTCS.

Exerccio 13.5. Resolva numericamente


ut = uxx (13.5.9)
u(0, x) = 1 |2x 1| (13.5.10)
u(t, 0) = u(t, 1) = 0 (13.5.11)
f (x, t) = 0 (13.5.12)
para x [0, 1] e t [0, T ] utilizando o metodo FTCS. Faca k = 0.005h e utilize
h = 0.1, 0.05, 0.025, . . .. Comente os resultados.
Secao 13.6: Equacao de conveccao-difusao 104

Exerccio 13.6. Resolva numericamente


ut = buxx + f (x, t) (13.5.13)
u(0, x) = 1 |2x 1| (13.5.14)
para x [0, 1] e t [0, T ], utilizando o metodo FTCS para os seguintes casos:
a. Compare as solucoes para b = 2, b = 1, b = 0.5, b = 1. Utilize u(t, 0) = 0,
u(t, 1) = 0, f (x, t) = 0;

1, x > 1/2
b. Compare as solucoes para f = 0, f = 1, f = . Utilize u(t, 0) =
0, c.c.
0, u(t, 1) = 0, b = 1;
c. Compare as solucoes para u(t, 1) = 0, u(t, 1) = 1, ux (t, 1) = 0, ux (t, 1) = 1.
Utilize u(t, 0) = 0, f (x, t) = 1, b = 1;
d. Compare as solucoes para ux (t, 1) = 0 utilizando uma aproximacao de 1.a ordem
e uma de 2.a ordem. Utilize u(t, 0) = 0, f (x, t) = 1, b = 1;
Comente os resultados. Escolha apropriadamente k e h de tal forma a obter con-
vergencia (justifique sua escolha atraves dos graficos obtidos e/ou da teoria).
Exerccio 13.7. Resolva o PVIC (13.1.1) em x [1, 1] com dado inicial
1, |x| < 12

1
u0 (x) = , |x| = 12 (13.5.15)
2
0, |x| > 12
Resolva ate t = 12 . A condicao de contorno e a solucao exata e dada por

1 X cos (2l + 1)x 2 (2l+1)2 t
u(t, x) = + (1)l e (13.5.16)
2 (2l + 1)
l=0
Use o esquema de Crank-Nicolson com h = 1/10, 1/20, 1/40. Compare a precisao
quando = 1 e = 10. Demonstre pelas simulacoes que quando e constante, o erro
na solucao nao decresce em kk , mas decresce em kk2 .

13.6. Equacao de conveccao-difusao


A equacao de conveccao-difusao
ut + aux = buxx (13.6.1)
possui similaridades com equacoes parabolicas e hiperbolicas. Fazendo y = x at e
w(t, y) = u(t, y + at) obtemos
wt = ut + aux = buxx (13.6.2)
e
wy = ux , wyy = uxx (13.6.3)
levando a
wt = bwyy (13.6.4)
Como u(t, x) = w(t, xat), vemos que a solucao (13.6.1) e a mesma que a de (13.6.4),
porem movendo-se com velocidade a.
Secao 13.6: Equacao de conveccao-difusao 105

13.6.1. Esquema FTCS


Considere o esquema FTCS (assuma a > 0)
n+1
vm n
vm v n vm1
n
v n 2vm n n
+ vm1
+ a m+1 = b m+1 (13.6.5)
k 2h h2
com ordem O(k, h2 ). Este sera de ordem 2 (no tempo e espaco O(k 2 , h2 )) se a condicao
de estabilidade
1
b (13.6.6)
2
n+1
for satisfeita. Isolando vm obtemos
n+1 n n n
vm = (1 2b)vm + b(1 )vm+1 + b(1 + )vm1 (13.6.7)
onde
k ha a
= , = = > 0. (13.6.8)
h2 2b 2b
n+1
Queremos obter a condicao para que o maximo de |vm | nao aumente com o
tempo, pois a solucao da EDP satisfaz
ku(t, )k ku(t , )k , t > t . (13.6.9)
Assim, usando (13.6.7) e assumindo que (1 2b) 0, (1 ) 0, (1 + ) 0,
temos que
n+1 n n n
|vm | = |(1 2b)vm + b(1 )vm+1 + b(1 + )vm1 |
n n n
(1 2b)|vm | + b(1 )|vm+1 | + b(1 + )|vm1 |
n n n
(1 2b)|vm | + b(1 )|vm+1 | + b(1 + )|vm1 |
n n n
(1 2b) max |vm | + b(1 ) max |vm+1 | + b(1 + ) max |vm1 |
m m m
n
[1 2b + b(1 ) + b(1 + )] max |vm |
m
n+1 n
|vm | max |vm |
m
e assim
n+1 n
max |vm | max |vm | (13.6.10)
m m
1
se e somente se || 1 e b 2 (a condicao de estabilidade).
Ou seja,
ha 2b
|| = |
|1 h (13.6.11)
2b a
que e uma restricao ao espacamento da malha. A quantidade a/b corresponde ao
numero de Reynolds em fluidos ou numero de Peclet em transferencia de calor. Al-
gumas vezes ou 2 e chamado de numero de Reynolds da malha (ou Peclet).
Caso tal restricao seja violada, aparecerao oscilacoes na solucao que nao sao devidas a
instabilidades1.
1 pois estas nao crescem com o tempo.
Secao 13.6: Equacao de conveccao-difusao 106

13.6.2. Esquema upwind


Considere o esquema upwind (assuma a > 0)
n+1
vm n
vm v n vm1
n
v n 2vm
n n
+ vm1
+a m = b m+1 (13.6.12)
k h h2
n+1
ou isolando vm ,
n+1 n n n
vm = (1 2b(1 + ))vm + bvm+1 + b(1 + 2)vm1 (13.6.13)
Se 1 2b(1 + ) 0 entao o esquema satisfaz (13.6.10). As oscilacoes foram
eliminadas, porem o metodo e de O(h). A restricao torna-se 2b(1 + ) 1
2b + a 1 que e menos restrita do que (13.6.11), quando b e pequeno e a e grande.
Note que (13.6.12) pode ser reescrita como
vmn+1
vmn v n vm1
n n
ah vm+1 2vm n n
+ vm1
+ a m+1 = b(1 + ) 2
(13.6.14)
k 2h 2b h
que e equivalente a adicionar uma viscosidade artificial b ah
2b vxx ao problema tornando
a solucao nao oscilatoria.
Exemplo 60.
Considere ut + aux = buxx com b = 0.1, a = 10, h = 0.04 tal que = 2. O esquema
FTCS apresenta oscilacoes. Utilizando o esquema upwind temos b(1 + ) = 0.3 (uma
diferenca de 200%). A solucao e bem aproximada? E se trocarmos para b = 0 (somente
100% de diferenca)? Se > 1, nenhum dara uma boa solucao. Teremos uma boa
solucao qualitativa ou quantitativa, mas nao ambas. Como melhorar isso? Diminuindo
o h ou trocando de metodo.
Sistemas fsicos reais envolvem equacoes do tipo conveccao-difusao, porem mais
complexas (sistemas de equacoes, coeficientes variaveis).
Existe uma limitacao no espacamento.
Se h e muito pequeno e a solucao nao e precisa, podemos trocar de metodo.
A malha pode ser refinada onde a solucao possui maior variacao.

Exerccio 13.8. Mostre que o esquema (13.6.5) satisfaz |g| 1 se e somente se


k 2b/a2 . Compare essa condicao em relacao a (13.6.11).
Exerccio 13.9. Considere a equacao nao linear
1
ut + (u2 )x = buxx (13.6.15)
2
em x [1, 1]. Esta equacao possui solucao
c
u(t, x) = a c tanh[ (x at)] (13.6.16)
2b
Considere a > 0 e c > 0. Baseado no texto, haverao limitacoes em
hc ha
ou (13.6.17)
2b 2b
107

para uma solucao qualitativamente correta. Usando qualquer esquema, investigue esta
equacao e as limitacoes acima. Justifique suas conclusoes com algumas simulacoes
bem-escolhidas. Fixe a, b e varie b. Ou fixe a, b e varie c. Ou fixe a, b, c e varie h.
Dica: A solucao e uma frente de onda movendo-se para a direita com veloci-
dade a. Esta frente tem um aumento em u de 2c quando passa por qualquer ponto, e
o media de u e a. Note que a magnitude maxima da derivada da solucao dividida pela
variacao total em u e c/4b.

Aula 25, 26 .
Sistemas de EDPs
.
Strikwerda: Cap. 7

Captulo 14:
Sistemas Bidimensionais e Tridimensionais

14.1. Estabilidade para sistemas de EDPs


Seja u Rd . Se A Rdd e diagonalizavel com autovalores reais entao
ut + Aux = 0 (14.1.1)
e um sistema hiperbolico.
Se B Rdd com autovalores com parte real positiva entao
ut = Buxx (14.1.2)
e um sistema parabolico.
A maioria dos esquemas vistos anteriormente pode ser derivado trocando a por
A e b por B. A diferenca principal esta na condicao de estabilidade.
Ao inves de um fator de amplificacao g, encontraremos uma matriz de ampli-
n
ficacao G, que e obtida substituindo vm por Gn eim . A condicao para estabilidade e
que para T > 0, CT constante tal que, para 0 nk T , temos
kGn k CT (14.1.3)
No caso hiperbolico, se G e um polinomio ou uma funcao racional de A, entao a mesma
matriz que diagonaliza A tambem diagonaliza G. Assim a estabilidade do esquema
depende somente na estabilidade das equacoes escalares
wt + ai (wx ) = 0 (14.1.4)
onde ai e um autovalor de A. Para o esquema Lax-Wendroff, a condicao de estabilidade
e |ai | 1, i = 1, . . . , d.
Secao 14.2: Esquemas de passo multiplo 108

Para sistemas parabolicos, usando decomposicao de Schur1 , a mesma matriz que


transforma B numa matriz triangular superior faz o mesmo para G. Para cada caso, se
G = U T U 1 , entao Gn = U T n U 1 e assim
kGn k kU kkU 1kkT nk (14.1.5)
o que implica que podemos analisar a condicao de estabilidade para T . Em geral a
situacao e mais complexa. A condicao necessaria para estabilidade e
|g | 1 + Kk (14.1.6)
para cada autovalor g de G, mas nao e suficiente em geral.
Exemplo 61.
Considere o sistema
ut = 0 (14.1.7)
vt = 0 (14.1.8)
com o esquema de 1.a ordem
un+1
m = unm c(vm+1
n n
2vm n
+ vm1 ) (14.1.9)
n+1 n
vm = vm (14.1.10)
A matriz de amplificacao e
1 4c sin2 (/2)
 
G= (14.1.11)
0 1
e assim
1 4nc sin2 (/2)
 
Gn = (14.1.12)
0 1
Os autovalores dessa matriz sao g1 = g2 = 1 (satisfazendo |g | 1). Entretanto para
= temos kGn k e ilimitado, concluindo que o esquema e instavel.

14.2. Esquemas de passo multiplo


Um esquema de passo multiplo que pode ser colocado na forma
un+1 () = A0 ()un () + A1 ()un1 () + . . . + AK ()unK () (14.2.1)
dd
onde A () R , pode ser escrito como um sistema
U n+1 () = G(h)U n () (14.2.2)
onde
un ()

U n () =
..
(14.2.3)
.
nK
u ()
1 Toda matriz M pode ser decomposta como M = U T U 1 , onde U e unitaria (U 1 = U T ) e T

e triangular superior.
Secao 14.3: Duas e tres dimensoes 109

e G e a matriz companheira

A
0 A1 AK1
AK
I
G(h) = (14.2.4)

..
0

.
I
Para EDPs escalares os metodos na secao 12.2 sao mais faceis de utilizar. Para
sistemas, nao ha analogo a decomposicao de Schur como visto anteriormente para
metodos de passos simples, portanto a conversao para o sistema acima e desejada.
Exerccio 14.1. Analise a estabilidade do esquema leapfrog transformando-o em um
sistema. Mostre que esta analise fornece a mesma conclusao como visto na secao 12.2.
Exerccio 14.2. Mostre que o esquema de Lax-Friedrichs aplicado a
    
u 1 1 u
+ =0 (14.2.5)
v t 0 1 v x
e instavel (esta equacao e um sistema fracamente hiperbolico).

14.3. Duas e tres dimensoes


14.3.1. Introducao
Vamos nos restringir a domnios retangulares. Uma metodologia similar (chamada
coordenadas generalizadas) pode-se ser usada para domnios mais complexos. A analise
se torna mais complexa.

Definicao 14.3.1. Sejam h1 = x e h2 = y. Uma malha ou grid sera o


conjunto de pontos (xi , yj ) = (ih1 , jh2 ) para 0 i M, 0 j N inteiros.
Podemos tambem usar dois ndices como (xi,j , yi,j ) para se referenciar a este
ponto.

Denotamos
uni,j u(tn , xi,j , yi,j ) (14.3.1)
o valor de u no ponto (xi,j , yi,j ) no tempo tn .
A derivada em x (1.a ordem pra frente) se torna
u uni+1,j uni,j
(tn , xi,j , yi,j ) , (14.3.2)
x h1
a derivada central em y e
u uni,j+1 uni,j1
(tn , xi,j , yi,j ) (14.3.3)
y 2h2
e a derivada temporal e
u un+1 n
i,j ui,j
(tn , xi,j , yi,j ) (14.3.4)
t k
Secao 14.3: Duas e tres dimensoes 110

Exerccio 14.3. Resolva numericamente a equacao


ut = buxx + buyy (14.3.5)
em 0 x, y 1. Escolha condicoes de contorno e iniciais apropriadas. Para imprimir
graficos da solucao utilize o comando contour(u) (para visualizar pode-se utilizar
surf(u) ou pcolor(u))
Exerccio 14.4. Resolva numericamente a equacao
u t = a1 u x + a2 u y (14.3.6)
em 0 x, y 1. Utilize condicoes de contorno periodicas e uma condicao inicial
apropriada. (Dica: escolha com cuidado o esquema numerico de acordo com a1 e a2
para que seja estavel.) Para imprimir graficos da solucao utilize o comando contour(u).

14.3.2. Analise
O metodo de von Neumann pode ser estendido diretamente para o caso de duas e tres
dimensoes.
Exemplo 62.
Considere o esquema leapfrog padrao para o sistema
ut + Aux + Buy = 0 (14.3.7)
onde A, B Rdd . O esquema pode ser escrito como
(0t + A0x + B0y )uni,j = 0 (14.3.8)
ou
un+1 n1
i,j ui,j
+ A0x uni,j + B0y uni,j = 0 (14.3.9)
2k
ou
un+1 n1
i,j ui,j uni+1,j uni1,j uni,j+1 uni,j1
+A +B =0 (14.3.10)
2k 2h1 2h2
A transformada de Fourier de un () = un (1 , 2 ) satisfaz a relacao
v n+1 () + 2i(1 A sin(h1 ) + 2 B sin(h2 ))v n () v n1 () = 0 (14.3.11)
onde 1 = k/h1 e 2 = k/h2 . Por ser de passo multiplo, podemos reescrever como um
sistema de passo simples e analisar Gn . Entretanto, para obter estimativas e necessario
assumir algumas hipoteses em A e B. A mais comum e que A e B sejam diagonalizaveis
simultaneamente, ou seja, P tal que P AP 1 e P BP 1 sejam matrizes diagonais.
Usando w = P v obtemos
wn+1 () + 2i(1 sin(h1 ) + 2 sin(h2 ))wn () wn1 () = 0 (14.3.12)
1
para = 1, . . . , d, onde e sao os elementos da diagonal de P AP e P BP 1 .
O restante da analise e similar a equacao (12.1.5). Conclumos entao que o esquema e
estavel se e somente se
1 | | + 2 | | < 1 (14.3.13)
Secao 14.4: Time-Split 111

para = 1, . . . , d.
Exemplo 63.
Uma modificacao no esquema anterior fornecida por Abarbanel e Gottlieb e dada por
un+1
i,j ui,j
n1
uni,j+1 + uni,j1 uni+1,j + uni1,j
+ A0x + B0y =0 (14.3.14)
2k 2 2
Similarmente ao exemplo anterior se A e B sao simultaneamente diagonalizaveis temos
que a condicao de estabilidade e
|1 sin 1 cos 2 + 2 sin 2 cos 1 | < 1 (14.3.15)
para 1 , 2 , . Usando Cauchy-Schwarz temos que
max{1 | |, 2 | |} < 1 (14.3.16)
e temos as duas condicoes suficientes sao 1 | | < 1 e 2 | | < 1 para (esta
tambem e a condicao necessaria). Este metodo permite o passo de tempo k ser maior
do que no exemplo anterior.

14.4. Time-Split
O metodo de Time-Split e uma maneira de reduzir um problema multidimensional para
uma sequencia de problemas unidimensionais (Yanenko). Considere a equacao
ut + P1 u + P2 u = 0 (14.4.1)

onde P1 = A x e P2 = B y
(nao e necessario que Pi esteja associado com uma
dimensao especfica).
A ideia e resolver duas equacoes de t0 ate t0 + k:
ut + 2P1 u = 0, t [t0 , t0 + k/2] (14.4.2)
ut + 2P2 u = 0, t [t0 + k/2, t0 + k] (14.4.3)
Isto e, cada operador age com o dobro de efeito pela metade do tempo.
Estabilidade nao segue diretamente da analise em separado de cada passo, a
menos que o fator de amplificacao de ambos comutem. A ordem de precisao tambem
nao e direta (veja [10], [4]).
Uma dificuldade extra e a determinacao das condicoes de contorno apropriadas.
Um metodo para derivar condicoes de contorno apropriadas e dado em [6].
Exemplo 64.
Um esquema time-split comum em dinamica de fluidos computacional e o esquema
time-split de MacCormack [7] (veja tambem 11.1. Para o sistema ut + Aux + Buy = 0
com x = y = h, o esquema forward-backward de MacCormack e
n+1/2
ui,j = uni,j A(uni+1,j uni,j ) (14.4.4)
n+1/2 1 n+1/2 n+1/2 n+1/2
ui,j = (uni,j + ui,j A(ui,j ui1,j )) (14.4.5)
2
n+1/2 n+1/2 n+1/2
un+1
i,j = ui,j B(ui,j+1 ui,j ) (14.4.6)
1 n+1/2
un+1
i,j = (ui,j + un+1 n+1 n+1
i,j B(ui,j ui,j1 )) (14.4.7)
2
112

Uma vantagem de tal metodo e que cada estagio esta separado, facilitando a imple-
mentacao em computadores em paralelo.

Exerccio 14.5. Mostre que o esquema


uni+1,j + uni1,j + uni,j+1 + uni,j1
un+1
i,j = + ka0x uni,j + kb0y uni,j (14.4.8)
4
para ut +aux+buy = 0, com x = y = h, e estavel se e somente se (|a|2 +|b|2 )2
1
2.

Captulo 15:
Esquema ADI
O metodo Implcito com Direcoes Alternadas (Alternating Direction Implicit) e bas-
tante utilizado com equacoes parabolicas.
A equacao
ut = b11 uxx + b12 uxy + b22 uyy (15.0.1)
e parabolica se b11 , b22 > 0 e b212 < b11 b22 . O exemplo mais comum e a equacao do
calor bidimensional
ut = b1 uxx + b2 uyy (15.0.2)
Se aplicarmos o esquema Crank-Nicolson, que e incondicionalmente estavel, en-
contraremos uma matriz tridiagonal por blocos1 . O esquema ADI reduz o problema
bidimensional numa sucessao de problemas unidimensionais.
2 2
Sejam os operadores lineares A1 = b1 x 2 e A2 = b2 y 2 e assuma que sabemos

resolver facilmente as equacoes


wt = A1 w (15.0.3)
wt = A2 w (15.0.4)
pelo metodo de Crank-Nicolson (ou um esquema similar). O esquema ADI possibilita
resolver a equacao combinada
ut = A1 u + A2 u (15.0.5)
Utilizando o esquema de Crank-Nicolson (expandindo em serie de Taylor em
t = (n + 1/2)k), obtemos
un+1 un A1 un+1 + A1 un A2 un+1 + A2 un
= + + O(k 2 ) (15.0.6)
k 2 2
ou
k k k k
A1 A2 )un+1 = (I + A1 + A2 )un + O(k 3 )
(I (15.0.7)
2 2 2 2
k k
Note que a matriz (I 2 A1 2 A2 ) nao e tao facil de inverter.
1 Pode ser resolvida atraves de um algoritmo de Thomas por blocos.
Secao 15.1: Algoritmo de Peaceman-Rachford 113

Adicionando k 2 A1 A2 (un+1 + un )/4 em ambos os lados


k k k2
A1 A2 + A1 A2 )un+1 =
(I (15.0.8)
2 2 4
k k k2
(I + A1 + A2 + A1 A2 )un + (15.0.9)
2 2 4
k2
A1 A2 (un+1 un ) + O(k 3 ) (15.0.10)
4
que pode ser fatorado como2
k k k k
(I A1 )(I A2 )un+1 = (I + A1 )(I + A2 )un (15.0.11)
2 2 2 2
k2
+ A1 A2 (un+1 un ) + O(k 3 ) (15.0.12)
4
n+1 n
Note que como u = u + O(k) temos que
k2
A1 A2 (un+1 un ) = O(k 3 ) (15.0.13)
4
e da mesma ordem que o termo presente levando a
k k k k
(I A1 )(I A2 )un+1 = (I + A1 )(I + A2 )un + O(k 3 ) (15.0.14)
2 2 2 2
Discretizando os operadores Ai como Ai obtemos matrizes (I k2 Ai ) que sao
tridiagonais e o sistema
k k k k
(I A1 )(I A2 )un+1 = (I + A1 )(I + A2 )un (15.0.15)
2 2 2 2
pode ser resolvido atraves do algoritmo de Thomas.

15.1. Algoritmo de Peaceman-Rachford


Peaceman e Rachford [8] resolvem dois sistemas tridiagonais:
k k
(I A1 )u = (I + A2 )un (15.1.1)
2 2
k n+1 k
(I A2 )u = (I + A1 )u (15.1.2)
2 2
o que origina o nome ADI.
Note que os dois sistemas acima sao equivalentes a (15.0.15). Multiplique
2 Utilizando 1a1 a2 + a1 a2 = (1a1 )(1a2 ).
Secao 15.2: Condicao de contorno 114

(15.1.2) por (I k2 A1 ), depois utilize (15.1.1):


k k k k
A1 )(I A2 )un+1 = (I A1 )(I + A1 )u
(I (15.1.3)
2 2 2 2
k2
= (I A21 )u (15.1.4)
4
k k
= (I + A1 )(I A1 )u (15.1.5)
2 2
k k
= (I + A1 )(I + A2 )un (15.1.6)
2 2
Podemos encontrar outras versoes do ADI se iniciarmos com outro esquema,
como por exemplo, utilizando o esquema BTCS encontramos o metodo de Douglas-
Rachford.

15.2. Condicao de contorno


Considere a condicao de contorno de Dirichlet u(t, x, y) = (t, x, y) no contorno. Po-
demos especificar a condicao para un+1 e para un utilizando diretamente (tn , x, y) e
(tn+1 , x, y). Entretanto precisamos uma condicao de contorno para u.
Podemos usar u(x, y) = (tn+ 12 , x, y), entretanto o metodo sera apenas de
primeira ordem.
Outro maneira e utilizar a propria equacao (15.1.1), onde u e necessario em
x = 0 e x = 1. Adicionando as (15.1.1) e (15.1.2) temos
1 k 1 k
(I + A2 ) n + (I A2 ) n+1
u = (15.2.1)
2 2 2 2
que pode ser usado para calcular u.

15.2.1. Estabilidade
Utilizando analise de von Neummann, podemos obter que o metodo ADI de Peaceman-
Rachford e incondicionalmente estavel.
Substitumos uni,j por g n ei ej e ui,j por gg n ei ej e obtemos
(1 + 2b1 1 sin2 (/2))g = 1 2b2 2 sin2 (/2) (15.2.2)
2 2
(1 + 2b2 2 sin (/2))g = g(1 2b1 1 sin (/2)) (15.2.3)
Assim
(1 2b2 2 sin2 (/2))(1 2b1 1 sin2 (/2))
(1 + 2b2 2 sin2 (/2))g = (15.2.4)
(1 + 2b1 1 sin2 (/2))

(1 2b2 2 sin2 (/2))(1 2b1 1 sin2 (/2))


g= (15.2.5)
(1 + 2b1 1 sin2 (/2))(1 + 2b2 2 sin2 (/2))
g 1 (15.2.6)
para b1 > 0, b2 > 0, mostrando que e incondicionalmente estavel.
Secao 15.3: Implementacao 115

15.3. Implementacao
E necessario uma malha (xi,j , yi,j ) = (ix, jy) para i = 0, . . . , M e j =
0, . . . , N . Para a solucao sao necessario 3 matrizes R(M+1)(N +1) : U , U e
U new.
Primeiramente devemos resolver o sistema (15.1.1) para calcular U a partir de U .
Note que temos que resolver
b1 1 b1 1
ui1,j + (1 + b1 1 )ui,j ui+1,j =
2 2
b2 2 b2 2
ui,j1 + (1 b2 2 )ui,j + ui,j+1
2 2
para i = 1, . . . , M 1 e j = 1, . . . , N 1. Este sistema de equacoes consiste de
M 1 sistemas tridiagonais. Para cada j, o sistema pode ser resolvido para ui,j
via algoritmo de Thomas. As condicoes de contorno sao dadas por (15.2.1) para
u0,j e uM,j para j = 0, . . . , N (os valores de ui,0 e ui,M nao sao necessarios).
Depois devemos resolver o sistema (15.1.2) para calcular U new a partir de U .
O processo e similar ao anterior, porem o sistema consiste de L 1 sistemas
tridiagonais. Para cada i, o sistema pode ser resolvido para U newi,j . As condicoes
de contorno sao especificadas para cada unewi,j no contorno.

Exerccio 15.1. Considere o sistema unidimensional


       
u 1 0 u 0 4 u
= + (15.3.1)
v t 0 1 v xx 4 0 v
Discuta a eficiencia do metodo ADI usando
1 0 2
   
0 4
A1 = e A2 = (15.3.2)
0 1 x2 4 0
com o esquema de Crank-Nicolson. Resolva numericamente este sistema usando o
metodo ADI em x [1, 1] e t [0, 1], com solucao exata
u = e3t sin(x) cosh(2x) (15.3.3)
3t
v = e cos(x) sinh(2x) (15.3.4)
com condicao de contorno de Dirichlet em x = 1 e x = 1.
Exerccio 15.2. Aplique o metodo de Peaceman-Rachford a
ut + ux + 2uy = 0 (15.3.5)
em x [0, 1], y [0, 1] e t [0, 1]. Especifique a solucao exata nos lados x = 0 e
y = 0. Aplique extrapolacao un+1 n n+1 n
M,j = uM,j e ui,N = ui,N nos lados leste e norte. Use
a solucao exata
u(t, x, y) = u0 (x t, y 2t) (15.3.6)
com

(1 2|x|)(1 2|y|), |x| 1/2, |y| 1/2
u0 (x, y) = (15.3.7)
0, c.c.
116

para condicao inicial e de contorno.

Exerccio 15.3. Use o metodo de Peaceman-Rachford para resolver


ut = uxx + 2uyy (15.3.8)
no quadrado unitario para t [0, 1]. As condicoes iniciais e de contorno devem ser
obtidas da solucao exata
u(t, x, y) = e1.5t sin(x 0.5y) cosh(x + y) (15.3.9)
1 1 1
Use x = y = t = 10 , 20 e 40 . Demonstre a ordem de precisao.

Aula 27 .
Equacoes de Segunda Ordem
.
Strikwerda: Cap. 8

Captulo 16:
Equacoes de segunda ordem
16.1. Equacao da Onda
Considere a equacao da onda de segunda ordem
utt a2 uxx = 0 (16.1.1)
u(0, x) = u0 (x) (16.1.2)
ut (0, x) = v0 (x) (16.1.3)
onde a > 0, que possui solucao exata dada por
x+at
u0 (x at) + u0 (x + at) 1
Z
u(t, x) = + v0 (y)dy (16.1.4)
2 2a xat
Note que temos duas velocidades caractersticas, a e a.
Aplicando a transformada de Fourier obtemos
sin(at)
u(t, ) = u0 () cos(at) + v0 () (16.1.5)
a
= u+ ()eiat + u ()eiat (16.1.6)
e aplicando a transformada inversa obtemos a solucao
u(t, x) = u+ (x + at) + u (x at) (16.1.7)
consistindo de duas ondas movendo-se uma para a esquerda e outra para a direita.
Secao 16.2: Diferencas finitas 117

Um outro problema e o PVI de segunda ordem hiperbolico (b2 < a2 )


utt + 2butx = a2 uxx + cux + dut + eu + f (t, x) (16.1.8)
e bem posto, i.e, para 0 t T , CT tal que
Z
|ut |2 + |ux |2 + |u|2 dx

Z Z tZ 
2 2 2 2
CT |u0t | + |u0x | + |u0 | dx + |f | dxd (16.1.9)
0

Exerccio 16.1. Mostre 16.1.9 usando transformada de Fourier.


Exerccio 16.2. Mostre 16.1.9 multiplicando o PVI por u(t, x) e integrando por par-
tes. Este metodo e chamado metodo da energia.
Exerccio 16.3. Reescreva (16.1.1) como um sistema hiperbolico de primeira ordem
tal que u1 = ux e u2 = ut .
Exerccio 16.4. Mostre que o PVI utt = uxx + uyy e bem-posto. Transforme-o num
sistema hiperbolico de 1.a ordem.

16.2. Diferencas finitas


As definicoes de convergencia, consistencia e ordem de precisao permanecem as mesmas
como anteriormente. A definicao de estabilidade 9.6.2 e alterada.

Definicao 16.2.1. Um esquema em diferencas finitas Pk,h vin = 0 para uma


equacao de 2.a ordem em t e estavel numa regiao se J inteiro tal que
T > 0, CT tal que
J
X
kv n kh (1 + n2 )CT kv j k2h (16.2.1)
j=0

para 0 nk T , com (k, h) .

O fator extra 1 + n2 e necessario para permitir o crescimento linear em t (caso


houver).
A condicao de estabilidade dependera dos fatores de amplificacao (no mnimo 2)
|g | 1 + Kk (16.2.2)
Se nao existirem termos de baixa ordem (ux , u, . . .), entao a condicao de estabi-
lidade e
|g | 1 (16.2.3)
com razes multiplas permitidas.
no mnimo J 1 para depender nas duas condicoes iniciais.
Secao 16.2: Diferencas finitas 118

Exemplo 65.
Considere a EDP utt = a2 uxx e o esquema
n n n
un+1
m 2unm + un1
m 2 um+1 2m + um1
= a (16.2.4)
k2 h2
A equacao para o fator de amplificacao e

g 2 2g + 1 = 4a2 2 sin2 g (16.2.5)
2
que possui solucao
  r
2
2 2
g1,2 = 1 2a sin 2 a4 4 sin4 a2 2 sin2
2 2 2
Temos que |g | 1 se e somente |a| 1.
A solucao para razes diferentes e
v n = C1 ()g1n + C2 ()g2n (16.2.6)
e para razes iguais
v n = D1 ()g n + D2 ()ng n (16.2.7)
Como crescimento linear em n e permitido, o esquema e estavel se e somente se |a|
1.
Exemplo 66.
Considere a EDP utt = a2 uxx e o esquema de ordem (2, 4)
n n n n n
un+1
m 2unm + un1m 2 um+2 + 16um+1 30um + 16um1 um2
= a (16.2.8)
k2 12h2
h2
= a2 (1 2 )unm (16.2.9)
12
A equacao para o fator de amplificacao e
2 cos 2 + 32 cos 30
g 2 2g + 1 = a2 2 ( )g (16.2.10)
12
4
= a2 2 sin2 (3 + sin2 )g (16.2.11)
3 2 2
Calculando g temos que o esquema e estavel se e somente se
1 2 2 2
a sin (3 + sin2 ) 1 (16.2.12)
3 2 2

3
o que ocorre quando a .
2
Secao 16.3: Condicoes de contorno 119

16.2.1. O primeiro passo


Uma maneira e utilizar a serie de Taylor
1
u(k, x) = u(0, x) + kut (0, x) + k 2 utt (0, x) + O(k 3 ) (16.2.13)
2
Usando a equacao diferencial, podemos substituir utt e usar as CI u(0, x) e ut (0, x)
para calcular u(k, x) como
1
u1m = u0m + k(ut )0m + a2 k 2 2 u0m (16.2.14)
2
Essa escolha nao afeta a estabilidade do metodo, porem deve ser da mesma ordem que
o metodo para nao afetar a ordem de precisao da solucao.
Exerccio 16.5. Mostre que o esquema
t2 unm + 2ct0 x0 unm = a2 x2 unm (16.2.15)
para a equacao
utt + 2cutx = a2 uxx (16.2.16)
e de segunda ordem e estavel para a 1.
Exerccio 16.6. Use o esquema (16.2.15) para obter a solucao de (16.2.16) em x
[1, 1] e t [0, 1]. Use como dados iniciais
u0 (x) = cos x, u1 (x) = c sin x (16.2.17)
Para obter a condicao de contorno use a solucao exata
1
u(t, x) = (cos (x + t) + cos (x t)) (16.2.18)
2

onde = c c2 + a2 . Use c = 0.5 e a = 1. Use h = 1/10, 1/20, 1/40 e = 1.
Demonstre numericamente a segunda ordem do metodo.

16.3. Condicoes de contorno


A equacao da onda (16.1.1) requer uma condicao de contorno em cada lado. A condicao
de Dirichlet e facilmente implementada fixando u no contorno.
A condicao de Neumann
ux (t, 0) = (16.3.1)
pode ser implementada de varias maneiras. Se usarmos
un+1
1 un+1
0
= (16.3.2)
h
temos
un+1
0 = un+1
1 h (16.3.3)
que e apenas de primeira ordem.
Secao 16.4: Equacao de segunda ordem em 2 e 3 dimensoes 120

Podemos tambem usar


un+1
1 un+1
1
= (16.3.4)
h
obtendo a equacao
un+1 n+1
1 = u1 h (16.3.5)
que e de segunda ordem, porem necessita um no fictcio extra fora do domnio.
Se usarmos uma diferenca unilateral
3un+1
0 + 4un+1
1 un+1
2
= (16.3.6)
2h
obtemos
4un+1 un+1 + 2h
un+1
0 = 1 2
(16.3.7)
3
que e de segunda ordem.
Utilizando o esquema (16.2.8), precisamos de uma condicao extra em x1 e xM1 ,
pois o estencil possui 5 pontos e nao pode ser aplicado. Se usarmos CC de Dirichlet,
entao o valor de u1 pode ser obtido via interpolacao, por exemplo,
1
v1n+1 = (v0n+1 + 6v2n+1 4v3n+1 + v4n+1 ) (16.3.8)
4
que pode ser obtida de
4 n+1
+ v0 = 0 (16.3.9)
Note que se considerarmos a equacao utt = uxxxx, necessitaremos de duas
condicoes de contorno em cada extremo.

16.4. Equacao de segunda ordem em 2 e 3 dimensoes


Considere a equacao
utt = a2 (uxx + uyy ) (16.4.1)
e o esquema mais simples
t2 uni,j = a2 (x2 uni,j + y2 uni,j ). (16.4.2)
A condicao de estabilidade para x = y = h e
1
a (16.4.3)
2
Esquemas similares ao ADI tambem podem ser usados para a equacao de segunda
ordem.
Exerccio 16.7. Mostre a condicao de estabilidade (16.4.3).

Exerccio 16.8. Resolva numericamente a equacao


utt = a2 (uxx + uyy ) (16.4.4)
em 0 x, y 1. Escolha condicoes de contorno e iniciais apropriadas. Calcule a ordem
de precisao numericamente.
121

Exerccio 16.9. Resolva numericamente a equacao


utt = a2 (uxx + uyy ) (16.4.5)
em 0 x, y 1, transformando-a num sistema de EDPs de 1.a ordem. Escolha
condicoes de contorno e iniciais apropriadas. Calcule a ordem de precisao numerica-
mente.

Aula 28 .
Equacoes Diferenciais Parciais Elpticas
.
Strikwerda: Cap. 12

Captulo 17:
Equacoes Diferenciais Parciais Elpticas
17.1. Equacao de Poisson
Considere a equacao de Poisson
uxx + uyy = f (x, y) (17.1.1)
no domnio . O operador Laplaciano e denotado por
2 2
2 = 2
+ 2 (17.1.2)
x y
e a equacao homogenea
2 u = 0 (17.1.3)
e chamada equacao de Laplace
Para determinar a solucao sao necessarias condicoes de contorno, como condicao
de contorno de Dirichlet, de Neumann ou de Robin.
Fisicamente, a equacao de Poisson descreve a distribuicao de calor num estado
permanente. A funcao f (x, y) representa fontes e sumidouros. A condicao de Dirichlet
representa a temperatura fixa no contorno e a condicao de Neumann representa um
fluxo de calor fixo no contorno.
Outros exemplos de equacoes elpticas sao as equacoes de Cauchy-Riemann
ux vy = 0 (17.1.4)
uy + vx = 0 (17.1.5)
Secao 17.2: Esquemas de Diferencas Finitas 122

e a equacao permanente de Stokes


2 u px = f1 (17.1.6)
2
v py = f 2 (17.1.7)
ux + vy = 0 (17.1.8)
Uma propriedade essencial das equacoes elpticas e que a solucao e mais dife-
renciavel que os dados f .

17.1.1. Princpio do Maximo


Teorema 17.1.1. Seja o operador elptico L = axx + bxy + cyy = 0, com
b2 < 4ac. Se Lu 0 no domnio , entao u tem seu maximo no contorno .

17.2. Esquemas de Diferencas Finitas


Considere a equacao de Poisson em um quadrado unitario e a formula padrao de 2.a
ordem com derivadas centrais
ui+1,j 2ui,j + ui1,j ui,j+1 2ui,j + ui,j1
+ = fi,j (17.2.1)
h21 h22
ou, se h = h1 = h2 ,
ui+1,j + ui1,j + ui,j+1 + ui,j1 4ui,j
= fi,j (17.2.2)
h2
para 1 i M 1 e 1 j N 1.
Seja 2h = x2 + y2 o operador discreto.
Teorema 17.2.1. Se 2h u 0 em h , entao o maximo de u ocorre no contorno
de h .

17.3. Sistema Unidimensional


Considere a equacao unidimensional
uxx = f (17.3.1)
u(0) = (17.3.2)
u(1) = (17.3.3)
que pode ser discretizada como
ui+1 2ui + ui1
= fi (17.3.4)
h2
ou ainda
ui+1 2ui + ui1 = h2 fi (17.3.5)
u0 = (17.3.6)
uM = (17.3.7)
Secao 17.4: Sistema Bidimensional 123

Colocando esse sistema na forma matricial obtemos


Au = b (17.3.8)
onde

1 0 ...0
1 2 1 0 0

A=
.. .. ..
(17.3.9)
. . .

1 2 1
0 ... 0 1
e


f1
..

b= (17.3.10)

.

fM1

Devemos portanto calcular
u = A1 b (17.3.11)

17.4. Sistema Bidimensional


Considere a equacao
uxx + uyy = f (17.4.1)
u(0, y) = 0 (y), u(x, 0) = 0 (x) (17.4.2)
u(1, y) = 1 (y), u(x, 1) = 1 (x) (17.4.3)
que pode ser discretizada como
ui+1,j + ui1,j + ui,j+1 + ui,j1 4ui,j
= fi,j (17.4.4)
h2
ou ainda
ui+1,j + ui1,j + ui,j+1 + ui,j1 4ui,j = h2 fi,j (17.4.5)
Colocando esse sistema na forma matricial obtemos
Au = b (17.4.6)
onde A e uma matriz de blocos

I 0 ... 0
I D I 0 0

A=
.. .. .. ,

(17.4.7)
. . .
I D I
0 ... 0 I
Secao 17.4: Sistema Bidimensional 124


4 1 ... 0
1 4 1 0 0

D=
.. .. ..
(17.4.8)
. . .

1 4 1
0 ... 1 4
e I e a matriz identidade. O vetor b e a matriz fi,j escrita por linhas acompanhada das
condicoes de contorno.
Devemos portanto calcular
u = A1 b (17.4.9)
Entretanto calcular A1 pode tornar-se custoso. A ideia e resolver o sistema
iterativamente.

17.4.1. Metodo de Jacobi


A ideia e isolar o termo i, j na equacao acima e a partir de um chute inicial calcular
unewi,j . Assim devemos calcular
1
unewi,j = (ui+1,j + ui1,j + ui,j+1 + ui,j1 h2 fi,j ) (17.4.10)
4
para 1 i M 1 e 1 j N 1. Devemos tambem calcular as equacoes de
contorno.
Entretanto esse e um metodo iterativo. Depois de percorrer uma vez esse loop
duplo nao teremos a solucao. Devemos iterar essa equacao como uma iteracao de ponto
fixo ate obter convergencia. Tal ocorrera se a matriz A for diagonal dominante.

17.4.2. Metodo de Gauss-Seidel


Uma maneira de melhorar o metodo anterior e usar os valores ja calculados para cada
i, j durante a mesma iteracao, ou seja,
1
unewi,j = (ui+1,j + unewi1,j + ui,j+1 + unewi,j1 h2 fi,j ) (17.4.11)
4
para 1 i M 1 e 1 j N 1. Devemos tambem calcular as equacoes de
contorno.
Entretanto esse e um metodo iterativo. Depois de percorrer uma vez esse loop
duplo nao teremos a solucao. Devemos iterar essa equacao como uma iteracao de ponto
fixo ate obter convergencia. Tal ocorrera se a matriz A for diagonal dominante.

17.4.3. Metodo SOR


Uma maneira de melhorar a rapidez da convergencia do metodo anterior e usar o metodo
SOR. Devemos proceder como anteriormente e calcular
ui+1,j + unewi1,j + ui,j+1 + unewi,j1 h2 fij
unewij = uij + ( uij )
4
(17.4.12)
Secao 17.4: Sistema Bidimensional 125

para 1 i M 1 e 1 j N 1.
O parametro , se escolhido apropriadamente, pode acelerar a convergencia do
metodo.
Bibliografia
[1] J.C. Butcher. The numerical analysis of ordinary differential equations: Runge-
Kutta and general linear methods. Wiley-Interscience New York, NY, USA, 1987.
17, 28, 38
[2] Rudnei Cunha, Carolina Cardoso, Alvaro L. Bortoli, and Maria Paula Fachin. In-
troducao ao Calculo Numerico. Instituto de Matematica-UFRGS, 2001. 4
[3] David Goldberg. What every computer scientist should know about floating-point
arithmetic. 4
[4] D. Gottlieb. Strang-type difference schemes for multidimensional problems. SIAM
J. Numer. Anal, 9:650661, 1972. 111
[5] A. Iserles. A First Course in the Numerical Analysis of Differential Equations.
Cambridge University Press, 1996. 17, 28, 29, 38, 40, 50
[6] R.J. Leveque and J. Oliger. Numerical methods based on additive splittings for hy-
perbolic partial differential equations. Mathematics of Computation, 40(162):469
497, 1983. 111
[7] R.W. MacCormack. Numerical solution of the interaction of a shock wave with
a laminar boundary layer. Proceedings of the Second International Conference
on Numerical Methods in Fluid Dynamics: September 1519, 1970 University of
California, Berkeley. Editor: Maurice Holt, Lecture Notes in Physics,, 8:151163,
1971. 111
[8] DW Peaceman and HH Rachford. The numerical solution of parabolic and elliptic
differential equations. J. Soc. Indust. Appl. Math, 3(1):2841, 1955. 113
[9] C. Scherer. Metodos computacionais da fsica. Editora Livraria da Fsica, 2005. 3
[10] G. Strang. On the construction and comparison of difference schemes. SIAM J.
Numer. Anal, 5(3):506517, 1968. 111
[11] J.C. Strikwerda. Finite Difference Schemes and Partial Differential Equations.
Wadsworth & Brooks, 1989. 72, 75, 80, 85, 86, 90, 93, 94

Você também pode gostar