一粒子在一维势阱中运动matlab/python数值求解(教材课后2.7题)

1.题目

一粒子在一维势阱中运动:

                                               

 求束缚态(0<E<U0)的能级所满足的方程.

2.

依照参考答案,化简到:

                                        

                                  

                                    

3.得到$$ f\left( k_2 \right) $$进行数值模拟

本征能量满足方程:

                                                        

                                         

进行数值模拟,设定初始值为:Me=0.5MeV,a=0.5nm,U0=20eV,得到图像如下:

设定初始值为:Me=0.5MeV,a=0.5nm,U0=0.020eV,得到图像如下:

设定初始值为:Me=0.5MeV,a=0.5nm,U0=200eV,得到图像如下:

3.代码示例:

E求解matlab版:

E=0;%%%
EV=1.783*10^-38;%%%%电子伏特与质量
ev=1.6*10^-19;%%%%%电子伏特
u=0.5*(10^6)*EV;
a=0.5*10^-9;%%势阱宽度

h=6.62*10^-34;
%k1=sqrt(2*u*(U0-E))./(h./(2*pi)).^2;
%k2=sqrt((2*u*E)./(h./(2*pi))).^2;
fk=[];
M1=1000;
U=[0.02,20,200];%%%%输入需要的能级
ANS=[];
for k=1:size(U,2)
    U0=U(k)*ev;%%%%%%重要项目--能级
    for i=1:M1
     k1=sqrt((2*u*(U0-E))./(h./(2*pi)).^2);
     k2=sqrt((2*u*E)./(h./(2*pi)).^2);
     fk(i)=(k2.^2-k1.^2)*sin(2*k2*a)-2*k1*k2*cos(2*k2*a);
     E=E+(U0./(M1));
     ANS(k,i)=fk(i);
    end
end
ksize=a./(M1-1);
kksize=0:ksize:a;
subplot(3,1,1);
plot(kksize,ANS(1,:));
xlabel('势阱宽度(nm)')
title('Me=0.5MeV,a=0.5nm,U0=0.20eV');
subplot(3,1,2);
plot(kksize,ANS(2,:));
xlabel('势阱宽度(nm)')
title('Me=0.5MeV,a=0.5nm,U0=20eV')
subplot(3,1,3);
plot(kksize,ANS(3,:));
xlabel('势阱宽度(nm)')
title('Me=0.5MeV,a=0.5nm,U0=200eV')

E求解python版本:

import numpy as np
from matplotlib import pyplot as pl
import math
pi=3.1415926
E=0
EV=1.783*(10**-38)
ev=1.6*(10**-19)
u=0.5*(10**6)*EV
a=0.5*(10**-9)
h=6.62*(10**-34)
M1=1000
U=np.array([20])#能级
ANS=np.zeros(shape=(M1))
fk=np.zeros(shape=(M1))
for k in range(0,np.size(U)):
    U0=U[k]*ev
    for i in range(0,M1):
         k1=math.sqrt((2*u*(U0-E))/(h/(2*pi))**2)
         k2=math.sqrt((2*u*E)/(h/(2*pi))**2)
         fk[i]=(k2**2-k1**2)*math.sin(2*k2*a)-2*k1*k2*math.cos(2*k2*a)
         E=E+(U0/(M1))
         ANS[i]=fk[i]
ksize=a/(M1-1)
kksize=np.linspace(0,a,M1)
pl.plot(kksize,ANS)
pl.show()

波函数与概率密度matlab版本:

E=0;%%%
EV=1.783*10^-38;%%%%电子伏特与质量
ev=1.6*10^-19;%%%%%电子伏特
u=0.5*(10^6)*EV;
a=0.5*10^-9;%%势阱宽度

h=6.62*10^-34;
%k1=sqrt(2*u*(U0-E))./(h./(2*pi)).^2;
%k2=sqrt((2*u*E)./(h./(2*pi))).^2;
fk=[];
M1=1000;
U=20;
U0=U*ev;%%%%输入需要的能级
ANS=[];
x=-0.5*a;
zetla=[];
for i1=1:M1
    k1=sqrt((2*u*(U0-E))./(h./(2*pi)).^2);
    k2=sqrt((2*u*E)./(h./(2*pi)).^2);
    C=-(k2*sin(k2*a)-k1*cos(k2*a))*exp(-k1*a)./(k2);
    D=(exp(-k1*a)+C*sin(k2*a))/(cos(k2*a));
    zetla(i1)=C*sin(k2*x)+D*cos(k2*x);
    x=x+a./(M1-1);
    E=E+(U0./(M1));
end
ksize=a./(M1-1);
kksize=-0.5*a:ksize:0.5*a;
plot(kksize,zetla)
hold on;
plot(kksize,zetla.^2);
legend('波函数','概率密度')
xlabel('势阱宽度')
发布了8 篇原创文章 · 获赞 8 · 访问量 2412

猜你喜欢

转载自blog.csdn.net/qq_33689250/article/details/104842927