форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
89 строки
4.8 KiB
Markdown
89 строки
4.8 KiB
Markdown
|
|
Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для
|
|
устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на
|
|
заданное время Т.
|
|
```py
|
|
def delays (signal, T):
|
|
for i in range(len(signal)):
|
|
signal[i] += T
|
|
return signal
|
|
```
|
|
Входной сигнал:
|
|
```py
|
|
>>> y = [random.gauss(3, 1.5) for _ in range(40)]
|
|
>>> y
|
|
[0.9991072002742722, 1.5968849542569137, 2.3438553070732215, 3.5914160170650784, 4.037092622456526,
|
|
2.918114740779675, 4.802139541704564, 3.2313443629034646, 2.329031244833026, 4.450860002446187,
|
|
1.4135232524868848, 5.914364290743276, 3.7898798373923634, 2.364244259128151, 4.9786840892253235,
|
|
1.4351490690602144, 2.351122955511408, 1.8798309616294469, 0.7931480954519166, 3.811575392065204,
|
|
2.524732026173494, 2.8373060222940696, 4.497504412830464, 3.406940931674363, 3.876506913067825,
|
|
1.7529616032820314, 2.6542411737897087, 1.948604542902865, 6.138099312505814, 1.4111492356181103,
|
|
3.736820673744037, 4.509373750771566, 1.7486314440126465, 4.70122140759552,
|
|
-0.6513915222680815, 0.171219291885647, 2.2079783562880486, 4.390489704586708, 0.9670198540727273,
|
|
1.6420724788248429]
|
|
|
|
>>> yd = delays(y, 4)
|
|
>>> yd
|
|
[4.999107200274272, 5.596884954256914, 6.3438553070732215, 7.591416017065079, 8.037092622456527,
|
|
6.918114740779675, 8.802139541704564, 7.231344362903465, 6.3290312448330255, 8.450860002446188,
|
|
5.413523252486884, 9.914364290743276, 7.7898798373923634, 6.364244259128151, 8.978684089225323,
|
|
5.435149069060214, 6.351122955511408, 5.879830961629446, 4.793148095451917, 7.811575392065204,
|
|
6.524732026173494, 6.83730602229407, 8.497504412830464, 7.406940931674363, 7.876506913067825,
|
|
5.752961603282031, 6.654241173789709, 5.948604542902865, 10.138099312505814, 5.41114923561811,
|
|
7.736820673744036, 8.509373750771566, 5.748631444012647, 8.70122140759552,
|
|
3.3486084777319185, 4.171219291885647, 6.207978356288049, 8.390489704586708, 4.967019854072728, 5.642072478824843]
|
|
```
|
|
Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то
|
|
распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов
|
|
выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения
|
|
случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения.
|
|
```py
|
|
import numpy as np
|
|
import random
|
|
import matplotlib.pyplot as plt
|
|
|
|
def histo(data, num):
|
|
minval, maxval = min(data), max(data)
|
|
parts = np.linspace(minval, maxval, 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 == maxval:
|
|
rows[-1] += 1
|
|
|
|
plt.hist(data, bins=parts)
|
|
plt.xlabel('Значения выборки')
|
|
plt.ylabel('Число элементов')
|
|
plt.title('Гистограмма выборки')
|
|
plt.show()
|
|
|
|
return rows
|
|
|
|
sample = [random.gauss(random.random(), random.random()) for _ in range(random.randint(10,200))]
|
|
intervals = int(input("Введите количество интервалов разбиения: "))
|
|
output = histo(sample, intervals)
|
|
|
|
======================= RESTART: D:/STUDY/POAS/Тема7/hist.py ======================
|
|
Введите количество интервалов разбиения: 12
|
|
[1, 0, 3, 4, 11, 21, 43, 57, 22, 6, 2, 3]
|
|
|
|
```
|
|
Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х
|
|
Y=b1+b2*X
|
|
и имеющую аргументы b1, b2 и X.
|
|
```py
|
|
linreg = lambda b1, b2, x: b1 + b2 * x
|
|
b1 = float(input("Введите коэффициент b1 линейной регрессии: "))
|
|
b2 = float(input("Введите коэффициент b2 линейной регрессии: "))
|
|
x_val = float(input("Введите значение x: "))
|
|
print(linreg(b1, b2, x_val))
|
|
|
|
|
|
Введите коэффициент b1 линейной регрессии: 2
|
|
Введите коэффициент b2 линейной регрессии: 3
|
|
Введите значение x: 5
|
|
17.0
|
|
``` |