我目前正在寻找R编程语言的替代品; optim()函数,如果有人知道如何处理这个?
答案 0 :(得分:5)
R的实现optim
实际上并不是写在中的R.如果在提示符下键入“optim”但没有括号,它将转储函数的定义,你可以看到,经过一些错误检查和参数改组之后,它会调用一个.Internal
例程(用C和/或Fortran编码)来完成所有实际工作。
所以你最好的办法是找到一个用于数学优化的C库 - 抱歉,我没有任何建议 - 并将其包装到Lua中。我怀疑是否有人为此编写了本机Lua代码,我会不建议您自己编写代码;有效地进行数学优化仍然是基础研究的一个活跃领域,而迄今为止最好的算法实际上是非常重要的。
答案 1 :(得分:5)
http://numlua.luaforge.net/看起来很有趣,但似乎没有最小化。最有希望的潜在客户似乎是Lua wrapper for GSL,其中包含各种multidimensional minimization algorithms。
With derivatives
- BFGS(method="BFGS"
中的optim
)和两个共轭梯度法(Fletcher-Reeves和Polak-Ribiere),它们是method="CG"
中optim
可用的三个选项中的两个。
Without derivatives
- Nelder-Mead单纯形(method="Nelder-Mead"
,optim
中的默认值)。
更具体地说,请参阅here以了解涵盖最小化的Lua shell文档。
我同意@Zack你应尽量使用现有的实现,并且你可能需要更多的背景知识来了解哪些算法对你的特定问题有用...