Matlab之一行代码生成服从三角分布随机数

Matlab之一行代码生成服从三角分布随机数

0 先上干货
代码长这样:

x1 = random(makedist('Triangular','a',3,'b',4,'c',5),1,10000) %生成10000个服从下限为3,上限为5,众数为4(最可能出现的数)

当然这里面的makedist函数还有别的用法,可以生成正态分布,均匀分布等等。如

x2 = makedist('Normal','mu',75,'sigma',10); %服从均值为75,方差为10的正态分布
x3 = makedist('Uniform','lower',-4,'upper',2); %服从下限为-4,上限为2的均匀分布

上段代码,mu和sigma缺省的话为标准正态分布,mu为0,sigma为1。

1 三角分布的概率密度函数
首先要介绍一下什么是三角分布函数,顾名思义,三角分布,三角,三角形。好了,介绍完毕,可以划走了……
楼主当时的笔记画了这么一幅图,方便记忆,只记住一个三角形就可以了,如图1所示。
在这里插入图片描述
就是随机数以a为下限,c为上限,b为最可能出现的数(众数),而b出现的概率密度值接近2/(c-a)。如果a为3,c为5,那b的概率密度值是否接近1呢?答案在图2中哦。
2 应用范围

比如(1)只有优先采样数据的人口信息
(2)收集成本高而缺少采样数据的场合

3 画图检验

以ksdensity函数来实现,顺便把上述正态分布和均匀分布的概率密度函数也画出来。

clc
clear
[f1,x1] = ksdensity(random(makedist('Triangular','a',3,'b',4,'c',5),1,10000));
[f2,x2] = ksdensity(random(makedist('Normal','mu',75,'sigma',10),1,10000));%服从均值为75,方差为10的正态分布
[f3,x3] = ksdensity(random(makedist('Uniform','lower',-4,'upper',2),1,10000));%服从下限为-4,上限为2的均匀分布
subplot(1,3,1)
plot(x1,f1)
subplot(1,3,2)
plot(x2,f2)
subplot(1,3,3)
plot(x3,f3)

运行之后如图2所示
图2 三种分布概率密度图
接下来呢
接下来以后有空再码……
码字不易,点个赞再走哈,ღ( ´・ᴗ・` )比心~

  • 21
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值