指數分布的隨機數


一、功能

產生指數分布的隨機數。

二、方法簡介

1、產生隨機變量的逆變換法

定理 設 \(F(x)\) 是任一連續的分布函數,如果 $ u \sim U(0, \ 1) $ 且 $ \eta \sim F(x) $。

證明 由於$ u \sim U(0, \ 1) $,則有

\[P(\eta \leqslant x)=P(F^{-1}(u)\leqslant x)=P(u\leqslant F(x))=F(x) \]

所以,\(\eta \sim F(x)\)。定理證畢。

此定理給出了從均勻分布隨機數到給定分布\(F(x)\)的隨機數的變換。根據該變換可產生分布函數為\(F(x)\)的隨機數\(x\),其算法可用下列兩個步驟實現:

  1. 產生均勻分布的隨機數\(u\),即\(u \sim U(0, \ 1)\)
  2. 計算\(x=F^{-1}(u)\)

2、產生指數分布隨機數的方法

指數分布的概率密度函數為

\[f(x)=\left\{\begin{matrix} \frac{1}{ \beta } e^{-\frac{x}{ \beta }} & , x \geqslant 0\\ 0 & , others \end{matrix}\right. \]

其分布函數為

\[F(x)=\left\{\begin{matrix} 1- e^{-\frac{x}{ \beta }} & , x \geqslant 0\\ 0 & , others \end{matrix}\right. \]

指數分布的均值為 $ \beta $ ,方差為 $ \beta^{2} $ 。

根據上述的逆變換法,產生指數分布隨機數的方法為:

  1. 產生均勻分布的隨機數 $ u $ ,即 $ u \sim U(0, \ 1) $ ;
  2. 計算$ x= - \beta ln(u) $。

三、使用說明

指數分布隨機數使用C語言的生成方式如下:

#include "math.h"
#include "uniform.c"

double exponent(double beta, long int a)
{
	double u;
	double x;
	u = uniform();
	X = -beta * log(u);
	return(x);
}

uniform.c文件參見均勻分布的隨機數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM