论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
MATLAB仿真结果
线性谐振子的前六个本征函数
上图为线性谐振子的前六个本征函数,图中纵轴横线表示具有相同能量的经典线性谐振子的振动范围。
有限方势阱前六个本征函数
上图为有限方势阱的前六个本征函数,图中纵轴横线表示具有相同能量的经典线性谐振子的振动范围。
参考文献:
1.周世勋,量子力学教程,北京-高等教育出版社,1979:38-42
2.曾谨言,量子力学,北京-科学出版社,1987:45-51
3. 周丰,定态薛定谔方程的计算机解法,武汉交通职业学院学报,2005,7(2),77-80
4. 封国林等,试用矩阵连分法数值求解薛定谔方程,江苏农学院学报,1996,17(4),103-108
5. 马文淦 编著,计算物理学,科学出版社,2005,P196-201,244-250
6.王肇庆、佘守宪、苏惠惠,谐振子薛定谔方程的简单解法,大学物理,1996,15(8):19-21
附录:
程序运行环境:MATLAB7.0
MATLAB源程序:
function f = schrodinger()
%% 对一些常数的定义
me = 9.10938188e-31;
eV = 1.60217646e-19;
h = 6.626068e-34;
hbar = 1.05457148e-34; % hbar=h/2/pi
% 定义宽度和格点数
a = 10e-9; % 长度
n = 128; % 分离数
z = linspace(-a/2,a/2,n); % 线性等分 中国大学排名
dz = a/n; % 各点空间
%% 可能的矩阵
%为有限方势阱====================================
%V0 = 0*eV;
%V = -V0*ones(n,1);
% 线性谐振子 ==================================
K = 1;
V0=1*eV;
V =V0+1/2*K*z'.^2;
pmatrix = spdiags(V,0,n,n); % 创建稀疏矩阵
%% 用薛定谔矩阵求波函数
vector = zeros(n,3);
vector(1:n,1) = -hbar^2/(2*me)/dz^2;
vector(1:n,2) = 2*hbar^2/(2*me)/dz^2;
vector(2:n,3) = -hbar^2/(2*me)/dz^2;
vmatrix = spdiags(vector,-1:1,n,n);
matrix = pmatrix+vmatrix;
eignum = 6; % 设置特征值个数
% 求薛定谔方程的特征值
[eigvector, eigvalue] = eigs(matrix,eignum,0); %求指定的几个特征值
diag(eigvalue)/eV %矩阵对角元素提取、创建对角矩阵
for i = 1:eignum,
wavefunction = eigvector(:,i);
energy = eigvalue(i,i);
%将engivector常规化
wavefunction = wavefunction/sqrt(sum(abs(wavefunction.^2)*dz));
% 作图
figure(1);
subplot(eignum/2,2,i),plot(z,wavefunction);%创建子图、画波函数图
% figure(2);
% plot(z,energy);%画能量线图
end
程序运行结果:
>> schrodinger()
Iteration 1: a few Ritz values of the 20-by-20 matrix:
0
0
0
Iteration 2: a few Ritz values of the 20-by-20 matrix:
1.0e+018 *
1.3147
1.5308
1.8346
2.2932
3.0648
4.6360
Iteration 3: a few Ritz values of the 20-by-20 matrix:
1.0e+018 *
1.3147
1.5308
1.8346
2.2932
3.0648
4.6360
ans =
4.7476
4.0774
3.4021
2.7218
2.0365
1.3463