форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
82 строки
3.3 KiB
Markdown
82 строки
3.3 KiB
Markdown
# Общее контрольное задание по теме 7
|
|
|
|
Ефремов Станислав, А-02-23
|
|
|
|
## Задание
|
|
|
|
Общее контрольное задание.
|
|
|
|
Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т.
|
|
|
|
Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения.
|
|
|
|
Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х Y=b1+b2*X и имеющую аргументы b1, b2 и X.
|
|
|
|
## Решение
|
|
|
|
def signal(INPUT, zaderzhka, output221, input111):
|
|
if len(input111) <= zaderzhka:
|
|
return 0
|
|
else:
|
|
return input111[-zaderzhka - 1]
|
|
|
|
# Проверка работы функции
|
|
delay = 3
|
|
output1337 = []
|
|
INPUT = [1, 2, 3, 4, 5, 6, 7]
|
|
input111 = []
|
|
|
|
for x in INPUT:
|
|
input111.append(x)
|
|
y = signal(x, delay, output1337, input111)
|
|
output1337.append(y)
|
|
|
|
|
|
print("Входной сигнал:", input111)
|
|
Входной сигнал: [1, 2, 3, 4, 5, 6, 7]
|
|
print("Выходной сигнал (задержка 3):", output1337)
|
|
Выходной сигнал (задержка 3): [0, 0, 0, 1, 2, 3, 4]
|
|
|
|
# 2
|
|
def raschet_giostogrammy(viborka, kol_int):
|
|
minn = min(viborka)
|
|
maxx = max(viborka)
|
|
shirina_intervala = (maxx-minn) / kol_int #shирина одного интервала
|
|
|
|
w = [0] * kol_int
|
|
|
|
for znachenie in viborka:
|
|
num_int = int((znachenie - minn) / shirina_intervala) # номер интервала
|
|
if num_int == kol_int:
|
|
num_int = kol_int - 1
|
|
w[num_int] += 1
|
|
|
|
print("Гистограмма:")
|
|
for i in range(kol_int):
|
|
start = minn + i * shirina_intervala
|
|
end = minn + (i + 1) * shirina_intervala
|
|
print(start, " ", end, " ", w[i], "\n")
|
|
|
|
return w
|
|
|
|
|
|
import random
|
|
|
|
rand = [random.gauss(0, 1) for _ in range(100)]
|
|
kol_int = 5
|
|
res = raschet_giostogrammy(rand, kol_int)
|
|
|
|
Гистограмма:
|
|
-2.7442822482655704 -1.7256465039133895 4
|
|
|
|
-1.7256465039133895 -0.7070107595612085 23
|
|
|
|
-0.7070107595612085 0.31162498479097245 31
|
|
|
|
0.31162498479097245 1.3302607291431534 33
|
|
|
|
1.3302607291431534 2.348896473495335 9
|
|
|
|
# 3
|
|
func = lambda b1, b2, X: b1 + b2 * X
|
|
print(func (2, 3, 5)) |