從文檔判斷boost似乎爲normal和gamma分佈提供了分位數函數(反cdf函數),但是對於我來說它不是很清楚,我怎麼才能真正使用它們。有人可以粘貼一個例子嗎?分位數函數boost(C++)
10
A
回答
8
分位數計算是作爲一個自由函數實現的。這裏有一個例子:使用
#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
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;
}
相關問題
- 1. C++ Boost函數比較
- 2. C++函數調用順序(boost) - 困惑
- 3. C++ 0x和Friend函數和boost :: make_shared
- 4. C++ QThread和boost回調函數
- 5. 具有boost :: noncopyable的C++工廠函數
- 6. boost :: lock_guard分配,構造函數和析構函數開銷
- 7. Boost綁定函數
- 8. Boost shared_ptr use_count函數
- 9. C++將函數從DLL加載到Boost函數中
- 10. boost python C++函數調用另一個函數錯誤
- 11. C++分類函數
- 12. Boost函數:存儲由boost :: bind返回的函數嗎?
- 13. boost ::函數賦值給成員函數
- 14. R分位數函數的行爲
- 15. Boost函數和提升lambda
- 16. boost :: ptr_vector構造函數
- 17. boost :: ptree和KeyCompare函數?
- 18. boost ::函數模板類
- 19. boost成員函數指針
- 20. boost ::線程函數執行
- 21. C++ boost條件類型不接受函數參數
- 22. C函數分配內存
- 23. 在C++中分割函數
- 24. C++的分割函數
- 25. C函數指針分配
- 26. 使用分位數函數在熊貓分位數中創建新列
- 27. C++:是否可以區分extern「C」函數和普通函數?
- 28. C函數拆分數組成塊
- 29. 通過函數分配數據(ANSI C)
- 30. 在c函數中分配數組
[本頁](http://www.boost.org/doc/libs/1_46_1/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html )包含一個計算正態分佈分位數的例子。它看起來非常簡單。這對你有用嗎? – 2011-04-06 11:39:07