Pour un projet sur lequel je travaille (dans les PDE hyperboliques), j'aimerais avoir une idée approximative du comportement en regardant quelques chiffres. Je ne suis cependant pas un très bon programmeur.
Pouvez-vous recommander des ressources pour apprendre à coder efficacement des schémas de différences finies en Python scientifique (d'autres langages à petite courbe d'apprentissage sont également les bienvenus)?
Pour vous donner une idée du public (moi) pour cette recommandation:
- Je suis un pur mathématicien de formation et je connais un peu les aspects théoriques des schémas de différences finies
- Ce dont j'ai besoin d'aide, c'est de savoir comment faire pour que l'ordinateur calcule ce que je veux qu'il calcule, en particulier de manière à ne pas dupliquer trop les efforts déjà déployés par d'autres (afin de ne pas réinventer la roue lorsque un package est déjà disponible). (Une autre chose que j'aimerais éviter est de coder stupidement quelque chose à la main lorsqu'il existe des structures de données établies correspondant à l'objectif.)
- J'ai eu une certaine expérience de codage; mais je n'en ai pas eu en Python (donc cela ne me dérange pas s'il existe de bonnes ressources pour apprendre une langue différente [disons, Octave par exemple]).
- Livres, documentation seraient tous deux utiles, tout comme les collections d'exemples de code.
python
finite-difference
reference-request
hyperbolic-pde
Willie Wong
la source
la source
Réponses:
Voici un exemple de 97 lignes de résolution d'un PDE multivarié simple utilisant des méthodes de différences finies, contribué par le professeur David Ketcheson , du référentiel py4sci que je maintiens. Pour les problèmes plus compliqués où vous devez gérer des chocs ou la conservation dans une discrétisation à volume fini, je recommande de regarder pyclaw , un logiciel que j'aide à développer.
la source
Vous pouvez jeter un œil à Fenics , qui est un cadre en python / C qui permet de résoudre des équations assez générales à l'aide d'un langage de balisage spécial. Il utilise principalement des éléments finis, mais mérite le détour. Le didacticiel devrait vous donner une idée de la facilité avec laquelle il peut être possible de résoudre des problèmes.
la source
Cette référence pourrait vous être très utile. Ceci est un livre ouvert sur Internet. J'ai appris (j'apprends toujours) le python de ce livre. Je l'ai trouvé en effet très bonne ressource.
http://www.openbookproject.net/thinkcs/python/english2e/
Pour le calcul numérique, il faut absolument opter pour «numpy». (assurez-vous simplement que vous avez bien compris le 'tableau' et la 'matrice' et la 'liste') (reportez-vous à la documentation numpy pour cela)
la source