Equação do calor

Published by Evgeny SH in

Em física e matemática, a equação do calor é uma equação diferencial parcial que descreve como a distribuição de alguma quantidade (como o calor) evolui ao longo do tempo em um meio sólido.

Escreva uma função que simule a distribuição de temperatura ao longo do tempo usando o método das diferenças finitas com um esquema explícito.

A entrada da função é um dicionário com a especificação do problema. A função deve inicializar o interior do array com "u_0", definir os valores de contorno no perímetro. Os valores de contorno permanecem constantes.

# Initialize e.g. rows, cols = 5, 7

[
  [100.   5.   5.   5.   5.   5. 100.]
  [100.  10.  10.  10.  10.  10. 100.]
  [100.  10.  10.  10.  10.  10. 100.]
  [100.  10.  10.  10.  10.  10. 100.]
  [100. 100. 100. 100. 100. 100. 100.]
]

Execute a simulação temporal até o maior valor em 'n_steps': [0, 100, 200]. Somente o interior do array muda a cada passo de tempo. Salve o valor da temperatura no ponto de observação "observe": [10, 10] nos passos de tempo especificados [0, 100, 200]. Retorne a lista de temperaturas (com comprimento 3 neste exemplo). Não é necessário arredondar; isso será feito nos testes.

Exemplos

Os três problemas a seguir serão simulados. O primeiro tem 3 contornos quentes, o segundo tem 2 e o terceiro tem a parte inferior quente. Essas três configurações levam a diferentes distribuições de temperatura, como pode ser visto na figura.

Texto alternativo

Notas

  • O problema é bidimensional (precisa de derivadas parciais para x e y).
  • A fórmula explícita é direta; o próximo u^(n+1) é calculado diretamente usando 5 pontos de u^n.
  • O parâmetro r fornecido é menor que 1/4, portanto o esquema é numericamente estável.
  • A simulação leva menos de 0.5 segundos no servidor.