大家看看下面matlab 程序,
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/18 20:12:50
大家看看下面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.
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.
![大家看看下面matlab 程序,](/uploads/image/z/17548239-39-9.jpg?t=%E5%A4%A7%E5%AE%B6%E7%9C%8B%E7%9C%8B%E4%B8%8B%E9%9D%A2matlab+%E7%A8%8B%E5%BA%8F%2C)
我调试了下 错误出在第七行我把前六行各变量的值给你列出来,你看一下,为什么会出现这样的错误 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
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