форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
65 строки
2.9 KiB
Markdown
65 строки
2.9 KiB
Markdown
# Общее контрольное задание по теме 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
|
|
```
|
|
|
|

|
|
|
|
- Гистограммы для значений из методических указаний:
|
|
|
|

|
|
 |