回 帖 发 新 帖 刷新版面

主题:这个公式这样编程对不对?急求!!

我的公式和公式说明都在里面了。自己试着编了下matlab,但是结果不对啊,现在我调整了下语句,变成fortran语句了,尽管有些可能不大地道,大家帮忙看下这样对不对啊。难啊!!苦啊!!累啊!!
do Ef=-1.0,1.0,0.021
T=0; 
tt=0;%储存变量,j<tt,D(j,j)<Ef,D(j+1,j+1)>Ef
%先判断费米能在特征值里处在什么位置,tt
do j=1,N-1
    if (D(j,j)<Ef)&&(D(j+1,j+1)>Ef) then
         tt=j;
    End if
end do
%费米能以上和以下的特征值就分开了,按顺序参与运算,求和
 do m=1,tt
        S=0;
      do k=tt+1:N
        Sum1=V(:,m)'*Vx*V(:,k)*V(:,k)'*Vy*V(:,m);
        Sum2=conj(Sum1);
        Sum=-1i*(Sum1-Sum2)/(D(m,m)-D(k,k))^2;
        S=S+Sum;
      end do
      T=S+T;
 end do
 !下面是matlab里的画图语句
 plot(Ef,T)
 hold on
 
end do
保证每一个Ef对应一个T,最后画出Ef--T图形。

回复列表 (共1个回复)

沙发

是用matlab求的解,所以有些乱。
[V,D]=eig(H);H的本征值和本征向量,本征值在对角线上有值
V(:,m)'是V(:,m)的共轭
congj是复数求共轭。

我来回复

您尚未登录,请登录后再回复。点此登录或注册