我是在对200条曲线进行平均曲线的拟合,用optim进行优化,总是报出optim() non-finite finite-difference value 。一步步看完优化的函数,发现,优化的函数中用到了dmvnorm,dmvnorm出现了-Inf导致的。
我的dmonorm
Lfy<-function(par,areadf,weightdf){
  ind_N<-dim(weightdf)[2]; Lfy_ls<-c()
  for(k in 1:ind_N){
    area<-areadf[,k];weight<-weightdf[,k]
    mu<-NP_get_mu1(par,weight); #得到5个数字组成的向量
    SAD<-SAD1(par,weight);#得到5x5的对称矩阵
    library(mvtnorm);
    Lfy_ind<-dmvnorm(area,mu,SAD,log=TRUE)
    Lfy_ls<-c( Lfy_ls,Lfy_ind)#由ind_N个数据组成的向量,由于会出现个别的-Inf导致return也是Inf
    }
  Lfy<--sum(Lfy_ls)
  return(Lfy)
}
我想知道,dmvnorm为什么会算出-Inf?
非常感谢各位的解惑!