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

3.8 KiB

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

Степанов Артём, А-02-23

Задание

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

Решение

>>> #1
>>>
>>> def createDelay(x, T):
...     """Функция для реализации задержки сигнала в определенный момент времени
...     x - исходный сигнал
...     T - заданная задержка"""
...     return [0] * T + x
... 
>>> x = [1, 2, 3, 4, 5]
>>> y = createDelay(x, 5)
>>> print(y)
    [0, 0, 0, 0, 0, 1, 2, 3, 4, 5]
>>>
>>> #2
>>>
>>> def createHistogram(x, bins):
...     lowerBound = min(x)
...     upperBound = max(x)
...     binWidth = (upperBound - lowerBound) / bins
...     binsElements = []
...     for i in range(bins):
...         lower = lowerBound + i * binWidth
...         upper = upperBound if i == bins - 1 else lowerBound + (i + 1) * binWidth
...         binsElements.append(len(list(filter(lambda elem: lower <= elem and elem < upper, x))))
...         if i == bins - 1: binsElements[i] += x.count(upper)
...         print(f"""Интервал: {i + 1}
...             Нижняя граница: {lower}
...             Верхняя граница: {upper}
...             Число элементов: {binsElements[i]}
...         """)
...     return binsElements
... 
>>> import random
>>> x = [random.gauss(5, 10) for i in range(100)]
>>> elementsNum = createHistogram(x, 4)
    Интервал: 1
                Нижняя граница: -22.9123782025076
                Верхняя граница: -8.994907250763529
                Число элементов: 7
        
    Интервал: 2
                Нижняя граница: -8.994907250763529
                Верхняя граница: 4.922563700980543
                Число элементов: 50
        
    Интервал: 3
                Нижняя граница: 4.922563700980543
                Верхняя граница: 18.840034652724615
                Число элементов: 39
          
    Интервал: 4
                Нижняя граница: 18.840034652724615
                Верхняя граница: 32.75750560446868
                Число элементов: 4
         
>>> print(elementsNum)
    [7, 50, 39, 4]
>>>
>>> #3
>>>
>>> regression = lambda X, b1, b2: b1 + b2 * X
>>> regression(3, 7, 1)
    10