function Y=normpdf(X)
syms X
Y = normpdf(X);
int(Y,X,1,inf)
end
对于 N=100 的情况,我需要将正常的 pdf 函数从 1 积分到无穷大,其中 N 是生成的总数。我知道我需要使用 randn() 来生成随机数,但我不知道如何在这种情况下使用它.
function Y=normpdf(X)
syms X
Y = normpdf(X);
int(Y,X,1,inf)
end
对于 N=100 的情况,我需要将正常的 pdf 函数从 1 积分到无穷大,其中 N 是生成的总数。我知道我需要使用 randn() 来生成随机数,但我不知道如何在这种情况下使用它.
您可以N = 100
从t = randn(N, 1);
. 首先,我们用 排序t = sort(t)
,然后是集成的 PDF,即累积密度函数由您的样本用p = (1 : N) / N
for近似,t
正如您在 中看到的那样plot(t, p)
。它将与 很好地重叠hold on, plot(t, normcdf(t), 'r')
。
一种可能更直观的方法是将 x 轴划分为 bin 以估计 CDF:
N = 100; % number of samples
t = randn(N, 1); % random data
x = linspace(-10,10,200); % define bins
estim_cdf = mean(bsxfun(@le, t, x)); % estimate CDF
plot(x, estim_cdf);
hold on
plot(x, normcdf(x), 'r')
请注意,@s.bandara 的解决方案可以解释为这种情况的限制情况,因为箱的数量趋于无穷大,因此它可能会给出更准确的结果。