# Общее контрольное задание по теме 7 Зеленкина Ксения, А-02-23 ## Задание - Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т. - Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения. - Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х Y=b1+b2*X и имеющую аргументы b1, b2 и X. #### Решение ##### 1 _Код:_ ```py def signal_delay(current_input, delay_time, output_history, input_history): """ Расчет выходного сигнала устройства задержки current_input - текущее значение входного сигнала delay_time - время задержки output_history - история выходных значений input_history - история входных значений """ if len(input_history) < delay_time: return 0 else: return input_history[-delay_time] delay = 3 output_signal = [] input_signal = [1, 2, 3, 4, 5, 6, 7] input_history = [] for x in input_signal: input_history.append(x) y = signal_delay(x, delay, output_signal, input_history) output_signal.append(y) print("Входной сигнал:", input_signal) print("Выходной сигнал (задержка 3):", output_signal) ``` _Вывод:_ ```py Входной сигнал: [1, 2, 3, 4, 5, 6, 7] Выходной сигнал (задержка 3): [0, 0, 1, 2, 3, 4, 5] ``` ##### 2 _Код:_ ```py def raschet_giostogrammy(viborka, kol_int): minn = min(viborka) maxx = max(viborka) shirina_intervala = (minn - maxx) / kol_int w = [0] * kol_int for znachenie in viborka: num_int = int((znachenie - maxx) / shirina_intervala) if num_int == kol_int: num_int = kol_int - 1 w[num_int] += 1 print("Гистограмма:") for i in range(kol_int): start = maxx + i * shirina_intervala end = maxx + (i + 1) * shirina_intervala print(f"[{start:.2f}, {end:.2f}]: {w[i]}") return w import random rand = [random.gauss(0, 1) for _ in range(100)] kol_int = 5 res = raschet_giostogrammy(rand, kol_int) ``` _Вывод:_ ```py Гистограмма: [3.43, 2.27]: 2 [2.27, 1.11]: 9 [1.11, -0.05]: 37 [-0.05, -1.20]: 37 [-1.20, -2.36]: 15 ``` ##### 3 _Код:_ ```py anonim_func = lambda b1, b2, X: b1 + b2 * X print(anonim_func (2, 3, 5)) ``` _Вывод:_ ```py 17 ```