50690

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

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

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

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

Русский

2014-01-28

158 KB

12 чел.


Лабораторная работа № 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


 

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

4909. Клиент-серверные взаимодействия на основе сокетов 80 KB
  Клиент-серверные взаимодействия на основе сокетов Рассматривается методика построения Web-приложений на основе сокетных соединений. Приводятся примеры построения клиентских и серверных приложений, реализующих клиент-серверные взаимодействия. Техн...
4910. Основы программирования на языке турбо паскаль 2.87 MB
  Язык программирования Паскаль, разработанный в 1970 г. профессором Швейцарской высшей политехнической школы Никлаусом Виртом специально для целей обучения студентов, быстро завоевал широкую популярность благодаря своей простоте, логичности языковых ...
4911. Разработка программы-эмулятора для заданной гипотетической ЭВМ 2.3 MB
  В настоящее время получило широкое распространение использование микропроцессоров в качестве встроенных элементов систем автоматического управления,в том числе как управляющих блоков периферийных узлов вычислительных комплексов. Функции...
4912. Алгоритмы и основы программирования 651.5 KB
  Алгоритмы и основы программирования. Краткое содержание: Этапы создания компьютерной программы. Понятие алгоритма. Виды алгоритмов. Представление алгоритмов в виде блок-схем. Понятие о программировании. Системы и языки программирования. Запись алгор...
4913. Организация списочных и древовидных структур 16.05 KB
  Организация списочных и древовидных структур. В тех случаях, когда количество данных, обрабатываемых программой, заранее не известно или изменяется в процессе работы программы, использовать жестко определённые типы данных (массивы) не рационально ил...
4914. Конструкторы и деструкторы 17.73 KB
  Конструкторы и деструкторы Специальные методы объекта, которые предназначены для выполнения настроечных действий в момент создания каждого экземпляра объекта. В концепции ООП конструктор должен активизироваться автоматически, т.е....
4915. Работа с файлами в языке паскаль 17.24 KB
  Работа с файлами в языке паскаль. В языке паскаль с файлами можно работать несколькими способами. Все зависит от того, как этот файл открывается. Один и тот же файл можно открывать разными способами. Правда, если открыть нее тем способом, можно проч...
4916. BGI графика 15.2 KB
  BGI графика. В языках программирования специальных средств для создания графических приложений не было. Единственная возможность выводить графику на экран была только при помощи использования функции bios прямого обращения к видимой памяти. Задача д...
4917. Trubo Pascal. Программное управление работой компьютера 35 KB
  В XIX веке английским математиком и инженером Чарльзом Бэббиджем был разработан проект вычислительной машины, которая предназначалась для автоматического проведения длинных цепочек вычислений. Конструкция его аналитической машины включала 50 тысяч д...