使用CVXR R包,我想定义一个目标函数,其中包含诸如-log(gamma(x))
之类的术语,该术语对于x >= 1
是凹的。但是,这不起作用:
library(CVXR)
x <- Variable(1)
Maximize(-log(gamma(x)))
产生以下错误:
Error in gamma(x) : non-numeric argument to mathematical function
似乎可以向CVX的DCP库中添加新原子,但是我还没有在CVXR中找到进行此操作的文档。谁能指出我合适的文档,或者更好的告诉我如何解决上述问题?