diff --git a/TEMA7/task.md b/TEMA7/task.md new file mode 100644 index 0000000..ad794cb --- /dev/null +++ b/TEMA7/task.md @@ -0,0 +1,76 @@ +## Общее контрольное задание по Теме 7 + +Кузьменко Елена, А-02-23 + +## Задание + + 1) Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т. + 2) Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения. + 3) Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х + Y=b1+b2*X и имеющую аргументы b1, b2 и X. + +## Решение + +### 1) Функция, реализующая расчет выходного сигнала для устройства задержки. + +```py +>>> def delay(signal, T): + """Расчет выходного сигнала y(t) для устройства задержки""" + for i in range(len(signal)): + signal[i] += T + return signal + +>>> x_t = [10,9,8,15,8,5]; x_t # входной сигнал +[10, 9, 8, 15, 8, 5] +>>> y_t = delay(x_t,10); y_t # выходной сигнал с задержкой +[20, 19, 18, 25, 18, 15] + +``` + +### 2) Функция, реализующая расчет гистограммы + +```py +>>> def hist(spis, inv): + """Расчет гистограммы в виде таблицы""" + min_x = min(spis); max_x = max(spis) + shir = (max_x - min_x) / inv # ширина одного интервала + gran = [] + for i in range(inv + 1): + gran.append(min_x + i * shir) + res = [] + for j in range(inv): + c = 0 + for x in spis: + if gran[j] <= x < gran[j+1]: + c += 1 + elif x == max_x and j == inv - 1: + c += 1 + res.append(c) + print("[Левая Правая] Кол-во эл-в") # Левая и правая границы интервала + for w in range(inv): + print(f"{gran[w]:.2f} {gran[w+1]:.2f} {res[w]}") + return res + +>>> chisl = [random.gauss(50, 10) for i in range(20)] +>>> N = [random.gauss(50, 10) for i in range(20)] +>>> res1 = hist(N,5) +[Левая Правая] Кол-во эл-в +36.67 44.38 5 +44.38 52.09 6 +52.09 59.80 6 +59.80 67.51 2 +67.51 75.22 1 + +>>> print(res1) # кол-во чисел в каждом интервале +[5, 6, 6, 2, 1] +``` + +### 3) Анонимная функция линейной регрессии + +```py +>>> reg = lambda b1, b2, X: b1+b2*X +>>> Y = reg(10,20,5) +>>> Y +110 +``` +