Notas: Rudimentos de Métodos
Numéricos para equação de Difusão
P.C.R. Rossi
10/05/2012
Considere a equação de difusão unidimensional em um dado intervalo (a, b) : − d dxD (x) dφ (x) dx + Σa(x) φ (x) = νΣf k φ (x) , (0.0.1)
quando os parâmetros (D (x),Σa(x) e νΣf(x)) da equação acima são no máximo funções continuas por partes, ou seja, podem assumir um número finito de discon-tinuidades no intervalo (a, b) considerado.
A corrente e o fluxo são sujeitas as condições de continuidade em todo intervalo, isto é :
lim
→0[φi(xk+ ) − φi+1(xk− )] = 0, (0.0.2)
lim
→0[Ji(xk+ ) − Ji+1(xk− )] = 0, (0.0.3)
onde xk é uma interface arbitrária que separa uma região i de outra i + 1.
No contorno xsdevemos ter de maneira bastante geral a condição de albedo descrita como:
αφ (xs) + β
dφ (xs)
dx = 0, (0.0.4)
onde α e β são parâmetros que dependem do problema. Particularmente se α = 0 temos a condição do tipo Neumann e se β = 0 do tipo de Dirichlet.
Diferença centrada na interface
Primeiramente vamos dividir nosso intervalo em N − 1 partes de forma que ten-hamos N interfaces dividindo nosso sistema (veja Figura Figura 0.0.1) nos pontos
x1, x2, ..., xN
A idéia no esquema de diferenças finitas centrada na interface é estimar o fluxo nas interfaces, para tanto iremos analisar a região que se estende por meia espessura da interface, de xi−1
2 a xi− 1
2 para a interface xi.
Integrando a equação (Equação 0.0.1) no de xi−1
2 a xi teremos: − ˆ xi xi− 1 2 dx d dxD (x) dφ (x) dx | {z } =(i) + ˆ xi xi− 1 2 dxΣa(x) φ (x) | {z } =(ii) = ˆ xi xi− 1 2 dxνΣf k φ (x) | {z } =(iii) . (0.0.5)
Figura 0.0.1: Esqueama de diferença unidimensional centrado na interface. ˆ xi x i− 12 dx d dxD (x) dφ (x) dx = " D (x)dφ (x) dx #xi xi− 1 2 (0.0.6) = D (x)dφ (x) dx x i − D (x) dφ (x) dx x i− 1 2 , (0.0.7)
já para o termo (ii) faremos a seguinte aproximação para a integral ˆ xi xi− 1 2 dxΣa(x) φ (x) ∼= Σa(i−1)φi ∆xi−1 2 , (0.0.8)
e para o termo (iii) idem: ˆ xi xi− 1 2 dxνΣf k φ (x) ∼= νΣf (i−1) k φi ∆xi−1 2 . (0.0.9)
De forma quer a equação de difusão toma a forma aproximada : − D (x)dφ (x) dx x i + D (x)dφ (x) dx x i− 12 +Σa(i−1)φi ∆xi−1 2 = νΣf (i−1) k φi ∆xi−1 2 , (0.0.10)
fazendo o mesmo para o intervalo xi, xi+12
obtemos: − D (x)dφ (x) dx x i+ 12 + D (x)dφ (x) dx x i + Σa(i)φi ∆xi 2 = νΣf (i) k φi ∆xi 2 , (0.0.11)
somando (Equação 0.0.10) e (Equação 0.0.11) somos levados a
− D (x)dφ (x) dx x i+ 12 + D (x)dφ (x) dx x i− 12 | {z } =(iv) + D (x)dφ (x) dx xi − D (x)dφ (x) dx xi | {z } =(v)
+Σa(i)φi∆x2i + Σa(i−1)φi∆x2i−1
= νΣf (i) k φi ∆xi 2 + νΣf (i−1) k φi ∆xi−1 2 . (0.0.12) Agora nos devemos aproximar as derivadas (nos centros da malha) em (iv) por diferenças de primeira ordem:
D (x)dφ (x) dx x i+ 12 = D(i) φi+1− φi ∆x(i) ! , (0.0.13) D (x)dφ (x) dx x i− 12 = D(i−1) φi− φi−1 ∆x(i−1) ! , (0.0.14)
e notar que o termo (v) é a propria continuidade da corrente na interface xi, e portanto se anula. Logo
−D(i) φi+1−φi ∆x(i) + D(i−1) φi−φi−1 ∆x(i−1)
+Σa(i)φi∆x2i + Σa(i−1)φi∆x2i−1
= νΣf (i) k φi ∆xi 2 + νΣf (i−1) k φi ∆xi−1 2 , (0.0.15)
ou − D(i) ∆x(i)φi+1− D(i−1) ∆x(i−1)φi−1 + D(i) ∆x(i) + D(i−1) ∆x(i−1) + Σa(i) ∆xi 2 + Σa(i−1) ∆xi−1 2 φi = 1 k νΣf (i)∆xi 2 + νΣf (i−1)∆xi−1 2 ! φi. (0.0.16)
O Contorno
Como visto anteriormente (C.f (Equação 0.0.4)) no contorno devemos ter para o ponto x1 = a : α φ (x)|x 1 + β dφ (x) dx x 1 = 0, (0.0.17)
integrando (Equação 0.0.17) no intervalox1, x1+12
(veja a primeira região achurada na Figura Figura 0.0.1) segue dai que:
− ˆ x1+ 1 2 x1 dx d dxD (x) dφ (x) dx + ˆ x1+ 1 2 x1 dxΣa(x) φ (x) = ˆ x1+ 1 2 x1 dxνΣf k φ (x) , (0.0.18) ou − " D (x)dφ (x) dx # x1+ 1 2 + " D (x)dφ (x) dx # x1 + Σa1φ1 ∆x1 2 = νΣf 1 k φ1 ∆x1 2 . (0.0.19)
Devemos aproxima a derivada do centro do elemento por:
" D (x)dφ (x) dx # x1+ 1 2 = D1 φ2− φ1 ∆x1 , (0.0.20) e notar que dφ (x) dx x 1 = −α β φ (x)|x1, (0.0.21)
de forma que para o ponto x1 :
−D1 φ2 − φ1 ∆x1 − D1 α β φ (x)|x1 + Σa1φ1 ∆x1 2 = νΣf 1 k φ1 ∆x1 2 , (0.0.22)
−D1 φ2− φ1 ∆x1 − D1 α βφ1+ Σa1φ1 ∆x1 2 = νΣf 1 k φ1 ∆x1 2 , (0.0.23) ou −D1 φ2 ∆x1 + " D1 ∆x1 − α βD1+ Σa1 ∆x1 2 # φ1 = 1 kνΣf 1φ1 ∆x1 2 . (0.0.24)
Analogamente para o ponto xN (contas corridas):
− ˆ xN xN − 1 2 dx d dxD (x) dφ (x) dx + ˆ xN xN − 1 2 dxΣa(x) φ (x) = ˆ xN xN − 1 2 dxνΣf k φ (x) ∴ (0.0.25) ∴ −DN −1 " dφ (x) dx # N +DN −1 " dφ (x) dx # N −12 +Σa(N −1)φN ∆xN −1 2 = νΣf (N −1) k φN ∆xN −1 2 , (0.0.26) e com dφ (x) dx x N = α β φ (x)|xN = α βφN, (0.0.27) segue DN −1 α βφN+DN −1 φN − φN −1 ∆xN −1 +Σa(N −1)φN ∆xN −1 2 = νΣf (N −1) k φN ∆xN −1 2 ∴ (0.0.28) ∴ − DN −1 ∆xN −1 φN −1+ " α βDN −1+ DN −1 ∆xN −1 + Σa(N −1) ∆xN −1 2 # φN = 1 kνΣf (N −1) ∆xN −1 2 φN (0.0.29)
A Forma Matricial
Para x1 : − D1 ∆x1 | {z } ≡a1 φ2+ " D1 ∆x1 −α βD1+ Σa1 ∆x1 2 # | {z } ≡b1 φ1 = 1 k νΣf 1 ∆x1 2 | {z } ≡d1 φ1, (0.0.30)Para xi com 1 < i < N : − D(i) ∆x(i) | {z } ≡ai φi+1− D(i−1) ∆x(i−1) | {z } ≡ci φi−1 + D(i) ∆x(i) + D(i−1) ∆x(i−1) + Σa(i) ∆xi 2 + Σa(i−1) ∆xi−1 2 ! | {z } ≡bi φi = 1 k νΣf (i)∆xi 2 + νΣf (i−1)∆xi−1 2 ! | {z } ≡di φi, (0.0.31) ] Para xN : − DN −1 ∆xN −1 | {z } ≡cN φN −1+ " α βDN −1+ DN −1 ∆xN −1 + Σa(N −1) ∆xN −1 2 # | {z } ≡bN φN = 1 kνΣf (N −1) ∆xN −1 2 | {z } ≡dN φN, (0.0.32) Ou a1φ2+ b1φ1 = 1 kd1φ1, (0.0.33) aiφi+1+ biφi+ ciφi−1= 1 kdiφi, (0.0.34) bnφN + cNφN −1= dNφN, (0.0.35)
o que fornece um sistema matricial do tipo: ˜ Dφ = 1 k ˜ F φ (0.0.36) com: ˜ D ≡ b1 a1 0 · · · 0 c2 b2 a2 . .. . .. . .. ... 0 . .. ... ... . .. . .. ... .. . . .. ci bi ai . .. ... .. . . .. ... ... . .. . .. 0 .. . . .. ... ... cN −1 bN −1 aN −1 0 · · · 0 cN bN , (0.0.37)
φ ≡ φ1 φ2 .. . φi .. . φN −1 φN , (0.0.38) ˜ F ≡ d1 0 · · · 0 0 d2 . .. ... ... . .. ... .. . . .. ... ... ... . .. ... .. . . .. ... di . .. . .. ... .. . . .. ... ... ... . .. ... .. . . .. ... ... ... dN −1 0 0 · · · 0 dN . (0.0.39)
Iteração de fonte ou iteração externa
Considere a equação de difusão:
˜
Dφ = 1 k
˜
F φ. (0.0.40)
Vamos definir o vetor fonte como :
S = 1 k
˜
F φ, (0.0.41)
desta foema o fluxo pode ser excrito como
φ = k ˜F−1S, (0.0.42)
e aplicando esta forma na equação de difusão obtemos :. ˜ Dφ = 1 k ˜ F φ, (0.0.43) k ˜D ˜F−1S = S, (0.0.44)
kS = ˜F ˜D−1 | {z } ≡P S, (0.0.45) ou kS = P S. (0.0.46)
Como obter numericamente S e seu autovalor k (o maior autovalor) ? Primeiro chute S0:
S1 = P S0, (0.0.47)
S2 = P S1, (0.0.48)
S3 = P S2, (0.0.49)
Sk = P Sk−1 = PkS0. (0.0.50)
Após um número suficiente de interações é esperado que Sk e Sk−1 sejam iguais exceto por um fator multiplicativo, ou seja,
lim k→∞
hSki hSk−1i
= k (0.0.51)
Você pode escrever as interações de maneiras alternativas1
1 ˜ Dφ = 1 k ˜ F φ ⇒ kφ = ˜D−1F φ˜ (0.0.52) ψ(i)= ˜D−1F φ˜ (i) (0.0.53) k(i)= D 1| ˜F ψ(i)E D 1| ˜F φ(i−1)E e φ(i)= 1 k(i)ψ (i) (0.0.54)
Um pouco mais de Método das Potências
Considere a seguinte equação de autovalor
˜
Aφ = λφ, (0.0.55)
suponha possua N autovalores de forma que
λ(1) > λ(2) > ... > λ(N ) . (0.0.56)
Quando aplicamos o método das potências teremos uma recursividade do tipo
φ(i+1) = ˜Aφ(i), (0.0.57)
com φ(0) qualquer e λ(i+1)(1) = D ϕ|φ(i+1)E D ϕ|φ(i)E , (0.0.58)
onde ϕ é uma função peso a ser escolhida de maneira adequada. Se nφˆ1, ˆφ2, ..., ˆφN
o
são o conjunto dos N autovetores linearmente independentes associados com os λ(i) autovalores logo podemos excrever:
φ(0) =X
i
aiφˆ1, (0.0.59)
e com isso :
φ(i+1) = ˜Aφ(i) =A˜i+1φ(0), ∴ (0.0.60)
∴ φ(i+1) = a1(λ1)i+1φˆ1+ X j6=1 aj(λj)i+1φˆj, (0.0.61) ∴ φ(i+1) = (λ1) i+1 a1φˆ1+ X j6=1 aj λj λ1 !i+1 ˆ φj , (0.0.62)
ou φ(i+1) = (λ1)i+1 a1φˆ1+ X j6=1 aj λj λ1 !i+1 ˆ φj → (λ1) i+1 a1φˆ1, (0.0.63)
o que fornece a tendencia de φ(i+1) e desta forma é natural que:
D
ϕ|φ(i+1)E
D
ϕ|φ(i)E → λ1. (0.0.64)