如何使用boost分布函数?平分怎么样

How to use boost distribution functions? How about bisection?

本文关键字:怎么样 函数 何使用 boost 分布      更新时间:2023-10-16

我很难理解如何在boost中使用二项式和正态(高斯(分布。我需要从这些函数中获得一个值。我确信我现在可能试图错误地使用这些功能,但以下是我目前所拥有的:

#include <boost/math/distributions.hpp>
#include <boost/math/tools/roots.hpp>
#include <boost/random/variate_generator.hpp>
#include <boost/random.hpp>
//valueH is assigned before
int value;
/* Should this assign value to "value" ?*/
value = boost::math::binomial_distribution<> value(1,valueH);

和的正态分布

normal norm;
double someValue = boost::math::pdf(norm, (value1*value2+value3)/(value1*sqrt(value2)));

或者应该使用boost::math::normal_distribution<>在这里或如何工作?我读过boost文档,但仍然不知道如何从发行版中分配值。我也读过C++TR1:如何使用normal_distribution?那么我需要使用一些随机数生成器,并生成如链接所示的数字吗?这是否允许我为变量分配单个值?

如果这条消息有点乱,我很抱歉,但无论如何,谢谢!

好的,到目前为止,我已经理解了二项式并使其工作,现在我需要得到正态分布来工作。。。参考上面的链接,我的情况不同于我只需要一个值,但我想用一个值来调用正态分布。比如"给我2号左右的N(0.1(。

我以为这越来越容易了,但事实并非如此。我想使用boost平分函数Bissection,但问题是有时我只有函数min和max,而平分函数至少需要4个参数。第四个参数是Tol Tol。。这是一种容差,但如果我想找到一个绝对值,我可以把它赋给0吗?或者我需要用3个参数来写我自己的平分线吗?

使用C++TR1生成随机数http://www.johndcook.com/cpp_TR1_random.html

Boost Bissection示例:http://www.cplusplus.com/forum/general/50136/

另请参见Boost TOMS748示例:http://programmingexamples.net/wiki/CPP/Boost/Math/Tools/TOMS748