我有一个直方图
hist(A, 801)
其当前类似于正常曲线,但在y=1500处具有最大值,在x=0.5处具有平均值。我想让它正常化,所以我尝试了
h = hist(A, 801)
h = h ./ sum(h)
bar(h)
现在我得到了一条法线曲线,在y=.03时最大,但在x=450时平均。
如何在保持相同x范围的情况下降低频率,使总和为1?
A源自
A = walk(50000, 800, .05, 2, .25, 0)
其中
function [X_new] = walk(N_sim, N, mu, T, sigma, X_init)
delt = T/N;
up = sigma*sqrt(delt);
down = -sigma*sqrt(delt);
p = 1./2.*(1.+mu/sigma*sqrt(delt));
X_new = zeros(N_sim,1);
X_new(1:N_sim,1) = X_init;
ptest = zeros(N_sim,1);
for i = 1:N
ptest(:,1) = rand(N_sim,1);
ptest(:,1) = (ptest(:,1) <= p);
X_new(:,1) = X_new(:,1) + ptest(:,1)*up + (1.-ptest(:,1))*down;
end
代码的总和为1。
您可能希望积分等于1(以便与理论pdf进行比较)。在这种情况下:
[h, c] = hist(A, 801); %// c contains bin centers. They are equally spaced
h = h / sum(h) / (c(2)-c(1)); %// normalize to area 1
trapz(c,h) %// compute integral. Should be approximately 1