mod3_ibragimova
.docxГУАП
КАФЕДРА № 41
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
Ассистент |
|
|
|
Григорьев Е.К. |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №1 |
- |
по курсу: МОДЕЛИРОВАНИЕ |
|
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
4018k |
|
|
|
Р.М. Ибрагимова |
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2023
Цель работы:
Получить навыки генерации случайных величин с заданным законом распределения в современных математических пакетах. Для начала вспомним несколько основных определений.
Вариант 4
Ход работы
В пакете программ MATLAB были получены графики и гистограммы, имеющие нормальное распределения с помощью внутренних функций программы, а также аналитических выражений. Полученные данные показаны на рисунках 1-6.
Рисунок 1 - График плотности нормального распределения
Рисунок 2 - Функция распределения нормального завкона
Рисунок 3 - Выборка с помощью внутренней функцией MATLAB
Рисунок 4 - Выборка с помощью аналитического выражения в MATLAB
Рисунок 5 - Гистограмма на основе функции
Рисунок 6 - Гистограмма на основе выражения
Рисунок 7 - График плотности равномерного распределения
Рисунок 8 - Функция распределения равномерного закона
Рисунок 9 - Выборка с помощью внутренней функцией MATLAB
Рисунок 10 - Выборка с помощью аналитического выражения в MATLAB
Рисунок 11 - Гистограмма на основе функции
Рисунок 12 - Гистограмма на основе выражения
Рисунок 13 - График плотности экспоненциального распределения
Рисунок 14 - Функция распределения экспоненциального закона
Рисунок 15 - Выборка с помощью внутренней функцией MATLAB
Рисунок 16 - Выборка с помощью аналитического выражения в MATLAB
Рисунок 17 - Гистограмма на основе функции
Рисунок 18 - Гистограмма на основе выражения
Так же в MATLAB были проведены проверки на соответствие заданному закону распределения с помощью критерия согласия. Значение в конце возвращенной строки является результат: 0 – Гипотеза подтверждена, проверка пройдена, 1 – Гипотеза опровергнута, проверка не пройдена.
Рисунок 19 - Проверка гипотез
Вывод:
В ходе данной лабораторной работы были получены навыки генерации случайных величин с заданным законом распределения в современных математических пакетах.
Листинг А
clear all
clc
%НОРМАЛЬНОЕ РАСПРЕДЕЛЕНИЕ
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%график плотности для нормального расп
m=4; % мат ожид
sigma = sqrt(m); % ско
% требуемый диапазон значений СВ
x=m-3*sigma:0.1:m+3*sigma;
% расчет значений плотности вероятности
f=normpdf(x, m, sigma);
% создание нового графического окна для графика
figure(1)
% команда построение графика
plot(x,f)
xlabel('x')
ylabel('f(x)')
grid
% расчет значений функции распределения
F=normcdf(x, m, sigma);
figure(2)
plot(x,F)
xlabel('x')
ylabel('F(x)')
grid
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Построим эмпирические функции распределения
% MATLAB
N3=300;
n3 = 1:1:N3;
Y3=normrnd(m, sigma, N3, 1);
N7=700;
n7 = 1:1:N7;
Y7=normrnd(m, sigma, N7, 1);
N15=1500;
n15 = 1:1:N15;
Y15=normrnd(m, sigma, N15, 1);
figure(3)
xlabel('Номер элемента в выборке')
ylabel('Значение случайной величины')
subplot(3,1,1)
plot(n3,Y3)
grid
subplot(3,1,2)
plot(n7,Y7)
grid
ylabel('Значение случайной величины')
subplot(3,1,3)
plot(n15,Y15)
grid
xlabel('Номер элемента в выборке')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c=2*pi;
% Генерация первой равномерно распределенной СВ
a13=rand(1,N3);
% Генерация второй равномерно распределенной СВ
a23=rand(1,N3);
r3=sqrt(-2*log(a13));
f3=a23*c;
X13=r3.*sin(f3);
Y13=m+sigma*X13;
c=2*pi;
% Генерация первой равномерно распределенной СВ
a17=rand(1,N7);
% Генерация второй равномерно распределенной СВ
a27=rand(1,N7);
r7=sqrt(-2*log(a17));
f7=a27*c;
X17=r7.*sin(f7);
Y17=m+sigma*X17;
c=2*pi;
% Генерация первой равномерно распределенной СВ
a115=rand(1,N15);
% Генерация второй равномерно распределенной СВ
a215=rand(1,N15);
r15=sqrt(-2*log(a115));
f15=a215*c;
X115=r15.*sin(f15);
Y115=m+sigma*X115;
figure(4)
subplot(3,1,1)
plot(Y13)
grid
subplot(3,1,2)
plot(Y17)
grid
ylabel('Значение случайной величины')
subplot(3,1,3)
plot(Y115)
grid
xlabel('Номер элемента в выборке')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(5)
YY=-10:1:10
p1=datasample(Y7,21)
bar(YY,p1)
title('Гистограмма СВ полученной с помощью функции MATLAB')
xlabel('Значение')
ylabel('Относительная частота')
grid
% Построение гистограммы для СВ
% полученной с помощью выражения
figure(6)
YY1=-10:1:10
p2=datasample(Y17,21)
bar(YY1,p2)
title('Гистограмма СВ полученной с помощью выражения')
xlabel('Значение')
ylabel('Относительная частота')
grid
clear all
clc
%РАВНОМЕРНОЕ РАСПРЕДЕЛЕНИЕ
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%график плотности для равномерного расп
a=11; % a
b = 2*a; % b
% требуемый диапазон значений СВ
x=0:0.1:30;
% расчет значений плотности вероятности
f=unifpdf(x, a, b);
% создание нового графического окна для графика
figure(1)
% команда построение графика
plot(x,f)
xlabel('x')
ylabel('f(x)')
grid
% расчет значений функции распределения
F=unifcdf(x, a, b);
figure(2)
plot(x,F)
xlabel('x')
ylabel('F(x)')
grid
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Построим эмпирические функции распределения
% MATLAB
N3=300;
n3 = 1:1:N3;
Y3=unifrnd(a, b, N3, 1);
N7=700;
n7 = 1:1:N7;
Y7=unifrnd(a, b, N7, 1);
N15=1500;
n15 = 1:1:N15;
Y15=unifrnd(a, b, N15, 1);
figure(3)
xlabel('Номер элемента в выборке')
ylabel('Значение случайной величины')
subplot(3,1,1)
plot(n3,Y3)
grid
subplot(3,1,2)
plot(n7,Y7)
grid
ylabel('Значение случайной величины')
subplot(3,1,3)
plot(n15,Y15)
grid
xlabel('Номер элемента в выборке')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Генерация первой равномерно распределенной СВ
a3=rand(1,N3);
X3=a+(b-a)*a3;
% Генерация первой равномерно распределенной СВ
a7=rand(1,N7);
X7=a+(b-a)*a7;
% Генерация первой равномерно распределенной СВ
a15=rand(1,N15);
X15=a+(b-a)*a15;
figure(4)
subplot(3,1,1)
plot(X3)
grid
subplot(3,1,2)
plot(X7)
grid
ylabel('Значение случайной величины')
subplot(3,1,3)
plot(X15)
grid
xlabel('Номер элемента в выборке')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(5)
YY=-10:1:10
p1=datasample(Y7,21)
bar(YY,p1)
title('Гистограмма СВ полученной с помощью функции MATLAB')
xlabel('Значение')
ylabel('Относительная частота')
grid
% Построение гистограммы для СВ
% полученной с помощью выражения
figure(6)
YY1=-10:1:10
p2=datasample(X7,21)
bar(YY1,p2)
title('Гистограмма СВ полученной с помощью выражения')
xlabel('Значение')
ylabel('Относительная частота')
grid
clear all
clc
%ЭКСПОНЕНЦИАЛЬНОЕ РАСПРЕДЕЛЕНИЕ
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%график плотности экспоненциального расп
mu = 11;
% требуемый диапазон значений СВ
x=0:0.1:100;
% расчет значений плотности вероятности
f=exppdf(x, mu);
% создание нового графического окна для графика
figure(1)
% команда построение графика
plot(x,f)
xlabel('x')
ylabel('f(x)')
grid on
% расчет значений функции распределения
F=expcdf(x, mu);
figure(2)
plot(x,F)
xlabel('x')
ylabel('F(x)')
grid
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Построим эмпирические функции распределения
% MATLAB
N3=300;
n3 = 1:1:N3;
Y3=exprnd(mu, N3, 1);
N7=700;
n7 = 1:1:N7;
Y7=exprnd(mu, N7, 1);
N15=1500;
n15 = 1:1:N15;
Y15=exprnd(mu, N15, 1);
figure(3)
xlabel('Номер элемента в выборке')
ylabel('Значение случайной величины')
subplot(3,1,1)
plot(n3,Y3)
grid
subplot(3,1,2)
plot(n7,Y7)
grid
ylabel('Значение случайной величины')
subplot(3,1,3)
plot(n15,Y15)
grid
xlabel('Номер элемента в выборке')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Генерация первой равномерно распределенной СВ
a3=rand(1,N3);
X3=-(1/mu)*log(a3);
a7=rand(1,N7);
X7=-(1/mu)*log(a7);
a15=rand(1,N15);
X15=-(1/mu)*log(a15);
figure(4)
subplot(3,1,1)
plot(X3)
grid
subplot(3,1,2)
plot(X7)
grid
ylabel('Значение случайной величины')
subplot(3,1,3)
plot(X15)
grid
xlabel('Номер элемента в выборке')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(5)
YY=-10:1:10
p1=datasample(Y7,21)
bar(YY,p1)
title('Гистограмма СВ полученной с помощью функции MATLAB')
xlabel('Значение')
ylabel('Относительная частота')
grid
% Построение гистограммы для СВ
% полученной с помощью выражения
figure(6)
YY1=-10:1:10
p2=datasample(X7,21)
bar(YY1,p2)
title('Гистограмма СВ полученной с помощью выражения')
xlabel('Значение')
ylabel('Относительная частота')
grid
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Построим эмпирические функции распределения
% MATLAB
N=1000;
n = 1:1:N;
Y=normrnd(m, sigma, N, 1);
% Создание тестов по критерию Колмогорова-Смирнова
% Тест нормального распределения
test_normal = makedist('normal','mu',4,'sigma',2);
[h p] = kstest(Y,'CDF',test_normal); % MATLAB
fprintf('Логическая функция h нормального распределения %f\n', h)
% Тест равномерного распределения
test_uni = makedist('uniform','lower',2,'upper',4);
[h1 p1] = kstest(Y,'CDF',test_uni); % MATLAB
fprintf('Логическая функция h1 равномерного распределения %f\n', h1)
% Тест экспоненциального распределения
test_exp = makedist('Exponential','mu',4);
[h2 p2] = kstest(Y,'CDF',test_exp); % MATLAB
fprintf('Логическая функция h2 равномерного распределения %f\n', h2)