Suponha que você tenha um sistema de PDEs para resolver. Pelo menos por simplicidade, vamos supor que seja independente do tempo, quase linear (linear em suas derivadas) resolvido em uma grade retangular no espaço (x, y) e com condições de contorno especificadas ao redor. Minha pergunta é mais geral, mas vamos começar aqui.
Pode haver duas variáveis dependentes, e . A equação geral pode ter a forma:
onde todas as funções de a são matrizes 2x2, é uma matriz 2x1 e ée f Y
Suponha que você gostaria de calcular uma aproximação numérica de diferenças finitas. Suponha que os pontos da grade estejam uniformemente espaçados em x e y. Você pode discretizar em pontos e em pontos. E então você construiria uma solução como um vetor de coluna 2 (nm).N y M
Você resolveria algum tipo de equação da matriz
onde as matrizes 2nm x 2nm a são matrizes de diferenças finitas para os operadores diferenciais correspondentes. A matriz combinada entre parênteses terá algum tipo de estrutura em bloco. Seus valores de borda podem ser complicados devido a condições de contorno.E
Minha pergunta é simples: existe uma maneira fácil (principalmente no Matlab ) de gerar as matrizes a ? Ou, no mínimo, um guia simples para criar todas as matrizes necessárias (exceto talvez as modificações necessárias para condições de contorno, que podem ser uma entrada manual).E
O problema é que eu posso fazer isso manualmente, mas é (i) muita álgebra; e (ii) sujeito a muitos erros de digitação e quando você implementa.
Por exemplo, aqui está um código que fornece todos os vetores necessários para uma 'matriz' de diferença finita 1D para diferentes ordens de derivadas. Existe uma analogia para os sistemas de PDEs no avião?