Добавил:
andreyishp
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:ЛР1 / Показательный закон
.py 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)
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