发布网友 发布时间:2022-04-23 16:48
共1个回答
热心网友 时间:2023-07-29 15:42
你如果把
y=rand(1,3000)
改为
y=rand(1,30000)
同时
x=linspace(ymin,ymax,20);
改为
x=linspace(ymin,ymax,200);
试一下就会发现结果就会变为1
原因是trapz函数是梯形积分公式,而本问题中,各个概率是矩形分布,将矩形变为梯形,肯定会引起误差的
你看一下sum(yy)就会发现,其自身就是1,也就是说yy的值表示的并不是概率密度分布,而是某个区间的百分比yy/区间长度才是概率密度函数
y=rand(1,3000);
ymin=min(y);
ymax=max(y);
x=linspace(ymin,ymax,20);
yy=hist(y,x);
%计算各个区间的个数
yy=yy/length(y)/(x(2)-x(1));
%计算各个区间的个数
bar(x,yy)
%画出概率密度分布图
s=0
;
for
i=2:length(x)
s=[s,trapz(x([1:i]),yy([1:i]))];
end
figure;
plot(x,s,x,s,'*')