Lassen Sie mich mit Korrekturen beginnen. Nein, odeint
hat keine symplektischen Integratoren. Nein, symplektische Integration bedeutet keine Energieeinsparung.
Was bedeutet symplektisch und wann sollten Sie es anwenden?
Was bedeutet symplektisch? Symplektisch bedeutet, dass die Lösung auf einer symplektischen Mannigfaltigkeit besteht. Eine symplektische Mannigfaltigkeit ist eine Lösungsmenge, die durch eine 2-Form definiert ist. Die Details symplektischer Mannigfaltigkeiten klingen wahrscheinlich wie mathematischer Unsinn, und stattdessen besteht der Kern der Sache darin, dass eine direkte Beziehung zwischen zwei Mengen von Variablen auf einer solchen Mannigfaltigkeit besteht. Der Grund, warum dies für die Physik wichtig ist, besteht darin, dass Hamilton'sche Gleichungen natürlich besagen, dass sich die Lösungen auf einer symplektischen Mannigfaltigkeit im Phasenraum befinden, wobei die natürliche Aufspaltung die Positions- und Impulskomponenten sind. Für die wahre Hamiltonsche Lösung ist dieser Phasenraumpfad eine konstante Energie.
Ein symplektischer Integrator ist ein Integrator, dessen Lösung auf einer symplektischen Mannigfaltigkeit beruht. Aufgrund von Diskretisierungsfehlern wird beim Lösen eines Hamilton-Systems nicht genau die richtige Flugbahn auf dem Verteiler angezeigt. Stattdessen selbst , die Trajektorie gestörtes für die Ordnung n von der tatsächlichen Flugbahn. Dann gibt es eine lineare Drift aufgrund eines numerischen Fehlers dieser Trajektorie über die Zeit. Normale Integratoren neigen zu einer quadratischen (oder größeren) Drift und haben keine guten globalen Garantien für diesen Phasenraumpfad (nur lokal).O (Δ tn)n
Dies bedeutet in der Regel, dass symplektische Integratoren die Langzeitmuster aufgrund der mangelnden Drift und der fast garantierten Periodizität besser erfassen als normale Integratoren. Dieses Notizbuch zeigt diese Eigenschaften beim Kepler-Problem gut an . Das erste Bild zeigt, wovon ich mit der periodischen Natur der Lösung spreche.
Dies wurde mit dem symplektischen Integrator 6. Ordnung von Kahan und Li von DifferentialEquations.jl gelöst . Sie können sehen, dass die Energie nicht genau konserviert ist, aber ihre Variation hängt davon ab, wie weit der gestörte Lösungsverteiler vom tatsächlichen Verteiler entfernt ist. Da sich die numerische Lösung selbst auf einer symplektischen Mannigfaltigkeit befindet, ist sie in der Regel fast genau periodisch (mit einer gewissen linearen numerischen Abweichung, die Sie sehen können), was sie für die Langzeitintegration sehr nützlich macht. Wenn Sie dasselbe mit RK4 tun, können Sie eine Katastrophe bekommen:
Sie können sehen, dass das Problem darin besteht, dass die numerische Lösung keine echte Periodizität aufweist und daher dazu neigt, über die Zeit hinaus zu driften.
Dies unterstreicht den wahren Grund, sich für symplektische Integratoren zu entscheiden: Symplektische Integratoren eignen sich gut für Langzeitintegrationen bei Problemen mit der symplektischen Eigenschaft (Hamiltonsche Systeme) . Gehen wir also ein paar Dinge durch. Beachten Sie, dass Sie auch bei einem symplektischen Problem nicht immer symplektische Integratoren benötigen. In diesem Fall kann eine adaptive Runge-Kutta-Methode 5. Ordnung gut funktionieren. Hier ist Tsit5
:
Beachten Sie zwei Dinge. Erstens wird die Genauigkeit so gut, dass Sie die tatsächliche Drift im Phasenraumdiagramm nicht sehen können. Auf der rechten Seite sehen Sie jedoch, dass es diese Energiedrift gibt. Wenn Sie also eine ausreichend lange Integration durchführen, funktioniert diese Methode nicht so gut wie die Lösungsmethode mit den periodischen Eigenschaften. Aber das wirft die Frage auf, wie es sich in Bezug auf Effizienz auswirkt, wenn man nur extrem genau integriert. Nun, das ist ein bisschen weniger sicher. In DiffEqBenchmarks.jl finden Sie einige Benchmarks, die diese Frage untersuchen. Zum Beispiel dieses NotebookBetrachtet man den Energiefehler gegen die Laufzeit eines Hamiltonschen Gleichungssystems anhand eines Vierfach-Boson-Modells, so zeigt sich, dass es auch bei längeren Integrationszeiten effizienter ist, nur ein RK höherer Ordnung oder ein Runge-Kutta-Nystrom zu verwenden ( RKN) Methode. Dies ist sinnvoll, da die Integratoren zur Erfüllung der symplektischen Eigenschaft auf einen gewissen Wirkungsgrad verzichten und einen festen Zeitschritt einhalten müssen (es gibt einige Untersuchungen, die Fortschritte bei letzterem machen, aber es ist nicht sehr weit).
Beachten Sie außerdem, dass Sie bei beiden Notebooks auch einfach eine Standardmethode anwenden und diese bei jedem Schritt (oder bei einigen Schritten) wieder auf die Lösungsübersicht projizieren können. Dies ist, was die Beispiele mit dem ManifoldProjection-Rückruf " DifferentialEquations.jl" tun. Sie sehen, dass die Schutzgesetze eingehalten werden, jedoch mit zusätzlichen Kosten für die Lösung eines impliziten Systems in jedem Schritt. Sie können auch einen vollständig impliziten ODE-Löser oder singuläre Massenmatrizen verwenden, um Erhaltungsgleichungen hinzuzufügen. Das Endergebnis ist jedoch, dass diese Methoden als Kompromiss rechenintensiver sind.
Zusammenfassend lässt sich sagen, dass die Klasse von Problemen, bei denen Sie nach einem symplektischen Integrator suchen, diejenigen sind, die eine Lösung für eine symplektische Mannigfaltigkeit (Hamilton-Systeme) haben, bei der Sie die Rechenressourcen nicht investieren möchten, um eine sehr genaue (Toleranz <1e-12
) zu haben. Lösung und brauchen keine exakte Energie / etc. Erhaltung. Dies unterstreicht, dass es sich um langfristige Integrationseigenschaften handelt. Sie sollten sich also nicht einfach wie in einigen Literaturstellen beschrieben zu ihnen begeben. Aber sie sind immer noch ein sehr wichtiges Werkzeug in vielen Bereichen wie der Astrophysik, in denen Sie lange Zeitintegrationen haben, die Sie schnell genug lösen müssen, ohne eine absurde Genauigkeit zu haben.
Wo finde ich symplektische Integratoren? Welche Art von symplektischen Integratoren gibt es?
Im Allgemeinen gibt es zwei Klassen symplektischer Integratoren. Es gibt die symplektischen Runge-Kutta-Integratoren (die in den obigen Beispielen gezeigt werden) und es gibt implizite Runge-Kutta-Methoden, die die symplektische Eigenschaft haben. Wie @origimbo erwähnt, müssen die symplektischen Runge-Kutta-Integratoren mit einer partitionierten Struktur versehen werden, damit sie die Positions- und Momentum-Teile getrennt verarbeiten können. Entgegen dem Kommentar sind die impliziten Runge-Kutta-Methoden symplektisch, ohne dies zu erfordern, sondern erfordern die Lösung eines nichtlinearen Systems. Das ist nicht so schlimm, denn wenn das System nicht steif ist, kann dieses nicht lineare System durch funktionale Iteration oder Anderson-Beschleunigung gelöst werden.
Das sei gesagt, odeint hat keine Methoden von einem dieser Familien , so dass es nicht eine gute Wahl , wenn Sie für symplektischer Integratoren suchen. In Fortran gibt es auf der Website von Hairer ein kleines Set, das Sie verwenden können . Mathematica hat einige eingebaut . Die GSL-ODE-Löser haben implizite RK-Gauß- Punktintegratoren, die IIRC-Symplektiker sind, aber das ist ungefähr der einzige Grund, die GSL-Methoden zu verwenden.
Aber die umfassendste Reihe von symplektischer Integratoren finden Sie in DifferentialEquations.jl in Julia ( man erinnere sich dies für die Notebooks oben verwendet wurde). Die Liste der verfügbaren symplektischen Runge-Kutta-Methoden finden Sie auf dieser Seite. Sie werden feststellen, dass die implizite Mittelpunktmethode auch symplektisch ist (die implizite Runge-Kutta-Trapezoid-Methode wird als "fast symplektisch" angesehen, weil sie reversibel ist). Es verfügt nicht nur über die meisten Methoden, sondern ist auch Open-Source-fähig (Sie können den Code und seine Tests in einer Hochsprache anzeigen) und verfügt über zahlreiche Benchmarks . Ein gutes Einführungsnotizbuch zur Lösung physikalischer Probleme ist dieses Notizbuch. Aber natürlich wird empfohlen, dass Sie mit dem Paket durch das erste ODE-Tutorial beginnen .
Im Allgemeinen finden Sie in diesem Blogbeitrag eine detaillierte Analyse numerischer Differentialgleichungssuiten . Es ist ziemlich detailliert, aber da es viele Themen abdecken muss, ist jedes weniger detailliert. Sie können also jederzeit darum bitten, dass es in irgendeiner Weise erweitert wird.