C++中的非线性编程库

em7*_*m70 8 c++ mathematical-optimization

我正在寻找用于非线性编程的C++库的建议(不仅仅是整数!).

优先考虑积极维护的F/OSS解决方案,但可以接受提供免费评估版本的积极维护的商业解决方案.

提前致谢!

编辑:根据要求,这里有更多细节:

我工作中的应用是简单的,并且它是关于用表达为不等式约束的一个小集(〜20)最小化4度和更高(高达11)的多项式(再次,作为多项式,度<= 4).不过,我偶尔也可能要投入一些三角函数.无论如何,它始终是我正在处理的连续,可区分的功能.到目前为止,变量的数量范围从1到12,并且不会超出此范围.

最后,我需要一个适用于Windows的解决方案,但跨平台的解决方案更可取.

gah*_*cep 6

我不确定,但也许CERN的ROOT适合你.这是来自CERN本身的巨大的库(例如ROOT :: Math :: Polynomial类).

我必须说,它确实不是一个"一分钟到学习"的库,但它有两个:控制台可以实时处理所有数学内容(看起来类似于MathCAD cmd行)和libsdll,你可以链接到你的代码静态.它是一个跨平台的库.更有甚者,ROOT最强大的功能是你可以构建几乎所有类型的图表和图表.


den*_*nis 2

NLopt拥有适用于十几种算法的可靠 C 代码,包括MJD Powell 编写的COBYLA、线性近似约束优化,用于具有非线性不等式和等式约束的无导数优化。
补充:这里 是几个非衍生优化器的运行NLopt
对于 5d 和 10d 的 Rosenbrock 和 Powell 检验函数,它们都对随机起点非常敏感;ymmv。