绘制的OBC哈密顿量是文章DOI: 10.1103/PhysRevLett.125.226402的补充材料公式(7)
matlab
clear;clc;close all
N=200;
H=zeros(N,N);
for xx=1:N
if xx+5 <=N
H(xx+5,xx)=H(xx+5,xx)+5;
end
if xx+4 <=N
H(xx+4,xx)=H(xx+4,xx)+4;
end
if xx+3 <=N
H(xx+3,xx)=H(xx+3,xx)+3;
end
if xx+2 <=N
H(xx+2,xx)=H(xx+2,xx)+2;
end
if xx+1 <=N
H(xx+1,xx)=H(xx+1,xx)+1;
end
if xx+1 <=N
H(xx,xx+1)=H(xx,xx+1)-1;
end
end
%val=eig(vpa(H,20));%高精度
val=eig(H);
figure
scatter(real(val),imag(val),'k.')
box on
CondSto=condest(H);%矩阵条件数检查
DigitPre=ceil(log10(10*CondSto));%ceil为向上取整
title(['开边界矩阵预计计算精度为: ',num2str(DigitPre)])

用的判定方法来自:Numerical instability of non-Hermitian Hamiltonian evolutions (arxiv,已出版在PRB)