2014-10-02 3 views
3

Я использую сюжет функции плотности вероятности:Теоретическое Заговор плотности вероятности Функция

y = zeros(1,10000); 
for j=1:10000 
    r = rand(100,1); 
    for i=1:100 
     y(j) = y(j) + r(i) - 0.5; 
    end 
    y(j) = y(j)/sqrt(100); 
end 
[n,x] = hist(y,100); 
plot(x,n/10000/diff(x(1:2))); 
hold on; 

Однако я хотел бы также напечатать теоретический тоже. Лучшим я, кажется, удалось:

plot(x,normpdf(x,0,1),'r'); 

Но это не соответствует действительности. Что мне здесь не хватает? Вот как выглядят мои сюжеты. Синий - фактический, а красный - теоретический.

enter image description here

+1

Ваши теоретические сигмы явно неправильно, попробуйте, например, 'участка (х, normpdf (х, 0,1/пи),«г»); ' –

+0

@ClockworkOrkwork, который сработал. Конечно, моя сигма была неправильной ... спасибо! :) Я не могу принять ваш комментарий как ответ, хотя ...;) – codedude

ответ

1

Ваше значений у не приходят из равномерного распределения; Они исходят из распределения суммы i.i.d (независимых одинаково распределенных) случайных величин равномерного распределения со средним 0 и дисперсией 1/12. sum approaches normal distribution как количество суммированных переменных (100 в вашем случае) становится большим. Используя свой код, я был в состоянии достигнуть очень хорошего припадок с normpdf, с правильной дисперсией является 1/12 (сигма квадратный корень из этого числа):

y2=normpdf(x,0,sqrt(1/12)); 
plot(x,y2,'r'); 

Кстати, ваш код MATLAB может быть сделал более простой и более удобный для чтения заменив первые 8 строк с:

r=rand(100,10000)-0.5; 
y=sum(r)/sqrt(100); 
Смежные вопросы