2010-03-26 3 views
2

나는 boost :: math에서 감마 분포를 사용하려고하지만 boost :: variate_generator와 함께 사용할 수없는 것처럼 보입니다. 누군가 그것을 확인할 수 있습니까? 또는 그것을 사용하는 방법이 있습니다.부스트에서 감마 분포

문서화되지 않은 boost :: gamma_distribution이 있음을 알았지 만, 아마 사용 가능하지만 베타 버전이 아닌 배포판에서 알파 매개 변수를 선택할 수 있습니다.

감사합니다.

답변

4

this link에서 언급했듯이 rng의 출력에 원하는 배율을 곱하면 Boost (또는 TR1)의 단일 매개 변수 감마 분포를 확장 할 수 있습니다.

#include <boost/random.hpp> 
#include <boost/random/gamma_distribution.hpp> 

double rgamma(double mean, double variance, boost::mt19937& rng) { 
    const double shape = (mean*mean)/variance; 
    double scale = variance/mean; 

    boost::gamma_distribution<> gd(shape); 
    boost::variate_generator<boost::mt19937&,boost::gamma_distribution<> > var_gamma(rng, gd); 

    return scale*var_gamma(); 
} 
+0

이 좋은, 당신이 밖으로 역 감마를 얻을 수 있습니다 : 아래

는 평균과 분산에 의해 파라미터 감마 분포 번호를 그릴 variate_generator를 사용하는 샘플 코드이다 – pyCthon