對數正態分布的隨機數


一、功能

產生對數正態分布的隨機數。

二、方法簡介

對數正態分布的概率密度函數為

\[f(x)=\left\{\begin{matrix} \frac{1}{x\sqrt{2\pi }\sigma }exp\left ( - \frac{(lnx-\mu )^{2}}{2\sigma ^{2}} \right ) & x> 0\\ 0 & x \leqslant 0 \end{matrix}\right. \]

對數正態分布的均值為\(e^{\mu + \sigma ^{2} / 2}\),方差為\((e^{\sigma ^{2}}-1)e^{2\mu + \sigma ^{2}}\)

首先產生正態分布的隨機變量\(y\),然后通過變換\(x=e^{y}\),產生對數正態分布的隨機變量\(x\),具體方法如下:

  1. 產生正態分布的隨機數\(y\),即\(u \sim N(\mu , \sigma )\)
  2. 計算\(x=e^{y}\)

三、使用說明

是用C語言實現產生對數正態分布分布隨機數的方法如下:

/************************************
	u		---對數正態分布的參數mu
	sigma	---對數正態分布的參數sigma
	s		---隨機數種子
************************************/
#include "math.h"
#include "gauss.c"

double lognorm(double u, double sigma, long int *s)
{
	double x;
	double y;

	y = gauss(u, sigma, s);
	x = exp(y);
	return(x);
}

gauss.c文件參見正態分布的隨機數


免責聲明!

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



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