Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Gamma (and Erlang) Distribution

Boost , Math Toolkit 2.5.0 , Distributions

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
#include <boost/math/distributions/gamma.hpp>
namespace boost{ namespace math{
template <class RealType = double,
          class Policy   = policies::policy<> >
class gamma_distribution
{
public:
   typedef RealType value_type;
   typedef Policy   policy_type;
   gamma_distribution(RealType shape, RealType scale = 1)
   RealType shape()const;
   RealType scale()const;
};
}} // namespaces

Гамма-распределение — это непрерывное распределение вероятностей. Когда параметр формы является целым числом, он называется распределением Эрланга. Он также тесно связан с дистрибутивами Poisson и Chi Squared.

Когда параметр формы имеет целое значение, распределение является распределениемErlang. Поскольку это может быть произведено путем обеспечения того, что параметр формы имеет целое значение >0, распределение Erlang не реализуется отдельно.

[Note] Note

Чтобы избежать потенциальной путаницы с гамма-функциями, это распределение не обеспечивает типдеф:

typedef gamma_distribution<double> gamma;

Вместо этого, если вы хотите двойную точность распределения гамма вы можете написать

boost::math::gamma_distribution<> my_gamma(1, 1);

Для параметра формыkи параметра масштаба θ   он определяется функцией плотности вероятности:

Иногда используется альтернативная формулировка: заданные параметры α  = k и β  = 1/ θ затем распределение может быть определено PDF:

В этой форме обратный параметр шкалы называетсяпараметром скорости.

Обе формы широко используются: в этой библиотеке используется первое определение. Поэтому, чтобы построить гамма-распределение из параметра скорости, вы должны пройти взаимную скорость в качестве параметра шкалы.

Следующие два графика иллюстрируют, как PDF гамма-распределения изменяется по мере изменения параметров:

.Распределение Эрлангато же, что Гамма, но с параметром формы целым числом. Он часто выражается с использованиемскорости, а нешкалыв качестве второго параметра (помните, что скорость является взаимной шкалы).

Внутренне функции, используемые для реализации гамма-распределения, уже оптимизированы для аргументов с малым целым числом, поэтому в целом не должно быть большой потери производительности от использования гамма-распределения, а не выделенного распределения Erlang.

Member Functions
gamma_distribution(RealType shape, RealType scale = 1);

Построение гамма-распределения с формойформыи масштабоммасштаба.

Требует, чтобы параметры формы и масштаба были больше нуля, иначе вызываетdomain_error.

RealType shape()const;

Возвращаетформупараметра этого распределения.

RealType scale()const;

Возвращаетформупараметра этого распределения.

Non-member Accessors

Поддерживаются всеобычные функции доступа, не являющиеся членами, которые являются общими для всех распределений:Кумулятивная функция распределения,Функция плотности вероятности,Количественная,Функция опасности,Кумулятивная функция опасности,среднее,средний,режим,дисперсия,стандартное отклонение,перекос,куртоз,куртоз_избыток,диапазониподдержка.

Доменом случайной переменной является [0,+∞].

Accuracy

Логнормальное распределение реализуется с точки зрения неполных гамма-функцийgamma_pиgamma_qи их обратныхgamma_p_invиgamma_q_inv: Для получения дополнительной информации обратитесь к данным точности для этих функций.

Implementation

В следующей таблицеk— параметр формы распределения, θ   — его параметр шкалы,x— случайная вариация,p— вероятность иq = 1-p.

Функция

Записки об осуществлении

pdf

Используя соотношение: pdf =gamma_p_derivative(k, x / & #952;) / & #952;

cdf

Используя соотношение: p =gamma_p(k, x / & #952;)

cdf

Используя соотношение: q =gamma_q(k, x / & #952;)

квантиль

Используя соотношение: x = & #952; & #160; *gamma_p_inv(k, p)

квантиль от дополнения

Используя соотношение: x = & #952; & #160; *gamma_q_inv(k, p)

означает

Разница

2

Режим

(k-1) & #952; & #160; дляk>1в противном случаеdomain_error

Искажение

2/sqrt(k)

Куртоз

3 + 6/к

Избыток куртоза

6/к


PrevUpHomeNext

Статья Gamma (and Erlang) Distribution раздела Math Toolkit 2.5.0 Distributions может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Distributions ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 20:38:56/0.007504940032959/0