G = 1/(z-H(k))
其中H(k)一个方向作傅里叶变换,另一个方向不做, 直接对矩阵进行求逆。
Matlab代码
nw = 1000;
delta = 0.002;
omega = linspace(-1,1,nw);
A = zeros(nw,nk);
for i=1:nw
for j=1:nk
H0 = Hamiltonian_H0(k(j),t,N);
H = H0+U*Nupavg-0.5*U*eye(m,m);
G = ((omega(i)+1j*delta)*eye(m,m)-H)^-1;
A(i,j) = -imag(trace(G));
end
end
[X,Y] = meshgrid(k,omega);
mesh(X,Y,A);
测试通过