【发布时间】:2018-07-25 21:02:42
【问题描述】:
这是我的第一篇文章,希望我不会弄错。
我正在尝试使用 NlcOptim 解决 R 中具有非线性等式约束的优化问题。
我定义了我的目标函数以及我的约束,但是当我运行它时,它给了我:
if (maxga > 0) { 中的错误:需要 TRUE/FALSE 的缺失值
我查看了 NlcOptim 的详细信息以弄清楚“maxga”是什么,但不幸的是我太新手了,无法弄清楚问题。
这是我的代码:
beta<-2
alpha<-3
theta__<-function(x){((beta+1)/2)*(x[3]+x[4])+(alpha/2)*((x[2]-x[1])/(x[4]-x[3]))}
profit__A<-function(x) -x[1]*pnorm(theta__(x))
con=function(x){
f=NULL
f=rbind(f,2*(x[4]-x[3])*(1- pnorm(theta__(x)))/(dnorm(theta__(x)*alpha))-x[2])
f=rbind(f,2*(x[4]-x[3])*(pnorm(theta__(x)))/(dnorm(theta__(x)*alpha))-x[1])
return(list(ceq=f,c=NULL))}
x0=c(3,2,1,0)
solnl(x0,objfun=profit__A,confun=con)
【问题讨论】:
标签: r optimization