| 查看: 482 | 回复: 1 | ||
[求助]
H*pinv(H)为什么在非对角元出现非零值?
|
|
如题,代码如下。多谢各位同学啊!! clc; clear; N=8; M=5; A1=zeros(N,N); A2=zeros(N,N); B1=zeros(N,N); B2=zeros(N,N); C1=zeros(N,N); C2=zeros(N,N); H=zeros(M*N,M*N); Gr=zeros(M*N,M*N); t=2.8; %设定zigzag边界系统哈密顿矩阵 for j=1:N-1 if(mod(j,2)==0) A1(j,j+1)=-t; A1(j+1,j)=-t; end if(mod(j,2)==1) A2(j,j+1)=-t; A2(j+1,j)=-t; end end for j=1:N B1(j,j)=-t; B2(j,j)=-t; end C2=B1'; C1=B2'; %系统整体哈密顿矩阵 for j=1:M if(mod(j,2)==1) H((j-1)*N+1:j*N, (j-1)*N+1:j*N)=A1; else H((j-1)*N+1:j*N, (j-1)*N+1:j*N)=A2; end end for j=1:M if(mod(j,2)==1) if j==1 H((j-1)*N+1:j*N,j*N+1: (j+1)*N)=B1; else if j<M H((j-1)*N+1:j*N,j*N+1: (j+1)*N)=B1; H((j-1)*N+1:j*N, (j-2)*N+1: (j-1)*N)=C1; else H((j-1)*N+1:j*N, (j-2)*N+1: (j-1)*N)=C1; end end else H((j-1)*N+1:j*N,j*N+1: (j+1)*N)=B2; H((j-1)*N+1:j*N, (j-2)*N+1: (j-1)*N)=C2; end end Gr=pinv(H); HH=Gr*H; 这里应该得到单位矩阵,但是在HH非对角元得到非零值。很奇怪 啊!!求高人解答!! [ Last edited by 田山东 on 2013-8-22 at 16:05 ] |
» 猜你喜欢
今年春晚有几个节目很不错,点赞!
已经有10人回复
过年走亲戚时感受到了所开私家车的鄙视链
已经有6人回复
体制内长辈说体制内绝大部分一辈子在底层,如同你们一样大部分普通教师忙且收入低
已经有5人回复
情人节自我反思:在爱情中有过遗憾吗?
已经有10人回复
基金正文30页指的是报告正文还是整个申请书
已经有5人回复

alorsmail
铁杆木虫 (著名写手)
- 应助: 52 (初中生)
- 金币: 7398.3
- 红花: 41
- 帖子: 2104
- 在线: 237小时
- 虫号: 2537936
- 注册: 2013-07-09
- 专业: 系统生物学
2楼2013-08-22 17:04:07













回复此楼