Still waters run deep.
静水流深
Updated time: 08/30 2023.
Ref
MATLAB | 定态薛定谔方程的数值解——以一维谐振子为例 - 知乎 (zhihu.com)
未解决的问题: 如何保证波函数^2在全空间积分为1;厄米方程,级数解法
Code
clear
clc
1-dim Harmonic oscillator
%% 设置基本参数
X = 10; % 长度
N = 200; % 格点数
dx = 2*X/N; % 空间步长
x = linspace(-X,X,N);
n = 2; % 次数n
V = 1/2*x'.^n; % 势场
plot(x,V)
%% 哈密顿算符
A = spdiags(V,0,N,N); % 提取V的对角线并生成矩阵
H = zeros(N,3);
H(1:N,1) = -0.5/dx^2;
H(1:N,2) = 1/dx^2;
H(1:N,3) = -0.5/dx^2;
B = spdiags(H,-1:1,N,N);
C = A+B;
%% 求解哈密顿矩阵的特征矢量和特征值
E = 9; % 能级数
% 求特征值
[Vector, Value] = eigs(C,E,0)
psi = Vector(:,2)
% 计算波函数的模的平方
psi_squared = abs(psi).^2;
% 计算归一化常数,全空间积分为1
normalization_constant = trapz(x, psi_squared);
% 对波函数进行归一化
normalized_psi = psi / sqrt(normalization_constant);
plot(x,normalized_psi)
%% 画图
for i = 1:E
psi = Vector(:,i);
subplot(3,3,i)
% 计算波函数的模的平方
psi_squared = abs(psi).^2;
% 计算归一化常数
normalization_constant = trapz(x, psi_squared);
% 对波函数进行归一化
normalized_psi = psi / sqrt(normalization_constant);
plot(x,normalized_psi)
ylim([-0.8 0.8]);
xlabel('x');ylabel('P');
end
Please indicate the source when reprinting. Please verify the citation sources in the article and point out any errors or unclear expressions.