我试图将高斯分布划分为等概率部分。我使用以下代码:
function main
mu=100;
sigma=2;
n=100;
k=3;
samp = mu + sigma.*randi([20,100],1,n);
%hist(samp)
v=optim_m2(samp,k)
end
function v=optim_m(d,k)
v=-inf;
mu=mean(d);
sigma=var(d);
for i=1:k
[x, ~] = fminbnd(@(x) (0.5*( 1+erf( (x-mu)/(((sigma^2) )^0.5 ) ) ) -i/k )^2 ,mu-3*sigma,mu+3*sigma);
v=[v,x];
end
end
我得到一些非常奇怪的结果,例如负值等等。如果我使用相同的功能但自然数较少,一切似乎都能正常工作。 PS。我是NOOB所以... :)不要判断太苛刻
答案 0 :(得分:1)
如果您可以使用Matlab命令,则只需使用:
boundaries = norminv(1/8:1/8:7/8,mu,sigma);