Моделирование_Лаба_2
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
КАФЕДРА № 41
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
ассистент |
|
|
|
Иванова М.С |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №2 |
Моделирование случайных величин с заданным законом распределения |
по курсу: Моделирование |
|
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
4616 |
|
|
|
А.В.Павлов |
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2019
Цель работы:
1) ознакомление с возможностями средств Excel и MATLAB по изучению основных законов
распределений (ЗР) одномерных случайных величин (СВ);
2) исследование зависимости графиков функций распределения и функций плотности
вероятности от параметров распределений;
3) изучение возможностей пакетов Excel и MATLAB по моделированию и анализу
одномерных случайных величин.
Вариант №8.
Нормальной распределения m=8, σ=2,82
Равномерное a=8, b=16
Экспоненциальное λ=4
Листинг
import scipy.stats as st
import numpy as np
import matplotlib.pyplot as plt
k=300
normal = st.norm.rvs(loc=7, scale=5,size=k)
cdf_normal = st.norm.cdf(normal,loc=7,scale=np.sqrt(7))
uniform = st.uniform.rvs(loc=7,scale=7*2, size=k)
cdf_uniform = st.uniform.cdf(uniform,loc=7,scale=7*2)
expon= st.expon.rvs(4, size=k)
expon_cdf= st.expon.cdf(expon,4)
plt.hist(np.sort(normal),density=True)
plt.plot(np.sort(normal),st.norm.pdf(np.sort(normal),loc=7, scale=5),'k-')
plt.show()
plt.hist(np.sort(normal),density=True,cumulative=True)
plt.plot(np.sort(normal),st.norm.cdf(np.sort(normal),loc=7, scale=5),'k-')
plt.show()
plt.hist(np.sort(uniform),density=True)
plt.plot(np.sort(uniform),st.uniform.pdf(np.sort(uniform),loc=7, scale=7*2),'k-')
plt.show()
plt.hist(np.sort(uniform),density=True,cumulative=True)
plt.plot(np.sort(uniform),st.uniform.cdf(np.sort(uniform),loc=7, scale=7*2),'k-')
plt.show()
plt.hist(np.sort(expon),density=True)
plt.plot(np.sort(expon),st.expon.pdf(np.sort(expon),4),'k-')
plt.show()
plt.hist(np.sort(expon),density=True,cumulative=1)
plt.plot(np.sort(expon),st.expon.cdf(np.sort(expon),4),'k-')
plt.show()
raspred=[100,500,1000,10000]
mo_normal=[]
d_normal=[]
mo_uniform=[]
d_uniform=[]
mo_expon=[]
d_expon=[]
skew_normal=[]
skew_uniform=[]
skew_expon=[]
kurt_normal=[]
kurt_expon=[]
kurt_uniform=[]
for i in raspred:
normal = st.norm.rvs(loc=7, scale=5, size=i)
uniform = st.uniform.rvs(loc=7, scale=7 * 2, size=i)
expon = st.expon.rvs(4, size=i)
mo_normal.append(np.mean(normal))
d_normal.append(np.var(normal))
skew_normal.append(st.skew(normal))
kurt_normal.append(st.kurtosis(normal))
mo_uniform.append(np.mean(uniform))
d_uniform.append(np.var(uniform))
skew_uniform.append(st.skew(uniform))
kurt_uniform.append(st.kurtosis(uniform))
mo_expon.append(np.mean(expon))
d_expon.append(np.var(expon))
skew_expon.append(st.skew(expon))
kurt_expon.append(st.kurtosis(expon))
print("НОрмальное МО/Дисп/Ассим/Экц")
print(st.norm.mean(loc=7, scale=5),st.norm.var(loc=7, scale=5),st.norm.stats(loc=7, scale=5, moments='s' ), st.norm.stats(loc=7, scale=5, moments='k'))
print("Равно МО/Дисп/Ассим/Экц")
print(st.uniform.mean(loc=7, scale=7*2),st.uniform.var(loc=7, scale=7*2),st.uniform.stats(loc=7, scale=7*2, moments='s' ), st.uniform.stats(loc=7, scale=7*2, moments='k'))
print("Экспон МО/Дисп/Ассим/Экц")
print(st.expon.mean(4),st.expon.var(4),st.expon.stats(4, moments='s' ), st.expon.stats(4, moments='k'))
plt.plot(raspred,mo_normal,label='МО норм')
plt.plot(raspred,mo_uniform,label='МО равн')
plt.plot(raspred,mo_expon,label='МО экспон')
plt.legend(loc=1)
plt.show()
plt.plot(raspred,d_normal,label='Д норм')
plt.plot(raspred,d_uniform,label='Д равн')
plt.plot(raspred,d_expon,label='Д экспон')
plt.legend(loc=1)
plt.show()
plt.plot(raspred,skew_normal,label='Ассим норм')
plt.plot(raspred,skew_uniform,label='равн')
plt.plot(raspred,skew_expon,label='экспон')
plt.legend(loc=1)
plt.show()
plt.plot(raspred,kurt_normal,label=' Экцес норм')
plt.plot(raspred,kurt_uniform,label='равн')
plt.plot(raspred,kurt_expon,label='экспон')
plt.legend(loc=1)
plt.show()
Рисунок 1 – PDF нормального распределения
Рисунок 2 – CDF нормального распредления
Рисунок 3 – PDF равномерного распределения
Рисунок 4 – CDF равномерного распределения
Рисунок 5 – PDF экспоненциального распределения
Рисунок 6 – CDF экспоненциального распределения
Рисунок 7 – Мат ожидание
Рисунок 8 - Дисперсия
Рисунок 9 – Асимметрия
Рисунок 10 – Эксцесс
Вывод: В ходе лабораторной работе я написал программу, где моделируются случайные величины с помощью строенных функций. Я промоделировал случайные величины нормального, равномерного, экспоненциального распределения, отобразил их графики CDF и PDF, а также отобразил найденные аналитически и программное такие данные как мат. Ожидание, дисперсия, асимметрия, эксцесс. Все данные совпали с аналитически расчетными.
Список использованных источников
-
Преснякова Г.В., Шахомиров А.В. Проектирование реляционных баз данных: учебное пособие. СПб.: ГУАП, 2015. 125с.
-
Карчевский Е.М., Филиппов И.Е., Филиппова И.А. Access 2010 в примерах: учебное пособие. Казань: Казанский университет, 2012. 140с.