【发布时间】:2014-02-03 13:55:53
【问题描述】:
我一直在尝试将代码从 MATLAB 移植到 C++,但偶然发现了一个非常意想不到的困难。我似乎找不到与 MATLAB 的 fminunc 等效的 C++。
简单地说,问题定义是最小化 f(x),对于向量 x,标量函数 f(x),以及初始猜测 x_0。
到目前为止,我的搜索努力只发现了一个名为 MinPack 的库,它无法解决 f(x) 是标量而 x 是向量的情况。
肯定有一种古老的编程语言可以免费实现非线性优化的经典数值方法吗?还是我在这里过于乐观?即使是诸如梯度下降之类的基本方法也将是一个巨大的改进......
【问题讨论】:
-
人们可能会认为 Matlab 及其同类产品仍然蓬勃发展的市场证明您确实对自己的期望过于乐观,证明编写程序可以赚到钱广受好评的开源免费程序普遍可用。而且,更轻松一点,C++ 与时间一样古老 是一个非常有趣的说法。
-
@HighPerformanceMark 神说:
photon_t letThereBeLight() { return light; } -
在我的辩护中,我 讽刺地称 C++ 与时间一样古老,但它只是比我老一点点,这一定很重要。
-
time_t letThereBeCode = 0更多的是对 C 年龄的估计,而不是 C++。 -
为了完整起见,我会说我最终使用了 Purple,事实证明它非常有用:cimne.com/purple
标签: c++ matlab mathematical-optimization numerical minimization