达到MATLAB linprog最大迭代次数
我已经编写了下面的matlab代码来优化下面的LP达到MATLAB linprog最大迭代次数,matlab,mathematical-optimization,linear-programming,Matlab,Mathematical Optimization,Linear Programming,我已经编写了下面的matlab代码来优化下面的LP max b'x s.t A'x <= 0; x <= d; 代码中定义了。我得到一个错误: Maximum number of iterations exceeded; increase options.MaxIter. 谷歌搜索时,有人说出现错误不是很好。这个问题必须重新制定。你知道怎么重新表述吗 解决方案非常简单,如A>0、b>0和d>0,因此x=0 m = 10; d = [1:1:m]; fo
max b'x
s.t A'x <= 0;
x <= d;
代码中定义了。我得到一个错误:
Maximum number of iterations exceeded; increase options.MaxIter.
谷歌搜索时,有人说出现错误不是很好。这个问题必须重新制定。你知道怎么重新表述吗
解决方案非常简单,如A>0、b>0和d>0,因此x=0
m = 10;
d = [1:1:m];
for j = 1:m,
for i = 1:m,
A(i,j) = 1/(i+j-1);
end
end
for i = 1:m,
b(i)=0;
end
for i = 1:m
lb(i) = -inf;
end
b;
lb = lb';
f = A*d';
[x,fval,exitflag,output] = linprog(-f,A,b,[],[],lb,d); %minimzation problem. Hence -f, A = A'
我用乐观主义者=('MaxIter',10000)。以停止该错误消息 考虑使用Opti工具箱:hmmm,当我在matlab 2010b上运行您的代码时,我得到以下错误:“退出:一个或多个残差、对偶间隙或总相对误差已停止:对偶似乎不可行(且原始无界)。(原始残差
linprog
知之甚少,但您确定您的矩阵大小正确吗?因为lingprog
试图求解f'*x
,并且在代码中未定义。作为A
10x10,我想知道你是否在矩阵的形状上犯了一些错误,而你没有注意到……我的意思是。。。。您的下边界和上边界大小不同。。。。。
m = 10;
d = [1:1:m];
for j = 1:m,
for i = 1:m,
A(i,j) = 1/(i+j-1);
end
end
for i = 1:m,
b(i)=0;
end
for i = 1:m
lb(i) = -inf;
end
b;
lb = lb';
f = A*d';
[x,fval,exitflag,output] = linprog(-f,A,b,[],[],lb,d); %minimzation problem. Hence -f, A = A'