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

ЛР1 / Показательный закон

.py
Скачиваний:
48
Добавлен:
03.07.2021
Размер:
1.85 Кб
Скачать
import math
import random

table_values = [0.05, 3.841, 5.991, 7.815, 9.488, 11.070, 12.592, 14.067, 15.507, 16.919, 18.307, 19.675, 21.026, 22.362, 23.685, 24.996]

n = 10 # количество данных, целое
m = 1000 # количество проводимых опытов, целое
lambd = 0.5 # параметр
xs = [] # список сгенерированных значений

print('Лямбда-параметр:', lambd)

for i in range(m):
u = random.random()
x = -math.log(1 - u) / lambd
xs.append(x)

b = int(max(xs)) + 1 # конец отрезка
step = b / n # длина каждого интервала

print('Конец отрезка: ')
print(b)

print('Длина отрезка: ')
print(step)

F = [0 for _ in range(n)] # список счетчиков каждого интервала

for x in xs:
index = int(x / step) # вычисляем индекс интервала
F[index] += 1 # увеличиваем счетчик интервала

M = [(step * (i + 1) - step / 2) for i in range(n)]
_x = sum([M[i] * F[i] for i in range(n)]) / m
print('Параметр предпологаемого показательного распределения: ', 1 / _x)

P = [math.exp(-lambd * step * i) - math.exp(-lambd * step * (i + 1)) for i in range(n)]
T = [m * P[i] for i in range(n)]
print('Фактические частоты: ')
print(F)
print('Теоретические частоты:')
print(T)

Chi_Square = sum([(F[i] - T[i]) ** 2 / T[i] for i in range(n)]) # хи-квадрат (наблюдаемое значение)
critical_value = table_values[n - 2] # табличное критическое значение

print(Chi_Square)
print(critical_value)
print(Chi_Square < critical_value)
Соседние файлы в папке ЛР1