R中的约束优化与结果约束

时间:2018-08-13 19:35:07

标签: r optimization mathematical-optimization

我正在尝试优化R中的一个函数,该函数对输入参数有约束,但对函数的结果也有约束。我正在使用constrOptim。

我要优化的功能如下:

  fn.opt <- function(x){
    fnLambda=x[[1]]
    fnSigma=x[[2]]

    fn.norm = fnLambda*dnorm(pz$x, mean=mxMu, sd=fnSigma)

    fn.res = sum((density$y - fn.norm)^2)

    return(fn.res)
  }

在这里,我有一些数据的核密度估计density,并且我有一个正常的近似值fn.norm。我想最小化残差平方和,使用constrOptim可以成功做到这一点。

        theta = c(mxLambda,mxSigma)
        ui = rbind(c(1,0),c(-1,0),c(0,1))
        ci = c(0,-1,0)
        pz.opt = constrOptim(theta=theta,f=fn.opt,ui=ui,ci=ci,grad=NULL)
        pz.opt

约束:0 <= mxLambda <= 1&0

不过,我还希望普通密度近似值fn.norm严格小于数据density$y的密度。

有什么方法可以添加具有fn.norm < density$y的约束,同时仍然优化fn.res

谢谢。

0 个答案:

没有答案