24小时热门版块排行榜    

查看: 426  |  回复: 0

fanbao_keke

铁虫 (正式写手)

[求助] 求高手帮我修改一个求本征函数的程序

求高手帮我修改一个求本征函数的程序:
clear all
m=1
tt=1;
ttt=0.1;
w=10
for F=0:0.02:4
J=100;  T=2*pi/w;
tstep=T/J;  U=eye(4,4);
for t=tstep:tstep:T
H=zeros(4,4);
H_0=zeros(4,4);
H_0(1,2)=tt;
H_0(2,1)=tt;
H_0(2,3)=tt;
H_0(3,2)=tt;
H_0(3,4)=tt;
H_0(4,3)=tt;
H_0(1,3)=ttt;
H_0(3,1)=ttt;
H_0(2,4)=ttt;
H_0(4,2)=ttt;
H(1,1)=F*w*sin(w*t);
U=expm(-1i*(H_0+H)*tstep)*U;
end
[C,Ueig]=eig(U);
QuasiEnergy=((1i*log(diag(Ueig))/T));
ExpectH_0=(C'*(H_0)*C);
[ExpSort,Index]=sort(real(diag(ExpectH_0)));
[CC,Ueig]=(eig(U));
%  yy=CC(:,Index(2))  %这个命令下图2与图3的图混错
  yy=CC(:,2)  %这个命令下在横坐标2.4附近有几个点不连续,有不对的值。
yy1(m)=yy(1)
yy2(m)=yy(2)
yy3(m)=yy(3)
yy4(m)=yy(4)
m=m+1;
end
plot(0:0.02:4,abs(yy1).^2,'k.','MarkerSize',1.5)
hold on
plot(0:0.02:4,abs(yy2).^2,'k.','MarkerSize',1.5)
hold on
plot(0:0.02:4,abs(yy3).^2,'k.','MarkerSize',1.5)
hold on
plot(0:0.02:4,abs(yy4).^2,'k.','MarkerSize',1.5)

在计算本征函数时用  yy=CC(:,Index(2))  %这个命令下图2与图3的图混错
  用yy=CC(:,2)  %这个命令下在横坐标2.4附近有几个点不连续,有不对的值。

求助如何处理本征函数的排序问题?

正确的图已给出在附件里。

求高手帮我修改一个求本征函数的程序
新建 Microsoft Word Document (4).jpg
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 fanbao_keke 的主题更新
信息提示
请填处理意见