![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Distributions are ObjectsBoost , Math Toolkit 2.5.0 , Overview of Distributions
|
![]() |
Tip |
---|---|
Если вы знакомы с библиотеками статистики, использующими функции, и «Распределения как объекты» кажутся чуждыми, см. сравнение с другими библиотеками статистики. |
Создание классов распределения делает две вещи:
Хотя классы распределения в этой библиотеке являются шаблонами, на типе double в основном берётся обычное название дистрибутива (за исключением случаев, когда происходит столкновение с функцией того же имени: бета и гамма, в этом случае использование аргументов шаблона по умолчанию - RealType = double
- почти так же удобно). Вероятно, 95% применений покрыты этими типами:
// using namespace boost::math; // Avoid potential ambiguity with names in std <random> // Safer to declare specific functions with using statement(s): using boost::math::beta_distribution; using boost::math::binomial_distribution; using boost::math::students_t; // Construct a students_t distribution with 4 degrees of freedom: students_t d1(4); // Construct a double-precision beta distribution // with parameters a = 10, b = 20 beta_distribution<> d2(10, 20); // Note: _distribution<> suffix !
Если вам нужно использовать дистрибутивы с типом, отличным от double
, то вы можете непосредственно инстанцировать шаблон: имена шаблонов те же, что и double
typedef, но с _distribution
, например: Students t Distribution или Binomial Distribution:
// Construct a students_t distribution, of float type, // with 4 degrees of freedom: students_t_distribution<float> d3(4); // Construct a binomial distribution, of long double type, // with probability of success 0.3 // and 20 trials in total: binomial_distribution<long double> d4(20, 0.3);
К параметрам, передаваемым дистрибутивам, можно получить доступ через функции приемника:
d1.degrees_of_freedom(); // returns 4.0
Все это хорошо и хорошо, но пока не очень полезно. Мы часто хотим иметь возможность вычислять функции кумулятивного распределения и квантиле и т.д. для этих распределений.
Статья Distributions are Objects раздела Math Toolkit 2.5.0 Overview of Distributions может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Overview of Distributions ::
реклама |