2

次の方程式を解くことで元の質問を解決できるように、OP を更新します。

 integral_from_0_N of (x * f(x))  dx  =  constant  // here , constant > 0 , N > 0

どこ

f(x) = g(j,k) * (x/k)^(j-1) * exp(-x/k)   // here,  k > 0 , j > 0 

ここで、g(j,k) = j / [ k* g1 (1+j, 定数 1/k) - k* g1 (1+j, 定数 2/k) + exp(-定数 2/k) * k^(1 -j) * 定数 2^j - exp(-定数 1/k) * k^(1-j) * 定数 1^j ] 定数 1 >= 0 、定数 2 >
0

     g1( p, q) = integral_from_q_to_inf of (t^(p-1) * exp(-t)) dt

k と j の解を見つける必要があります。


制約として積分を使用して数学的最適化モデルを解く必要があります。

Min.   | s1 - k1 | + | s2- k2 |
s.t.    
    integral_from_0_to_M of  f(x) = 1

    s1 = integral_from_0_to_M of  x * f(x) 
    s2 = integral_from_0_to_M of  x^2 * f(x) 
    M, k1 and k2 are positive numbers
    f(x) is a probability density function of x with arguments of  
       (alpha, beta, 0, M)
    f(x) = G * (x * beta)^(alpha -1) *  e^(-x * beta)
    G = alpha * beta / [( gamma(alpha, 0) - gamma(alpha, M) + e^(-M*beta) *    beat^(1-alpha) * M^alpha] 

 Decision variables:
      alpha > 0, beta > 0 

どんな助けでも大歓迎です。

4

1 に答える 1

2

通常のfminconを問題に適用するには、目的関数(Min. | s1 - k1 | + | s2- k2 |)と制約を数値関数として定義する必要があります。ということで、関数を定積分関数としてどう定義するかがポイントです。これは、matlab 関数quadvを使用して行うことができます。

ただし、あなたの問題は正しく定式化されていない可能性があると言わざるを得ません。f(x) がサポート [0,M] で定義された分布関数である場合 (ガンマ関数またはそのバリエーションのようです)integral_from_0_to_M of f(x)は常に 1 に等しいことに注意してください。サポート [0 で定義されていない場合,M],integral_from_0_to_M of f(x)は 1 に等しくなることはありません。したがって、この制約は必要ないか、満たされない可能性があります。私はあなたのケースを注意深くチェックしませんでしたが、アルファとベータの選択によって、この制約が確実に満たされるようにしてください。

さらに、これは、パラメーター ExpectedValue=k1 および Variance=k2 を使用して分布関数を定義する非常に珍しい方法です。サポート[0、M]のガンマ関数、つまり切り捨てられたガンマ関数を分析的に再定義することはできませんか? 打ち切られた正規分布で人々がどのようにそれを行うかを見てください...

于 2014-03-20T08:54:09.143 に答える