Seite 1 von 1

Monte Carlo Simulationen mit Python

Verfasst: Donnerstag 3. März 2005, 10:53
von CM
Hi

Wer weiß schon so aus der Hüfte was Monte Carlo Simulationen sind? Ich jedenfalls hatte lange keine Ahnung und habe mich rel. mühsam eingelesen. Gestern aber bin ich über ein wunderschönes Dokument gestolpert, das solche Silmulationen am Beispiel eines einfachen Pythonscriptes erklärt.

Ich finde solch gute Sachen kann man ruhig mal in diesem Forum anpreisen, auch wenn es nur eine Minderheit von uns interessieren wird. Schließlich ist es nicht nur eine gute Erklärung: Ein kreativer Programmierstil wird hier auch noch gezeigt. Herz was willst Du mehr?
Hoffe ihr habt auch so viel Spaß dran wie ich ...

Gruß,
Christian

PS Fände es toll, wenn ihr ähnliche Dokumente zu Tage fördert (zu Monte Carlo Simulationen in Python) oder gar selber Scripte schreibt ;-).
PPS Wer das große Script im Anhang des Artikels haben möchte und es nicht so einfach aus diesem PDF rausbekommt: Nachricht an mich! (Ich habe auch mal an den Autor geschrieben wegen ein paar Fehlern drin, vielleicht gibt es ja noch ein update.)
PPPS Das in diesem Artikel erwähnte "Surely you'e joking, Mr. Feynman - Sie belieben wohl zu scherzen, Mr. Feynman" ist wirklich zu empfehlen - auch ohne Interesse an Monte Carlo Simulationen!

Verfasst: Samstag 9. Juni 2007, 11:00
von gecko
Mal was ausprobiert?

p.s. das thema ist nicht wirklich off-topic, oder?

Verfasst: Samstag 9. Juni 2007, 21:38
von CM
gecko hat geschrieben:Mal was ausprobiert?
Magst Du eine ganze Frage stellen? Dann kann ich Dir vielleicht auch eine ganze Antwort geben.
gecko hat geschrieben: p.s. das thema ist nicht wirklich off-topic, oder?
Na ja, ich fand halt, es ist nicht wirklich ein brauchbares Tutorial, daß ich hier hätte verlinken können. Schlimm? ;-)
Das "Problem" mit Monte Carlo Simulationen ist doch, daß man zwar eine Einführung lesen kann, aber die Anwendung auf ein spezifisches Problem läßt sich nicht nach Schema F abwickeln. Insofern betrachte ich es nicht als "Tutorial". Geschmackssache.

Gruß,
Christian

Verfasst: Sonntag 10. Juni 2007, 16:12
von gecko
Hast Du schon mal verschiedene MC Simulationen ausprobiert? Gibt es libraries?

Im numerischen Bereich ist Python mittlerweile recht stark denke ich.

Verfasst: Montag 11. Juni 2007, 17:47
von CM
gecko hat geschrieben:Hast Du schon mal verschiedene MC Simulationen ausprobiert? Gibt es libraries?
Ad 1.) Ja, in verschiedenen Sprachen, aber nichts größeres in Python, weil zu langsam.
Ad 2.) Weiß ich nicht. Wie gesagt, MC-Simulationen sind meist zugeschnitten auf spezifische Probleme. Vielleicht im Molekulardynamikbereich? mawe, weißt Du da was? Ansonsten: Keine Ahnung.
gecko hat geschrieben: Im numerischen Bereich ist Python mittlerweile recht stark denke ich.
Ja, und was willst Du damit sagen?

Gruß,
Christian

Verfasst: Montag 11. Juni 2007, 18:07
von gecko
Ja, und was willst Du damit sagen?
Dass Python in Numerik eine gute Alternative bietet zu CAS wie Mathematica. Das war einfach eine generische Aussage zu der jemand ein Kommentar abgeben kann oder auch nicht.

Verfasst: Montag 11. Juni 2007, 18:27
von CM
Sorry, ich wollte nicht brüsk rüberkommen, aber Du weckst einen alten Thread und drückst Dich reichlich knapp aus - so knapp, daß ich wirklich kaum verstanden habe, was Du eigentlich wissen oder mit welchem Zweck kommentieren willst.

Bzgl. des Vergleichs mit Mathematica (was ich eigentlich nicht näher kenne): Ich würde sagen, daß Python mit numpy/scipy und Co., weil Python eben eine sehr mächtige Programmiersprache ist, zwar einerseits irgendwo zwischen Igor / Matlab / Mathematica ist, aber andererseits auch eben anders: Es kann mehr, weil man teilw. mehr programmieren kann und weniger, weil es z. T. aufwendiger zu nutzen ist - vieles ist nicht direkt zu nutzen ohne selber noch zu coden.

Gruß,
Christian

Verfasst: Montag 11. Juni 2007, 18:53
von CM
PS Mir fällt noch ein: Es gibt in der scipy sandbox etwas Funktionalität - habe ich aber nie angewendet.
http://svn.scipy.org/svn/scipy/trunk/Li ... tecarlo.py

Verfasst: Dienstag 12. Juni 2007, 15:49
von gecko
Ja, sorry. Neuer Versuch :wink:

Hast Du mit Pyhton MC-Simulationen (MCS) gemacht und die Performance verglichen mit CAS oder C++?

Ich vermute mal, wenn man wirklich tief in die Materie einsteigen will muss man sich den SciPy source anschauen und detailierte Vergleiche machen. Vielleicht gibt es ja solche Untersuchungen schon.

Meine zweite Frage ist ob man kommerzielle CAS (Mathematica, Maple, Matlab) gut hinsichtlich Performance vergleichen kann, eben insbesondere bei MCS?

Verfasst: Dienstag 12. Juni 2007, 19:03
von CM
gecko hat geschrieben:J
Hast Du mit Pyhton MC-Simulationen (MCS) gemacht und die Performance verglichen mit CAS oder C++?
Oh Gott, nein. Dann hätte ich die Programme ja zweimal schreiben müssen. Wenn der zugrundeliegende Algorithmus, der in der MCS aufgerufen wird, schon langsam ist, überlegt schreibe ich nicht in Python. Zumal wenn ich schon ein Muster in C++ habe ;-).
gecko hat geschrieben: Ich vermute mal, wenn man wirklich tief in die Materie einsteigen will muss man sich den SciPy source anschauen und detailierte Vergleiche machen. Vielleicht gibt es ja solche Untersuchungen schon.

Meine zweite Frage ist ob man kommerzielle CAS (Mathematica, Maple, Matlab) gut hinsichtlich Performance vergleichen kann, eben insbesondere bei MCS?
Es gab mal Benchmarks - habe ich selber schon in der Mailingliste gelesen -, aber heute habe nichts Einschlägiges mehr finden können, also etwas, was mit MCS zu tun hat. Wenn Dich das wirklich interessiert, muß ich gestehen, daß ich kein Benchmarkexperte bin und nichts Wertvolles in der Richtung selber erstellen kann. Aber auf der scipy-user-Mailingliste sind solche Fragen immer gerne und heiß diskutiert ;-).

Gruß,
Christian

Verfasst: Dienstag 12. Juni 2007, 22:05
von gecko
Ok, danke für den Hinweis. Werde mir mal die Mailingliste anschauen.

Verfasst: Dienstag 18. September 2007, 15:58
von CM
CM hat geschrieben:
gecko hat geschrieben:Hast Du schon mal verschiedene MC Simulationen ausprobiert? Gibt es libraries?
Ad 1.) Ja, in verschiedenen Sprachen, aber nichts größeres in Python, weil zu langsam.
Das muß ich jetzt korrigieren: Ich habe MC in Python am laufen. Sogar eine ziemlich große App., allerdings mußte ich den entscheidenden Verifikationspart in C auslagern, weil die Komplexität O(N^2) ist und mein N leider recht groß ...

Den Code möchte ich noch nicht rausrücken, weil ich daraus in etwa einem halben Jahr hoffentlich eine Veröffentlichung machen kann, bis dahin kann ich aber auch gerne Hilfestellung geben, falls es allgemeine Fragen zum Thema gibt. Inzwischen habe ich etwas Erfahrung.

Gruß,
Christian