Was sind gute Möglichkeiten, um die Gültigkeit von Code zu überprüfen, um die zeitabhängige Schrödinger-Gleichung zu simulieren?

Kürzlich habe ich einen Code erstellt, der eine einfache Quantenmechanik-Simulation durchführen kann, wie im Titel geschrieben.

Ich möchte überprüfen, ob dieser Code die zeitabhängige Schrödinger-Gleichung korrekt löst und die Physik (Gültigkeit des Codes) erfüllt, bevor ich diesen Code erweitere.

Ich denke über folgende Wege nach:

  1. Prüfen Sie, ob die Wahrscheinlichkeitsnorm erhalten ist oder nicht.

  2. die übertragene Wahrscheinlichkeit aus der Berechnung mit dem theoretisch abgeleiteten Übertragungskoeffizienten vergleichen, T .

Ich bin mir nicht sicher, ob dies die richtigen Methoden sind, um die Gültigkeit des Codes zu überprüfen. Könnten Sie mir bitte mitteilen, ob diese korrekt sind oder ob es eine andere Methode zum Überprüfen gibt?

Abhängig von der von Ihnen verwendeten Integrationsmethode kann es zu einer kleinen Nichterhaltung der Wahrscheinlichkeit kommen. Die zweite Methode klingt vernünftig. Versuchen Sie also, ein Streuproblem zu lösen?
Es ist schwer zu sagen, ohne genau zu wissen, was dieser Code tut. (1) wird kein sehr starker Check sein. Sie könnten den Code die Wellenfunktion in einem einfachen Potential berechnen lassen, das Sie theoretisch lösen können, und dann sicherstellen, dass <psi' | psi> =1, wobei |psi> aus Ihrem Code kommt und <psi'| kommt aus der Theorie.

Antworten (1)

Die Normalisierung ist nicht wirklich eine gute Bedingung, um sie zu überprüfen.

Bei zeitabhängigen Problemen leistet die numerische Integration über die Zeit normalerweise gute Arbeit, um die Normalisierung zu erhalten (es sei denn, Ihr Schema ist wirklich schlecht), und das Problem ist normalerweise das gleiche wie bei dem zeitunabhängigen Problem: große Werte von X (siehe unten). Die kanonische Referenz für 1d-Streuung ist Goldberg, HM Schey und JL Schwartz, "Computer-Generated Motion Pictures of One-Dimensional Quantum-Mechanical Transmission and Reflection Phenomena" Am . J. Phys. 35 , 177–186 (1967) ( Abdruck ).

Für 2d-Streuprobleme gibt es ein Matrixverfahren basierend auf „Numerische Gitterverfahren für quantenmechanische Streuprobleme“ TN Rescigno und CW McCurdy Phys. Rev. A 62, 032706, die das Problem auf dem Gitter löst. Auch hier ist die Grenze des Gitters festgelegt und so vermeidet man Probleme mit abweichenden Lösungen.

Der folgende Kurzfilm zeigt die Streuung eines Gaußschen Wellenpakets durch eine quadratische Erhebung. (Möglicherweise müssen Sie auf das Bild klicken, um die Animation zu sehen ...) Es ist ziemlich numerisch genau.

Geben Sie hier die Bildbeschreibung ein


Für zeitunabhängige Probleme ist die Norm nur ein unwichtiger Skalierungsfaktor. Der knifflige Teil liegt in den Randbedingungen im Unendlichen: Im Grunde müssen Sie herausfinden, wie schnell (womit ich meine, bei welchem ​​​​Wert von X ) beginnt Ihre Lösung zu divergieren, selbst wenn Sie den exakten Eigenwert als Schätzenergie eingeben. Dies hängt stark vom Integrationsschema ab: Die besseren Integrationsschemata geben Ihrer Lösung einen längeren "Schwanz".

Beispielsweise sind die beiden Diagramme unten numerische Lösungen für den zeitunabhängigen harmonischen Quantenoszillator mit exakter Energie E 2 = 5 / 2 . Das Diagramm auf der linken Seite wurde mit dem Standardschema "NDSolve" von Mathematica erstellt und hat eindeutig Probleme in der Vergangenheit | X | > 6 . Das Diagramm auf der rechten Seite verwendet ebenfalls "NDSolve", aber das Integrationsschema wurde auf eine Runge-Kutta-Methode 8. Ordnung gezwungen und liefert eindeutig viel bessere Ergebnisse für große | X | .

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Für 1d zeitunabhängige Probleme gibt es die sogenannte "Shoot and Match"-Methode oder die "Shooting-Methode", die die beste zu sein scheint. Es ist gut, weil es nicht so empfindlich auf Randbedingungen an ist ± . Die naive und sehr grundlegende Art, die Methode zu verstehen, besteht darin, dass Sie von "weit entfernt" beginnen und sich von beiden Enden zur Mitte vorarbeiten, in der Hoffnung, dass die Wellenfunktionen links und rechts zufriedenstellend sind ψ L ( 0 ) = ψ R ( 0 ) und die Derivate passen auch zusammen. Wenn nicht versucht man eine andere Energie. Es funktioniert am besten für symmetrische Potentiale.

[Die Animation scheint nicht zu funktionieren... ]