func_2 <- function(p,N){
f <- sqrt ((p* (1- p) )/N)
return(f)
}
maxmim <- optimize(func_2, c(0,1), maximum = TRUE)
错误消息不断弹出,上面写着"argument";N〃;缺少,如何查找p的优化值?
在实践中,可以使用optim
来查找双变量函数的最大值。然而,它需要矢量输入:
func_3 <- function(vec){
func_2(vec[1],vec[2])
}
然后你可以做这样的事情:
optim(par = c(p = 0.1, N = 0.1), fn = func_3,
lower = c(p = 0, N = 0), upper = c(p = 1, N = 1),
method="L-BFGS-B", control = list(fnscale = -1))
然而,函数在0到1的区间内最大化,p=0.5,N=极限,N接近0。这计算为NaN
,因此optim
无法使用与下限和上限兼容的方法找到。