# Общее контрольное задание по теме 5 Соловьёва Екатерина, А-01-23 ## Задание * Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т. * Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения. * Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х Y=b1+b2*X и имеющую аргументы b1, b2 и X. ## Решение # 1. ```py def delay_signal (signal, T): """"Расчёт выхода y(t) для устройства задержки""" output=[] for i in range(len(signal)): if i < T: out.append(0) else: output.append(signal[i-T]) return output x=[1,0.5,3.6,4.5,1,2,0.5] # Входной сигнал y= delay_signal (x, 2) print(y) ``` # 2. ```py import random import matplotlib.pyplot as plt def histogram(sample, number): min_1 = min(sample) max_1 = max(sample) bins = (max_1 - min_1) / number # Ширина одного интервала rows = [0] * number # Создание списка для подсчёта элементов в каждом интервале intervals = [] # Список для хранения границ интервалов for i in range(number): lower = min_1 + i * bins upper = min_1 + (i + 1) * bins intervals.append((lower, upper)) for x in sample: i = int((x - min_1) / bins) # Вычисление номера интервала для текущего элемента if i == number: i = number - 1 rows[i] += 1 print("Границы интервала | Число элементов") for i in range(number): lower, upper = intervals[i] print(lower, "-", upper, " |", rows[i]) plt.hist(sample, number) plt.xlabel('Значения выборки') plt.ylabel('Число элементов') plt.title('Гистограмма выборки') plt.show() return rows data = [random.gauss(1, 20) for _ in range(10)] histogram(data, 3) Границы интервала | Число элементов -41.93512946278788 - -17.371680704583262 | 1 -17.371680704583262 - 7.191768053621352 | 3 7.191768053621352 - 31.755216811825967 | 6 ``` ![График](Рис2.png) # 3. ```py linreg = lambda b1, b2, x: b1 + b2 * x b1 = float(input("Введите коэффициент b1 линейной регрессии: ")) b2 = float(input("Введите коэффициент b2 линейной регрессии: ")) x_val = float(input("Введите значение x: ")) print(linreg(b1, b2, x_val)) Введите коэффициент b1 линейной регрессии: 3 Введите коэффициент b2 линейной регрессии: 4 Введите значение x: 5 23.0 ```