2015-10-19 108 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)非常简单。停止该错误消息。