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

Triangular 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/triangular.hpp>
namespace boost{ namespace math{
 template <class RealType = double,
           class Policy   = policies::policy<> >
 class triangular_distribution;
 typedef triangular_distribution<> triangular;
 template <class RealType, class Policy>
 class triangular_distribution
 {
 public:
    typedef RealType value_type;
    typedef Policy   policy_type;
    triangular_distribution(RealType lower = -1, RealType mode = 0) RealType upper = 1); // Constructor.
       : m_lower(lower), m_mode(mode), m_upper(upper) // Default is -1, 0, +1 symmetric triangular distribution.
    // Accessor functions.
    RealType lower()const;
    RealType mode()const;
    RealType upper()const;
 }; // class triangular_distribution
}} // namespaces

треугольное распределениепредставляет собойнепрерывноевероятностное распределениес нижним пределом a,режимом cи верхним пределом b.

Треугольное распределение часто используется там, где распределение только смутно известно, но, какравномерное распределение, верхние и пределы «известны», но также добавляется «лучшее предположение», режим или центральная точка. Он был рекомендован в качествепрокси для бета-распределения.Распределение используется при принятии бизнес-решений и планировании проектов.

треугольное распределениеявляется распределением сфункцией плотности вероятности:

   f(x) =

  • 2(x-a)/(b-a) (c-a) для a<= x<= c
  • 2(b-x)/(b-a)(b-c) для c< x<= b

Параметрa(нижний) может быть любым конечным значением. Параметрb(верхний) может быть любым конечным значением >a (низший). Параметрc(режим) a<= c<= b. Это наиболее вероятная ценность.

случайная вариацияx также должна быть конечной и поддерживаться ниже< = x< = выше.

Треугольное распределение может быть уместным, когда предположение о нормальном распределении не обосновано, поскольку неопределенность вызвана округлением и квантованием от аналогового к цифровому преобразованию. Известны верхние и нижние пределы, а наиболее вероятное значение находится на полпути.

Распределение упрощается, когда «лучшим предположением» является либо нижний, либо верхний предел — угловой треугольник 90 градусов. Треугольное распределение 001, которое выражает оценку того, что наименьшее значение является наиболее вероятным; например, вы считаете, что указанная дата доставки на следующий день наиболее вероятна (зная, что более быстрая доставка невозможна - почтальон приходит только один раз в день), и что более длительные задержки менее вероятны, и считается, что доставка никогда не занимает больше вашего верхнего предела.

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

кумулятивная функция распределения

Member Functions
triangular_distribution(RealType lower = 0, RealType mode = 0 RealType upper = 1);

Построенотреугольное распределениес нижнимнижним(а) и верхнимверхним(b).

Требуется, чтобынижний,режимиверхниепараметры были конечными, иначе вызовыdomain_error.

[Warning] Warning

Эти конструкторы немного отличаются от аналогов, предоставленныхWolfram MathWorld.Треугольное распределение, где

<TriangularDistribution[{min, max}]>представляет собойсимметричноетреугольное статистическое распределение, дающее значения между мин и макс.
<TriangularDistribution[]>представляет собойсимметричноетреугольное статистическое распределение, дающее значения между 0 и 1.
<TriangularDistribution[{min, max}, c]>представляет собой треугольное распределение с режимом при c (обычноасимметрично).

Так, например, для вычисления дисперсии с помощьюWolfram Alpha, использовать<N[variance[TriangularDistribution{1, +2}], 50]>

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

RealType lower()const;

Возвращаетнижнийпараметр этого распределения (по умолчанию -1).

RealType mode()const;

Возвращаетрежимпараметр этого распределения (по умолчанию 0).

RealType upper()const;

Возвращаетверхнийпараметр этого распределения (по умолчанию +1).

Non-member Accessors

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

Домен случайной переменной \lowerto \upper, а поддерживаемый диапазон — нижний<= x<= верхний.

Accuracy

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

Implementation

В следующей таблице a являетсянижнимпараметром распределения, c являетсярежимомпараметром, b являетсяверхнимпараметром,xявляется случайной вариацией,pявляется вероятностью иq = 1-p.

Функция

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

pdf

Используя соотношение: pdf = 0 для x< режим, 2(x-a)/(b-a)(c-a) еще 2*(b-x)/(b-a)(b-c))

cdf

Используя соотношение: cdf = 0 для x<режим (x-a)2/(b-a)(c-a)) прочее 1 - (b-x)2/(b-a)(b-c))

cdf

Используя соотношение: q = 1 - p

квантиль

пусть p0 = (c-a)/(b-a) точка перегиба на cdf, затем дается вероятность p и q = 1-p:

x = sqrt((b-a)(c-a)p) + a; для p< p0

x = c; для p == p0

x = b - sqrt((b-a)(b-c)q); для p >p0

(см./boost/math/distributions/triangular.hppдля деталей).

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

Как quantile (см./boost/math/distributions/triangular.hppдля деталей.)

означает

(a + b + 3) / 3

Разница

(a2+b2+c2- ab - ac - bc)/18

Режим

c

Косоглазие

(подробнее см./boost/math/distributions/triangular.hpp).

Куртоз

12/5

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

-3/5

Некоторые известные хорошие значения теста были получены с использованиемWolfram Alpha.

References

PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 13:42:42/0.0053539276123047/0