我有以下功能
f <- function(a,b) {
(a - 1) + 3.2/b + 3*log(gamma(a)) + 3*a*log(b);
}我想用nlm() ,optim() ect...优化这个函数。
我试着这样做:
value <- nlm(f,optim(f))但是,我收到一条错误信息。cannot coerce type 'closure' to vector of type 'double',我真的很感谢你的回答!
发布于 2013-11-17 17:10:28
我可以同时使用optim和nlm。我做了个小小的修改
f <- function(par) {
a <- par[1]
b <- par[2]
(a - 1) + 3.2/b + 3*log(gamma(a)) + 3*a*log(b);
}
> optim(c(1, .3), fn=f)
$par
[1] 1.399685 0.762025
$value
[1] 3.09904
$counts
function gradient
55 NA
$convergence
[1] 0
$message
NULL
> nlm(f, c(1,.3))
$minimum
[1] 3.09904
$estimate
[1] 1.3999515 0.7619307
$gradient
[1] 3.096044e-07 3.907985e-07
$code
[1] 1
$iterations
[1] 17https://stackoverflow.com/questions/20033559
复制相似问题