форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
56 строки
3.4 KiB
Markdown
56 строки
3.4 KiB
Markdown
# Общее контрольное задание по теме 7
|
|
|
|
Капитонов Михаил, А-02-23
|
|
|
|
## Задание
|
|
|
|
Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т.
|
|
Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения.
|
|
Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х.
|
|
Y=b1+b2*X
|
|
и имеющую аргументы b1, b2 и X.
|
|
|
|
## Решение
|
|
|
|
```py
|
|
>>> def zaderz(vhod, T):
|
|
... """Функция задержки
|
|
... Входной сигнал - vhod
|
|
... Время задержки - T"""
|
|
... return [0] * T + vhod
|
|
...
|
|
>>> x = [1, 2, 4, 8, 16]
|
|
>>> T = 5
|
|
>>> zaderz(x, T)
|
|
[0, 0, 0, 0, 0, 1, 2, 4, 8, 16]
|
|
|
|
>>> def histogram(x, n_bins):
|
|
... low_end = min(x)
|
|
... high_end = max(x)
|
|
... bin_w = (high_end - low_end) / n_bins
|
|
... bins = []
|
|
... for i in range(n_bins):
|
|
... lower = low_end + i * bin_w
|
|
... upper = low_end + (i + 1) * bin_w
|
|
... bins.append(len(list(filter(lambda j: lower <= j and j < upper, x))))
|
|
... if i == n_bins - 1:
|
|
... bins[i] += 1
|
|
... print(f"Интервал №{i + 1}: Нижняя граница: {lower} Верхняя граница: {upper} Число элементов: {bins[i]}")
|
|
... return bins
|
|
...
|
|
>>> x = [random.uniform(5, 10) for i in range(100)]
|
|
>>> n_elem = histogram(x, 5)
|
|
Интервал №1: Нижняя граница: 5.008028779046062 Верхняя граница: 5.9894754634094 Число элементов: 16
|
|
Интервал №2: Нижняя граница: 5.9894754634094 Верхняя граница: 6.97092214777274 Число элементов: 21
|
|
Интервал №3: Нижняя граница: 6.97092214777274 Верхняя граница: 7.952368832136078 Число элементов: 19
|
|
Интервал №4: Нижняя граница: 7.952368832136078 Верхняя граница: 8.933815516499417 Число элементов: 20
|
|
Интервал №5: Нижняя граница: 8.933815516499417 Верхняя граница: 9.915262200862756 Число элементов: 24
|
|
>>> print(n_elem)
|
|
[16, 21, 19, 20, 24]
|
|
|
|
>>> regression = lambda x, b1, b2: b1 + b2 * x
|
|
>>> regression(4, 8, 0.5)
|
|
10.0
|
|
```
|
|
|