Análise de estabilidade de Von Neumann

Na análise numérica, a Análise de estabilidade de Von Neumann (também conhecida como análise de estabilidade de Fourier) é um procedimento usado para verificar a estabilidade de métodos de diferenças finitas quando aplicados em equações diferenciais parciais.[1] A análise é baseada na decomposição de Fourier do Erro numérico e foi desenvolvida no Laboratório Nacional de Los Alamos depois de ter sido brevemente descrita em um artigo de 1947 pelos pesquisadores britânicos John Crank e Phyllis Nicolson.[2] Depois, foi dado um tratamento mais rigoroso ao método em um artigo[3] co-escrito por John von Neumann.

Estabilidade numérica

A estabilidade de métodos numéricos está intimamente associada ao erro numérico. Um método de diferenças finitas é estável se os erros produzidos em um passo de tempo do cálculo não provocam um aumento dos erros à medida que os cálculos avançam. Há 3 classes de métodos numéricos. Um método numérico condicionalmente estável depende de certos parâmetros para que os erros permaneçam limitados e não instabilizem. Se os erros diminuírem ou chegarem a desaparecer, o método numérico é dito como sendo estável. Se, de outra forma, os erros aumentarem com o tempo, a solução numérica irá divergir em relação à realidade (solução exata) e então o método numérico é dito como sendo instável. A estabilidade de métodos numéricos pode ser averiguada pela análise de estabilidade de von Neumann. Para problemas dependentes do tempo, a estabilidade garante que o método numérico produza uma solução limitada sempre que a solução da equação diferencial for limitada. Estabilidade em geral, pode ser dificilmente averiguada, especialmente se a equação em questão for não-linear.

A estabilidade de von Neumann é necessária e sucifiente (tal como utilizado no Teorema de Equivalência de Lax) apenas em certos casos: a EDP e o método de diferenças finitas devem ser lineares; a EDP precisa ter condições iniciais e de fronteira e ser no máximo de segunda ordem.[4] Devido à sua relativa simplicidade, a análise de von Neumann é geralmente usada no lugar de uma análise de estabilidade mais detalhada por ser um bom palpite em relação às restrições dos passos usados no método.

Ilustração do método

O método de von Neumann é baseado na decomposição dos erros em séries de Fourier. Para ilustrar o procedimento, considere Equação do calor unidimensional

u t = α 2 u x 2 {\displaystyle {\frac {\partial u}{\partial t}}=\alpha {\frac {\partial ^{2}u}{\partial x^{2}}}}

definida no intervalo L {\displaystyle L} , e discretizando pelo método FTCS

( 1 ) u j n + 1 = u j n + r ( u j + 1 n 2 u j n + u j 1 n ) {\displaystyle \quad (1)\qquad u_{j}^{n+1}=u_{j}^{n}+r\left(u_{j+1}^{n}-2u_{j}^{n}+u_{j-1}^{n}\right)}

onde

r = α Δ t Δ x 2 {\displaystyle r={\frac {\alpha \,\Delta t}{\Delta x^{2}}}}

e a solução u j n {\displaystyle u_{j}^{n}} da equação discretizada se aproxima da solução analítica u ( x , t ) {\displaystyle u(x,t)} da EDP na malha.

Definimos o Erro de arredondamento (também chamado de erro de truncamento) ϵ j n {\displaystyle \epsilon _{j}^{n}} como

ϵ j n = U j n u j n {\displaystyle \epsilon _{j}^{n}=U_{j}^{n}-u_{j}^{n}}

onde u j n {\displaystyle u_{j}^{n}} é a solução da equação discretizada (1) que seria calculada sem os erros de truncamento, e U j n {\displaystyle U_{j}^{n}} é a solução numérica obtida com precisão finita. Já que a solução exata u j n {\displaystyle u_{j}^{n}} deve satisfazer a equação discretizada, o erro ϵ j n {\displaystyle \epsilon _{j}^{n}} também deve satisfazer a equação discretizada.[5] Portanto

( 2 ) ϵ j n + 1 = ϵ j n + r ( ϵ j + 1 n 2 ϵ j n + ϵ j 1 n ) {\displaystyle \quad (2)\qquad \epsilon _{j}^{n+1}=\epsilon _{j}^{n}+r\left(\epsilon _{j+1}^{n}-2\epsilon _{j}^{n}+\epsilon _{j-1}^{n}\right)}

é uma relação de recorrência para o erro. Equações (1) e (2) mostram que ambos os erros e a solução numérica tem o mesmo crescimento ou decaimento em relação ao tempo. Para equações diferenciais lineares com condições de contorno, a variação espacial do erro pode ser expandida em séries de Fourier, no intervalo L {\displaystyle L} , como

( 3 ) ϵ ( x ) = m = 1 N / 2 A m e i k m x {\displaystyle \quad (3)\qquad \epsilon (x)=\sum _{m=1}^{N/2}A_{m}e^{ik_{m}x}}

onde o Número de onda k m = π m L {\displaystyle k_{m}={\frac {\pi m}{L}}} com m = 1 , 2 , , M {\displaystyle m=1,2,\ldots ,M} , M = L Δ x {\displaystyle M={\frac {L}{\Delta x}}} e N {\displaystyle N} sendo uma incógnita. A dependência no tempo do erro é incluída assumindo-se que a amplitude do erro A m {\displaystyle A_{m}} está em função do tempo. Já que o erro tende a crescer ou decair exponencialmente com o tempo, é sensato assumir que a amplitude varia exponencialmente com o tempo; daí

( 4 ) ϵ ( x , t ) = m = 1 N / 2 e a t e i k m x {\displaystyle \quad (4)\qquad \epsilon (x,t)=\sum _{m=1}^{N/2}e^{at}e^{ik_{m}x}}

onde a {\displaystyle a} é uma constante.

Já que a equação diferencial do erro é linear (o comportamento de cada tempo da série é o mesmo que o dá série), podemos então considerar que o crescimento do erro de um dado termo é:

( 5 ) ϵ m ( x , t ) = e a t e i k m x {\displaystyle \quad (5)\qquad \epsilon _{m}(x,t)=e^{at}e^{ik_{m}x}}

As característica da estabilidade podem ser estudadas usando apenas esta forma para o erro, sem grandes perdas em geral. Para descobrir como o erro varia nos espaços de tempo, substituimos (5) na equação (2), notando que

  • ϵ j n = e a t e i k m x ϵ j n + 1 = e a ( t + Δ t ) e i k m x ϵ j + 1 n = e a t e i k m ( x + Δ x ) ϵ j 1 n = e a t e i k m ( x Δ x ) , {\displaystyle {\begin{aligned}\epsilon _{j}^{n}&=e^{at}e^{ik_{m}x}\\\epsilon _{j}^{n+1}&=e^{a(t+\Delta t)}e^{ik_{m}x}\\\epsilon _{j+1}^{n}&=e^{at}e^{ik_{m}(x+\Delta x)}\\\epsilon _{j-1}^{n}&=e^{at}e^{ik_{m}(x-\Delta x)},\end{aligned}}}

dando (depois de simplificar)

( 6 ) e a Δ t = 1 + α Δ t Δ x 2 ( e i k m Δ x + e i k m Δ x 2 ) . {\displaystyle \quad (6)\qquad e^{a\Delta t}=1+{\frac {\alpha \Delta t}{\Delta x^{2}}}\left(e^{ik_{m}\Delta x}+e^{-ik_{m}\Delta x}-2\right).}

Usando as identidades

cos ( k m Δ x ) = e i k m Δ x + e i k m Δ x 2 and sin 2 k m Δ x 2 = 1 cos ( k m Δ x ) 2 {\displaystyle \qquad \cos(k_{m}\Delta x)={\frac {e^{ik_{m}\Delta x}+e^{-ik_{m}\Delta x}}{2}}\qquad {\text{and}}\qquad \sin ^{2}{\frac {k_{m}\Delta x}{2}}={\frac {1-\cos(k_{m}\Delta x)}{2}}}

equação (6) pode ser reescrita como

( 7 ) e a Δ t = 1 4 α Δ t Δ x 2 sin 2 ( k m Δ x / 2 ) {\displaystyle \quad (7)\qquad e^{a\Delta t}=1-{\frac {4\alpha \Delta t}{\Delta x^{2}}}\sin ^{2}(k_{m}\Delta x/2)}

Definimos então o fator de amplitude

G ϵ j n + 1 ϵ j n {\displaystyle G\equiv {\frac {\epsilon _{j}^{n+1}}{\epsilon _{j}^{n}}}}

A condição necessária e suficiente para o erro se manter limitado é que, | G | 1. {\displaystyle \vert G\vert \leq 1.} Contudo,

( 8 ) G = e a ( t + Δ t ) e i k m x e a t e i k m x = e a Δ t {\displaystyle \quad (8)\qquad G={\frac {e^{a(t+\Delta t)}e^{ik_{m}x}}{e^{at}e^{ik_{m}x}}}=e^{a\Delta t}}

Daí, das equações (7) e (8), a condição para a estabilidade é dada por

( 9 ) | 1 4 α Δ t Δ x 2 sin 2 ( k m Δ x / 2 ) | 1 {\displaystyle \quad (9)\qquad \left\vert 1-{\frac {4\alpha \Delta t}{\Delta x^{2}}}\sin ^{2}(k_{m}\Delta x/2)\right\vert \leq 1}

Para a condição acima manter todos os sin 2 ( k m Δ x / 2 ) {\displaystyle \sin ^{2}(k_{m}\Delta x/2)} , temos

( 10 ) α Δ t Δ x 2 1 2 {\displaystyle \quad (10)\qquad {\frac {\alpha \Delta t}{\Delta x^{2}}}\leq {\frac {1}{2}}}

Equação (10) dá o requisito de estabilidade para o método FTCS quando aplicado a equação unidimensional do calor. Ela diz que para um determinado Δ x {\displaystyle \Delta x} ,o valor permitido de Δ t {\displaystyle \Delta t} deve ser pequeno o bastante para satisfazer a equação (10).

Ver também

Referências

  1. Analysis of Numerical Methods by E. Isaacson, H. B. Keller
  2. Crank, J.; Nicolson, P. (1947), «A Practical Method for Numerical Evaluation of Solutions of Partial Differential Equations of Heat Conduction Type», Proc. Camb. Phil. Soc., 43: 50–67, doi:10.1007/BF02127704 
  3. Charney, J. G.; Fjørtoft, R.; von Neumann, J. (1950), «Numerical Integration of the Barotropic Vorticity Equation» (PDF), Tellus, 2: 237–254, consultado em 18 de fevereiro de 2012, cópia arquivada (PDF) em 19 de fevereiro de 2012 
  4. Smith, G. D. (1985), Numerical Solution of Partial Differential Equations: Finite Difference Methods, 3rd ed., pp. 67–68 
  5. Anderson, J. D., Jr. (1994). Computational Fluid Dynamics: The Basics with Applications. [S.l.]: McGraw Hill  !CS1 manut: Nomes múltiplos: lista de autores (link)