【发布时间】:2012-03-03 18:08:38
【问题描述】:
我曾尝试在 Matlab 中生成三角概率分布,但没有成功。我使用了http://en.wikipedia.org/wiki/Triangular_distribution的公式。
n = 10000000;
a = 0.2;
b = 0.7;
c = 0.5;
u = sqrt(rand(n, 1));
x = zeros(n, 1);
for i = 1:n
U = u(i);
if U < (c-a)/(b-a)
X = a + sqrt(U*(b-a)*(c-a));
else
X = b - sqrt((1-U)*(b-a)*(b-c));
end
x(i) = X;
end
hist(x, 100);
直方图如下所示:
在我看来并不像一个三角形。有什么问题?我在滥用rand(n)吗?
【问题讨论】:
标签: matlab random distribution probability