我定义了一个C
和d
矩阵,然后调用lsqlin
:
lb = zeros(2, 1);
x = lsqlin(C, d, [], [], [], [], lb, []);
我得到了一个解决方案x
,但有一条消息:
超过最大迭代次数;增加
OPTIONS.MaxIter
。
功能页面说这与收敛于解决方案不同。但我不知道如何增加OPTIONS.MaxIter
,或者是什么导致了警告。任何建议都会很棒,谢谢!
我定义了一个C
和d
矩阵,然后调用lsqlin
:
lb = zeros(2, 1);
x = lsqlin(C, d, [], [], [], [], lb, []);
我得到了一个解决方案x
,但有一条消息:
超过最大迭代次数;增加
OPTIONS.MaxIter
。
功能页面说这与收敛于解决方案不同。但我不知道如何增加OPTIONS.MaxIter
,或者是什么导致了警告。任何建议都会很棒,谢谢!
根据matlab的版本,你需要看一下optimset
实现这个的功能。optimoptions
是您可能无法使用的新功能。
它有类似的语法:
options = optimset('MaxIter',1500)
您可以在此处阅读有关设置选项的更多信息
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)
或者,您可以尝试使用optimtool
GUI。如果您不想从 GUI 运行您的问题,请将options
变量导出到您的工作区并将其声明为global
.