Ein Wellenpaket in die SGL einsetzen...
| > | restart: |
| > | sgl:=diff(u(x),x$2)=-2*(E-V(x))*u(x); |

Wellenpaket (Normierung sqrt(Pi)):
| > | gp:=exp(-x^2/2); |

| > | subs(u(x)=gp,sgl); |

| > | simplify(%); |

| > | expand(%/2/gp); |

Für ein quadratisches Potential ist also das Gaußpaket zur Energie E = 1/2 eine Lösung der stationären SGL. Man kann das Wellenpaket "anhalten"!
| > | V:=x->x^2/2; |
![]()
Operatoren
Für den harmonischen Oszillator (quadratisches Potential) lässt sich die SGL auch so schreiben:
| > | (x^2*u(x)-diff(u(x),x$2))/2-E*u(x)=0; |

Das erinnert die dritte binomische Formel - hier allerdings für Operatoren
| > | dop:=Diff(``,x): dop2:=Diff(``,x$2): |
| > |
| > | x^2-dop2=(x+dop)*(x-dop); |

| > |
| > | Op:=u->((x*u+diff(u,x))/sqrt(2)); |

| > | Ops:=u->(x*u-diff(u,x))/sqrt(2); |

| > |
Anwendung des Operators
| > | simplify((Ops@Op)(u(x))); |

Das ist die linke Seite der Schrödingergleichung zur Energie 1/2.
| > | simplify((Op@Ops)(u(x))); |

Das ist etwas anderes, es kommt also auf die Reihenfolge der Anwendung der Operatoren an und es gilt:
| > | %-%%; |
![]()
Der Kommutator der beiden Operatoren ist also der Einheitsoperator
| > |
Was machen die Operatoren aus dem Paket?
| > | (Op@Ops)(gp); |

Der Grundzustand bleibt erhalten
| > | (Ops@Op)(gp); |
![]()
oder wird vernichtet. Wie funktioniert das?
| > | Ops(gp); |

Eine neue Funktion? Und wieder zurück:
| > | Op(%); |

| > |
| > | subs(u(x)=Ops(gp),sgl); |

| > | simplify(%); |

| > | expand(%/gp/sqrt(2)); |
![]()
| > |
Das stimmt für E = 3/2! Ops erzeugt also aus dem Grundzustand eine neue Lösung. Wir vergleichen mit den bekannten Lösungen (ohne sqrt(Pi)):
| > |
| > | v:=(n,x)->1/sqrt(2^n*n!)*HermiteH(n,x)*exp(-x^2/2); #*Pi^(-1/4); |

| > | simplify(v(1,x)); |

| > | Ops(gp); |

| > |
| > | simplify((Ops@@3)(gp)); |

| > | simplify(v(3,x)); |

| > | #int(gp^2,x=-infinity..infinity); |
| > | seq(int((Ops@@n)(gp)^2,x=-infinity..infinity),n=1..5); |
![]()
Zur Normierung fehlt also nur der Faktor
| > | 1/sqrt(n!)/Pi^(1/4); |

Wir verzichten wieder auf sqrt(Pi)
| > |
| > | erz:=(u,n)->(Ops@@n)(u)/sqrt(n!); |

| > | test:=simplify(erz(gp,6)); |

| > |
| > | simplify(v(6,x)); |

| > |
| > | vern:=(u,n)->(Op@@n)(u)/sqrt(n!); |

| > | simplify(vern(test,6)); |

| > |
Leiteroperatoren mit Normierung
| > | auf:=(u,n)->Ops(u)/sqrt(n+1); |
![]()
| > | auf(test,6); |

| > | simplify(%); |

| > |
| > | ab:=(u,n)->Op(u)/sqrt(n); |
![]()
| > | simplify(ab(test,6)); |

| > | #simplify(v(5,x)); |
| > |
Reihenansatz
| > | restart: |
| > | with(powseries): |
| > | sgl:=diff(psi(x),x$2)+2*(E-x^2/2)*psi(x)=0; |

Mit powsolve(DGL)
| > | sol:=powsolve(sgl); |
![]()
wird die DGL mit einem Reihenansatz (formale Reihe) gelöst:
| > | tpsform(sol,x,7); |

![]()
C0 und C1 sind die Werte für Anfangsbedingungen psi(0) und D(psi)(0).
| > |
Koeffizienten a(_k) der Reihe
| > | sol(_k); |
![]()
Die Reihe sollte abbrechen. Für welches E?
| > | solve(sol(_k),E); |
![]()
Die Rekursion stört. Wir versuchen es mit einer Reihe, die schon das GP enthält:
| > |
| > | psi:=x->exp(-x^2/2)*f(x); |

| > | powsolve(sgl) ; |
Error, (in spcldif) final value in for loop must be numeric or character
| > | sgl; |

| > | # muss erst vereinfacht werden |
| > |
DGL für f(x)
| > | sgls:=simplify(simplify(factor(sgl))*exp(x^2/2)); |

| > | sols := powsolve(sgls) : |
| > | sols(_k); |
![]()
Verschiebung des Index
| > | subs(_k=n+2,%); |
![]()
Eigenwerte
| > | solve(%,E); |
![]()
| > | f7:=tpsform(sols,x,8); |
![]()
![]()
| > | subs(E=7+1/2,f7); |
![]()
| > | simplify(HermiteH(7,x)*3/7!); |
![]()
Scheint zu passen...
| > | #v:=(n,x)->1/sqrt(2^n*n!)*HermiteH(n,x)*exp(-x^2/2); #*Pi^(-1/4); |
| > | #simplify(v(7,x)); |
Und hier ist die Prozedur:
| > | restart: |
| > | psi:=proc(n,x) local sgls,sols,f,u,N; sgls := -f(x)-2*diff(f(x),x)*x+diff(f(x),`$`(x,2))+2*f(x)*E = 0; sols := powseries[powsolve](sgls) : f:=convert(powseries[tpsform](sols,x,n+1),polynom); f:=subs(C0=Re(I^n),C1=Im(I^n),E=n+1/2,f); u:=exp(-x^2/2)*f; N:=int(u^2,x=-infinity..infinity); u/sqrt(N); end; |
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
| > |
| > | psi(7,x); |

| > | #v:=(n,x)->1/sqrt(2^n*n!)*HermiteH(n,x)*exp(-x^2/2)*Pi^(-1/4): |
| > | #simplify(v(7,x)); |
| > |
| > | plot(psi(7,x),x=-6..6); |
![[Maple Plot]](images/harmoszop65.gif)
| > |
| > | plot(psi(8,x)^2,x=-6..6); |
![[Maple Plot]](images/harmoszop66.gif)
komma@oe.uni-tuebingen.de