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

3.9 KiB

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

Криви Анастасия, А-02-23

Задание

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

Решение

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

def func_zad(x, T):
	"""Функция, реализующая для момента времени расчет выхода (выходного 	сигнала) для устройства задержки, где
	x - входной сигнал, введенный списком
	T - задержка"""
	for i in range(len(x)):
		x[i] += T
	return x

func_zad([5,19,33,40], 10)
[15, 29, 43, 50]

Функция, осуществляющая расчет гистограммы по выборке случайных величин с каким-то распределением.

def histogram(vbor, ch):
    """
    Расчет гистограммы для выборки данных
    vbor - список значений
    ch - количество интервалов
    Возвращает список количеств элементов в каждом интервале
    """
    min_v = min(vbor)
    max_v = max(vbor)
    width = (max_v - min_v) / ch
    
    # Инициализация счетчиков
    counts = [0] * ch
    
    for i in vbor:	 # подсчет элементов в каждом интервале
        if i == max_v:  	# для максимального значения
            ind = ch - 1
        else:
            ind = int((i - min_v) / width)
        counts[ind] += 1
    
    # Вывод таблицы
    print("Гистограмма:")
    print("Интервал       Количество")
    
    for i in range(ch):
        lg = min_v + i * width
        rg = min_v + (i + 1) * width
        print(f"[",lg,";",rg,"]","|",counts[i])
    	print(f"Список с числами элементов выборки в интервалах разбиения")
    return counts

import random
histogram([random.randint(0, 100) for _ in range(10)], 4)

Гистограмма:
Интервал       Количество
[ 29.0 ; 45.75 ] | 3
[ 45.75 ; 62.5 ] | 2
[ 62.5 ; 79.25 ] | 1
[ 79.25 ; 96.0 ] | 4
Список с числами элементов выборки в интервалах разбиения
[3, 2, 1, 4]

regression = lambda x, b1, b2: b1 + b2 * x
regression(3, 7, 1)
10