Matlab 优化如何在没有 Jacobian 或 Hessian 的情况下工作

计算科学 优化 matlab 雅可比
2021-12-21 05:12:21

Matlab 优化工具是如何工作的?它只是得到误差函数,不需要雅可比(一阶导数)或黑森(二阶导数)?怎么可能?如果是有限差分,它如何确定不同自由度的 dx 值?

1个回答

答案在很大程度上取决于您正在谈论的 MATLAB 中的优化功能。

基本 MATLAB 系统包括一个使用单纯形法的函数 fminsearch(不是 LP 的单纯形法,而是同名的 Nelder-Mead-Lagarias 算法。)该方法不使用导数。

优化工具箱的功能根据问题的性质及其大小使用各种不同的方法。对于从小到大的问题有不同的选项,并且根据问题的性质(例如约束与无约束)有不同的选项。对于中型问题的无约束非线性优化,该工具箱使用 BFGS准牛顿法,可以自动计算有限差分逼近。