fmin搜索单个变量

时间:2018-01-28 22:40:58

标签: r fminsearch

以fminsearch的R&#39帮助页面示例为出发点:

# Rosenbrock function
rosena <- function(x, a) 100*(x[2]-x[1]^2)^2 + (a-x[1])^2  # min: (a, a^2)

fminsearch(rosena, c(-1.2, 1), a = sqrt(2))
# x = (1.414214 2.000010) , fval = 1.239435e-11

我想评估这样的东西,但只有一个变量,如:

 rosena <- function(x, a) 100*(x[1]-x[1]^2)^2 + (a-x[1])^2 

但是当我跑步时

fminsearch(rosena, c(1), a = sqrt(2))

它给出了错误: X中的错误[2:d1,]:维数不正确

fminsearch似乎想要一个长度大于或等于2的矢量,但不能少,但是对于这个例子,矢量需要长度为1

注意:fminsearch位于&#34; pracma &#34;封装

1 个答案:

答案 0 :(得分:1)

它看起来像pracma包中的错误。

anms函数正在下标维度,相关摘录:

d <- length(x0) # i.e. 1
d1 <- d + 1 # i.e. 2
...
X <- matrix(0, nrow = d1, ncol = d)
...
X <- X[o, ] # could put drop = FALSE here

我认为你应该发一个包的作者的错误。