Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext
均勻分佈(Uniform Distribution)

#include <boost/math/distributions/uniform.hpp>

namespace boost{ namespace math{
 template <class RealType = double, 
           class Policy   = policies::policy<> >
 class uniform_distribution;
   
 typedef uniform_distribution<> uniform;

 template <class RealType, class Policy>
 class uniform_distribution
 {
 public:
    typedef RealType value_type;

    uniform_distribution(RealType lower = 0, RealType upper = 1); // 構造函數.
       : m_lower(lower), m_upper(upper) // 缺省為標準均勻分佈(standard uniform distribution).
    // 訪問函數(Accessor functions).
    RealType lower()const;
    RealType upper()const;
 }; // 類 uniform_distribution

}} // namespaces

均勻分佈(uniform distribution),也稱作矩形分佈(rectangular distribution),是概率為常量的概率分佈。

連續均勻分佈(continuous uniform distribution)概率分佈函數(probability density function)為:

f(x) =

在這個庫的實現中:

之所以選擇 x = lower 或 x = upper 是因為這個分佈的統計使用(statistical use) 判定這是最可能的情況: 最大似然法(method of maximum likelihood)使用這個定義。

同樣也有一個離散 均勻分佈

參數 lower 和 upper 可以是任何有限值。

隨機變量(random variate) x 必須也是有限值,並且滿足 lower <= x <= upper。

lower 參數也稱作位置參數(location parameter)那就是 origin of a plot 的位置 ,且(upper - lower) 被稱作 尺度參數(scale parameter)

下面的圖像顯示了當形狀參數(shape parameter)發生變化時概率密度函數(probability density function) PDF 是如何變化的:

類似的,對於函數 CDF:

成員函數
uniform_distribution(RealType lower = 0, RealType upper = 1);

使用下限(lower) lower (a) 和上限(upper) upper (b)構造一個均勻分佈(uniform distribution)

要求:參數 lowerupper 都是有限值;否則如果參數是無限值或 NaN(Not a Number),那麼就會調用定義域錯誤

RealType lower()const;

返回分佈的lower 參數。

RealType upper()const;

返回分佈的upper參數。

非成員訪問函數(Non-member Accessors)

支持所有的分佈都通用的 常見的非成員訪問函數累積分佈函數(Cumulative Distribution Function)概率密度函數(Probability Density Function)分位點(Quantile)故障率函數(Hazard Function)累積危險函數(Cumulative Hazard Function)均值(mean)中位數(median)眾數(mode)方差(variance)標準差(standard deviation)偏斜(skewness)峰態(kurtosis)峰態超越(kurtosis_excess)值域(range) 以及 支持(support)

隨機變量的定義域是任何有限值,但支持的範圍僅是:lower <= x <= upper

精確度

均勻分佈(uniform distribution)使用簡單的算術運算來實現, 因此誤差在1到2個epsilon(10的-5次方)。

實現

在下面的表中: a 是分佈的 lower 參數, b 是 upper 參數,x 是隨機變量,p 是概率,且q = 1-p

函數

實現註解

pdf

使用關係: pdf = 0 對於 x < a, 1 / (b - a) 對於 a <= x <= b, 0 對於 x > b

cdf

使用關係: cdf = 0 對於 x < a, (x - a) / (b - a) 對於 a <= x <= b, 1 對於 x > b

cdf 補集(complement)

使用關係: q = 1 - p, (b - x) / (b - a)

分位點(quantile)

使用關係: x = p * (b - a) + a;

補集的分位點(quantile from the complement)

x = -q * (b - a) + b

均值(mean)

(a + b) / 2

方差(variance)

(b - a) 2 / 12

眾數(mode)

區間中除了a的任何值[a, b]。 ( NaN be better?)

偏斜(skewness)

0

峰態超越(kurtosis excess)

-6/5 = -1.2 exactly. (kurtosis - 3)

峰態(kurtosis)

9/5

參考資料

PrevUpHomeNext