我尝试使用中点法并数值求解原始朗道-齐纳 (LZ) 问题的薛定谔方程:哈密顿量
有初始条件(基态)在某些,然后说和. 我花了很多时间片这给出了一个时间步长~.
我的目标是从 LZ 公式中得到准确的值,但无论我采取多小的时间步长,在对渐近行为中出现的振荡进行平均后,我总是有 0.1% 的误差。
有没有人遇到过这个问题?
这是我的 Matlab 代码:
alpha=0.01;
delta=0.04;
N=100000001;
ti=-1000;
tf=1000;
time=linspace(ti,tf,N);
sec=time(2)-time(1);
c1=[1,zeros(1,N-1)];
c2=[0,zeros(1,N-1)];
p=exp(-2*pi*delta^2/(alpha*2));
disp(sqrt(p))
for t=2:N
c1(t)=c1(t-1)-1i*sec*(alpha*(time(t-1)+sec/2)*(c1(t-1)-1i*sec/2*
(alpha*time(t-1)*c1(t-1)+delta*c2(t-1)))+delta*(c2(t-1)-1i*sec/2*(-alpha*time(t-
1)*c2(t-1)+delta*c1(t-1))));
c2(t)=c2(t-1)-1i*sec*(-alpha*(time(t-1)+sec/2)*(c2(t-1)-1i*sec/2*(-
alpha*time(t-1)*c2(t-1)+delta*c1(t-1)))+delta*(c1(t-1)-1i*sec/2*(alpha*time(t-
1)*c1(t-1)+delta*c2(t-1))));
end
disp(sum(abs(c1(end-(N-1)/50:end))/((N-1)/50+1)));
也张贴在物理 SE。