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

lab2

.py
Скачиваний:
1
Добавлен:
27.08.2024
Размер:
2.6 Кб
Скачать
import random as rd
import matplotlib.pyplot as plt
import numpy as np

a, b = 2, 3

def rasp(N_max):
arr = []
x_min, x_max = 0, 0
N_mass = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
N = 0
delta = 0
while min(N_mass) < N_max:
N += 1
arr.append(round(rd.random() * (b - a) + a, 2))
if delta != 0:
div = arr[-1] // delta
mod = arr[-1] % delta
for j in range(10):
if (div == j and mod > 0) or (div == j + 1 and mod == 0):
N_mass[j] += 1
break
P = (N - sum(N_mass)) / N
if P >= 0.01 and len(arr) >= 2:
x_min = min(arr)
x_max = max(arr)
delta = (x_max - x_min) / 10
N_mass = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
for i in range(len(arr)):
div = (arr[i] - min(arr)) // delta
mod = round((arr[i] - min(arr)) % delta, 2)
for j in range(10):
if ((div == j and mod > 0) or (div == j + 1 and mod == 0)):
N_mass[j] += 1
break
return [N_mass, arr, x_min, x_max, delta]


def hist(N_max):
[N_mass, arr, x_min, x_max, delta] = rasp(N_max)
N = sum(N_mass)
print(N_mass)
x = []
y = []
for i in range(10):
x.append(round(delta * i, 2)+x_min)
y.append(1 / (b - a))
N_mass[i] = N_mass[i] / (N * delta)
x = list(map(str, x))
plt.plot(x, y, color='r')
plt.bar(x, N_mass, width=1)
plt.title('Гистограмма выборки')
plt.xlabel('X')
plt.ylabel('Ni')
plt.show()


def static(N_min, N_max, step):
m, M, d, D, x = [], [], [], [], []
while N_min <= N_max:
[N_mass, arr, x_min, x_max, delta] = rasp(N_min)
N_min += step
m.append((max(arr) + min(arr)) / 2)
M.append((b + a) / 2)
D.append(((b - a) ** 2) / 12)
d.append(((max(arr) - min(arr)) ** 2) / 12)
x.append(len(arr))
plt.plot(x, m, x, M)
plt.title('Мат ожидание')
plt.xlabel('Размер выборки')
plt.legend (('Рассчитанное значение', 'Теоретическое значение'))
plt.show()
plt.plot(x, d, x, D)
plt.title('Дисперсия')
plt.xlabel('Размер выборки')
plt.legend (('Рассчитанное значение', 'Теоретическое значение'))
plt.show()


hist(100)
static(10,100,5)
rasp(100)
Соседние файлы в предмете Имитационное моделирование