форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
75 строки
3.4 KiB
Markdown
75 строки
3.4 KiB
Markdown
## Общее контрольное задание по Теме 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) для устройства задержки"""
|
|
return [0] * T + signal
|
|
|
|
>>> x_t = [10,9,8,15,8,5]; x_t # входной сигнал
|
|
[10, 9, 8, 15, 8, 5]
|
|
>>> y_t = delay(x_t,3); y_t # выходной сигнал с задержкой
|
|
[0, 0, 0, 10, 9, 8, 15, 8, 5]
|
|
|
|
```
|
|
|
|
### 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
|
|
```
|
|
|