在MATLAB中如何生成已知均值和方差的服从拉普拉斯分布的随机数呢?

非常感谢,Ineed拉普拉斯的随机数~~... 非常感谢,I need 拉普拉斯的随机数~~ 展开
dukinkin
推荐于2017-09-13 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:998万
展开全部

百度一下和容易得到拉普拉斯分布的性质

其中mu就是均值,而b是标准差除以根号2


逆累计分布函数


我们利用matlab的rand函数很容易生成(0,1)区间内均匀分布的随机数列

将(0,1)区间内均匀分布的随机数列当成是变量p,代入你累积分布函数就可以

得到符合拉普拉斯分布的随机数列。


mu=0;                      %均值

sigma=1;                  %标准差,方差的开平方

b=sigma/sqrt(2);      %根据标准差求相应的b

a=rand(1,10000)-0.5;    %生成(-0.5,0.5)区间内均匀分布的随机数列 (一万个数的行向量);

x=mu-b*sign(a).*log(1-2*abs(a)); %生成符合拉普拉斯分布的随机数列


我们可以用

mean(x)

std(x)

验证,均值应该接近0,标准应该接近1

hist(x,100);

还可以画出x的分布图

是符合均值为0,标准为1的拉普拉斯分布的

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式