Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

3.4 KiB

Общее контрольное задание по теме 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))