0
我写的以下MATLAB代码来优化下面的LPMATLAB linprog最大迭代达到
max b'x
s.t A'x <= 0;
x <= d;
而且d是
d = {1,2..m}
并且A中的代码所定义。我得到的错误:
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'
考虑使用Opti-Toolbox:http://www.i2c2.aut.ac.nz/Wiki/OPTI/ – JaBe
hmmm,当我在matlab 2010b上运行你的代码时,我得到这个错误:“Exiting:One或更多残差,对偶缺口或总相对误差已经停止: 对偶似乎是不可行的(并且原始无界) (原始残差
GameOfThrows
是否需要尝试单纯形法并看看你得到了什么?使用诸如optimset('LargeScale','off','Simplex','on'); – GameOfThrows