次の関数を最小化します。
不等式の制約を受ける:
S1(v) と S2(v) は観測値です。t、r(v)、p(v) は未知数 (v=1,...,n) です。r(v) と p(v) の初期値は非常に良好です。私の質問は: t、r(v)、p(v) を推定する方法は?
次の関数を最小化します。
不等式の制約を受ける:
S1(v) と S2(v) は観測値です。t、r(v)、p(v) は未知数 (v=1,...,n) です。r(v) と p(v) の初期値は非常に良好です。私の質問は: t、r(v)、p(v) を推定する方法は?
非線形関数を最適化するための関数OPTIF9があり、パラメーターの制約を処理するバリエーションがあります。境界にぶつかると、問題の次元が 1 減るので、注意が必要です。もう 1 つの方法は、log や logit など、暗黙的に制限されている関数によってパラメーターを変換することです。
個人的には、Metropolis-Hastings の方が好きです。それは簡単で、範囲外のパラメーターに大きなペナルティを課すだけです。すべての観測値に等しい重みを付けて平方和を最小化しているため、ガウス対数尤度を最大化する場合と考えるのは簡単であり、MH はそれが得意です。
math.stackexchange.comではなく、ここでこの質問をしているので、プログラミング言語で数値的に最適化することについて質問していると思います。
ここでは非常に非線形の問題があるため、たとえば、Matlab でfminsearch()関数を使用できます。または、C++ でさまざまな数値アルゴリズムを実装する方法を説明している Numerical Recipies を参照することもできます。