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 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
首页 上一页 1 2 下一页 尾页 2/2/2