非线性函数最小化C

Nonlinear function minimization C++

本文关键字:最小化 线性函数      更新时间:2023-10-16

我一直在尝试将代码从MATLAB移植到C ,并在一个非常出乎意料的困难上偶然发现。我似乎找不到与Matlab的fminunc相当的C 。

简而言之,对于向量X,标量函数F(X)和Intial Guess X_0,问题定义是最小化f(x)。

到目前为止,我的搜索努力只散发出一个名为MinPack的库,该图书馆未能调查f(x)是标量的情况,而x是vector。

肯定是一种像时间一样古老的编程语言,可以免费实现经典的数值配方以进行非线性优化吗?还是我在这里过于乐观?即使是基本方法,例如梯度下降也将是对一无所有的巨大进步...

检查nlopt。这就是我在移植Matlab到C/C 时首先使用的,并且效果很好。

我的个人选择是iPopt ,是一般的非线性求解器。它的了解远远超过您的要求。

其他选项将包括:

  • 根发现和最小化(来自CERN)(我没有尝试过)
  • 哈威尔子例程库
  • port3

不幸的是,后者将涉及与Fortran的接口;这是痛苦和无聊的,但实际上不是火箭科学。

这是另一个好:GSL,特别是http://www.gnu.org/software/gsl/manual/manual/gsl-ref-ref_36.html#sec498/p>>