免责声明:我使用关键字搜索了答案:R,optimize,C ++,C,optima,maxima,minima,local maximum,optimization,Newton's Method,Gradient descent等。并没有找到任何满意的答案。 R optimize man page给出了原始的Fortran代码,但没有提供它的C语言。如果我应该搜索其他关键字,或者您可以快速找到明确回答此问题的网站,请告诉我。
问题:我是C ++的新手,希望将我的一个R程序转换为C ++。我在R中使用了optimize函数,想知道C ++中是否有任何库/头文件/函数可以轻松地给我相同的结果。如果可能请举例。
这是R优化的一个简单例子,最大化f(p)= p *(1-p)超过(0,1),其中最大值为p = 0.5且f(0.5)= 0.25:
> optimize(function(p) p*(1-p),c(0,1),maximum=T)
$maximum
[1] 0.5
$objective
[1] 0.25
感谢您的帮助!
答案 0 :(得分:5)
R源代码可在http://cran.r-project.org/获得。你应该能够在那里得到c实现,使得c ++应该是微不足道的。
答案 1 :(得分:5)
http://cran.r-project.org/src/base/R-2/R-2.13.1.tar.gz
代码在../ R-2.13.1 / src / main / optimize.c
中答案 2 :(得分:0)
R函数optimize()基本上实现了Brent的方法。要用C ++或其他几种语言实现,您只需从这里下载:https://people.sc.fsu.edu/~jburkardt/cpp_src/brent/brent.html