R.Net
を使用して非線型最適化問題をモデル化するためにnloptr
を使用します。変数の初期値をRscriptに渡します。ここでは変数にlb
とub
を定義しています。nloptrの上境界エラー
lb
は0ですが、一部の変数では&の場合、ub
は "1"です。
私がモデルを実行すると、私は「R.Script」にEXCELから同じ初期入力データを提供する場合、私は継続的に興味深いことに
Additional information: Error in is.nloptr(ret) : at least one element in x0 > ub
としてエラーを取得していますが、それがうまく動作し、私はエラーを取得することはありません約x0>ub
。 これをデバッグする方法や何が間違っているかも知っているかについての洞察はありますか?私はそれがExcelでうまくいくが、C#ではうまくいかないことを知ることはできない。
いくつかの詳細は以下の通りである: 例:パラメータ制約が第COLおよび第三のように和である
(my.data.var呼ばれる)は、以下のように行列の形態でありますcolはそれぞれ< = 1である必要があります。すなわち、すべてのパラメータの
ポンドは0であると私はそれを定義:
constraint.func <- function(my.data.var)
{
column = 1
constr <- vector("numeric",length = 2)
my.data.var.mat <- matrix(my.data.var,nrow = 2,ncol = 4,byrow = TRUE)
for(index in 2:3)
{
sum.constraint = 0
for(prodwells in 1:2)
{
sum.constraint <- sum.constraint + my.data.var.mat[prodwells,index]
}
constr[column] <- sum.constraint - 1
column = column+1
}
return(constr)
}
result <- nloptr(my.data.var,eval_f = Error.func, lb=lb,
ub = ub,eval_g_ineq=constraint.func,
opts = opts)
:制約FUNCは次のように定義されて
ub.matrix <- matrix(,nrow = 2, ncol=4)
ub.matrix
for(rownum in 1:2)
{
ub.matrix[rownum,1] = Inf
ub.matrix[rownum,4] = Inf
for(colnum in 2:3)
{
ub.matrix[rownum,colnum] = 1
}
}
:として
lb = vector("numeric",length= length(my.data.var))
UB
スクリプトを実行すると、最初のcolの「合計」が1より大きく、エラーを否定してください!
これを再現可能にすることはできますか? – shayaa
基本的に_only_というエラーメッセージが表示され、何が問題になったのかを尋ねています。 –
面白い問題!私はそれを再現できるとすぐにそれを見て喜んで:D –