对数正态分布的随机数

一、功能

产生对数正态分布的随机数。

二、方法简介

对数正态分布的概率密度函数为

[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),具体方法如下:

  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文件参见正态分布的随机数

原文地址:https://www.cnblogs.com/liam-ji/p/11674212.html