レヴィ分布サンプリング; Levy Distribution Sampling
概要
レヴィ分布とは以下の式で表現される確率分布。
$$\displaystyle f(x)=\sqrt{ \frac{c}{2 \pi} } \frac{\displaystyle exp \left(\displaystyle -\frac{c}{2(x-\mu)} \right)}{(x-\mu)^{3/2}} , \quad x \geq 0 $$
ソースコード
namespace ExRandom.Continuous {
public class LevyRandom : Random{
readonly MT19937 mt;
readonly double c, mu;
public LevyRandom(MT19937 mt, double c = 1, double mu = 0) {
if(mt == null) {
throw new ArgumentNullException();
}
if(!(mu > 0)) {
throw new ArgumentException();
}
this.mt = mt;
this.c = c;
this.mu = mu;
}
public override double Next() {
double r = mt.NextDouble_OpenInterval01();
double p = ErrorFuntion.Probit(1 - r * 0.5);
return mu + c / (p * p);
}
}
}
関連項目
メルセンヌ・ツイスタ
各種確率分布サンプリング基本クラス
正規分布サンプリング
誤差関数