Universit´e Pierre et Marie Curie, ENS Cachan
LICENCE de PHYSIQUE PHYTEM
Physique num´
erique
TD no6
Valeurs propres et vecteurs propres
R´esolution de l’´equation de Schr¨odinger par un calcul de diff´erences finies
L’´equation de Schr¨odinger Hψ =Eψ est l’´equation maˆıtresse de la m´ecanique quantique :
r´esoudre un probl`eme de physique quantique revient en en´eral `a esoudre cette ´equation dans
le cas consid´er´e. Malheureusement, en pratique, mˆeme dans les cas simples, on se heurte `a des
probl`emes techniques souvent ardus quand on cherche `a le faire ; fort souvent mˆeme, il n’y a
pas de solution analytique du tout ! Dans le pr´esent exercice, on ´etudiera une m´ethode simple,
peu exigeante sur le plan de la programmation (il s’agit essentiellement de faire appel `a un
sous-programme de biblioth`eque d´ej`a existant) pour tenter de r´esoudre num´eriquement des
probl`emes dont la solution est connue (puits infini, oscillateur harmonique) afin de contrˆoler
la m´ethode, puis dans des cas o`u la solution n’est pas connue. Ce sera aussi l’occasion de se
familiariser `a peu de frais avec l’objet ´etrange qu’est la fonction d’onde ψ.
On se restreint ici `a l’´equation de Schr¨odinger stationnaire (ou non-d´ependante du temps)
`a une particule et `a une dimension. Il s’agit donc de chercher les ´etats propres d’une particule
dans un potentiel stationnaire 1.
Dans ces conditions, l’´equation de Schr¨odinger s’´ecrit :
¯h2
2m
d2ψ(x)
dx2+V(x)ψ(x) = E ψ(x) (1)
o`u Vet ψsont des fonctions de l’abscisse x,V(x) est l’´energie potentielle de la particule au
point d’abscisse x,ψ(x) la fonction d’onde qui d´ecrit l’´etat de la particule et El’´energie associ´ee
`a cet ´etat ; mest la masse de la particule et ¯hla constante de Plank. R´esoudre l’´equation (1)
revient `a trouver les fonctions d’ondes ψ(x) et les ´energies Epour lesquelles l’´equation est
v´erifi´ee : il s’agit d’une ´equation diff´erentielle du second ordre dont on connait les solutions
analytiques dans certains cas (V=Cst,V=1
2kx2, . . .), mais reste insoluble dans bien des cas
d’o`u la recherche de solutions num´eriques.
Afin de simplifier les notations, on utilisera un syst`eme d’unit´es ad hoc 2dans lequel ¯h= 1
et m= 1, donc l’´equation (1) devient :
1
2
d2ψ(x)
dx2+V(x)ψ(x) = E ψ(x) (2)
I– La m´ethode des diff´erences finies.
Le probl`eme est l´eg`erement diff´erent de celui de la r´esolution d’une (ou plusieurs) ´equation(s)
du mouvement (voir le probl`eme du patin) o`u l’on calcule de proche en proche les valeurs que
prend la ou les fonctions rechercees : ici, on veut simultan´ement toutes les valeurs de ψ(x) et
de surcroˆıt Eest aussi une inconnue. Les m´ethodes de type Runge-Kutta ne conviennent donc
pas, il faut en trouver d’autres.
1. voir le cours de physique quantique.
2. Dans les calculs de structure ´electronique, la masse de l’´electron est prise comme unit´e. L’unit´e d’´energie
devient le Hartree = 27.2eV et l’unit´e de longueur le Bohr = 0.53˚
A.
1
La m´ethode des diff´erences finies en est une possible. Elle consiste en une discr´etisation du
probl`eme, c’est-`a-dire que l’on fait l’approximation de remplacer la variable continue xpar une
variable discr`ete xi:
xi= (i1)δx, i [1, n]
o`u iest un indice entier. La droite infinie est ´evidemment remplac´ee par un segment fini de
longueur L=x.
1) Qu’est-ce que cela entraˆıne, avant mˆeme tout calcul, pour net δx?
2) On pose :
ψi=ψ(xi)
Vi=V(xi)
Trouver une expression approch´ee pour la d´eriv´ee premi`ere de ψprise un demi-intervalle au
del`a de xi:
dx (xi+δx
2)
ainsi que la mˆeme d´eriv´ee prise un demi-intervalle en de¸c`a de xi:
dx (xiδx
2)
3) En d´eduire une expression approcee pour la d´eriv´ee seconde de ψprise en xi:
d2ψ
dx2(xi)
4) ´
Ecrire l’´equation de Schr¨odinger sous une forme discr´etis´ee.
II– Valeurs propres-vecteurs propres.
On consid`ere maintenant que la fonction d’onde discr´etis´ee est un vecteur :
ψ=
ψ1
ψ2
.
.
.
ψi
.
.
.
ψn1
ψn
1) ´
Ecrire l’expression de la matrice n×nnot´ee Htelle que l’´equation de Schr¨odinger
discr´etis´ee s’´ecrive maintenant sous forme matricielle :
Hψ=Eψ
On appellera Hl’Hamiltonien discr´etis´e : ce n’est plus un op´erateur comme dans l’´equation (1),
mais une matrice, de mˆeme que ψn’est plus une fonction de xmais un vecteur. Cette matrice
Ha-t-elle des propri´et´es particuli`eres ?
2) Que se passe-t-il en x1et xn? On fera l’approximation suppl´ementaire que ψ0=ψn+1 = 0,
c’est-`a-dire que la fonction d’onde `a l’infini est nulle. Quel sens physique cela peut-il avoir ?
2
3) Quel type de probl`eme math´ematique doit-on maintenant esoudre ? De ce point de vue,
que peut on alors dire du vecteur ψet de E?
III– Mise en œuvre num´erique.
Il n’est pas question d’´ecrire un programme capable de r´esoudre un probl`eme aux valeurs
propres ! Il existe de nombreuses biblioth`eques de programmes d´ej`a ´ecrits et test´es : ils sont
fiables et efficaces, il est inutile de einventer la roue ! On utilisera ici une biblioth`eque appel´ee
LAPACK 3: on fera appel au sous-programme subroutine dsteqr capable de calculer les
valeurs propres et les vecteurs propres d’une matrice triadiagonale sym´etrique. Plutˆot que
d’aller d´echiffrer le mode d’emploi de dsteqr 4, on pourra recopier le sous-programme suivant,
ou s’en inspirer :
subroutine diago(n,d,e,vp)
implicit none
integer, intent(in) :: n ! taille de la matrice
real(8), dimension(n), intent(inout) :: d ! elements diagonaux
! en sortie, d contient les valeurs propres
real(8), dimension(n), intent(in) :: e ! elements sous-diagonaux
real(8), dimension(n,n), intent(out) :: vp ! vecteurs propres
! vp(i,j) = i-`eme ´el´ement du j-`eme vecteur propre
integer :: info, l
real(8), dimension(2*n+2) :: work ! espace de travail
! en entree vp doit etre une matrice unite
vp = 0._8 ; forall( l = 1:n ) vp(l,l) = 1._8
call dsteqr( ’V’, n, d, e, vp, n, work, info ) ! appel LAPACK
if ( info == 0 ) then
print ’("Diagonalisation effectuee" )’
else
print ’("Echec de diagonalisation : INFO = ",i3)’, info
endif
end subroutine diago
Note : tous les nombres r´eels sont en 8 octets (real(kind=8) ou real(8)).
– En entr´ee, on a :
integer :: n : nombre de lignes et de colonnes de la matrice
real(kind=8), dimension(n) :: d : ´el´ements diagonaux de la matrice
real(kind=8), dimension(n) :: e : ´el´ements sous-diagonaux de la matrice.
Les autres ´el´ements de la matrice sont nuls et ignor´es.
En sortie :
integer :: n : inchang´e
real(kind=8), dimension(n) :: d : les valeurs propres obtenues
real(kind=8), dimension(n) :: e : d´etruite
real(kind=8), dimension(n,n) :: vp : les vecteurs propres (vp(i,j) est le i-i`eme ´el´ement
du j-i`eme vecteur propre).
3. pour Linear Algebra PACKage : c’est une biblioth`eque standard tr`es largement utilis´ee et qui fait partie
des paquets de la plupart des distributions Linux.
4. si besoin, ¸ca se trouve ais´ement sur internet.
3
Les valeurs et vecteurs propres obtenus sont class´ees par valeurs croissantes des valeurs
propres.
1) ´
Ecrire un sous-programme qui cr´ee un tableau real(8), dimension(n) :: v, contenant
les valeurs du potentiel. Pour le puits infini, il suffit de mettre 0, pour le potentiel harmonique,
x2. Lorsqu’on voudra ensuite changer la forme du potentiel, il suffira de modifier ce sous-
programme, `a l’exclusion du reste du programme.
2) ´
Ecrire un programme principal qui :
1. d´efinisse un intervalle [L/2, L/2], le divise en nsegments de longueur δx et remplisse
les tableaux x(i) (contenant les xi) et v(i) (contenant les vi),
2. d´efinisse et remplisse les tableaux det econtenant les ´el´ements diagonaux et sous-
diagonaux de H,
3. en recherche les valeurs propres et les vecteurs propres et ´ecrive les valeurs propres dans
un fichier et quelques vecteurs propres dans un autre.
La compilation de ce programme se fait en indiquant avec les options -l que l’on veut faire
appel `a la biblioth`eque lapack :
gfortran mon_prog.f90 -llapack -o mon_prog
o`u mon_prog.f90 est ´evidemment le nom de votre programme, que vous pouvez choisir libre-
ment. . .
IV– ´
Etude num´erique.
Puits carr´e infini.
Il est facile de d´efinir un puits carr´e infini : il suffit de fixer la valeur du potentiel `a z´ero
partout sur l’intervalle ; comme la fonction d’onde est toujours nulle en dehors de l’intervalle,
cela revient `a ce que le potentiel soit infini en dehors dudit intervalle.
Rappels th´eoriques 5:
Si on consid`ere une particule dans un puits carr´e infini de largeur L, les fonctions d’onde
solutions de l’´equation de Schr¨odinger ind´ependante du temps sont nulles en dehors du puits
et ont la forme suivante dans le puits :
ψp(x) = s2
Lcos x
Lp= 1,3,5,...
ψp(x) = s2
Lsin x
Lp= 2,4,6,...
Les ´energies de ces ´etats s’´ecrivent :
Ep=¯h2
2mπp
L2
Rappel : on choisit ici ¯h2
m= 1.
1) Essayer le programme avec n= 100, et L= 5, afin de comparer le esultat obtenu avec
le esultat th´eorique 6.
5. Reportez-vous au cours de physique quantique.
6. on notera au passage que rechercher les valeurs propres et les vecteurs propres d’une matrice 100 ×100
n’a, a priori, rien de trivial !
4
Tracer la courbe Epen fonction de pavec, sur le mˆeme graphe, la courbe th´eorique. Tracer
´egalement les premi`eres fonctions d’onde (p[1,5]) ainsi que les fonctions d’onde th´eoriques,
puis quelques fonctions d’onde d’ordre plus ´elev´e, dans le domaine o`u l’accord n’est pas bon.
Faites votre diagnostic.
On pourra faire quelques essais avec diff´erentes valeurs de net de L.
Potentiel harmonique.
Rappels th´eoriques.
Le deuxi`eme cas dont la solution est connue est le potentiel harmonique 7:
V(x) = 1
2kx2=m
2ω2x2, ω =sk
m
Les ´energies propres s’´ecrivent maintenant :
Ep=p+1
2¯, p = 0,1,2,3,...
L’´etat fondamental, pour p= 0 a donc une ´energie E0= ¯/2.
Les fonctions d’onde deviennent :
ψp(x) = 1
qσ0π2pp!Hp(x
σ0
)e
x2
2σ2
0
o`u σ0=s¯h
et Hpest un polynˆome de Hermite.
2) Modifier votre programme pour ´etudier le potentiel harmonique : on prendra k= 1, soit
¯=2mqk/m =2.
R´ep´eter les op´erations pr´ec´edentes, tracer les ´energies avec la courbe th´eorique et les premi`eres
fonctions d’onde. N’y a-t-il pas une complication suppl´ementaire par rapport au cas pr´ec´edent ?
Refaire le mˆeme calcul, toujours avec n= 100 mais L= 20. Diagnostic.
3) Recommencer, cette fois avec n= 200 et L= 20. Tracer sur le mˆeme graphe, l’´energie
potentielle divis´ee par un facteur (par exemple 100), et les premi`eres fonctions d’onde au carr´e,
d´ecal´ees verticalement de fa¸con `a bien les distinguer. Qu’est-ce que ¸ca repr´esente ?
V– Double puits.
L’int´erˆet de cet exercice n’est bien sˆur pas de chercher `a r´esoudre un probl`eme -le puits
infini ou l’oscillateur harmonique- dont la solution analytique est connue : cela permet juste de
tester le programme que l’on a ´ecrit et d’illustrer le cours de physique quantique.
Toutefois, le mˆeme programme, `a tr`es peu de choses pr`es, permet de r´esoudre des probl`emes
sensiblement plus compliqu´es, pour lesquels les solutions analytiques sont pour l’essentiel inac-
cessibles. Remplacer le potentiel par un potentiel `a double-puits :
V(x) = V0 x
x02
1!2
Il est facile de constater que les deux minnima se trouvent en ±x0et que la hauteur de la
barri`ere est V0(pour s’en assurer, tracer la courbe `a la main. . .).
7. Se reporter de nouveau au cours de physique quantique.
5
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !