МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
КАФЕДРА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ И ПРОГРАММИРОВАНИЯ
|
ОЦЕНКА
ПРЕПОДАВАТЕЛЬ
доцент, к.т.н. |
|
|
|
В.А. Ненашев |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №2
|
МОДЕЛИРОВАНИЕ СЛУЧАЙНЫХ ВЕЛИЧИН С ЗАДАННЫМ ЗАКОНОМ РАСПРЕДЕЛЕНИЯ
|
по дисциплине: МОДЕЛИРОВАНИЕ
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
|
|
|
|
|
|
номер группы |
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург
2021
Цель работы:
ознакомление с возможностями MATLAB по изучению основных законов распределений одномерных случайных величин;
исследование зависимости графиков функций распределения и функций плотности вероятности от параметров распределений;
моделирование и анализ одномерных случайных величин в MATLAB.
Номер варианта: 10.
На рисунке 1 изображен график плотности распределения по нормальному закону.
Рисунок 1 - График плотности распределения нормального закона
На рисунке 2 изображен график функции распределения нормального закона.
Рисунок 2 - График функции распределения нормального закона
Листинг программы:
clear all
m=10;
sigma = sqrt(m);
x = m-3*sigma:0.01:m+3*sigma;
y_p = normpdf(x,m,sigma);
figure (1)
plot(x,y_p)
grid on
xlabel('normpdf, m=10, sigma=sqrt(10)')
axis([0 20 0 0.14]);
y_F = normcdf(x,m,sigma);
figure (2)
plot(x,y_F)
grid on
xlabel('normcdf, m=10, sigma=sqrt(10)')
axis([0 20 0 1]);
На рисунке 3 изображен график плотности распределения равномерного закона.
Рисунок 3 - График плотности распределения равномерного закона
На рисунке 4 изображен график функции распределения равномерного закона.
Рисунок 4 - График функции распределения равномерного закона
Листинг программы:
clear all
a=10;
b=2*a;
x = a-5:0.01:2*a+5;
y_p = unifpdf(x,a,b);
figure (1)
plot(x,y_p)
grid on
xlabel('unifpdf, a=10, b=2a')
axis([5 25 0 0.2]);
y_F = unifcdf(x,a,b);
figure (2)
plot(x,y_F)
grid on
xlabel('unifcdf, a=10, b=2a')
axis([5 25 0 1.1]);
На рисунке 5 изображен график плотности распределения экспоненциального закона.
Рисунок 5 - График плотности распределения экспоненциального закона
На рисунке 6 изображен график функции распределения экспоненциального закона.
Рисунок 6 – График функции распределения экспоненциального закона
Листинг программы:
clear all
a=10;
b=2*a;
lambda=2;
x = 0:0.01:10;
y_p = exppdf(x,lambda);
figure (1)
plot(x,y_p)
grid on
xlabel('exppdf, lambda=2')
axis([0 12 0 0.6]);
y_F = expcdf(x,lambda);
figure (2)
plot(x,y_F)
grid on
xlabel('expcdf, lambda=2')
axis([0 12 0 1.1]);
На рисунке 7 изображен график плотности распределения закона Рэлея.
Рисунок 7 - График плотности распределения закона Рэлея
На рисунке 8 изображен график функции распределения закона Рэлея.
Рисунок 8 - График функции распределения закона Рэлея
Листинг программы:
clear all
a=10;
b=2*a;
param=2;
x = 0:0.01:10;
y_p = raylpdf(x,param);
figure (1)
plot(x,y_p)
grid on
xlabel('raypdf, param')
axis([0 8 0 0.6]);
y_F = raylcdf(x,param);
figure (2)
plot(x,y_F)
grid on
xlabel('raycdf, param')
axis([0 12 0 1.1]);
Получить реализацию случайных чисел с помощью встроенных функций MATLAB и с помощью формул для каждого закона распределения, а также построить гистограммы для N=100, 1000 и 10000
Листинг программы для реализации случайных величин (СВ) с помощью встроенной функции MATLAB:
clear all
m=10;
sigma = sqrt(m);
N=1000;
c=2*pi;
%ПО ВСТРОЕННОЙ ФУНКЦИИ
Y_vstr = normrnd(m, sigma, N, 1);
figure(1)
plot(Y_vstr)
xlabel('Номер элемента в выборке')
ylabel('Значения СВ')
grid on
figure(2)
hist(Y_vstr)
grid on
xlabel("Значение");
ylabel("Частота");
axis([0 20 0 300]);
Результаты работы программы:
Рисунок 9 - График распределения СВ, построенный по встроенной функции MATLAB, при N=1000
Листинг программы для реализации СВ с помощью формулы:
%ПО ФОРМУЛЕ
a1=rand(1,N); % сгенерировать a1 размерностью N
a2=rand(1,N); % сгенерировать a2 размерностью N
r=sqrt(-2*log(a1));
f=a2*c;
X1=r.*sin(f);
Y_form=m+sigma*X1;
figure(3)
plot(Y_form)
xlabel('Номер элемента в выборке')
ylabel('Значения СВ')
grid on
Результаты работы программы:
Рисунок 10 - График распределения СВ, построенный с помощью формулы, при N=1000
Анализ и сравнение результатов и построение гистограмм, при N=100, 1000 и 10000
figure(4)
histfit(Y_form, 50)
grid on
xlabel("Значение");
ylabel("Вероятность");
axis([0 60 0 300]);
m_y = mean (Y_form) % вычисление мат. ожидания
st_y = std (Y_form) % вычисление СКО
sk_Y = skewness(Y_form) % вычисление коэффициента асимметрии
kur_Y = kurtosis(Y_form)-3 % вычисление коэффициента эксцесса
Результаты работы программы:
Рисунок 11 - Гистограмма нормального распределения СВ, при N=100
Вычисленные значения, при N=100:
Математическое ожидание: 9.9745
Дисперсия: 10.9379
СКО: 3.3072
Коэффициент асимметрии: -0.1216
Коэффициент эксцесса: 0.0342
Рисунок 12 - Гистограмма нормального распределения СВ, при N=1000
Вычисленные значения, при N=1000:
Математическое ожидание: 10.0572
Дисперсия: 9.3376
СКО: 3.0558
Коэффициент асимметрии: 0.0943
Коэффициент эксцесса: -0.2663
Рисунок 13 - Гистограмма нормального распределения СВ, при N=10000
Вычисленные значения, при N=10000:
Математическое ожидание: 9.9836
Дисперсия: 9.8925
СКО: 3.1452
Коэффициент асимметрии: -0.0346
Коэффициент эксцесса: -0.0346
Листинг программы для реализации СВ с помощью встроенной функции матлаб:
clear all
a=10;
b=2*a;
N=1000;
c=2*pi;
%ПО ВСТРОЕННОЙ ФУНКЦИИ
Y_vstr = unifrnd(a, b, N, 1);
figure(1)
plot(Y_vstr)
xlabel('Номер элемента в выборке')
ylabel('Значения СВ')
grid on
Результаты работы программы:
Рисунок 14 - График распределения СВ, построенный по встроенной функции MATLAB, при N=1000
Листинг программы для реализации СВ с помощью формулы:
%ПО ФОРМУЛЕ
a1=rand(1,N); % сгенерировать a1 размерностью N
Y_form=a+(b-a)*a1;
figure(2)
plot(Y_form)
xlabel('Номер элемента в выборке')
ylabel('Значения СВ')
grid on
Результаты работы программы:
Рисунок 15 - График распределения СВ, построенный с помощью формулы, при N=1000
Анализ и сравнение результатов и построение гистограмм, при N=100, 1000 и 10000
figure(4)
histfit(Y_form, 50)
grid on
xlabel("Значение");
ylabel("Вероятность");
axis([0 60 0 300]);
m_y = mean (Y_form) % вычисление мат. ожидания
st_y = std (Y_form) % вычисление СКО
sk_Y = skewness(Y_form) % вычисление коэффициента асимметрии
kur_Y = kurtosis(Y_form)-3 % вычисление коэффициента эксцесса
Результаты работы программы:
Рисунок 16 - Гистограмма равномерного распределения СВ, при N=100
Вычисленные значения, при N=100:
Математическое ожидание: 14.3728
Дисперсия: 8.7093
Коэффициент асимметрии: 0.3433
Коэффициент эксцесса: -1.0264
Рисунок 17 - Гистограмма равномерного распределения СВ, при N=1000
Вычисленные значения, при N=1000:
Математическое ожидание: 15.1116
Дисперсия: 8.5515
Коэффициент асимметрии: -0.0418
Коэффициент эксцесса: -1.2041
Рисунок 18 - Гистограмма равномерного распределения СВ, при N=10000