0

R の optim() 関数に関する単純な問題です。ループの変数に応じて関数の最小値を見つけようとしています。

f<-function(x,i){
  i*x
}

M<-matrix(0,10,1)

  for (i in 1:5) {
    M[i,1]<-optim(c(1),f,lower=-2,upper=2,method="L-BFGS-B")
  }
M

Rは私に答えます:

Erreur dans i * x : 'i' est manquant

こいつの扱いが本当に分からん…。

4

1 に答える 1

3

呼び出しに渡すi必要があります。optim

optim(1,f,i=i,lower=-2,upper=2,method="L-BFGS-B")

...そしてリストをoptim返すので、リスト内のどの要素を に格納するかを選択する必要がありますM。私はあなたが欲しいと思いますpar

M[i,1] <- optim(1,f,i=i,lower=-2,upper=2,method="L-BFGS-B")$par

アップデート:

Justin がコメントで指摘したように、これを行うためのより R に似た方法は次のようになります。

L <- list()
for (i in 1:5) {
    L[[i]] <- optim(1,f,i=i,lower=-2,upper=2,method="L-BFGS-B")
}
V <- sapply(L, `[[`, "par")
于 2012-04-06T15:33:33.093 に答える