2

我正在使用optimR 中的函数来查找涉及矩阵求逆的函数的最小值。我遇到的问题是有时矩阵是不可逆的,当它试图反转该矩阵时程序退出。我想在达到不可逆矩阵之前获取函数的参数。

考虑下面一个有点人为的例子:

MAT <- diag(3)
MAT[1,1] <- 5

example_function <- function(x){
  MAT[1,1] <- abs(MAT[1,1] - x[1])
  prob <- x[2] * solve(MAT) # invert to get error
  out <- sum(MAT)
  return(out)
}

res.optim <- optim(par=c(5,5), fn=example_function, control=list(trace=TRUE, maxit=1000))

在这里,我想获得(5,5)参数的输出,因为它们在达到不可逆矩阵之前被输入到函数中。我怎样才能做到这一点?

4

0 回答 0