ответвлено от main/python-labs
task done
Этот коммит содержится в:
64
TEMA7/task.md
Обычный файл
64
TEMA7/task.md
Обычный файл
@@ -0,0 +1,64 @@
|
||||
# Общее контрольное задание по теме 7
|
||||
Филиппова Евгения, А-01-23
|
||||
|
||||
## Задание
|
||||
Общее контрольное задание.
|
||||
- Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т.
|
||||
- Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения.
|
||||
- Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х
|
||||
Y=b1+b2*X
|
||||
и имеющую аргументы b1, b2 и X.
|
||||
## Решение
|
||||
```py
|
||||
def signal_zaderzka(vhod, zaderzka, vihod):
|
||||
return vhod - zaderzka if len(vihod) >= zaderzka else 0
|
||||
|
||||
zaderzka = 3
|
||||
vihod = []
|
||||
vhod = [1, 2, 3, 4, 5]
|
||||
|
||||
for i in vhod:
|
||||
vihod = vihod + [signal_zaderzka(i, zaderzka, vihod)]
|
||||
|
||||
print("входной сигнал: ", vhod, "выходной сигнал: ", vihod)
|
||||
|
||||
def histogram(data, num_bins):
|
||||
min_val, max_val = min(data), max(data)
|
||||
bin_width = (max_val - min_val) / num_bins
|
||||
bins = [min_val + i * bin_width for i in range(num_bins + 1)]
|
||||
counts = []
|
||||
for i in range(num_bins):
|
||||
count = 0
|
||||
for x in data:
|
||||
if bins[i] <= x < bins[i+1] or (x == max_val and i == num_bins - 1):
|
||||
count += 1
|
||||
counts.append(count)
|
||||
print("Гистограмма:")
|
||||
for i in range(num_bins):
|
||||
print(f"Интервал: [{bins[i]:.2f}, {bins[i+1]:.2f}], Элементов: {int(counts[i])}")
|
||||
return bins, counts
|
||||
|
||||
import random
|
||||
data = [random.gauss(0, 1) for _ in range(1000)]
|
||||
num_bins = 10
|
||||
bins, counts = histogram(data, num_bins)
|
||||
|
||||
anon = lambda b1, b2, X: b1 + b2 * X
|
||||
Y = anon(1, 2, 3)
|
||||
print(Y)
|
||||
```
|
||||
```py
|
||||
входной сигнал: [1, 2, 3, 4, 5] выходной сигнал: [0, 0, 0, 1, 2]
|
||||
Гистограмма:
|
||||
Интервал: [-3.36, -2.69], Элементов: 5
|
||||
Интервал: [-2.69, -2.02], Элементов: 15
|
||||
Интервал: [-2.02, -1.35], Элементов: 62
|
||||
Интервал: [-1.35, -0.67], Элементов: 166
|
||||
Интервал: [-0.67, -0.00], Элементов: 236
|
||||
Интервал: [-0.00, 0.67], Элементов: 259
|
||||
Интервал: [0.67, 1.34], Элементов: 184
|
||||
Интервал: [1.34, 2.01], Элементов: 58
|
||||
Интервал: [2.01, 2.68], Элементов: 13
|
||||
Интервал: [2.68, 3.35], Элементов: 2
|
||||
7
|
||||
```
|
||||
Ссылка в новой задаче
Block a user