diff --git a/TEMA7/Figure_2.png b/TEMA7/Figure_2.png new file mode 100644 index 0000000..c0c9df1 Binary files /dev/null and b/TEMA7/Figure_2.png differ diff --git a/TEMA7/task.md b/TEMA7/task.md new file mode 100644 index 0000000..877e01a --- /dev/null +++ b/TEMA7/task.md @@ -0,0 +1,80 @@ + # Общее контрольное задание по теме 7 +Филиппов Даниил Юрьевич, А-01-23 + + # Задание: +1. Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т. + +2. Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения. + +3. Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х Y=b1+b2*X и имеющую аргументы b1, b2 и X. + + # Решение + ## 1. +```py +>>> def delay_signal (signal, T): +... """"Расчёт выхода y(t) для устройства задержки""" +... output=[] +... for i in range(len(signal)): +... output.append(round(signal[i]+T,2)) # Сигнал на выходе - сигнал на входе + T, с округлением до двух знаков +... return output +... +... +>>> x=[1,0.5,3.6,4.5,1,2,0.5] # Входной сигнал +>>> y= delay_signal (x, 0.2) +>>> y +[1.2, 0.7, 3.8, 4.7, 1.2, 2.2, 0.7] +``` + + + ## 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) +Границы интервала | Число элементов +-23.534334630492655 - -11.561019750784087 | 3 +-11.561019750784087 - 0.4122951289244803 | 2 +0.4122951289244803 - 12.385610008633048 | 5 +[3, 2, 5] +``` +Гистограмма сохранена в файле Figure_2.png +![График] (Figure_2.png) + + ## 3. +```py +>>> linear_regression = lambda b1, b2, x: b1+b2 * x +>>> result = linear_regression (2,3,5) +>>> result +17 +``` + + +