Ajude a manter o site livre, gratuito e sem propagandas. Colabore!
A solução de um sistema linear em que a matriz dos coeficientes é uma matriz banda pode ser eficiente computada com um adequado formato de armazenamento. Uma matriz é uma matriz banda quando seus elementos não nulos estão dispostos em apenas algumas de suas diagonais. A largura da banda é o número de diagonais não nulas , incluindo a diagonal principal. A largura inferior (superior ) é o número de diagonais não nulas abaixo (acima) da diagonal principal ().
Uma matriz tridiagonal é uma matriz banda com largura da banda , largura inferior e largura superior .
Para fixarmos as ideias, considere o seguinte sistema linear
| (1.1) | |||
| (1.2) | |||
| (1.3) | |||
| (1.4) | |||
| (1.5) | 
ou seja, um sistema linear cuja a matriz dos coeficientes é uma matriz banda com largura da banda , largura inferior e largura superior . A matriz dos coeficientes é dada por
| (1.6) | 
Notemos que a matriz pode ser armazenada de forma compacta como
| (1.7) | 
Consideremos a equação de Poisson11endnote: 1Siméon Denis Poisson, 1781 - 1840, matemático francês. Fonte: Wikipédia:Siméon Denis Poisson. unidimensional e com condições de contorno de Dirichlet homogêneas
| (1.8) | |||
| (1.9) | |||
| (1.10) | 
para . Assumindo a fonte , a solução analítica é dada por (verifique!).
Vamos empregar o método de diferenças finitas para computar uma aproximação para a sua solução. Começamos assumindo uma malha uniforme de nodos , com tamanho de malha , . Empregando a fórmula de diferenças central, encontramos o seguinte problema discreto associado
| (1.11) | |||
| (1.12) | |||
| (1.13) | 
para . Este é um sistema linear em que a matriz dos coeficientes é a matriz tridiagonal
| (1.14) | 
O vetor das incógnitas é e o vetor dos termos constantes é . Note que a matriz pode ser armazenada de forma compacta como
| (1.15) | 
O Código 1 computa a solução de um sistema linear tridiagonal usando o método de eliminação gaussiana (verifique!).
Consideramos o seguinte problema de Poisson22endnote: 2Siméon Denis Poisson, 1781 - 1840, matemático francês. Fonte: Wikipédia:Siméon Denis Poisson. 2D
| (1.16) | |||
| (1.17) | |||
| (1.18) | |||
| (1.19) | |||
| (1.20) | 
onde, é o operador laplaciano33endnote: 3Pierre-Simon Laplace, 1749 - 1827, matemático francês. Fonte: Wikipédia: Pierre-Simon Laplace.. Para fixarmos as ideias, vamos assumir
| (1.21) | 
Vamos empregar o método de diferenças finitas para computar uma aproximação para a sua solução. Começamos assumindo uma malha uniforme de nodos
| (1.22) | |||
| (1.23) | 
com tamanho de malha , e . Empregando a fórmula de diferenças central, encontramos o seguinte problema discreto associado
| (1.24) | |||
| (1.25) | |||
| (1.26) | 
Este é um sistema linear . Tomando em conta as condições de contorno, ele pode ser reduzido a um sistema
| (1.27) | 
usando a enumeração das incógnitas
| (1.28) | 
i.e.
| (1.29) | 
para . Consulte a Figura 1.1 para uma representação da enumeração em relação a malha.
 
Afim de obtermos uma matriz diagonal dominante, vamos ordenar as equações do sistema discreto como segue
, :
| (1.30) | 
, :
| (1.31) | 
, :
| (1.32) | 
, :
| (1.33) | 
, :
| (1.34) | 
, :
| (1.35) | 
, :
| (1.36) | 
, :
| (1.37) | 
, :
| (1.38) | 
Com isso, temos um sistema com matriz com 5 bandas, consulte a Figura 1.2.
 
O Código 2 implementa a montagem do sistema linear e sua solução usando a função solve_banded da biblioteca scipy.linalg. Verifique o código e compare a solução com a solução analítica .
Considere o seguinte problema de Poisson44endnote: 4Siméon Denis Poisson, 1781 - 1840, matemático francês. Fonte: Wikipédia:Siméon Denis Poisson. unidimensional e com condições de contorno de Dirichlet não-homogêneas
| (1.39) | |||
| (1.40) | |||
| (1.41) | 
para . Assumindo a fonte . Aplique o método de diferenças finitas para computar uma aproximação para a solução do problema. Use diferenças finitas centrais para a segunda derivada e uma malha uniforme.
Dica:
Considere o seguinte problema de Poisson55endnote: 5Siméon Denis Poisson, 1781 - 1840, matemático francês. Fonte: Wikipédia:Siméon Denis Poisson. unidimensional
| (1.42) | |||
| (1.43) | |||
| (1.44) | 
para . Assumindo a fonte . Aplique o método de diferenças finitas para computar uma aproximação para a solução do problema. Use diferenças finitas centrais para a segunda derivada e uma malha uniforme. Na condição de contorno de Neumann, use uma fórmula de diferenças finitas para trás.
Dica:
Considere o seguinte problema de valor de contorno
| (1.45) | |||
| (1.46) | |||
| (1.47) | 
para . Assumindo a fonte . Aplique o método de diferenças finitas para computar uma aproximação para a solução do problema. Use diferenças finitas centrais para as derivadas e uma malha uniforme.
Dica:
Considere o seguinte problema de valor de contorno
| (1.48) | |||
| (1.49) | |||
| (1.50) | 
para . Assumindo a fonte , aplique o método de diferenças finitas para computar uma aproximação para a solução do problema. Use diferenças finitas centrais para as derivadas e uma malha uniforme. Faça simulações e estude os resultados para:
Considere o seguinte problema de Poisson66endnote: 6Siméon Denis Poisson, 1781 - 1840, matemático francês. Fonte: Wikipédia:Siméon Denis Poisson. 2D com condições de contorno de Dirichlet
| (1.51) | |||
| (1.52) | |||
| (1.53) | |||
| (1.54) | |||
| (1.55) | 
Aplique o método de diferenças finitas para computar uma aproximação para a solução do problema. Use diferenças finitas centrais para as derivadas e uma malha uniforme.
Dica:
Considere o seguinte problema de Poisson77endnote: 7Siméon Denis Poisson, 1781 - 1840, matemático francês. Fonte: Wikipédia:Siméon Denis Poisson. 2D com condições de contorno de Dirichlet
| (1.56) | |||
| (1.57) | |||
| (1.58) | |||
| (1.59) | |||
| (1.60) | 
Aplique o método de diferenças finitas para computar uma aproximação para a solução do problema. Use diferenças finitas centrais para as derivadas e uma malha uniforme.
Dica:
Considere o seguinte problema de Poisson88endnote: 8Siméon Denis Poisson, 1781 - 1840, matemático francês. Fonte: Wikipédia:Siméon Denis Poisson. 2D com condições de contorno
| (1.61) | |||
| (1.62) | |||
| (1.63) | |||
| (1.64) | |||
| (1.65) | 
Aplique o método de diferenças finitas para computar uma aproximação para a solução do problema. Use diferenças finitas centrais para as derivadas e uma malha uniforme. Na condição de Neumann, use uma fórmula de diferenças finitas para trás.
Dica:
Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!

Este texto é disponibilizado nos termos da Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional. Ícones e elementos gráficos podem estar sujeitos a condições adicionais.