仲上分布サンプリング; Nakagami Distribution Sampling
概要
仲上分布とは以下の式で表現される確率分布。
$$f(x)=\frac{2 m^m}{\Gamma (m) \Omega^m} x^{2m-1} exp \left( -\frac{m}{\Omega} x^2 \right) , \quad x \geq 0 $$
ソースコード
namespace ExRandom.Continuous {
public class NakagamiRandom : Random{
readonly GammaRandom gr;
public NakagamiRandom(MT19937 mt, double m = 1, double omega = 1) {
if(mt == null) {
throw new ArgumentNullException();
}
if(!(m >= 0.5) || !(omega > 0)) {
throw new ArgumentException();
}
this.gr = new GammaRandom(mt, kappa : m, theta : omega / m);
}
public override double Next() {
return Math.Sqrt(gr.Next());
}
}
}
関連項目
メルセンヌ・ツイスタ
各種確率分布サンプリング基本クラス
ガンマ分布サンプリング