форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
79 строки
3.9 KiB
Markdown
79 строки
3.9 KiB
Markdown
# Общее контрольное задание по теме 7
|
|
|
|
Криви Анастасия, А-02-23
|
|
|
|
## Задание
|
|
|
|
1. Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т.
|
|
2. Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения.
|
|
3. Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х
|
|
Y=b1+b2*X
|
|
и имеющую аргументы b1, b2 и X.
|
|
|
|
|
|
## Решение
|
|
|
|
Функция, осуществляющая расчет выходного сигнала - входной с учетой задержки.
|
|
|
|
```py
|
|
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]
|
|
```
|
|
Функция, осуществляющая расчет гистограммы по выборке случайных величин с каким-то распределением.
|
|
```py
|
|
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
|
|
``` |