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

3.6 KiB

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

Беженарь Алёна, А-02-23

Задание:

  • Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т.

  • Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения.

  • Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х Y=b1+b2*X и имеющую аргументы b1, b2 и X.

Решение

>>> #1
>>> def zaderzka (signal, T):
...     """"Расчёт выхода y(t) для устройства задержки
...    signal - входной сигнал
...    T-параметр задержки сигнала"""
...    output=[]
...    for i in range(len(signal)+T):
...        if i < T:
...            output.append(0)
...        else:
...            output.append(signal[i-T])
...    return output
...
>>> x=[1,2,3.4,4.5,6,7,8.9] # Входной сигнал
>>> y=zaderzka(x,4)
>>> print(y)
    [0, 0, 0, 0, 1, 2, 3.4, 4.5, 6, 7, 8.9]
>>> #2
>>> def createHistogram(x, bins):
...    lowerBound = min(x) #нижняя граница
...    upperBound = max(x) #верхняя граница
...    binWidth = (upperBound - lowerBound) / bins # Ширина одного интервала
...    binsElements = [] # Создание списка для подсчёта элементов в каждом интервале
...    intervals=[]
...    for i in range(bins + 1):
...        intervals.append(lowerBound + i * binWidth)
...    for j in range(bins):
...        c = 0
...        for num in x:
...            if intervals[j] <= num < intervals[j+1]: 
...               c += 1
...            elif num == upperBound and j == bins - 1:
...                c += 1
...        binsElements.append(c)
...    print("[Лев.гр Прав.гр] Кол-во эл-в") # Левая и правая границы интервала
...    for w in range(bins):
...        print(f"{intervals[w]:.2f}   {intervals[w+1]:.2f}   {binsElements[w]}")
...    return binsElements
>>> data = [random.gauss(1, 20) for _ in range(100)]
>>> hist=createHistogram (data, 5)
    [Лев.гр Прав.гр] Кол-во эл-в
    -44.79   -24.74   9
    -24.74   -4.69   29
    -4.69   15.36   38
    15.36   35.42   22
    35.42   55.47   2
>>> print(hist)   
    [9, 29, 38, 22, 2]
>>> #3
>>> linear_regression = lambda b1, b2, x: b1+b2 * x
>>> result = linear_regression (5,10,20)
>>> result
    205