форкнуто от main/python-labs
Родитель
ad6bd31822
Сommit
44cf57a8dd
@ -0,0 +1,81 @@
|
|||||||
|
# Общее контрольное задание по теме 7
|
||||||
|
|
||||||
|
Добровольска Елизавета, А-02-23
|
||||||
|
|
||||||
|
## Задание
|
||||||
|
|
||||||
|
Общее контрольное задание.
|
||||||
|
• Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т.
|
||||||
|
• Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения.
|
||||||
|
• Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х
|
||||||
|
Y=b1+b2*X
|
||||||
|
и имеющую аргументы b1, b2 и X.
|
||||||
|
|
||||||
|
## Решение
|
||||||
|
|
||||||
|
>>>def signal_zaderzka(vhod, zaderzka, vihod):
|
||||||
|
return vhod-zaderzka if len(vihod)>=zaderzka else 0
|
||||||
|
|
||||||
|
>>>t_zaderzka = 3
|
||||||
|
>>>vihod = []
|
||||||
|
>>>vhod = [1, 2, 3, 4, 5]
|
||||||
|
>>>for i in vhod:
|
||||||
|
vihod = vihod + [signal_zaderzka(i, t_zaderzka, vihod)]
|
||||||
|
|
||||||
|
>>>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)
|
||||||
|
входной сигнал: [1, 2, 3, 4, 5] выходной сигнал: [0, 0, 0, 1, 2]
|
||||||
|
```
|
||||||
|
|
||||||
|
```py
|
||||||
|
>>>def histogram(data, num_bins):
|
||||||
|
"""Вычисляет и выводит гистограмму в виде таблицы, возвращает bins и counts."""
|
||||||
|
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)
|
||||||
|
Гистограмма:
|
||||||
|
Интервал: [-2.97, -2.30], Элементов: 7
|
||||||
|
Интервал: [-2.30, -1.62], Элементов: 43
|
||||||
|
Интервал: [-1.62, -0.94], Элементов: 118
|
||||||
|
Интервал: [-0.94, -0.26], Элементов: 231
|
||||||
|
Интервал: [-0.26, 0.42], Элементов: 266
|
||||||
|
Интервал: [0.42, 1.10], Элементов: 174
|
||||||
|
Интервал: [1.10, 1.78], Элементов: 122
|
||||||
|
Интервал: [1.78, 2.46], Элементов: 30
|
||||||
|
Интервал: [2.46, 3.13], Элементов: 8
|
||||||
|
Интервал: [3.13, 3.81], Элементов: 1
|
||||||
|
```
|
||||||
|
|
||||||
|
```py
|
||||||
|
>>>anon = lambda b1, b2, X: b1+b2*X
|
||||||
|
>>>Y = anon(1,2,3)
|
||||||
|
>>>Y
|
||||||
|
7
|
||||||
|
```
|
Загрузка…
Ссылка в новой задаче