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

4.1 KiB

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

Соловьёва Екатерина, А-01-23

Задание

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

Решение

1.

def delay_signal (signal, T):
           """"Расчёт выхода y(t) для устройства задержки"""
           output=[]
           for i in range(len(signal)):
                  if i < T:
                     out.append(0)
                  else:
                     output.append(signal[i-T]) 
           return output
x=[1,0.5,3.6,4.5,1,2,0.5] # Входной сигнал
y= delay_signal (x, 2)
print(y)

2.

import random
import matplotlib.pyplot as plt

def histogram(sample, number):
    min_1 = min(sample)
    max_1 = max(sample)
    bins = (max_1 - min_1) / number  # Ширина одного интервала
    rows = [0] * number  # Создание списка для подсчёта элементов в каждом интервале
    intervals = []  # Список для хранения границ интервалов
    
    for i in range(number):
        lower = min_1 + i * bins
        upper = min_1 + (i + 1) * bins
        intervals.append((lower, upper))
    
    for x in sample:
        i = int((x - min_1) / bins)  # Вычисление номера интервала для текущего элемента
        if i == number:
            i = number - 1
        rows[i] += 1
    
    print("Границы интервала | Число элементов")
    for i in range(number):
        lower, upper = intervals[i]
        print(lower, "-", upper, "  |", rows[i])
    
    plt.hist(sample, number)
    plt.xlabel('Значения выборки')
    plt.ylabel('Число элементов')
    plt.title('Гистограмма выборки')
    plt.show()
    
    return rows

data = [random.gauss(1, 20) for _ in range(10)]
histogram(data, 3)
Границы интервала | Число элементов
-41.93512946278788 - -17.371680704583262   | 1
-17.371680704583262 - 7.191768053621352   | 3
7.191768053621352 - 31.755216811825967   | 6

График

3.

linreg = lambda b1, b2, x: b1 + b2 * x
b1 = float(input("Введите коэффициент b1 линейной регрессии: "))
b2 = float(input("Введите коэффициент b2 линейной регрессии: "))
x_val = float(input("Введите значение x: "))
print(linreg(b1, b2, x_val))

Введите коэффициент b1 линейной регрессии: 3
Введите коэффициент b2 линейной регрессии: 4
Введите значение x: 5
23.0