一、功能
产生对数正态分布的随机数。
二、方法简介
对数正态分布的概率密度函数为
[f(x)=left{egin{matrix}
frac{1}{xsqrt{2pi }sigma }expleft ( - frac{(lnx-mu )^{2}}{2sigma ^{2}}
ight ) & x> 0\
0 & x leqslant 0
end{matrix}
ight.
]
对数正态分布的均值为(e^{mu + sigma ^{2} / 2}),方差为((e^{sigma ^{2}}-1)e^{2mu + sigma ^{2}})。
首先产生正态分布的随机变量(y),然后通过变换(x=e^{y}),产生对数正态分布的随机变量(x),具体方法如下:
- 产生正态分布的随机数(y),即(u sim N(mu , sigma ));
- 计算(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文件参见正态分布的随机数