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

3.4 KiB

Общее контрольное задание по Теме 7

Кузьменко Елена, А-02-23

Задание

1) Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т.
2) Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения.
3) Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х 
   Y=b1+b2*X и имеющую аргументы b1, b2 и X.

Решение

1) Функция, реализующая расчет выходного сигнала для устройства задержки.

>>> def delay(signal, T):
	"""Расчет выходного сигнала y(t) для устройства задержки"""
	return [0] * T + signal

>>> x_t = [10,9,8,15,8,5]; x_t # входной сигнал
[10, 9, 8, 15, 8, 5]
>>> y_t = delay(x_t,3); y_t # выходной сигнал с задержкой
[0, 0, 0, 10, 9, 8, 15, 8, 5]

2) Функция, реализующая расчет гистограммы

>>> def hist(spis, inv):
    """Расчет гистограммы в виде таблицы"""
    min_x = min(spis); max_x = max(spis)
    shir = (max_x - min_x) / inv # ширина одного интервала
    gran = []
    for i in range(inv + 1):
        gran.append(min_x + i * shir)
    res = []
    for j in range(inv):
        c = 0
        for x in spis:
            if gran[j] <= x < gran[j+1]: 
                c += 1
            elif x == max_x and j == inv - 1:
                c += 1
        res.append(c)
    print("[Левая Правая] Кол-во эл-в") # Левая и правая границы интервала
    for w in range(inv):
        print(f"{gran[w]:.2f}   {gran[w+1]:.2f}   {res[w]}")
    return res

>>> chisl = [random.gauss(50, 10) for i in range(20)]
>>> N = [random.gauss(50, 10) for i in range(20)]
>>> res1 = hist(N,5)
[Левая Правая] Кол-во эл-в
36.67   44.38   5
44.38   52.09   6
52.09   59.80   6
59.80   67.51   2
67.51   75.22   1

>>> print(res1) # кол-во чисел в каждом интервале
[5, 6, 6, 2, 1] 

3) Анонимная функция линейной регрессии

>>> reg = lambda b1, b2, X: b1+b2*X
>>> Y = reg(10,20,5)
>>> Y
110