作业帮 > 综合 > 作业

大家看看下面matlab 程序,

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/07 22:52:54
大家看看下面matlab 程序,
X=[1 2 3 4;5 6 7 8;9 10 11 12];
Y=[11 22 33 44;55 66 77 88];
n=size(X,2);
m=size(X,1);
s=size(Y,1);
eps=10^(-10);
f=[zeros(1,n)-eps*ones(1,m+s) 1];
A=zeros(1,n+m+s+1);
b=0;
LB=zeros(n+m+s+1,1);
UB=[];
LB(n+m+s+1)=-lnf;
for i=1:n
Aeq=[X eye(m) zeros(m,s) -X(:,i);Y zeros(s,m) -eye(s) zeros(s,1)];
beq=[zeros(m,1);Y(:,i)];
w(:,i)=LINPROG(f,[],[],Aeq,beq,LB,UB);
end
w% 输出最佳权向量
lambda=w(1:n,:);
s1=w(n+1:n+m,:);
s2=w(n+m+1:n+m+s,:);
theta=w(n+m+s+1,:);
end
运行说的是矩阵维数不匹配,Error using ==> minus
Matrix dimensions must agree.
我调试了下 错误出在第七行我把前六行各变量的值给你列出来,你看一下,为什么会出现这样的错误 Name      Size            Bytes  Class     Attributes

  X         3x4                96  double              
  Y         2x4                64  double              
  eps       1x1                 8  double              
  m         1x1                 8  double              
  n         1x1                 8  double              
  s         1x1                 8  double对于第七行
>> zeros(1,n)

ans =

     0     0     0     0
>> eps*ones(1,m+s)

ans =

   1.0e-10 *

    1.0000    1.0000    1.0000    1.0000    1.0000