Вы находитесь на странице: 1из 7

Гармонический осциллятор. Волновые функции.

В квантовой механике одномерным гармоническим осциллятором называют


̂.
систему, описываемую Гамильтонианом Н
Таким образом, квантово механическая задача о гармоническом
осцилляторе сводиться к задаче о движении частицы в параболической
потенциальной яме и заключается в том, чтобы определить энергетический
спектр и волновые функции такой системы.
Другими словами требуется найти собственные значения и собственные
̂ . Это значит, что необходимо решить ур-е Шрёдингера.
функции оператора Н
Ниже приведённая программа строит волновые функции.
program oscilyator
real x,y,dx,dy,sum,wf,c,normwf,n,arg, awf0, awf1, awf2, xs,abs0,abs1,abs2, delx,
xsa, delxa, deriv, deriv2, delp, h
integer i
complex ps, mi

dimension arg(10000),wf(10000),normwf(10000),awf0(10000), awf1(10000),


awf2(10000),abs0(10000),abs1(10000),abs2(10000), deriv(10000), deriv2(10000)

open(10,file= 'data.txt')

x=-5.0
dx=0.001
y=0.0001
dy=0.0001
sum=0
n=0
xs=0
xsa=0
delx=0
delxa=0
h=1
ps=(0.0,0.0)
delp=0
mi=(0.0,1.0)

do i=1,10000
x=x+dx
dy=dy+(x**2-(2*n+1))*y*dx
y=y+dy*dx
sum=sum+y**2*dx !вычисляем интеграл методом прямоугольников

arg(i)=x
wf(i)=y
deriv(i) = dy/dx

awf0(i)=exp(-x**2/2)/sqrt(sqrt(3.14)) !аналитическая волновая функция на


нулевом уровне энергии?
awf1(i)=(2*x/sqrt(sqrt(3.14))*sqrt(2.0))*exp(-x**2/2)! abs- обозначение модуля
awf2(i)=((2*x**2-1)*exp(-x**2/2))/sqrt(sqrt(3.14))*sqrt(2.0)
abs0(i)=abs(awf0(i))**2
abs1(i)=abs(awf1(i))**2
abs2(i)=abs(awf2(i))**2

xs=xs+arg(i)*wf(i)*wf(i)*dx ! среднее значение численно расчитанной


ненормированной функции
xsa=xsa+abs0(i)*arg(i)*dx ! среднее значение аналитической функции
enddo

c=1/sqrt(sum)! нормировочный коэффициэнт


write (*,*) 'Normalization coefficient =', c
xs=xs*c**2

do i=1,10000
normwf(i)=wf(i)*c
write (10,1050) arg(i), normwf(i), awf0(i), awf1(i), awf2(i)
end do

do i=1,10000
delx=delx+normwf(i)*(arg(i)-xs)**2*normwf(i)*dx ! неопределённость численно
расчитанной ненормированной функции
delxa=delxa+(arg(i)-xsa)**2*abs0(i)*dx ! неопределённость аналитической
функции
ps=ps-c*normwf(i)*mi*h*deriv(i)*dx
delp=delp-normwf(i)*(x**2-(2*n+1)*normwf(i))*dx-ps**2
end do
!ps=ps*c**2
!delp=delp*c**2

delx=sqrt(delx)
delxa=sqrt(delxa)
delp=sqrt(delp)

write (*,*) 'Averaged x = ', xs, xsa


write (*,*) 'Delta x =', delx, delxa
write (*,*) 'Averaged p= ', ps
write (*,*) 'Delta p =' , delp

1050 format (F8.2,5E14.3)


end.

Вид волновых функций для некоторых квантовых чисел n указан на рис.1.


Волновая функция 0 , отвечающая основному состоянию осциллятора n=0,
нигде не обращается в нуль. Волновая функция 1, отвечающая уровню n=1,
обращается в нуль один раз, 2 – (n=2) ,обращается в нуль два раза и тд.
Точки, в которых волновая функция обращается в нуль, называются узлами
волновой функции. Число узлов волновой функции равно квантовому числу
n.



2

n,x) 0

-1

-5 0 5
x

Рис.1 Волновые функции гармонического осциллятора: 0, 1 ,2


Волновой пакет.
Волновой пакет – это группа волн, конечных размеров, перемещающихся в
пространстве.
Главное свойство волнового пакета в том, что он описывает нестационарное
состояние объекта, и, следовательно, зависит от времени.
Свойства волновых пакетов (их форма, спектр, энергия) определяются
следующими факторами:
- спектральными свойствами изучаемой системы: уровнями энергии и
волновыми функциями возбуждаемых состояний.
- исходного состояния системы

x,t real
x,t imag
0,6

0,4

0,2
x,t

0,0

-0,2

-0,4

-0,6
-10 -5 0 5 10 15 20
x

Рис.1 Волновой пакет в нулевой момент времени


0,8

0,6

0,4

0,2
x,t)

0,0

-0,2

-0,4

-0,6

-10 0 10 20 30
x

Рис2. Волновой пакет в разные промежутки времени.

Program volnpaket
real x, k, a, h, k0, m, pi, t, dx, dk, arg, argk, dt
integer i, nmax
complex psi, mi, fi, psi1, npsi, nfi, npsi1
parameter (nmax=3000)
dimension arg(nmax), psi(nmax), fi(nmax), argk(nmax), psi1(nmax), npsi(nmax), nfi(nmax), npsi1(nmax)

open(10, file='packet.dat')
x=-10.0

a=0.5
k0=5.0
m=1.0
h=1.0
pi=3.14
mi=(0.0,1.0)
t=2.0
dx=0.01
dk=0.01
dt=0.01
U=0

!Wave packet calculation


do i=1,nmax
arg(i)=x
psi(i)=(0.0,0.0)
k=-10.0
do j=1,nmax
psi(i)=psi(i)+(1/sqrt(3.14*2.0))*sqrt(sqrt(2*a/3.14))*exp(-a*(k-k0)**2.0)*exp(-mi*(h*k**2.0*t/(2.0*m) -
k*x))*dk
k=k+dk
end do
x=x+dx
end do

do i=1,nmax
arg(i)=x
npsi(i)=(0.0,0.0)
do j=1,nmax
npsi(i)=exp((-mi/h)*dt*U/2)*psi(i)
end do
end do

!Fourier transform to fi(k)

k=-10.0
do j=1,nmax
argk(j)=k
fi(j)=(0.0,0.0)
do i=1,nmax
fi(j)=fi(j)+(1/sqrt(3.14*2.0))*psi(i)*exp(-mi*argk(j)*arg(i))*dx
end do
k=k+dk
end do

do j=1,nmax
argk(j)=k
nfi(j)=(0.0,0.0)
do i=1,nmax
nfi(j)=exp((-mi*i*h/2*m)*dt*k**2)*npsi(i)
end do
end do

!Fourier transform to psi1(x)


do i=1,nmax
psi1(i)=(0.0,0.0)
do j=1,nmax
psi1(i)=psi1(i)+(1/sqrt(3.14*2.0))*fi(j)*exp(mi*argk(j)*arg(i))*dk
end do
end do

do i=1,nmax
npsi1(i)=(0.0,0.0)
do j=1,nmax
npsi1(i)=exp((-mi/h)*dt*u/2)*nfi(j)
end do
end do

do i=1,nmax
write(10,*) arg(i), real(psi(i)), real(psi1(i)), real(npsi(i)), real(npsi1(i))
!read(*,*)
end do

end.

Оценить