Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Diferenças Finitas
1
Rodney Josué Biezuner
Departamento de Matemática
Instituto de Ciências Exatas (ICEx)
Universidade Federal de Minas Gerais (UFMG)
Notas de aula para o seminário Equações Diferenciais Parciais Numéricas: Diferenças Finitas.
17 de agosto de 2010
1
E-mail: rodney@mat.ufmg.br; homepage: http://www.mat.ufmg.br/∼rodney.
Sumário
1 Equação do Calor 4
1.1 Esquemas de Diferenças Finitas Explı́citos para a Equação do Calor . . . . . . . . . . . . . . 5
1.1.1 Esquema FTCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.2 Esquema CTCS ou esquema do pulo do sapo (leapfrog) . . . . . . . . . . . . . . . . . 5
1.1.3 Esquema de Du Fort-Frankel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.4 Convergência, Consistência e Estabilidade . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Programas Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1
Capı́tulo 0
Seja ∆x > 0. Considere as seguintes expansões de Taylor de uma função u em torno de um ponto ponto x0 ,
respectivamente à direita e à esquerda de x0 :
du 1 d2 u 2 1 d3 u
u(x0 + ∆x) = u(x0 ) + (x0 )∆x + (x0 )∆x + (x0 )∆x3 + . . .
dx 2! dx2 3! dx3
e
du 1 d2 u 2 1 d3 u
u(x0 − ∆x) = u(x0 ) − (x0 )∆x + (x0 )∆x − (x0 )∆x3 + . . .
dx 2! dx2 3! dx3
n
onde escolhemos denotar ∆xn = (∆x) . Isolando a derivada primeira nestas expressões, respectivamente,
temos:
du u(x0 + ∆x) − u(x0 ) 1 d2 u 1 d3 u
(x0 ) = − 2
(x0 )∆x − (x0 )∆x2 − . . . (1)
dx ∆x 2! dx 3! dx3
e
du u(x0 ) − u(x0 − ∆x) 1 d2 u 1 d3 u
(x0 ) = + (x 0 )∆x − (x0 )∆x2 + . . . (2)
dx ∆x 2! dx2 3! dx3
Imediatamente obtemos duas aproximações possı́veis para a primeira derivada de u em x0 :
1 d2 u
²=± (ξ)∆x = O(∆x),
2 dx2
onde x0 6 ξ 6 x0 + ∆x no primeiro caso, e x0 − ∆x 6 ξ 6 x0 no segundo caso.
Por outro lado, se somarmos (1.15) e (1.17), obtemos
com erro
1 d3 u
²=− (ξ)∆x2 = O(∆x2 ),
6 dx3
para algum x0 − ∆x 6 ξ 6 x0 + ∆x. Esta aproximação por diferença finita é chamada diferença finita
centrada. Ela é uma melhor aproximação que as aproximações laterais (progressiva e regressiva).
Se, ao invés, subtrairmos (1.17) de (1.15), obtemos
Equação do Calor
onde K é uma constante positiva. Utilizando uma malha uniforme, dividimos o intervalo [0, L] em n
subintervalos de mesmo comprimento ∆x = L/n escolhendo os pontos x0 = 0, x1 = ∆x, x2 = 2∆x, ...,
xn−1 = (n − 1)∆x, xn = L; similarmente, dividimos o intervalo [0, T ] em m subintervalos de mesmo com-
primento ∆t = T /m escolhendo os pontos t0 = 0, t1 = ∆t, t2 = 2∆t, ..., tm−1 = (m − 1)∆t, tm = T .
Denotamos a solução discretizada por
uj0 = u (0, tj ) = T1 ,
(1.3)
ujn = u (L, tj ) = T2 ,
para j = 0, . . . , m.
Na verdade, se quisermos, podemos considerar o problema de Dirichlet mais geral:
ut = c2 uxx (x, t) ∈ [0, L] × [0, T ],
u(0, t) = g(t), u(L, t) = h(t) t ∈ [0, T ], (1.4)
u(x, 0) = f (x) x ∈ [0, L],
para j = 0, . . . , m.
4
Rodney Josué Biezuner 5
Observe que o esquema CTCS é um esquema de três nı́veis no tempo. Para iniciá-lo, pode-se usar no
primeiro passo o esquema FTCS.
Rodney Josué Biezuner 6
vij = v (xi , tj ) .
Dizer que a solução aproximada é uma boa aproximação para a solução exata é equivalente a dizer que
kv − uk∞ < ε
onde ε é uma tolerância pequena especificada e a norma do sup (ou norma do máximo) é definida por
n¯ ¯ o
¯ ¯
kzk∞ = max ¯zij ¯ : 0 6 i 6 n e 0 6 j 6 m .
1.1 Definição. Dizemos que um esquema de diferenças finitas é (puntualmente) convergente se, para
todos (x, t), uji converge para v (x, t) quando (i∆x, j∆t) → (x, t) à medida que ∆x, ∆t convergem para
0.
1.2 Proposição. O esquema FTCS é convergente se
1
σ6 .
2
Prova: Sejam v a solução exata do problema de Dirichlet para a equação do calor e u a solução aproximada
dada pelo esquema de diferenças finitas FTCS. Da série de Taylor (veja a Introdução), segue que
vij+1 − vij
vt (xi , tj ) = + O (∆t) ,
∆t
v j − 2vij + vi+1
j
¡ ¢
vxx (xi , tj ) = i−1 2
+ O ∆x2 ,
∆x
de modo que
j j j
vij+1 − vij v − 2vi + vi+1 ¡ ¢
vt (xi , tj ) − Kvxx (xi , tj ) = − K i−1 2
+ O (∆t) + O ∆x2 .
∆t ∆x
Mas v é solução da equação do calor, logo vt (xi , tj ) − Kvxx (xi , tj ) = 0.Multiplicando a equação resultante
por ∆t temos
∆t ³ j ´ ¡ ¢ ¡ ¢
0 = vij+1 − vij − K v i−1 − 2v j
i + v j
i+1 + O ∆t2 + O ∆t∆x2 ,
∆x2
Rodney Josué Biezuner 7
donde ³ ´ ¡ ¢ ¡ ¢
vij+1 = (1 − 2σ)vij + σ vi+1
j j
+ vi−1 + O ∆t2 + O ∆t∆x2 . (1.15)
Denote
zij = vij − uji . (1.16)
Como ³ ´
uj+1
i = (1 − 2σ)uj
i + σ uj
i+1 + uj
i−1 , (1.17)
subtraindo (1.17) de (1.15) obtemos
³ ´ ¡ ¢ ¡ ¢
zij+1 = (1 − 2σ)zij + σ zi+1
j j
+ zi−1 + O ∆t2 + O ∆t∆x2 .
Mas
(j + 1) ∆t → t
quando ∆t → 0, portanto concluı́mos que ° j+1 °
°z ° → 0
∞
quando ∆t, ∆x → 0. ¥
1.3 Definição. Dizemos que um esquema de diferenças finitas é consistente se a solução exata da EDP
satisfaz o esquema no limite quando ∆x, ∆t convergem para 0.
1.4 Proposição. O esquema FTCS é consistente.
Prova: Já vimos na demonstração da proposição anterior que se v é a solução exata, então
³ ´ ¡ ¢ ¡ ¢
vij+1 = (1 − 2σ)vij + σ vi+1
j j
+ vi−1 + O ∆t2 + O ∆t∆x2 .
¥
Rodney Josué Biezuner 8
1.5 Definição. Dizemos que um esquema de diferenças finitas é estável se pequenas mudanças na condição
inicial implicam em pequenas mudanças na solução.
1.6 Teorema. (Teorema da Equivalência de Lax) Um esquema de diferenças finitas é convergente se e
somente se ele é consistente e estável.
1.7 Proposição. O esquema FTCS é condicionalmente estável. Mais precisamente, o esquema FTCS é
estável se e somente se
1
σ6 . (1.19)
2
Prova: (Análise de Estabilidade de Von Neumann) Usando séries de Fourier, podemos escrever
∞
X kπ
uji = bjk sen i∆x. (1.20)
L
k=1
Note que
∞
X kπ
u0i = fi = b0k sen i∆x. (1.21)
L
k=1
Escrevendo o esquema FTCS na forma
³ ´
uj+1
i = uji + σ uji+1 − 2uji + uji−1 (1.22)
e usando séries de Fourier, segue que
X∞
kπ
bj+1
k sen i∆x
L
k=1
∞
Ã∞ ∞ ∞
!
X j kπ X j kπ X j kπ X j kπ
= bk sen i∆x + σ bk sen (i − 1) ∆x − 2 bk sen i∆x + bk sen (i + 1) ∆x ,
L L L L
k=1 k=1 k=1 k=1
donde, para cada k,
kπ
bj+1
k sen i∆x
· L µ ¶¸
kπ kπ kπ kπ
= bjk sen i∆x + σ sen (i − 1) ∆x − 2 sen i∆x + sen (i + 1) ∆x
L L L L
e daı́
kπ kπ kπ
sen (i − 1) ∆x − 2 sen i∆x + sen (i + 1) ∆x
L L L
bj+1
k = bjk 1 + σ .
kπ
sen i∆x
L
Mas
kπ kπ kπ
sen (i − 1) ∆x − 2 sen i∆x + sen (i + 1) ∆x
L L L
kπ kπ kπ kπ
= sen i∆x cos ∆x − sen ∆x cos i∆x
L L L L
kπ
− 2 sen i∆x
L
kπ kπ kπ
+ c cos ∆x + sen ∆x cos i∆x
µ L L¶ L
kπ kπ
= −2 1 − cos ∆x sen i∆x
L L
kπ kπ
= −2 sen2 ∆x sen i∆x,
2L L
Rodney Josué Biezuner 9
logo obtemos · ¸
2 kπ
bj+1
k = 1 − 4σ sen ∆x bjk . (1.23)
2L
Iterando esta equação, concluı́mos que
· ¸j
kπ
bjk = 1 − 4σ sen2 ∆x b0k . (1.24)
2L
kπ
1 − 4σ sen2 ∆x > −1,
2L
o que é equivalente a
kπ 1
σ sen2 ∆x 6
2L 2
que por sua vez é equivalente a (já que |sen| 6 1)
1
σ6 .
2
¥
%Resolve a Equaç~ao de Poisson com condiç~ ao de Dirichlet homog^enea através da fórmula dos 3
pontos.
function [] = Poisson(N)
%Inicializaç~ao de variáveis.
u = zeros(N+2,1); %Soluç~ ao aproximada.
e = zeros(N+2,1); %Soluç~ ao exata.
f = zeros(N,1); %-Laplacian u = f.
A = sparse(N,N); %Matriz de discretizaç~ ao do laplaciano.
h = 1/(N+1); %Espaçamento da malha.
%Atribuiç~ao de variáveis
%Definiç~
ao de A.
A(1:N+1:end) = 2;
A(2:N+1:end) = -1;
A(N+1:N+1:end) = -1;
%Definiç~
ao de f.
for i = 1:N
f(i,1) = h*h*(pi*pi)*sin(i*pi*h);
end
%Cálculo da soluç~
ao aproximada nos pontos interiores da malha.
v = A\f;
%Atribuiç~ao da soluç~
ao aproximada.
u(1,1) = 0;
u(N+2,1) = 0;
for i = 1:N
u(i+1,1) = v(i,1);
end
%Atribuiç~ao da soluç~
ao exata.
for i = 1:N+2
e(i,1) = sin((i-1)*pi*h);
end
%Plotando as soluç~ oes aproximada e exata (para comparaç~ ao).
x = 0:h:1;
plot(x,u,x,e);