0
我通常使用Rsolnp進行優化,但我無法找出如何讓R找到填充矩陣(而不是矢量)的值。 Rsolnp或其他優化器可以實現嗎?矩陣中值的優化
這裏是行不通一個簡單的例子:
library(Rsolnp)
a<-matrix(rnorm(9), ncol=3)
b<-matrix(rnorm(9), ncol=3)
f1<-function(H) {
return(sum(H*a))
}
f2<-function(H) {
return(sum(H*b))
}
lH<-matrix(rep(0, 9), ncol=3)
uH<-matrix(rep(1, 9), ncol=3)
pars<-uH
target<-1.2
sol <- gosolnp(pars, fixed=NULL, fun=f1, eqfun=f2, eqB=target, LB=lH, UB=uH, distr=uH, n.restarts=10, n.sim=20000, cluster= NULL)
正如你可以從輸出中看到,Rsolnp似乎被請求混淆:
> sol
$values
[1] 1e+10
$convergence
[1] 0
$pars
[1] NA NA NA NA NA NA NA NA NA
$start.pars
[1] 0.90042133 0.33262541 0.94586530 0.02083822 0.99953060 0.10720068 0.14302770 0.67162637 0.25463806
$rseed
[1] 1487866229
我認爲這可能是唯一的方法,但我想確保。看起來它可能會使優化速度下降很多。我處理的矩陣非常大,gosolnp必須多次調用這些函數才能進行單個優化。 – user3390169