Existe-t-il des moyens simples de résoudre numériquement l’équation de Schrödinger qui dépend du temps?


34

Je voudrais effectuer quelques simulations simples de diffusion de paquets d’ondes à partir de potentiels simples dans une dimension.

Existe-t-il des moyens simples de résoudre numériquement le TDSE unidimensionnel pour une seule particule? Je sais qu'en général, essayer d'utiliser des approches naïves pour intégrer des équations aux dérivées partielles peut rapidement aboutir à un désastre. Je cherche donc des algorithmes qui

  • sont numériquement stables,
  • sont simples à implémenter, ou ont des implémentations de librairie de code facilement accessibles,
  • courir assez vite, et j'espère
  • sont relativement simples à comprendre.

Je voudrais également éviter les méthodes spectrales, en particulier celles qui ne sont guère plus que la résolution de l’équation de Schrödinger indépendante du temps, comme d’habitude. Cependant, je serais intéressé par les méthodes pseudo-spectrales qui utilisent des B-splines ou autres. Si la méthode peut prendre un potentiel dépendant du temps, alors c'est définitivement un bonus.

Bien entendu, toute méthode de ce type comportera toujours un certain nombre d'inconvénients; j'aimerais donc en entendre parler. Quand ça ne marche pas? Quels sont les pièges les plus courants? De quelles manières peut-il être poussé et de quelles manières ne peut-il pas?



@EmilioPisanty J'ai ajouté une discussion sur les erreurs à ma rédaction de la SSFM: Je remarque (après avoir écrit ma réponse, désolé) que vous n'êtes pas passionné par les méthodes spectrales, mais juste au cas où ...

Fil nettoyé; retirer la discussion de l'actualité de la physique.
Geoff Oxberry

1
Je recommande de commencer ici, bien qu'il y ait beaucoup de travaux plus récents: Une comparaison de différents schémas de propagation pour l'équation de Schrödinger en fonction du temps .
David Ketcheson

3
@ GeoffOxberry pourriez-vous mettre à disposition une capture d'écran de ces commentaires?
Emilio Pisanty

Réponses:


24

L'équation de Schroedinger est en fait une réaction de diffusion équation (toutes les constantes sont 1). Pour toute équation aux dérivées partielles, il existe deux manières de la résoudre:

(1)iψt=2ψ+Vψ
  1. Méthode implicite (adv: pas de temps importants et inconditionnellement stable, désavantage: nécessite un solveur matriciel pouvant donner des données erronées)
  2. Méthode explicite (adv: facile à mettre en œuvre, désavantage: nécessite de petites pas de temps pour la stabilité)

Pour les équations paraboliques (linéaire en et 2e ordre en ), la méthode implicite est souvent le meilleur choix. La raison en est que la condition de stabilité de la méthode explicite requiert , qui sera très petite. Vous pouvez éviter ce problème en utilisant la méthode implicite, qui n’a pas de telle limitation sur le pas de temps (bien que dans la pratique, vous ne le faites pas normalement trop grand car vous pouvez perdre une partie de la physique). Ce que je décris ensuite est la méthode de Crank-Nicolson , un schéma implicite commun précis du second ordre (espace et temps).x d t d x 2txdtdx2

Entrées

Afin de résoudre informatiquement une PDE, vous devez la discrétiser (rendre les variables adaptées à une grille). Le plus simple est une grille cartésienne rectangulaire. Ici, représente l’indice de temps (et est toujours un super script) et l’indice de position (toujours un indice). En utilisant un développement de Taylor pour la variable dépendante de la position, l’équation (1) devient Où nous avons supposé quej i ψ n + 1 j - ψ jnjV=V(x) 1

iψjn+1ψjdt=12(ψj+1n+12ψjn+1+ψj1n+1dx2+ψj+1n2ψjn+ψj1ndx2)+12(Vjψjn+1+Vjψjn)
V=V(x). Que se passe-t-il ensuite est un regroupement d'indices spatiaux et temporels semblables (vous pouvez vérifier les calculs): Cette équation a la forme (A0A-00A+A0A-00A+A0A-)(ψ n + 1 0 ψ n + 1 1ψ n + 1 J - 1 )=(ψ n 0
(2)12dtdx2ψj+1n+1+(idtdx212Vj)ψjn+1+12dtdx2ψj1n+1=iψjn12dtdx2(ψj+1n2ψjn+ψj1n)+12Vjψjn
iψ n + 1 j
(A0A00A+A0A00A+A0A)(ψ0n+1ψ1n+1ψJ1n+1)=(ψ0nψ1nψJ1n)
appelée matrice tridimensionnelle et ayant une solution connue (plus des exemples de travail, notamment un écrit par moi!). La méthode explicite raye tout le côté gauche (ou devrais-je dire la ligne du haut?) De l'équation (2), à l'exception du terme .iψjn+1

Problèmes

Le plus gros problème que j'ai trouvé avec les méthodes implicites est qu'elles dépendent fortement des conditions aux limites. Si vous avez des conditions aux limites mal définies / implémentées, vous pouvez obtenir des oscillations parasites dans vos cellules qui peuvent entraîner des résultats erronés (voir mon article SciComp sur un sujet similaire). Cela conduit à une précision du premier ordre dans l’espace, plutôt qu’au second que votre schéma devrait donner.

Les méthodes implicites sont également supposées difficiles à paralléliser, mais je ne les ai utilisées que pour des équations de chaleur 1D et je n’ai donc pas besoin d’un support parallèle. Je ne peux donc ni vérifier ni infirmer cette affirmation.

Je ne sais pas non plus comment la nature complexe de la fonction d'onde affectera les calculs. Les travaux que j'ai effectués utilisent les équations de dynamique des fluides d'Euler et sont donc entièrement réels avec des grandeurs non négatives.

Potentiel dépendant du temps

Si vous avez un potentiel dépendant du temps analytique (par exemple, ), vous utiliserez simplement l'heure actuelle, , pour le sur le RHS de (2) et le temps futur, , sur le LHS. Je ne crois pas que cela créerait des problèmes, mais je n'ai pas testé cela, donc je ne peux ni vérifier ni nier cet aspect aussi.t V j t + d tVcos(ωt)tVjt+dt

Des alternatives

Il existe également des alternatives intéressantes à la méthode Crank-Nicolson. La première est la méthode dite du "pas dans le temps". Dans cette méthode explicite, vous prenez pas de temps ( ) et d' utiliser les racines des polynômes de Chebyshev pour obtenir un ensemble optimisé de temps étapes qui résument rapidement plus vite que faire étapes fois (efficace vous obtenez sorte que chaque étape vous avance d t d t / N N Δ T = N 2 d t N N d tdtdx2dtdt/NNΔT=N2dtNNdtà l'heure). (J'utilise cette méthode dans mes recherches parce que vous avez un "flux" bien défini d'une cellule à une autre qui est utilisé pour fusionner les données d'un processeur à un autre, en utilisant le schéma de Crank-Nicolson; je ne pouvais pas le faire).

EDIT Une chose à noter est que cette méthode est précise au premier ordre dans le temps, mais si vous utilisez une méthode Runge-Kutta 2 conjointement, elle vous donnera un schéma précis au 2e ordre dans le temps.

L'autre est appelé explicite à direction alternée . Cette méthode nécessite que vous ayez des conditions aux limites connues et bien définies. Il procède ensuite à la résolution de l'équation en utilisant la limite directement dans le calcul (inutile de l'appliquer après chaque étape). Ce qui se passe dans cette méthode, c'est que vous résolvez l'EDP deux fois, une fois dans un mouvement ascendant et une fois dans un mouvement descendant. Le balayage ascendant utilise alors que le balayage descendant utilise pour l'équation de diffusion alors que les autres termes resteraient les mêmes. Le pas de temps

2ψx2ψj1n+1ψjn+1ψjn+ψj+1ndx2
2ψx2ψj+1n+1ψjn+1ψjn+ψj1ndx2
n+1 est ensuite résolu en calculant la moyenne des deux balayages directionnels.

1
Bonne réponse, le seul reproche, c'est que vous m'ayez battu!
Kyle

@ChrisWhite: Je pensais à comment cela pourrait se faire plus tôt ce matin et la seule chose que je suis venu avec le faire est d' être une fois pour et une fois pour . Je vais jeter un coup d'œil à ce document (et plus important encore au code gratuit qu'ils ont distribué) et voir comment ils suggèrent de le faire. RI
Kyle Kanos

@ChrisWhite Peut-être que la sournoiserie sert à calculer les fonctions propres, ce que j'ai vu se calculer par timestamp imaginaire: vous organisez la direction de pas de sorte que la fonction propre la plus basse d'énergie ait la valeur la moins négative de et donc la décroissance la plus lente. En itérant sur une entrée aléatoire, très rapidement, il ne reste que la forme de la fonction propre de l'énergie la plus basse. Ensuite, vous soustrayez ceci de l'entrée aléatoire et recommencez: maintenant, la fonction propre d'énergie la plus basse suivante est la principale. Etc. Cela semble un peu louche (en particulier s’agissant de eigenfuncs) mais cela fonctionne! hνhν

1
@DavidKetcheson: Une équation de réaction-diffusion se présente sous la forme . Dans le cas de l'équation de Schrodinger, ; puis-je alors demander comment ce n'est pas une équation de type RD? Et curieusement, l’équation de Schrodinger apparaît dans l’article de wiki de Réaction-diffusion que j’ai référencé. Cette équivoque que j'ai faite apparaît également dans de nombreux journaux et textes publiés (allez-y et cherchez-la). Il aurait peut-être mieux valu que je conseille d'utiliser des bibliothèques standard (comme dans le cas de plusieurs MO), telles que PETSc, deal.ii ou pyCLAW. tu=Dx2u+R(u)R(u)=Vu
Kyle Kanos

1
@KyleKanos: Votre message est bon. En fait, dans l'article publié par DavidKetcheson, Crank-Nicolson est préconisé par la première référence. La comparaison à la réaction-diffusion est bonne; comme vous le constatez, la comparaison à la réaction-diffusion apparaît dans de nombreuses sources publiées. Je pense que DavidKetcheson recherchait quelque chose comme "l'équation d'onde dispersive" mentionnée plus tôt.
Geoff Oxberry

22

Au début des années 90, nous recherchions une méthode permettant de résoudre le problème TDSE assez rapidement pour créer des animations en temps réel sur un PC. Nous avons découvert une méthode étonnamment simple, stable et explicite décrite par PB Visscher dans Computers in Physics : " Un algorithme rapide explicite pour l'équation de Schrödinger en fonction du temps ". Visscher note que si vous divisez la fonction d'onde en parties réelles et imaginaires, , le SE devient le système:ψ=R+iI

dRdt=HIdIdt=HRH=12m2+V

Si vous calculez ensuite et à des moments décalés ( à et à , vous obtenez la discrétisation:RIR0,Δt,2Δt,...I0.5Δt,1.5Δt,...)

R(t+12Δt)=R(t12Δt)+ΔtHI(t)

I(t+12Δt)=I(t12Δt)ΔtHR(t)

avec (laplacien standard à trois points).

2ψ(r,t)=ψ(r+Δr,t)2ψ(r,t)+ψ(rΔr,t)Δr2

Ceci est explicite, très rapide à calculer et précis au second ordre dans .Δt

Définir la densité de probabilité comme

P(x,t)=R2(x,t)+I(x,t+12Δt)I(x,t12Δt)
à des pas de temps entiers et,

P(x,t)=R(x,t+12Δt)R(x,t12Δt)+I2(x,t)
à un demi-entier

rend l'algorithme unitaire, conservant ainsi la probabilité.

Avec suffisamment d’optimisation du code, nous avons pu obtenir de très belles animations calculées en temps réel sur des machines 80486. Les élèves peuvent «dessiner» n’importe quel potentiel, choisir une énergie totale et observer l’évolution temporelle d’un paquet gaussien.


C'est un truc très astucieux pour résoudre les composants réels et imaginaires! Notez également que vous pouvez obtenir de grandes équations centrées en utilisant $$ ... $$. J'ai pris la liberté de le faire pour vous, j'espère que cela ne vous dérange pas!
Kyle Kanos

Nous avons été ravis de trouver cet algorithme - il était facile à programmer et rapide. La partie la plus difficile a été de définir correctement les conditions initiales, R à t = 0 et I à 0,5dt ... Je ne me dérange pas du montage, je suis content d’obtenir des équations.

1
@ user40172 Nous faisions la même chose pour les guides d'ondes à peu près au même moment et nous avons opté pour le BPM décrit dans ma réponse. La raison en était qu’à l’époque, nous pouvions exécuter les FFT séparément de la CPU principale à l’aide d’une carte DSP. Nous pensions être si intelligents, mais je dois dire que le fait de proposer essentiellement une solution matérielle à un problème logiciel paraisse plutôt désagréable en 2014! La dernière version de Visual Studio C ++ vectorise automatiquement le code sur les processeurs et fait un travail magnifique avec la FFT.

1
@ user40172 Comment avez-vous obtenu les conditions initiales à finalement? Juste propager la solution à cette époque en utilisant une autre méthode? 0.5dt

1
@Rusian Depuis la diffusion, nous avons utilisé un paquet d'ondes gaussien standard à particules libres, mais nous nous sommes assurés de le démarrer "assez loin" de toute région où le potentiel était non nul. Voir, par exemple: démonstrations.wolfram.com

10

La réponse de Kyle Kanos semble être très complète, mais je pensais ajouter ma propre expérience. La méthode de Fourier en plusieurs étapes (SSFM) est extrêmement facile à exécuter et à manipuler; vous pouvez le prototyper dans quelques lignes de Mathematica et il est extrêmement stable numériquement. Cela implique de ne communiquer que des opérateurs unitaires sur votre jeu de données, de sorte qu'il conserve automatiquement la probabilité / puissance (ce dernier si vous résolvez les équations de Maxwell avec elle, c'est là que réside mon expérience). Pour une équation de Schrödinger unidimensionnelle ( variation et uniquement), elle est extrêmement rapide, même en code Mathematica. Et si vous avez besoin d’accélérer les choses, vous n’avez vraiment besoin que d’un bon code FFT dans votre langue cible (mon expérience se situe en C ++).txt

Ce que vous feriez est une version déguisée de la méthode de propagation de faisceau pour la propagation optique à travers un guide d'onde de section transversale variable (analogue aux potentiels variant dans le temps), il serait donc utile de l'examiner également.

La façon dont je regarde le SSFM / BPM est la suivante. Son fondement est la formule du produit Trotter de la théorie de Lie:

(1)limm(exp(Dtm)exp(Vtm))m=exp((D+V)t)

qui est parfois appelé l'équation de fractionnement d'opérateur dans ce contexte. Votre ensemble de données est une grille discrétisée ou de valeurs complexes représentant à un instant donné . Donc, vous imaginez ceci (vous n’avez pas à le faire ; je parle toujours conceptuellement), une énorme grille écrite en tant que vecteur de colonne élément (pour une grille , nous avons ) et votre équation de Schrödinger est donc de la forme:xyxyzψ(x,y,z)tNΨ1024×1024N=10242=1048576

(2)dtΨ=KΨ=(D+V(t))Ψ

où est une matrice - parallèle-hermitienne, un élément de , et va être mappé avec le temps croissant par un élément de celui-ci groupe de paramètres . (J'ai ajouté le facteur dans le de la RHS pour pouvoir parler plus facilement en termes théoriques de Lie). Etant donné la taille de , l'habitat naturel des opérateurs est un groupe de Lie tout à fait colossal, alors PHEW! oui je parle toujours en termes totalement théoriques! Maintenant, qu'est-ce queK=D+VN×Nu(N)Ψexp(Kt)iK=D+VNU(N)D+Vressembler? Imaginant encore pour l’instant, il pourrait être considéré comme une version de différences finies de , où représente un potentiel "moyen" commode pour le problème à résoudre.i2/(2m)i1V0+i1(V0V(x,y,z,t0))V0

Nous laissons:

(3)D=i2m2i1V0V=i1(V0V(x,y,z,t))

Pourquoi je les ai séparés comme ceci deviendra clair ci-dessous.

Le point à propos de est qu'il peut être élaboré analytiquement pour une onde plane: c'est un simple opérateur de multiplication en coordonnées de moment. Donc, pour , voici les trois premières étapes d’un cycle SSFM / BPM:DΨexp(ΔtD)Ψ

  1. Transmettez FFT à l'ensemble de données pour le transformer en un ensemble de pondérations de superposition d'ondes planes: les coordonnées de la grille ont été modifiées de à ;ΨΨ~x,y,zkx,ky,kz
  2. Donnez en multipliant simplement chaque point de la grille par ;Ψ~exp(ΔtD)Ψ~exp(iΔt(V0kx2+ky2+kz2)/)
  3. Donner une FFT inverse pour mapper notre grille versexp(ΔtD)Ψ

    Maintenant, nous sommes de retour dans le domaine de la position. C'est le meilleur domaine à donner à l'opérateur bien sûr: ici, est un opérateur de multiplication simple. Alors voici votre dernière étape de votre cycle algorithmique:VV

  4. Indiquez l'opérateur en multipliant simplement chaque point de la grille par le facteur de phaseΨexp(ΔtV)Ψexp(iΔt(V0V(x,y,z,t))/)

.... et alors vous commencez votre prochaine étape et recommencez encore et encore. Il est clair qu'il est très facile de mettre dans le code des potentiels variant dans le temps.ΔtV(x,y,z,t)

Donc, vous voyez que vous choisissez simplement suffisamment petit pour que la formule de Trotter (1) entre en action: vous ne faites que approximer l'action de l'opérateur et vous faites des va-et-vient avec votre FFT entre les coordonnées de position et de moment, c'est-à-dire les domaines où et sont des opérateurs de multiplication simples.Δtexp(D+VΔt)exp(DΔt)exp(VΔt)VD

Notez que vous ne communiquez jamais, même dans le monde discrétisé, que des opérateurs unitaires: FFT et facteurs de phase purs.

Vous devez faire attention, par exemple, au fait que votre devient petit, vous devez vous assurer que l’espacement spatial de la grille se réduit également. Sinon, supposons que l'espacement spatial de la grille est . Alors la signification physique de la première étape discrète est que les effets de diffraction se propagent à une vitesse ; lors de la simulation des équations et des guides d'ondes de Maxwell, vous devez vous assurer que cette vitesse est bien inférieure à . Je pense que les limites s’appliquent à l’équation de Schrödinger: je n’ai pas d’expérience directe ici, mais cela semble amusant et vous pourriez peut-être publier vos résultats un jour!ΔtΔxΔx/Δtc

Un deuxième point "d'expérience" avec ce genre de chose - je serais presque prêt à parier que c'est ainsi que vous finirez par suivre vos idées. Nous avons souvent des idées que nous voulons faire des simulations simples, rapides et sales, mais cela ne marche jamais comme ça! Je commencerais par le SSFM comme je l'ai décrit ci-dessus, car il est très facile de fonctionner et vous verrez rapidement si ses résultats sont physiques ou non. Par la suite, vous pourrez utiliser, par exemple, le code Mathematica SSFM pour vérifier les résultats d'un code plus sophistiqué que vous pourriez éventuellement créer, par exemple, un code Crank Nicolson inspiré de la réponse de Kyle Kanos .


Limites d'erreur

La réalisation de la formule de Dynkin du théorème de Baker-Campbell-Hausdorff:

exp(DΔt)exp(V)Δt)=exp((D+V)Δt+12[D,V]Δt2+)
convergeant pour certains montre que la méthode est exacte à la deuxième commande et peut montrer que:Δt>0

exp(DΔt)exp(V)Δt)exp(12[D,V]Δt2)=exp((D+V)Δt+O(Δt3))

Vous pouvez donc théoriquement utiliser le terme pour estimer l'erreur et régler votre conséquence. Ce n’est pas aussi simple qu’il en a l’air et, dans la pratique, les limites finissent par être des estimations approximatives de l’erreur. Le problème est que:exp(V)Δt)exp(12[D,V]Δt2)Δt

Δt22[D,V]=iΔt22m(x2V(x,t)+2xV(x,t)x)

et il n'y a pas de transformation facile en coordonnées où est un simple opérateur de multiplication. Vous devez donc vous contenter de et utilisez-la pour estimer votre erreur en calculant pour votre en solution en constante évolution et d' utiliser cette option pour définir votre[D,V]exp(12[D,V]Δt2)eiφΔt2(id(12[D,V]iφ(t))Δt2)(id(12[D,V]iφ(t))Δt2)ψψ(x,t)Δtà la volée après chaque cycle de l'algorithme. Vous pouvez bien sûr faire de ces idées la base d’un contrôleur pas à pas adaptatif pour votre simulation. Ici est une phase globale tirée de l'ensemble de données afin de minimiser la norme de ; bien sûr, vous pouvez souvent lancer une telle suppression globale: selon ce que vous faites avec les résultats de la simulation, nous ne sommes souvent pas dérangés par une phase constante globale .φ(12[D,V]iφ(t))Δt2exp(φdt)

Un article pertinent sur les erreurs dans le SSFM / BPM est:

Lars Thylén. "La méthode de propagation de faisceau: une analyse de son applicabilité", Optical and Quantum Electronics 15 (1983), pages 433-439 .

Lars Thylén réfléchit aux erreurs théoriques non liées à Lie (les groupes de Lie sont ma tendance, alors j'aime bien en chercher les interprétations), mais ses idées sont essentiellement les mêmes que ci-dessus.


1
Rod, vous savez probablement que vous pouvez faire mieux si vous utilisez l'approximation dite d'opérateur divisé, où . En fait, vous pouvez encore diviser pour que l'erreur soit transmise à des puissances supérieures . Voir, par exemple, Bandrauk et Shen, Chem. Phys. Lett. 176, 428 (1991). Évidemment, votre terme cinétique ne peut pas dépendre des coordonnées, c’est-à-dire qu’il ne fonctionne pas bien en coordonnées curvilignes. exp[Δt(D+V)]exp[ΔtV/2]exp[ΔtD]exp[ΔtV/2]Δt

1
Sinon, cette opération d'opérateur fractionné couplée à l'évaluation FFT de l'opérateur d'énergie cinétique est l'une des procédures standard permettant de résoudre le problème TDSE sur une représentation basée sur une grille dans la physique moléculaire.

@perplexity Merci beaucoup. Il est bon de savoir ce que les différents domaines utilisent. La date de 1991 sur votre référence est intéressante: j'ai toujours été à peu près sûre que l'idée de l'étape en deux étapes est née de la simulation du guide d'ondes à la fin des années 1970 - alors je me trompe peut-être.

1
Vous n'avez pas tort du tout. C'était l'inspiration en effet. Feit, Fleck et Steiger, J. Comput sont les premiers à traduire ces idées en QM. Phys. 47, 412 (1982) où, si je me souviens bien, ils utilisent essentiellement les mêmes astuces avec l'avantage que l'opérateur est unitaire par construction (contrairement aux ondes classiques). Je pense que Ronnie Kosloff a été le premier à proposer l’approche basée sur la grille FFT à ce type de simulations. Il a une très belle critique à ce sujet sur sa page Web.

Une autre bonne référence dans mon domaine est le livre de David Tannor sur la mécanique quantique: une perspective dépendant du temps. À votre santé.

5

Je peux recommander l'utilisation de la méthode FDTD (finite-difference time-domain). J'ai même écrit il y a quelque temps un tutoriel qui devrait répondre à la plupart de vos questions:

JR Nagel, "Examen et application de l'algorithme du domaine temporel par différences finies appliqué à l'équation de Schrödinger", ACES Journal, vol. 24, n ° 1, février 2009

J'ai quelques codes Matlab qui fonctionnent bien pour les systèmes 1D. Si vous avez de l'expérience avec FDTD en électromagnétique, cela fonctionne également très bien pour la mécanique quantique. Je peux poster mes codes si cela vous intéresse.

Fondamentalement, il agit simplement sur les fonctions d'onde directement en divisant les dérivées en différences finies. C'est un peu similaire au schéma Crank-Nicholson, mais pas exactement. Si vous connaissez FDTD de la théorie des ondes électromagnétiques, FDTD sera très intuitif lors de la résolution de l'équation de Schrodinger.


4

La méthode la plus simple des différences finies est rapide et facile à comprendre, mais n’est pas unitaire dans le temps - la probabilité n’est donc pas conservée. Crank-Nicholson-Crout fait la moyenne des méthodes de différences finies aller et retour pour produire une méthode hybride implicite / explicite qui est encore assez facile à comprendre et à mettre en œuvre et qui est unitaire dans le temps. Ce site explique bien la méthode, fournit un pseudocode et donne les propriétés pertinentes:

http://www.physics.utah.edu/~detar/phycs6730/handouts/crank_nicholson/crank_nicholson/ Remarque: Il manque un - le LHS de l'équation un de ce lien, qui se propage sur toute la page.

D'où vient la nonunitarité?

Pour résumer, résoudre le problème TDSE revient à déterminer comment traiter

|ψ(x,t)=eiHt|ψ(x,0)

qui contient un opérateur différentiel dans une exponentielle.

L'application d'une différence finie directe transforme l'opérateur différentiel en une matrice tridiagonale (convertissant les réels en grille) et l'exponentielle en les deux premiers termes de sa série de Taylor

eiHt1iHt

Cette discrétisation et linéarisation est ce qui donne lieu à la non-unité. (Vous pouvez montrer que la matrice tridiagonale n'est pas unitaire par calcul direct.) La combinaison de la différence finie vers l'avant avec la différence finie vers l'arrière produit l'approximation

eiHt112iHt1+12iHt

qui, gentiment, se trouve être unitaire (encore une fois, vous pouvez le montrer par calcul direct).


Merci pour la réponse rapide. Pourriez-vous fournir plus de détails sur ces deux méthodes? Comment fonctionnent-ils et pourquoi? D'où vient la nonunitarité?
Emilio Pisanty

Je serais heureux de fournir plus de détails, mais pour ne pas manquer mon public cible, il serait utile de savoir combien d’études et d’expérience vous avez eu dans chacun des domaines suivants: Calcul, Équations différentielles, Algèbre linéaire, Mécanique quantique et méthodes numériques (en particulier méthodes de différences finies).

S'il vous plaît, supposez autant que vous avez besoin de la physique et des mathématiques standard (bien que des références aux parties plus compliquées seraient probablement utiles). Mes méthodes numériques sont cependant un peu rouillées.
Emilio Pisanty

Y a-t-il des différences entre ceci et la réponse de Kyle Kanos ? Je veux dire, il n’est pas évident de savoir comment implémenter votre dernière équation - comme vous l’avez écrit - implique d’inverser un opérateur complet - dites-vous simplement que la méthode CN consiste simplement, par la solution de son équation tridiagonale, à travailler ? Ou y a-t-il une subtilité que j'ai manquée? En fait, votre dernière équation est un bon rendu dans la mesure où elle rend explicite l’unitarité pour CN, ce qui n’est pas clair dans de nombreuses descriptions de CN. (1+i2Ht)1(1+i2Ht)ψ

Non, c'est le même algorithme que celui donné par Kyle Kanos. Je viens de l'écrire de cette façon pour donner une autre façon de voir les choses. J'espérais plus facile à conceptualiser - alors que le sien est plus facile à mettre en œuvre. Oui, vous ne faites que résoudre une équation tridiagonale. AJP, un ancien article (1967) que je ne pouvais pas trouver plus tôt, le décrit très bien: ergodic.ugr.es/cphys/lecciones/SCHROEDINGER/ajp.pdf Ils utilisaient le CN pour produire des boucles de film de 8 mm de paquets de signaux gaussiens dispersant divers potentiels. Vous pouvez toujours trouver ces boucles de film dans de nombreuses bibliothèques de démonstration universitaires en physique.

3

Quelques réponses et commentaires ici confondent le TDSE avec une équation d’onde; peut-être un problème de sémantique, dans une certaine mesure. Le TDSE est la version quantifiée du hamiltonien classique non relativiste Avec les règles (comme indiqué au chapitre 1 de d'Espagnat, Fondements conceptuels de la mécanique quantique, https://philpapers.org/rec/ESPCFO ), il se lit donc il s'agit donc clairement d'une équation de type diffusion. Si l’on utilisait l’énergie relativiste, qui contient un terme E , une équation du type onde telle que

H=p22m+V(x)=E.
pix,  Eit,  xx,
[22mxx+V(x)]ψ=itψ,
2
xxψ=ttψ+
obtiendraient (pour V = 0 pour simplifier), tels que les équations de Pauli ou de Klein-Gordon. Mais c’est bien entendu une question complètement différente.

Revenons maintenant à la TDSE, la méthode évidente est la méthode de Crank-Nicolson, comme il a été mentionné, car il s’agit d’une petite expansion qui conserve l’unitarité de l’évolution (le FTCS, par exemple, ne le fait pas). Pour le cas 1-espace-D, elle peut être traitée comme une itération de matrice, en lisant avec la matrice d'identité et (Détails par exemple dans Méthodes numériques pour la physique, http://algarcia.org/nummeth/nummeth.html , par AL Garcia). Comme on le voit le plus clairement dans les conditions aux limites périodiques, une

ψn+1=(I+iτ2H~)1(Iiτ2H~)ψn
I
Hjk=(H~)jk=22m[δj+1,k+δj1,k2δjkh2]+Vjδjk.
ψ se propage dans le temps: cela est attendu, car le localisé initial n'est pas un état propre de l'équation stationnaire de Schroedinger, mais une superposition de celle-ci. L'état propre (particule libre massive classique) à impulsion fixe (pour l'opérateur cinétique non relativiste) est simplement , c'est-à-dire complètement délocalisé selon le principe de Heisenberg, avec une densité de probabilité constante 1 / L partout (notez que j’évite les problèmes de normalisation liés aux états de continuum en laissant ma particule vivre sur une ligne finie et répétée périodiquement). En utilisant CN, la norme ψψs=eikx/L
|ψ|2dx
est conservé, grâce à l’unitarité (ce n’est pas le cas dans d’autres systèmes, tels que FTCS, par exemple). Incidemment, remarquez qu'à partir d'une expression d'énergie telle que avec fixe, vous obtiendrez c'est-à-dire l'équation d'advection, qui n'a pas de dispersion (si elle est correctement intégrée à Lax-Wendroff méthodes) et votre wavepacket ne se propage pas dans le temps dans ce cas. L'analogue quantique est l'équation de Dirac à particules sans masse.
cp=E
c
icx=it
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.