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

Моделирование_Лаба_2

.docx
Скачиваний:
18
Добавлен:
18.12.2019
Размер:
398.91 Кб
Скачать

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

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

«САНКТ-ПЕТЕРБУРГСКИЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

КАФЕДРА № 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, а также отобразил найденные аналитически и программное такие данные как мат. Ожидание, дисперсия, асимметрия, эксцесс. Все данные совпали с аналитически расчетными.

Список использованных источников

              1. Преснякова Г.В., Шахомиров А.В. Проектирование реляционных баз данных: учебное пособие. СПб.: ГУАП, 2015. 125с.

              2. Карчевский Е.М., Филиппов И.Е., Филиппова И.А. Access 2010 в примерах: учебное пособие. Казань: Казанский университет, 2012. 140с.