1

私は次の問題の解決策を見つけようとしています:

再現性の任意の値:

AZ2k <- seq(1:14) 
noAZ2k <- matrix(seq(1:25), 14, 50)
par <- rep(0.02 , 50)


vw <- function(w)
{

    t(AZ2k - noAZ2k %*% par)%*%w%*%(AZ2k - noAZ2k %*% par ) 

}


vweights <- optim(diag(1,14), vw, gr = NULL,
  method = c("L-BFGS-B"),
  lower = 0, upper = 10000,control = list( factr = 1e4, maxit = 1000, pgtol = .01 ), 
  hessian = FALSE)

入力すると

t(AZ2k - noAZ2k %*% par)%*%diag(1,14)%*%(AZ2k - noAZ2k %*% par )

結果は得られますが、最適化を実行しようとすると、値が適合していないと表示されます。これは私にとって驚くべきことです。

私はおそらく完全に明白な何かを見逃していますが、optimが使用するのにちょうど間違った関数でない限り、どこが間違っていたかを見つけることができませんが、適切な代替案を見つけることができません。

4

1 に答える 1

0

wパラメータはベクトルに変換されるため、適切な次元の行列に強制変換する必要があります。

vw <- function(w){
    w <- matrix(w,nrow=14,ncol=14,byrow=T)
    t(AZ2k - noAZ2k %*% par)%*%w%*%(AZ2k - noAZ2k %*% par ) 
}
于 2013-03-14T19:19:19.843 に答える