Para um projeto em que estou trabalhando (em PDEs hiperbólicas), gostaria de ter uma idéia mais detalhada do comportamento, analisando alguns números. No entanto, não sou um programador muito bom.
Você pode recomendar alguns recursos para aprender a codificar efetivamente esquemas de diferenças finitas no Scientific Python (outros idiomas com pequena curva de aprendizado também são bem-vindos)?
Para lhe dar uma idéia do público (eu) para esta recomendação:
- Sou um matemático puro por treinamento e estou um pouco familiarizado com os aspectos teóricos dos esquemas de diferenças finitas
- O que eu preciso de ajuda é como fazer o computador calcular o que eu quero, especialmente de uma maneira que não duplique muito o esforço já realizado por outras pessoas (para não reinventar a roda quando um pacote já está disponível). (Outra coisa que eu gostaria de evitar é codificar algo estupidamente à mão quando houver estruturas de dados estabelecidas adequadas ao objetivo.)
- Eu tive alguma experiência em codificação; mas eu não tive nenhum em Python (portanto, não me importo se existem bons recursos para aprender um idioma diferente [digamos, Octave por exemplo]).
- Livros, a documentação seria útil, assim como coleções de código de exemplo.
python
finite-difference
reference-request
hyperbolic-pde
Willie Wong
fonte
fonte
Respostas:
Aqui está um exemplo de 97 linhas de solução de um PDE multivariado simples usando métodos de diferenças finitas, contribuído pelo Prof. David Ketcheson , do repositório py4sci que mantenho. Para problemas mais complicados nos quais você precisa lidar com choques ou conservação com uma discretização de volume finito, recomendo examinar o pyclaw , um pacote de software que eu ajudo a desenvolver.
fonte
Você pode dar uma olhada no Fenics , que é um framework em python / C que permite que equações bastante gerais sejam resolvidas usando uma linguagem de marcação especial. No entanto, usa principalmente elementos finitos, mas vale a pena dar uma olhada. O tutorial deve lhe dar uma impressão de como pode ser fácil resolver problemas.
fonte
Esta referência pode ser muito útil para você. Este é um livro aberto na internet. Eu aprendi (ainda estou aprendendo), python deste livro. Achei muito bom recurso.
http://www.openbookproject.net/thinkcs/python/english2e/
Para o cálculo numérico, deve-se definitivamente usar 'numpy'. (apenas certifique-se de ter entendido as 'matriz' e 'matriz' e 'lista' corretamente) (consulte a documentação numpy para isso)
fonte