0
library(nloptr)
m = 0.00060981
m2 = 0.000109362
m4 = 5.21538E-08
m6 = 4.25E-11
f=function(X){
Y = matrix(NA, ncol = 1, nrow = 4)
mu = X[1]
S2=X[2]
S2u = X[3]
lambda= X[4]
Y[1] = (mu-(S2/2))-m
Y[2] = (S2+(lambda*S2u))-m2
Y[3] = ((3*(S2^2) + 6*(lambda^2)*(S2u^2)+3*(S2u^2)*(lambda) + 6*(lambda)*(S2u)*S2))-m4
Y[4] = (15*(S2^3) +45*(S2^2)*S2u + 45*(lambda^2)*(S2u^2)*S2 +45*(lambda)*(S2u^2)*S2 +15*(lambda^3)*(S2u^3)+45*(lambda^2)*(S2u^3)+15*lambda*(S2u^3))-m6
return(Y)
}
g = function(X){
return(norm(f(X),'f'))
}
initiale=c(0.00197,0.022,0.0036,0.8999)
hin = function(X){
h=rep(NA,1)
h[2]>0
h[3]>0
h[1]<h[2]
h
}
ans=auglag(par=initiale,fn=g,hin=hin)
執行下面的代碼,但我得到這個錯誤:
Error in if (sig > 1e+05) control.optim$reltol <- 1e-10 :
missing value where TRUE/FALSE needed
我爲什麼得到這個錯誤,以及如何修復代碼?
你說的那裏的代碼沒有你提到的'sig> 1e + 05'這行......你可以發佈完整的代碼嗎? –
這是完整的代碼,我沒有使用參數sig! – Meryem
您可能想要在代碼中包含所需的'library(nloptr)',如果實際上這是'auglag()'函數的源代碼,雖然它的記錄參數似乎不匹配您所做的調用? –