引用他人的整理成果,总结的很好。
用matlab画正态分布图的代码:
clear all;
x=-4:0.1:4
y=normpdf(x,0,1)
figure
plot(x,y)grid
legend('标准正态分布')
结果如下
算出正态分布的alpha分位点。
用~inv函数来实现:
clc
clear all
x =-4:0.1:4
y1 = normpdf(x,0,1)
n=norminv(1-0.01,0,1)
x2 = n:0.1:4
y2 = normpdf(x2,0,1)
plot(x,y1)
hold on
area(x2,y2)
没有rando函数。只有rand和randn1.rand()
生成(0,1)区间上均匀分布的随机变量。基本语法:
rand([M,N,P ...])
生成排列成M*N*P... 多维向量的随机数。如果只写M,则生成M*M矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:
rand(5,1) %生成5个随机数排列的列向量,一般用这种格式
rand(5) %生成5行5列的随机数矩阵
rand([5,4]) %生成一个5行4列的随机数矩阵
生成的随机数大致的分布。
x=rand(100000,1)
hist(x,30)
由此可以看到生成的随机数很符合均匀分布。(视频教程会略提及hist()函数的作用)
2.randn()
生成服从标准正态分布(均值为0,方差为1)的随机数。基本语法和rand()类似。
randn([M,N,P ...])
生成排列成M*N*P... 多维向量的随机数。如果只写M,则生成M*M矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:
randn(5,1) %生成5个随机数排列的列向量,一般用这种格式
randn(5) %生成5行5列的随机数矩阵
randn([5,4]) %生成一个5行4列的随机数矩阵
3、matlab中random函数——通用函数,求各分布的随机数据,其用法:
y = random('norm',A1,A2,A3,m,n)
式中:A1,A2,A3为分布的参数,m,n用来指定随机数的行和列,name的取值有相关的表格来参照。
例:产生一个3行4列均值为2、标准差为0.3的正态分布随机数:
>>y =random('norm',2,0.3,3,4)
y =
2.1613 2.2587 1.8699 2.8308
2.5502 2.0956 2.1028 1.5950
1.3223 1.6077 3.0735 2.9105
正态分布概率密度正态分布函数“NORMDIST”获取。
在这里是以分组边界值为“X”来计算:
Mean=AVERAGE(A:A)(数据算术平均)
Standard_dev=STDEV(A:A)(数据的标准方差)
Cumulative=0(概率密度函数)
1.向下填充
2.在直方图中增加正态分布曲线图
a、在直方图内右键→选择数据→添加→
b、系列名称:选中H1单元格
c、系列值:选中H2:H21
d、确定、确定
3.修整图形
a、在图表区柱形较下方选中正态分布曲线数据,(正态分布密度值和频率数值相比太小了,实在看不清,多试几次,选中后如图,同时正态分布曲线那数数据处于选中状态)。
b、右键→设置数据列格式→系列绘制在→次坐标轴;
关闭,如图
4.更改系列图表类型
a、选中正态分布柱形图→右键→更改系列图表类型
b、选中“拆线图”
c、确定
5.平滑正态分布图
选中正态分布曲线→右键→设置数据列格式→线型→勾选“平滑线”→关闭