W przypadku projektu, nad którym pracuję (w hiperbolicznych PDE), chciałbym nieco zorientować się w zachowaniu, patrząc na niektóre wartości liczbowe. Nie jestem jednak zbyt dobrym programistą.
Czy możesz polecić niektóre zasoby do nauki skutecznego kodowania schematów różnic skończonych w Pythonie naukowym (mile widziane są również inne języki o małej krzywej uczenia się)?
Aby przedstawić publiczności (mnie) tę rekomendację:
- Z wykształcenia jestem matematykiem i jestem obeznany z teoretycznymi aspektami schematów różnic skończonych
- Potrzebuję pomocy w tym, jak sprawić, by komputer obliczył to, co chcę, aby obliczył, szczególnie w taki sposób, aby nie powielać zbyt dużego wysiłku już włożonego przez innych (aby nie wymyślać koła ponownie, gdy pakiet jest już dostępny). (Inną rzeczą, której chciałbym uniknąć, jest głupie ręczne kodowanie, gdy istnieją ustalone struktury danych pasujące do celu.)
- Mam trochę doświadczenia w programowaniu; ale nie miałem żadnego w Pythonie (stąd nie mam nic przeciwko, czy istnieją dobre zasoby do nauki innego języka [na przykład Octave na przykład]).
- Przydałyby się zarówno książki, dokumentacja, jak i zbiory przykładowego kodu.
python
finite-difference
reference-request
hyperbolic-pde
Willie Wong
źródło
źródło
Odpowiedzi:
Oto 97-liniowy przykład rozwiązania prostego wielowymiarowego PDE przy użyciu metod różnic skończonych, napisanych przez prof. Davida Ketchesona z repozytorium py4sci, które utrzymuję. W przypadku bardziej skomplikowanych problemów, w których musisz poradzić sobie z wyładowaniami lub konserwacją w skończonej objętości dyskrecji, polecam przyjrzeć się pyclaw , pakietowi oprogramowania, który pomagam opracować.
źródło
Możesz spojrzeć na Fenics , który jest szkieletem Pythona / C, który pozwala na rozwiązywanie dość ogólnych równań przy użyciu specjalnego języka znaczników. Wykorzystuje jednak głównie elementy skończone, ale warto zajrzeć. Poradnik powinien dać wrażenie, jak łatwo można rozwiązać problemy.
źródło
To odniesienie może być dla ciebie bardzo przydatne. To jest otwarta książka w Internecie. Nauczyłem się (wciąż się uczę), python z tej książki. Uważam, że to bardzo dobry zasób.
http://www.openbookproject.net/thinkcs/python/english2e/
Do obliczeń numerycznych zdecydowanie należy wybrać „numpy”. (po prostu upewnij się, że dobrze zrozumiałeś „tablicę”, „macierz” i „listę”) (zapoznaj się z dokumentacją numpy)
źródło