在优化过程中处理不可逆矩阵

时间:2013-11-01 11:12:18

标签: r optimization matrix

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

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

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),因为它们在到达不可逆矩阵之前被送入函数。我怎样才能做到这一点?

0 个答案:

没有答案