diff --git a/TEMA7/figure_1.png b/TEMA7/figure_1.png new file mode 100644 index 0000000..12e03ff Binary files /dev/null and b/TEMA7/figure_1.png differ diff --git a/TEMA7/task.md b/TEMA7/task.md new file mode 100644 index 0000000..c9b499b --- /dev/null +++ b/TEMA7/task.md @@ -0,0 +1,60 @@ +# Общее контрольное задание по теме 7 + +## Задание: +- Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т. +- Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения. +- Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х +Y=b1+b2*X +и имеющую аргументы b1, b2 и X. + +## Решение: +``` +# 1 +>>>def delay_signal(signal, T): + for i in range(len(signal)): + signal[i] += T + return signal + +>>>vhod_signal = [1, 2, 3.69, 4, 5.32, 6.5, 7, 8] +>>>T_zad = 3 +>>>vyhod_signal = delay_signal(vhod_signal, T_zad) +>>>print(vyhod_signal) +[4, 5, 6.6899999999999995, 7, 8.32, 9.5, 10, 11] + +# 2 +import random +import matplotlib.pyplot as plt +def histogram(data, num): + min_val, max_val = min(data), max(data) + parts = np.linspace(min_val, max_val, num + 1) + rows = [0] * num + for now in data: + for i in range(num): + if parts[i] <= now < parts[i + 1]: + rows[i] += 1 + break + if now == max_val: + rows[-1] += 1 + plt.hist(data, bins=parts) + plt.xlabel('Значения выборки') + plt.ylabel('Число элементов') + plt.title('Гистограмма выборки') + plt.show() + return rows + +sl_vel = [random.gauss(random.random(), random.random()) for _ in range(random.randint(1,50))] +intervals = 5 +output = histogram(sl_vel, intervals) +print(output) +[4, 5, 18, 17, 5] + +# 3 +predict = lambda b1, b2, X: b1 + b2 * X +b1 = 0.5 +b2 = 0.8 +X = 5 +print(predict(b1, b2, X)) +4.5 +``` + +![График](figure_1.png)