50690

Моделирование потока Пуассона

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

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

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

Русский

2014-01-28

158 KB

15 чел.


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

Моделирование потока Пуассона

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

clc

clear all

format compact

format long

W1=1;W2=48; %интервал моделирования

la=1.5;

N=100;

%количество экспериментов

amo=input('Enter quantity of ехperiments: ');

t=ones(1,N);

t(1)=0;

i=2;

delta=la*(W2-W1)

l0=exp(-delta);

l=[1,(ones(1,N)*delta)./(1:N)];

for k=N+1:-1:1

   P(k)=prod(l(1:k))*l0;

   

end;

%стационарный поток

mas_of_n=rand(1,amo);

%---------массив экспериментальных значений n----

for o=1:amo

i=2;  

t(1)=W1;

%----------экспериментальное вычисление n-----------

 while t(i-1)<W2

  z=rand;

  t(i)=t(i-1)-log(z)/la; %рекуррентное вычисление t

  i=i+1;

end

%i-3 - это и есть n

mas_of_n(o)=i-3;

end;

%+++++++++++++++ сам поток ++++++++++++++++++

figure(1)

%---v t realiz puas potoka---

t=t(2:i-3);

h=ones(2,i-3);

plot(t,t,'*');%,h,'*');

title('Puasson''s stream');

xlabel('t - time');

d=rand(1,N+1);

for i=1:N+1

   d(i)=i;

 end

%------------формирование nu-------------

%-----массив экспериментальных количеств--

%---всего amo экспериментов-----

E=hist(mas_of_n,d);

E=E/amo;%---частоты----

%%%----sum(E)=1---sum(P)=1----

%-----E - экспериментальный поток----

%-----P - теоретический поток--------

%-------(частоты)--------------------

%+++++++++++++++ plotnosti ver +++++++++

figure (2)

bar(d,E,1,'b')

hold on

bar(d,P,0.1,'k')

title('Density of distribution. Blue - experimentel, Black - theoretic')

xlabel('n - amount of events')

ylabel('p - probablity')

hold off

%+++++++++++++++ Массив экспериметнов ++++++++++++

figure (3)

plot(mas_of_n,'*r');

title('Array of amounts');

xlabel('Number of experiment');

ylabel('Amount of events');

%+++++++++++++++ exp i teor hist++

figure (4)

mi=min(mas_of_n);

ma=max(mas_of_n);

hist(mas_of_n,(mi:ma));

title('Histograms')

xlabel('Amount of events(theor)');

ylabel('Amount of experiments');

hold on

bar((mi:ma),P((mi+1):(ma+1))*amo,0.6,'r');

hold off

k=N+1;

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

%new value of karmanov

karm=ceil(k/gr);%----round value-----

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

%--------merge in groups---------

%--------sum is the row vector---

E1=sum(reshape([E zap],gr,karm))*amo;%-------resize of v--

P1=sum(reshape([P zap],gr,karm))*amo;%-------resize of p--

%---попробуем просуммировать----

o=1;h=0;

while E1(o)<5

   h=h+E1(o);

   o=o+1;

end;

E1(o)=E1(o)+h;

o2=size(E1);

o1=o2(2);

h=0;

while E1(o1)<5

   h=h+E1(o1);

   o1=o1-1;

end;

E1(o1)=E1(o1)+h;

h=0;

for i=1:o-1,

   h=h+P1(i);

   P1(i)=0;

end;

P1(o)=P1(o)+h;

h=0;

for i=o2(2):-1:o1+1,

  h=h+P1(i);

  P1(i)=0;

end;

P1(o1)=P1(o1)+h;

figure(5)

xc=(gr+1)/2:gr:k+gr/2;%-----centers of bars-------

bar(xc(o:o1),E1(o:o1),1,'g')

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

xlabel('Intervals')

ylabel('N*freq')

hold on

bar(xc(o:o1),P1(o:o1),0.8,'b')

hold off

PP=ones(1,o1-o+1);

EE=PP;

for i=o:o1,

   PP(i-o+1)=P1(i);

   EE(i-o+1)=E1(i);

end;    

   

hi2=sum(((EE-PP).^2)./PP);

stsv=o1-o;

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))])

========================================

результат: хи квадрат= 2.021;  delta =70.5


 

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

23357. ИЗУЧЕНИЕ ЗАКОНОВ ПОЛЯРИЗАЦИИ СВЕТА 107.5 KB
  Направление плоскости поляризации можно изменить и контролировать с помощью лимба на поляризаторе. Снять с оптической скамьи анализатор и поляризатор. Поставить поляризатор и измерить фототок обусловленный плоскополяризованным светом ip .
23358. СЛОЖЕНИЕ ОДНОНАПРАВЛЕННЫХ И ВЗАИМНОПЕРПЕНДИКУЛЯРНЫХ КОЛЕБАНИЙ 383.5 KB
  СЛОЖЕНИЕ ОДНОНАПРАВЛЕННЫХ И ВЗАИМНОПЕРПЕНДИКУЛЯРНЫХ КОЛЕБАНИЙ. Цель работы: изучение эффектов возникающих при сложения однонаправленных и взаимно перпендикулярных гармонических колебаний. Представим каждое из колебаний как проекцию на ось X вектора длиной равной амплитуде вращающегося по часовой стрелке с угловой скоростью  рис. Тогда результат сложения колебаний можно представить как проекцию суммарного вектора .
23359. Изучение влияние емкости конденсатора на период колебаний в электрическом контуре 179.5 KB
  Основы теории Рассмотрим процесс возникновения колебаний в идеальном электрическом контуре осцилляторе рис. Таким образом можно сделать вывод что частота гармонических колебаний в идеальном электрическом контуре равна корню квадратному из коэффициента при заряде q формула 2: При этом период колебаний равен формула Томсона: 6 Связь периода колебаний с величинами С и L качественно объясняется следующим образом. С увеличением...
23361. Списки та стрічки в Python 3.02 MB
  3 Дії зі списками 1.4 Методи роботи зі списками 1.1 Дожина списка 1.
23362. Функції в мові Пітон 300.73 KB
  Київ 2013 Завдання: Вивчення засобів роботи і принципів організації функції в мові Пітон.1 Функції параметри аргументи 1.2 Поверненне значення функції 1.
23363. Кортежі і словники 277.75 KB
  1 Загальні відомості 1.1 Загальні відомості 2.
23364. Робота с файлами 133.75 KB
  2 Порядок роботи с файлами 3. Методи роботи с файлом 4. Повний цикл роботи читаннязапису файла Індивідуальне завдання 1. Висновок: В даній лабораторній роботі я навчився працювати зі списками з методами роботи з файлами з режимами роботи с файлами.
23365. Юнікод 163.23 KB
  Робота с кодуванням в мові Пітон.2 Робота с Юнікодом в ручному режимі 2.3 Спрощена робота в Юнікод Індивідуальне завдання 1.