Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Моделирование ВТ 1

.docx
Скачиваний:
9
Добавлен:
05.03.2020
Размер:
211.14 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ОБНИНСКИЙ ИНСТИТУТ АТОМНОЙ ЭНЕРГЕТИКИ

Федерального государственного автономного образовательного учреждения

Высшего профессионального образования

« Национальный исследовательский ядерный университет «МИФИ»

(ИАТЭ НИЯУ МИФИ)

Отчет Лабораторная работа №1

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

Работу выполнил

студент группы ИВТ-Б17

Петровский В.Б.

Работу проверил:

Перегуда А.И.

Обнинск, 2019 г.

Цель работы:

Сгенерировать выборку из случайных величин с заданным законом распределения и проверить ее на соответствие этому распределению.

Теоретическая часть.

В данной работе будем рассматривать распределение Чамперноуна.

Ниже приведем все формулы, которые нам будут нужны для вывода графиков (плотность вероятности, распределение вероятности, эмпирической функции), а также формулы необходимые для расчета основных параметров распределения, которые мы должны будем реализовать в нашей программе. Также ниже будет приведен алгоритм, используемый для построения гистограммы и проверки на соответствии выборки распределению.

Алгоритм построения гистограммы.

а) Сортировка выборки случайных чисел по возрастанию;

б) Определяем сколько в выборки не повторяющихся чисел, для каждого такого числа записываем число его повторений в выборке;

в) определяем количество интервалов(L) по формуле:

, где N - объем выборки.

г) Определяем размах выборки(R), как разницу максимального и минимального случайного числа в выборке;

д) Определяем длину интервала(h) по формуле: ;

е) Для каждого интервала определяем количество сгенерированных чисел попавших в интервал;

ж) Определяем относительные частоты для каждого интервала, как отношение количества попавших в этот интервал сгенерированных чисел к объему выборки.

Код программы.

clear; clc;close all

N=100;

u=0;

a=1.57;

i=1;

while i<=100

y=u+log(tan(pi*rand/2))/a;

Xi(i)=y;

Yi=sort(Xi);

i=i+1;

end

p=0;

for i = 1:1:length(Yi)

if Yi~=Yi-1

ki(i)=p+1;

end

end

k=length(ki);

disp(k);

lp=1+3.222*log10(N);

l=ceil(lp);

disp(l);

R=max(Yi)-min(Yi);

disp(R);

H=R/l;

disp(H);

Mx=mean(Yi);

disp(Mx);

Dx=var(Yi);

disp(Dx);

p=[0.9;0.95;0.99;0.999];

q=1-p;

Mxd=[];

for k=1:length(q)

[hh,pp,ci]=ttest(Xi,Mx,q(k));

Mxd=[Mxd [p(k); ci'] ];

end

('Доверительные интервалы для мат. ожидания')

fprintf('p=%8.4f: %9.6f<=Mx<=%9.6f\n', Mxd)

fx=length(Xi)-1;

chi2l=chi2inv(1-q/2,fx);

chi2r=chi2inv(q/2,fx);

Dxd=[p, fx*Dx./chi2l, fx*Dx./chi2r]';

disp('Доверительные интервалы для дисперсии')

fprintf('p=%8.4f: %9.6f<=Dx<=%9.6f\n', Dxd)

m=median(Xi);

disp('Медиана')

disp(m);

moda=mode(Xi);

disp('Мода')

disp(moda);

st=std(Xi);

disp('Стандартное отклонение')

disp(st);

SrO=0.5611*st;

disp('Среднее отклонение')

disp(SrO);

disp('Ассиметрия: Sk = 0')

disp('Эксцесс:Ex = 2')

ik=1;

k1=min(Yi);

freqn=zeros(1,l);

for i=1:l

freqn(ik)=freqn(ik)+sum((Yi>=k1)&(Yi<=k1+H));

k1=min(Yi)+H*i;

ik=ik+1;

end

disp('Частота')

disp(freqn)

relfreq=freqn/N;

re=sum(relfreq);

disp('Относительная частота');

disp(relfreq)

bar(relfreq,re);

title(['Гистрограмма'])

figure(2)

q=sort(freqn);

i=1:8;

z=sum(freqn(i));

it=1;

for i=1:8

yt(it)=sum(q(it)/z);

it=it+1;

end

[yt,l] = ecdf(yt);

stairs(yt,l);

title(['Эмпирическая функция'])

figure(3)

[f, xi] = ksdensity(Xi);

plot(xi, f, 'r');

title(['Плотность вероятности с параметрами a=', num2str(u), ' b=', num2str(a)])

figure(4)

n = u*10-50;

for i=1:101

teorpdf(i)=a/(pi*cosh(a*(n/10-u)));

n=n+1;

end

min = u-5;

max = u+5;

plot(min:0.1:max,teorpdf)

title(['Теоретическая плотность с параметрами a=', num2str(u), ' b=', num2str(a)])

figure(5)

ecdf(Xi);

title(['Функция распределения от a=', num2str(u), ' b=', num2str(a)])

figure(6)

n=u*10-50;

for i=1:101

teorcdf(i)=2*(atan(exp(a*(n/10-u))))/pi;

n=n+1;

end

min = u-5;

max = u+5;

plot(min:0.1:max,teorcdf)

title(['Теор Функция распределения от a=', num2str(u), ' b=', num2str(a)])

k=kstest2(teorpdf,yt);

if k==1

disp('Выборка соответствует теории')

else

disp('Выборка не соотвествует теории')

end

Результаты работы программы.

Приведем результаты работы программы для объема выборки N=100, a=1.57, u=0.

1) График плотности распределения

2)График функции распределения

3)График эмпирической функции

4) Гистограмма

5) Результаты вычисления основных параметров распределения, работы алгоритма построения гистограммы.

Вывод.

Формула для генерации случайных чисел по закону распределния Чамперноуна, используемая в нашей программе верна.

Соседние файлы в предмете Моделирование систем