2015-10-19 105 views
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' 
+0

考慮使用Opti-Toolbox:http://www.i2c2.aut.ac.nz/Wiki/OPTI/ – JaBe

+0

hmmm,當我在matlab 2010b上運行你的代碼時,我得到這個錯誤:「Exiting:One或更多殘差,對偶缺口或總相對誤差已經停止: 對偶似乎是不可行的(並且原始無界) (原始殘差 GameOfThrows

+0

是否需要嘗試單純形法並看看你得到了什麼?使用諸如optimset('LargeScale','off','Simplex','on'); – GameOfThrows

回答

0

我已經使用的樂天派=( 'MAXITER',10000)非常簡單。停止該錯誤消息。