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.
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.