Für ein Projekt, an dem ich arbeite (in hyperbolischen PDEs), möchte ich anhand einiger Zahlen einen groben Überblick über das Verhalten erhalten. Ich bin jedoch kein sehr guter Programmierer.
Können Sie einige Ressourcen für das Lernen , wie man effektiv empfehlen Code Finite - Differenzen - Schemata in Scientific Python (andere Sprachen mit kleiner Lernkurve auch willkommen)?
Um Ihnen eine Vorstellung vom Publikum (mir) für diese Empfehlung zu geben:
- Ich bin ausgebildeter Mathematiker und mit den theoretischen Aspekten von Finite-Differenzen-Schemata einigermaßen vertraut
- Ich brauche Hilfe dabei, wie ich den Computer dazu bringen kann, das zu berechnen, was ich möchte, insbesondere auf eine Art und Weise, bei der ich nicht zu viel von den Anstrengungen anderer dupliziere (um das Rad nicht neu zu erfinden, wenn ein Paket ist bereits verfügbar). (Eine andere Sache, die ich vermeiden möchte, ist, etwas dumm von Hand zu codieren, wenn es etablierte Datenstrukturen gibt, die zum Zweck passen.)
- Ich habe einige Programmiererfahrungen gesammelt. Aber ich hatte noch keine in Python (daher macht es mir nichts aus, wenn es gute Ressourcen gibt, um eine andere Sprache zu lernen [zum Beispiel Octave]).
- Bücher, Dokumentation wäre sowohl nützlich, als auch Sammlungen von Beispielcode.
python
finite-difference
reference-request
hyperbolic-pde
Willie Wong
quelle
quelle
Antworten:
Hier ist ein 97-Zeilen-Beispiel für die Lösung einer einfachen multivariaten PDE mit Finite-Differenzen-Methoden, die von Prof. David Ketcheson aus dem von mir verwalteten py4sci-Repository beigesteuert wurden . Bei komplizierteren Problemen, bei denen Sie mit Erschütterungen oder der Konservierung in einer Diskretisierung mit endlichem Volumen umgehen müssen , empfehle ich pyclaw , ein Softwarepaket, das ich entwickle.
quelle
Sie können sich Fenics ansehen , ein Python / C-Framework, mit dem sich ganz allgemeine Gleichungen mit einer speziellen Auszeichnungssprache lösen lassen. Meistens werden Finite Elemente verwendet, die jedoch einen Blick wert sind. Das Tutorial soll Ihnen einen Eindruck vermitteln, wie einfach es sein kann, Probleme zu lösen.
quelle
Diese Referenz könnte für Sie sehr nützlich sein. Dies ist ein offenes Buch im Internet. Ich habe Python aus diesem Buch gelernt (lerne noch). Ich fand es in der Tat eine sehr gute Ressource.
http://www.openbookproject.net/thinkcs/python/english2e/
Für die numerische Berechnung sollte man auf jeden Fall 'numpy' wählen. (Vergewissern Sie sich nur, dass Sie das 'Array' und 'Matrix' und 'Liste' richtig verstanden haben.)
quelle