Скачиваний:
104
Добавлен:
25.12.2019
Размер:
194.24 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра БТС

отчет

по лабораторной работе №1

по дисциплине «Теория случайных процессов»

Тема: Моделирование непрерывных и дискретных случайных величин

ВАРИАНТ 3

Студенты гр. 7501

Исаков А.О.

Попадьина А.О.

Преподаватель

Пустозеров Е.А.

Санкт-Петербург

2019

  1. Цель работы

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

  1. Теоретические положения

Генератор случайных чисел – математическая модель, позволяющая получить необходимую выборку случайных чисел, которые образуют собой случайную величину.

В работе построили модели генерирования ДСВ и НСВ, которые несколько отличаются друг от друга: для генерации НСВ необходимо использовать метод обратных функций, который заключается в том, что необходимо найти функцию F-1, обратную заданной функции распределения F, после чего подставить в полученную функцию F-1 выборку значений Z, сгенерированных по нормальному закону. На выходе мы получим множество значений F-1(Z), которые будут распределены по заданному закону F.

Для задание ДСВ удобно интервал [0,1] разделить на подынтервалы длинами рi, а затем задать выборку нормированных значений Z, тогда эти значения Z будут задавать вероятность выпадения P для каждого Xi значения заданной ДСВ. Необходимо будет соотнести по значению Z к какому интервалу рi будет относиться наш элемент Xi, затем элемент Xi можно «восстановить» по значению его вероятности.

  1. Функции, использованные в программе

Данная функция реализует интервальную оценку среднего по формуле:

На выходе получают величины INTD и INTH, которые содержат значения верхней и нижней оценки соответственно. На входе подаются величины: D – дисперсия, M – математическое ожидание, St – коэффициент Стьюдента, N – количество элементов в выборке.

Код функции:

function [INTH, INTD] =interval(D,M,St,N)

disp('Интервальная оценка среднего ДСВ');

disp('Верхнее');

INTH=M+St.*D./sqrt(N);

disp(M+St.*D./sqrt(N));

disp('Нижнее');

INTD=M-St.*D./sqrt(N);

disp(M-St.*D./sqrt(N));

disp('Закончил считать интервальную оценка среднего ДСВ');

end

Функция «dispersia» реализует интервальную оценку среднего по формуле:

На выходе получают величины DISPD и DISPH, которые содержат значения верхней и нижней оценки соответственно. На входе подаются величины: SKO – среднее квадратичное отклонение, KSIH – значения распределения кси-квадрат для выборки и соответствующего уровня значимости для верхней оценки, KSID – – значения распределения кси-квадрат для выборки и соответствующего уровня значимости для нижней оценки, N – количество элементов в выборке.

Код функции:

function [DISPH,DISPD] = dispersia(SKO,KSIH,KSID,N)

disp('Интервальная оценка дисперсии ДСВ');

disp('Верхнее');

DISPH=(SKO.*SKO.*(N-1))./KSIH;

disp((SKO.*SKO.*(N-1))./KSIH);

disp('Нижнее');

DISPD=(SKO.*SKO.*(N-1))./KSID;

disp((SKO.*SKO.*(N-1))./KSID);

disp('Закончил считать интервальную оценку дисперсии ДСВ');

end

Функция «SV» используется в коде при генерации ДСВ. Функция позволяет обработать массив r, распределенный по нормальному закону и соотнести этому массиву массив представляющий ДСВ.

Код функции:

function r = SV(r,i1)

P=[0;0.5;0.75;0.875;0.9375;0.9688;0.9844;0.9922;0.9961;0.9981;1];

k=[0;1;2;3;4;5;6;7;8;9];

for j=1:10

for i=1:i1

if (r(1,i)>P(j,1)) && (r(1,i)<P(j+1,1))

r(1,i)=k(j,1);

end

end

end

end

  1. Реализация генератора случайных чисел для НСВ.

clc;

clear all;

close all;

syms x;

syms z;

f=0.5*exp(x/2); % от -беск до 0

f1=0; % от 0 до беск

%ПОЛУЧЕНИЕ ФУНКЦИИ РАСПРЕДЕЛЕНИЯ

F0=int(0.5*exp(x/2),[-inf 0]); % проверка , F0=1

F=int(0.5*exp(x/2),[-inf x]); % функция распределения на интервале от -inf до 0

F1=exp(0/2); % функция распределения на интервале от 0 до inf

%ГРАФИК ФУНКЦИИ РАСПРЕДЕЛЕНИЯ ВЕРОЯТНОСТИ И ФУНКЦИИ ПЛОТНОСТИ ВЕРОЯТНОСТИ

figure('Name','Функция распределения и плотность','NumberTitle','off');

%subplot(2,1,1);

fplot(x,0.5*exp(x/2),[-10 0],'b','Linewidth',2);

hold on;

grid on;

fplot(0,[0 10],'b','Linewidth',2);

hold on

%subplot(2,1,2);

fplot(F,[-10 0],'r','Linewidth',2);

hold on;

grid on;

fplot(F1,[0 10],'r','Linewidth',2);

%ОБРАТНАЯ ФУНКЦИЯ К ФУНКЦИИ РАСПРЕДЕЛЕНИЯ

X=solve(exp(x/2)==z,x);

clear f1 F0 F1

%СОЗДАНИЕ ВЫБОРКИ

z1=rand(50,1);

z2=rand(200,1);

z3=rand(1000,1);

N=2.*log(z1);

N1=2.*log(z2);

N2=2.*log(z3);

LN(1,1)=length(N);

LN(2,1)=length(N1);

LN(3,1)=length(N2);

%Уровни значимости

a(1,1)=0.1;

a(2,1)=0.05;

a(3,1)=0.01;

%Рассчёт кси-квадрат распределения для верхней и нижней интервальной оценки

KSID=zeros(3,3);

KSIH=zeros(3,3);

for j =[1 2 3]

for i =[1 2 3]

KSID(i,j)=chi2inv((1-(a(j,1)/2)),(LN(i,1)-1)); %p=1-a; for a/2 = p=1-a/2 for 1-a/2 p=1-(1-a/2)=a/2;

KSIH(i,j)=chi2inv((a(j,1)/2),(LN(i,1)-1));

end

end

clear z1 z2 z3

%ТОЧЕЧНАЯ ОЦЕНКА СРЕДНЕГО

SR(1,1)=sum(N)/length(N);

SR(2,1)=sum(N1)/length(N1);

SR(3,1)=sum(N2)/length(N2);

%ТОЧЕЧНАЯ ОЦЕНКА ДИСПЕРСИИ

DISP(1,1)=var(N);

DISP(2,1)=var(N1);

DISP(3,1)=var(N2);

%ТОЧЕЧНАЯ ОЦЕНКА СКО

SKO(1,1)=std(N);

SKO(2,1)=std(N1);

SKO(3,1)=std(N2);

%ТОЧЕЧНАЯ ОЦЕНКА МАТОЖИДАНИЯ

MAT(1,1)=mean(N);

MAT(2,1)=mean(N1);

MAT(3,1)=mean(N2);

%Коэффициенты Стьюдента

%альфа 0,1

Student(1,1)=1.671;

Student(2,1)=1.660;

Student(3,1)=1.646;

%альфа 0,05

Student(1,2)=2.010;

Student(2,2)=1.984;

Student(3,2)=1.962;

%альфа 0,01

Student(1,3)=2.726;

Student(2,3)=2.626;

Student(3,3)=2.581;

%Интервальная оцека среднего (обращаемся к функции "interval")

INTH=zeros(3,3);

INTD=zeros(3,3);

for j=[1 2 3]

for i=[1 2 3]

[INTH(i,j), INTD(i,j)]=interval(DISP(i,1),MAT(i,1),Student(i,j),LN(i,1));

end

end

%Интервальная оцека дисперсии (обращаемся к функции "dispersia")

DISPH=zeros(3,3);

DISPD=zeros(3,3);

for j=[1 2 3]

for i=[1 2 3]

[DISPH(i,j), DISPD(i,j)]=dispersia(SKO(i,1),KSIH(i,j),KSID(i,j),LN(i,1));

end

end

%СВЕДЕНИЕ ЗНАЧЕНИЙ В ТАБЛИЦУ

T_p90=table(LN,INTD(:,1),INTH(:,1),DISPD(:,1),DISPH(:,1));

T_p95=table(LN,INTD(:,2),INTH(:,2),DISPD(:,2),DISPH(:,2));

T_p99=table(LN,INTD(:,3),INTH(:,3),DISPD(:,3),DISPH(:,3));

clear i j stD stH student KSIH KSID DISPH DISPD INTH INTD DISP student MAT SKO a

%ПОСТРОЕНИЕ ГИСТОГРАММ

figure('Name','Гистограмма для НСВ','NumberTitle','off');

%формула Стерджесса

k(1,1)=ceil(1+3.322*log10(LN(1,1)));

k(2,1)=ceil(1+3.322*log10(LN(2,1)));

k(3,1)=ceil(1+3.322*log10(LN(3,1)));

subplot(1,3,1)

histogram(N,k(1,1),'Normalization','probability');

hold on;

fplot(x,0.5*exp(x/2),[-12 0]);

subplot(1,3,2)

histogram(N1,k(2,1),'Normalization','probability');

hold on;

fplot(x,0.5*exp(x/2),[-12 0]);

subplot(1,3,3)

histogram(N2,k(3,1),'Normalization','probability');

hold on;

fplot(x,0.5*exp(x/2),[-12 0]);

clear z x

    1. Графики и таблицы программы

Рисунок 1. График распределения вероятности (красным), график плотности распределения вероятности (синим)

Рисунок 2. Гистограммы, описывающие закон распределения НСВ с графиком теоретической плотности вероятности

Таблицы интервальных оценок среднего и дисперсии для выборок:

Для

Размер выборки

Нижняя граница оценки среднего

Верхняя граница оценки среднего

Нижняя граница интервальной оценки дисперсии

Нижняя граница интервальной оценки дисперсии

50

1.0979

1.5021

1.5451

3.0209

200

0.7813

0.9287

1.3344

1.8570

1000

0.9139

0.9941

1.7491

2.0266

Для

Размер выборки

Нижняя граница оценки среднего

Верхняя граница оценки среднего

Нижняя граница интервальной оценки дисперсии

Нижняя граница интервальной оценки дисперсии

50

0.7938

1.8062

1.4596

3.2483

200

0.6705

1.0395

1.2952

1.9205

1000

0.8562

1.0518

1.7252

2.0562

Для

Размер выборки

Нижняя граница оценки среднего

Верхняя граница оценки среднего

Нижняя граница интервальной оценки дисперсии

Нижняя граница интервальной оценки дисперсии

50

0.4726

2.1274

1.3102

3.7616

200

0.5612

1.1488

1.2230

2.0532

1000

0.8006

1.1074

1.6798

2.1156

  1. Реализация генератора случайных чисел для ДСВ.

clc;

clear all;

close all;

k=0:1:29;

p=2.^(-k-1);

p1=zeros(1,30);

for a=1:1:30

p1(1,a)=2^(-k(1,a)-1);

if (sum(p1)>0.999) && (sum(p1)<0.9995)

disp('Выберем лишь несколько элементов');

disp(a-1);

end

end

clear p1 a k p

a(1,1)=0.1;

a(2,1)=0.05;

a(3,1)=0.01;

N=[50; 200; 1000;];

KSID=zeros(3,3);

KSIH=zeros(3,3);

for j =[1 2 3]

for i =[1 2 3]

KSID(i,j)=chi2inv((1-(a(j,1)/2)),(N(i,1)-1)); %p=1-a; for a/2 = p=1-a/2 for 1-a/2 p=1-(1-a/2)=a/2;

KSIH(i,j)=chi2inv((a(j,1)/2),(N(i,1)-1));

end

end

r=rand(1,50);

i1=50;

r50=SV(r,i1); %Наша ДСВ

r=rand(1,200);

i1=200;

r200=SV(r,i1); %Наша ДСВ

r=rand(1,1000);

i1=1000;

r1000=SV(r,i1); %Наша ДСВ

clear r i1

M(1,1)=mean(r50);

M(2,1)=mean(r200);

M(3,1)=mean(r1000);

S(1,1)=std(r50);

S(2,1)=std(r200);

S(3,1)=std(r1000);

D(1,1)=var(r50);

D(2,1)=var(r200);

D(3,1)=var(r1000);

%Коэффициенты для альфа 0.5

St(1,1)=0.683;

St(2,1)=0.667;

St(3,1)=0.675;

%Коэффициенты для альфа 0.1

St(1,2)=1.711;

St(2,2)=1.671;

St(3,2)=1.646;

%Коэффициенты для альфа 0.01

St(1,3)=2.797;

St(2,3)=2.660;

St(3,3)=2.581;

INTH=zeros(3,3);

INTD=zeros(3,3);

%Интервальная оцека среднего

for j=[1 2 3]

for i=[1 2 3]

[INTH(i,j), INTD(i,j)]=interval(D(i,1),M(i,1),St(i,j),N(i,1));

end

end

%Интервальная оцека дисперсии

DISPH=zeros(3,3);

DISPD=zeros(3,3);

for j=[1 2 3]

for i=[1 2 3]

[DISPH(i,j), DISPD(i,j)]=dispersia(S(i,1),KSIH(i,j),KSID(i,j),N(i,1));

end

end

%СВЕДЕНИЕ ЗНАЧЕНИЙ В ТАБЛИЦУ

T_p90=table(N,INTD(:,1),INTH(:,1),DISPD(:,1),DISPH(:,1));

T_p95=table(N,INTD(:,2),INTH(:,2),DISPD(:,2),DISPH(:,2));

T_p99=table(N,INTD(:,3),INTH(:,3),DISPD(:,3),DISPH(:,3));

%Гистограммы

figure('Name','Гистограммы','NumberTitle','off');

subplot(2,2,1);

h=0:8;

p2=2.^(-h-1);

bar(h,p2);

title('Теоретические данные');

subplot(2,2,2);

histogram(r50,'Normalization','Probability');

title('Пр. результаты для 50 элементов');

set (gca, 'Ylim', [0 0.6]);

subplot(2,2,3);

histogram(r200,'Normalization','Probability');

title('Пр. результаты для 200 элементов');

set (gca, 'Ylim', [0 0.6]);

subplot(2,2,4);

histogram(r1000,'Normalization','Probability');

title('Пр. результаты для 1000 элементов');

set (gca, 'Ylim', [0 0.6]);

clear h p2

  1. Графики и таблицы программы

Таблицы интервальных оценок среднего и дисперсии для выборок:

Для

Размер выборки

Нижняя граница оценки среднего

Верхняя граница оценки среднего

Нижняя граница интервальной оценки дисперсии

Нижняя граница интервальной оценки дисперсии

50

1.0979

1.5021

1.5451

3.0209

200

0.7813

0.9287

1.3344

1.8570

1000

0.9139

0.9941

1.7491

2.0266

Для

Размер выборки

Нижняя граница оценки среднего

Верхняя граница оценки среднего

Нижняя граница интервальной оценки дисперсии

Нижняя граница интервальной оценки дисперсии

50

0.7938

1.8062

1.4596

3.2483

200

0.6705

1.0395

1.2952

1.9205

1000

0.8562

1.0518

1.7252

2.0562

Для

Размер выборки

Нижняя граница оценки среднего

Верхняя граница оценки среднего

Нижняя граница интервальной оценки дисперсии

Нижняя граница интервальной оценки дисперсии

50

0.4726

2.1274

1.3102

3.7616

200

0.5612

1.1488

1.2230

2.0532

1000

0.8006

1.1074

1.6798

2.1156

Рисунок 3. Гистограммы, описывающие закон распределения ДСВ: теоретический закон распределения и практические распределения, которые получились при генерации ДСВ

  1. Выводы

В программе мы реализовали математический аппарат генерации случайных величин. Для непрерывной случайной величины (НСВ) и дискретной случайной величины (ДСВ) подход к генерации несколько отличался, но суть состояла в том, что СВ, распределенные по заданному закону получали косвенно. Для НСВ воспользовались методом обратных функций: выразили аргумент функции распределения и подставили в качестве значения функции сгенерированную нормально распределённую величину.

Для генерации ДСВ использовали нормированную, распределенную по нормальному закону выборку значений, которая задавала значение вероятности рi, это значение соотносили с значением вероятности рк, которое принимает заданная ДСВ. По значениям рк задали выборку искомой ДСВ.

Для ряда сгенерированных выборок были рассчитаны точечные оценки дисперсии, матожидания и СКО и интервальные оценки среднего и дисперсии для различных уровней значимости, данные сведены в таблицу и указаны в отчете.

Для величин были построены гистограммы распределения. Интервалы определяли по формуле Стерджесса. На представленных в отчёте графиках видно, что распределение сгенерированной СВ соответствует теоретическим распределениям величин по заданному закону.

Соседние файлы в папке Лаба 1 (Моделирование непрерывных и дискретных случайных величин)