【发布时间】:2015-11-17 10:58:24
【问题描述】:
我有一个 C++ 循环程序,其中包括一个函数的组合(每次都不同)并进一步最小化它。函数的组合是用 GiNaC 包(符号表达式)实现的。
我尝试使用 Matlab fmincon 函数最小化函数,但它在将字符串转换为 lambda 函数时占用了所有内存(函数相当复杂)。而且我无法以任何方式将函数从 C++ 导出到 Matlab,只能作为字符串。
有什么方法可以组成一个复杂的函数(3 个变量,sin-cos-square root 等)并在不自行确定梯度的情况下将其最小化,因为我在运行程序之前不知道函数的外观?
我还查看了NLopt,据我了解,它需要由程序员编写渐变。
【问题讨论】:
-
你能提供更多细节吗?如果函数是由 GiNaC 组成的,为什么不使用it 区分它们呢?
标签: c++ lambda minimization