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

x e y).u^(n+1) é calculado diretamente usando 5 pontos de u^n.r fornecido é menor que 1/4, portanto o esquema é numericamente estável.