50686

Моделирование дискретной случайной величины

Лабораторная работа

Информатика, кибернетика и программирование

Цель работы. Практическое освоение алгоритма программной генерации дискретной случайной величины и методов статистической проверки разработанного генератора.

Русский

2014-01-28

267 KB

3 чел.

Лабораторная работа № 3

Моделирование дискретной

случайной величины

Цель работы. Практическое освоение алгоритма программной генерации дискретной случайной величины и методов статистической проверки разработанного генератора.

Clc

clear all

format compact

format long

%--------------------------------------------------

k=input('Enter k=');    % ввод числа членов полинома

     

Enter k=30     

%--------------------------------------------------

vsv=1:k;     

%--------------------------------------------------

dz= vsv.^6.*pi^6;

p= 945./dz;      % ввод полинома

%--------------------------------------------------

cp=cumsum(p);    %сумма полинома

%--------------------------------------------------

figure(1)     

   subplot(2,1,1)    %график плотности распределения

   plot(p,'b.')     

   title('Density')    

  

  subplot(2,1,2)    

   bar(vsv+0.5,cp,1,'or')   % график ф-ции распред.

   title('Function of distribution')   

         

%--------------------------------------------------

n=input('Enter n=');     % кол-во случайных величин

     

Enter n=70     

%--------------------------------------------------

for t=n:-1:1,     

   x(t)=sum(cp<=rand)+1;   % генератор счлуч величин

end      

%--------------------------------------------------

figure(2)     

   plot(x,'m*')     

   title('discrett chance value')  % возможные значения случ вел.

   xlabel('N');     

   ylabel('value');    

%--------------------------------------------------

m=mean(x);     

sko=std(x);     

dissv=sko*sko;    

mt=sum(vsv.*p);    

dissvt=sum(vsv.*vsv.*p)-mt*mt;  % вывод теоретич. и эксп. величин

skot=sqrt(dissvt);    % матожид, дисперсии

     % квадратич. отклонения

Theoretic           Experimental

mean=1.0193        mean=1.03

disp=0.024998        disp=0.049596

sko=0.15811          sko=0.2227      

%--------------------------------------------------

disp('Theoretic           Experimental')

disp(['mean=',num2str(mt),'        mean=',num2str(m)])

disp(['disp=',num2str(dissvt),'        disp=',num2str(dissv)])

disp(['sko=',num2str(skot),'          sko=',num2str(sko)])

%--------------------------------------------------%

g=input('Enter level of reliability:  '); % пераразбиваем карманы для более точного

disp('Theoretic reliable interval')  % рассчета hi2

     

Enter level of reliability:  0.9   

%--------------------------------------------------

z=erfinv(g)*sqrt(2);     %рассчет доверительного интервала(теор)

delta=z*skot/sqrt(n);    

display(['At ',num2str(m-delta),' to ',num2str(m+delta)])

Theoretic reliable interval   

At 0.99901 to 1.061    

%--------------------------------------------------

disp('Experimental reliable interval')  

q=tinv((g+1)/2,n-1);    % рассчет доверительного интервала(практ.)

delta1=q*sko/sqrt(n);    

display(['At ',num2str(m-delta1),' to ',num2str(m+delta1)])

     

Experimental reliable interval  

At 0.98581 to 1.0742    

%--------------------------------------------------

v=hist(x,vsv);     

%--------------------------------------------------

figure(3)     

   bar(vsv,v,1,'m')    

   title('Histogram on k karmanov')  

   ylabel('N*freq');    

   xlabel('n')     

%--------------------------------------------------

gr=input('How many pocket in group:  ');

karm=ceil(k/gr);

zap=zeros(1,karm*gr-k); %nuli

v1=sum(reshape([v zap],gr,karm));  

p1=sum(reshape([p zap],gr,karm))*n;

%--------------------------------------------------

figure(4)     

   xc=(gr+1)/2:gr:k+gr/2;   

   bar(xc,v1,1,'g')    

   title('Histogram on KARM karmanov (Exp-blue, Theor-green)')

   xlabel('Intervals')    

   ylabel('N*freq')    % вывод распределения случ величины

    hold on      

       bar(xc,p1,0.8,'b')    

   hold off     

%--------------------------------------------------

hi2=sum(((v1-p1).^2)./p1);  

stsv=karm-1;     

disp(['hi2 =',num2str(hi2),'         Degrees of freedom=',int2str(stsv)])

 

%--------------------------------------------------

disp(['50% ot   ',num2str(chi2inv(0.25,stsv)),'      do  ',num2str(chi2inv(0.75,stsv))])

disp(['60% ot   ',num2str(chi2inv(0.2,stsv)),'      do  ',num2str(chi2inv(0.8,stsv))])

disp(['70% ot   ',num2str(chi2inv(0.15,stsv)),'      do  ',num2str(chi2inv(0.85,stsv))])

disp(['80% ot   ',num2str(chi2inv(0.10,stsv)),'      do  ',num2str(chi2inv(0.90,stsv))])

Enter n=50

Vvedite k=10000

Theoretic           Experimental

mean=1.0193        mean=1.0173                 Enter level of reliability:  0.95

disp=0.024998        disp=0.024403             Theoretic reliable interval At 1.0142 to 1.0204

sko=0.15811          sko=0.15622                  Experimental reliable interval  At 1.0142 to 1.0204

How many karmanov in group:  2                hi2 =0.2152     Degrees of freedom=24

50% ot   19.0373      do  28.2412                  60% ot   18.0618      do  29.5533

70% ot   16.9686      do  31.1325                  80% ot   15.6587      do  33.1962


 

А также другие работы, которые могут Вас заинтересовать

37125. Столыпинская программа индустриализация страны, результаты её осуществления 19.27 KB
  Ее центральной идеей явились: насильственное разрушение крестьянской земельной общины и создание на ее развалинах новой системы земледелия порождающей господство крепких хозяев. Задачи новой реформы решались не за счет помещичьих земель а путем облегчения покупки земельных угодий и создания условий переселения в Сибирь где были огромные массивы неосвоенных земель. Малоземелье толкало крестьян на конфликты с помещиками обладающими огромными земельными массивами а поэтому столыпинская реформа представляла собой попытку вынести вспыхивающие...