ドキュメントブーストから判断すると、正規分布とガンマ分布の両方に分位関数 (逆 cdf 関数) が提供されているようですが、実際にそれらをどのように使用できるかは明確ではありません。誰かが例を貼り付けてもらえますか?
14208 次
2 に答える
9
分位数の計算は、自由関数として実装されます。次に例を示します。
#include <boost/math/distributions/normal.hpp>
boost::math::normal dist(0.0, 1.0);
// 95% of distribution is below q:
double q = quantile(dist, 0.95);
次を使用して補集合(右からの分位数)を取得することもできます。
// 95% of distribution is above qc:
double qc = quantile(complement(dist, 0.05));
ここにいくつかの同様の実例があります:
編集: ADLのおかげで無料の関数に名前空間は必要ありません
于 2011-04-06T14:43:07.183 に答える
3
QuantCornerに実行可能な例があります。
// Édouard Tallent @ TaGoMa.Tech
// September 2012
#include<boost/math/distributions.hpp>
#include<iostream>
using std::cout;
using std::endl;
double inverseNormal(double prob, double mean, double sd){
boost::math::normal_distribution<>myNormal (mean, sd);
return quantile(myNormal, prob);
}
int main (int, char*[])
{
try
{
double myProb = 0.1; // the 10% quantile
double myMean = 0.07; // a 7% mean
double myVol = 0.14; // a 14% volatility
cout << inverseNormal(myProb, myMean, myVol) << endl;
}
catch(std::exception& e)
{
cout << "Error message: " << e.what() << endl;
}
return 0;
}
于 2012-09-13T08:16:27.990 に答える