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