贝努利-高斯分布的随机数

一、功能

产生贝努利-高斯分布的随机数。

二、方法简介

贝努利-高斯分布的随机变量(x)是贝努利分布的随机变量(y)与高斯分布的随机变量(z)的乘积,即(x=y*x)。因此,贝努利-高斯分布的随机数可视为:每当贝努利序列中有1出现时,打开高斯随机数发生器,并用其输出代替1。贝努利-高斯分布的均值为(pmu),方差为(p),其中(p)是贝努利分布的参数,(mu)是高斯分布的均值。

在地震勘探信号处理中,常用贝努利-高斯序列描述地下主要层状结构的反射作用。

产生贝努利-高斯分布随机变量(x)的具体算法如下:

产生贝努利分布的随机数(y),即(y sim BN(p))
产生高斯分布的随机数(z),即(z sim N(mu,sigma))
计算(x=y*x)

三、使用说明

是用C语言实现产生贝努利-高斯分布随机数的方法如下:

/************************************
	p       ---贝努利分布参数p
	mean	---高斯分布的均值mu
	sigma	---高斯分布的均方差sigma
	s       ---随机数种子
************************************/
#include "gauss.c"

double bg(double p, double mean, double sigma, long int *s)
{
	double u;
	double x;
	u = uniform(0.0, 1.0, s);
	if(u < p)
		x = gauss(mean, sigma, s);
	else
		x = 0.0
	return(x);
}

gauss.c文件参见正态分布的随机数

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注