MATLAB lsqlin错误:迭代次数超出options.MaxIter

时间:2013-06-03 15:09:20

标签: optimization matlab

我定义了Cd矩阵,然后拨打lsqlin

lb = zeros(2, 1);
x = lsqlin(C, d, [], [], [], [], lb, []);

我得到了x的解决方案,但有一条消息:

  

超过最大迭代次数;增加OPTIONS.MaxIter

function page表示这与融合解决方案不同。但我不知道如何增加OPTIONS.MaxIter,或者导致警告的原因。任何建议都会很棒,谢谢!

2 个答案:

答案 0 :(得分:1)

根据matlab的版本,您需要查看optimset函数来实现此目的。 optimoptions是您可能无法使用的新功能。

它有类似的语法:

options = optimset('MaxIter',1500)

您可以阅读有关设置选项here

的更多信息

答案 1 :(得分:0)

MaxIter是您可以在函数调用中包含的选项。这是documentation

的引用
x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options)

并且“options”可用于将MaxIter增加到超出其默认值200的范围。但是,这必须使用optimoptions

完成
options = optimoptions('lsqlin','MaxIter',1500) 

options = optimoptions(@lsqlin,'MaxIter',1500) 

或者,您可以尝试使用optimtool GUI。如果您不想从GUI运行问题,请将options变量导出到工作区并将其声明为global