форкнуто от main/python-labs
Родитель
0b86731131
Сommit
74a6cb43ad
|
После Ширина: | Высота: | Размер: 13 KiB |
@ -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
|
||||
```
|
||||
|
||||

|
||||
Загрузка…
Ссылка в новой задаче