概述
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所示
接下来呢
接下来以后有空再码……
码字不易,点个赞再走哈,ღ( ´・ᴗ・` )比心~
最后
以上就是笑点低吐司为你收集整理的Matlab之一行代码生成服从三角分布随机数的全部内容,希望文章能够帮你解决Matlab之一行代码生成服从三角分布随机数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复