1

我定义了一个Cd矩阵,然后调用lsqlin

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

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

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

功能页面说这与收敛于解决方案不同。但我不知道如何增加OPTIONS.MaxIter,或者是什么导致了警告。任何建议都会很棒,谢谢!

4

2 回答 2

1

根据matlab的版本,你需要看一下optimset实现这个的功能。optimoptions是您可能无法使用的新功能。

它有类似的语法:

options = optimset('MaxIter',1500)

您可以在此处阅读有关设置选项的更多信息

于 2013-06-03T16:52:12.643 回答
0

MaxIter是一个可以包含在函数调用中的选项。这是来自文档的引用:

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) 

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

于 2013-06-03T15:22:47.777 回答