crank-nicolson scheme

crank-nicolson scheme

por Alexandre Roma -
Número de respostas: 0

Pessoal-

Boa tarde. Decidi fazer uma implementação rápida do Método de Crank-Nicolson para a equação do calor num quadrado (código em Scilab em anexo - www.scilab.org). Não objetivei eficiência e sim rapidez e clareza (não é um código de produção e sim um código de "exploração" com fins didáticos). Alguns de vcs com quem conversei, tiveram soluções infinitamente melhores e partes da implementação.

Ao contrário de vcs, que são tímidos, sem vergonhamente resolvi compartilhá-lo.  Foram duas horas de trabalho e alguns dias rodando (Scilab é *muito lento*, mas serve ao propósito de desenvolver e testar relativamente rápido). O código é fácil de ler. Quem quiser experimentar, instale o Scilab - não irá se arrepender.

Foram mais ou menos executados os seguintes passos de desenvolvimento:

[1] Estudo de convergência numérica para a Regra do Trapézio para uma edo para uma variável escalar (2a ordem)

[2] Idem para a Regra do Trapézio para uma função apenas do tempo definida em cada nó de uma malha espacial (a mesma função em cada nó).

[3] Introdução de variáveis espaciais, x e depois y, uma por vez, mas sem derivações (como se fossem parâmetros)

[4] derivação só em x e depois só em y.

Fiz alguns testes com o critério de parada do G-S. Funcionou bem com 2*DX^4.  Obtive razão entre erros de O(DX^2) pegando DT=DX (não se esquçam que C-N é de 2a ordem no tempo e no espaço!).  Precisamos estudar melhor a convergência de G-S para este tipo de matriz (fica feio escolher o critério só na base da "engenharia reversa").

Vou fazer minha  lição de casa e rever os velhos resultados sobre isto e falamos sobre isto mais adiante. Agora, é a vez de vcs. Bom proveito e bons desenvolvimentos.

Atenciosamente

Alexandre