回 帖 发 新 帖 刷新版面

主题:[讨论]求解方程组问题

下面一段程序时用ABS算法解方程组的程序,运行后总是出现下面的问题
    
??? Error: File: a.m Line: 10 Column: 1
Missing variable or function.
                                        请高手指导,谢谢了!
function x=a(A,b) 
A=[2 1 -5 1
   1 -1 0 -6
   0 -1 -1 2
   1 4 -7 6];
b=[8;9;-5;0];
[m,n]=size(A)
iflag=0;
for j=1:m
 if j==1
  Hj=eye(n,n);   
 end
 B=zeros(1,m);    
 B(1,j)=1;    
 aj=A*B';
vector of A
 bj=b'*B';
 if j==1
  x=[1;1;1;1];     
 end
 tj=aj'*x-bj;
 sj=Hj*aj;
for k=1:n
  if sj(k,1)~=0   
   zj=rand(n,1);   
   while zj'*Hj*aj==0
     zj=rand(n,1);
satisfying the condition
    end
   pi=Hj'*zj;
   break
  end
 end
 if sj==0&tj==0  
compatible
  iflag=iflag+1;
  if j<m
   j=j+1;
   continue
  end
  if j==m
   break
  end
 end
 if sj==0&tj ~=0  
incompatible
  iflag=-j;
  break
 end
 aj=tj/(aj'*pj);
 x=x-aj*pj;    
solution
if j==m
  break
else
  vj=1/(Hj'*aj');
  Hj=Hj-Hj*aj*vj'*Hj; 
end
 j=j+1;
end

回复列表 (共1个回复)

沙发

这段代码结构极其混乱,还是写个清晰点的吧。少用点break和continue,且最外层循环变量j的生命期这么长,还是建议你取个有意义的名字,加上j居然还在循环体内部多个地方进行j=j+1,让人费解。

我来回复

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