Levenberg-Marquardt算法的替代方案



我收到了一些旧代码,这些代码使用函数fmincon和算法levenbergmarquardt来优化我的参数。但是,该算法在此功能中不再可用。由于我是Matlab的新手,因此我不确定最好的选择是什么。我试图将功能简单地更改为与Levenbergmarquardt兼容的功能,但这似乎不起作用。

以下是选项的向量和fmincon函数。" s"," a"one_answers" b"是参数的起始值," lb"one_answers" ub"是上限和下限。

请写信,如果有什么不清楚或您需要其他信息。

options_ = optimset('LevenbergMarquardt', 'on','TolFun',1e-6,'TolX',1e-6, 'HessUpdate', 'steepdesc', 'Display','iter', 'LargeScale', 'off', 'MaxFunEvals', 100000, 'MaxIter', 100000);
[ out_p, fval, exitfflag ] = fmincon(@MyLikelihoodFunction, S, A, b, [], [], lb, ub, [], options_);

您尝试了什么和出了什么问题?

我将从FMINCON开始,所有默认选项。这将为您提供内点算法。将"显示"设置为" iTer",以查看算法如何进行。如果问题很大(尽管旧的代码已"大刻度"关闭(,则可以尝试将" HessianApproximation"设置为" LBFGS"。

a和b不是起点的一部分。这些定义线性不等式约束。在我上面提供的文档链接中,还有更多有关此信息的信息。

最新更新