# Общее контрольное задание по теме 7 Беженарь Алёна, А-02-23 # Задание: * Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т. * Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения. * Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х Y=b1+b2*X и имеющую аргументы b1, b2 и X. # Решение ```py >>> #1 >>> def zaderzka (signal, T): ... """"Расчёт выхода y(t) для устройства задержки ... signal - входной сигнал ... T-параметр задержки сигнала""" ... output=[] ... for i in range(len(signal)+T): ... if i < T: ... output.append(0) ... else: ... output.append(signal[i-T]) ... return output ... >>> x=[1,2,3.4,4.5,6,7,8.9] # Входной сигнал >>> y=zaderzka(x,4) >>> print(y) [0, 0, 0, 0, 1, 2, 3.4, 4.5, 6, 7, 8.9] >>> #2 >>> def createHistogram(x, bins): ... lowerBound = min(x) #нижняя граница ... upperBound = max(x) #верхняя граница ... binWidth = (upperBound - lowerBound) / bins # Ширина одного интервала ... binsElements = [] # Создание списка для подсчёта элементов в каждом интервале ... intervals=[] ... for i in range(bins + 1): ... intervals.append(lowerBound + i * binWidth) ... for j in range(bins): ... c = 0 ... for num in x: ... if intervals[j] <= num < intervals[j+1]: ... c += 1 ... elif num == upperBound and j == bins - 1: ... c += 1 ... binsElements.append(c) ... print("[Лев.гр Прав.гр] Кол-во эл-в") # Левая и правая границы интервала ... for w in range(bins): ... print(f"{intervals[w]:.2f} {intervals[w+1]:.2f} {binsElements[w]}") ... return binsElements >>> data = [random.gauss(1, 20) for _ in range(100)] >>> hist=createHistogram (data, 5) [Лев.гр Прав.гр] Кол-во эл-в -44.79 -24.74 9 -24.74 -4.69 29 -4.69 15.36 38 15.36 35.42 22 35.42 55.47 2 >>> print(hist) [9, 29, 38, 22, 2] ``` ```py >>> #3 >>> linear_regression = lambda b1, b2, x: b1+b2 * x >>> result = linear_regression (5,10,20) >>> result 205 ```