我正在尝试在以下问题中找到解决方案:
可重复性的任意值:
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 )
我得到了一个结果,但是当我尝试运行优化时,它表示值不合适,这对我来说是令人惊讶的。
我可能错过了一些完全明显的东西,但我找不到我出错的地方,除非优化只是错误的功能使用,但我无法找出合适的选择。
答案 0 :(得分:0)
您的w参数将转换为矢量,因此您需要将其强制转换为具有正确尺寸的矩阵:
vw <- function(w){
w <- matrix(w,nrow=14,ncol=14,byrow=T)
t(AZ2k - noAZ2k %*% par)%*%w%*%(AZ2k - noAZ2k %*% par )
}