t1
Этот коммит содержится в:
104
TEMA7/task.md
Обычный файл
104
TEMA7/task.md
Обычный файл
@@ -0,0 +1,104 @@
|
||||
# Общее контрольное задание
|
||||
|
||||
Зеленкина Катерина, А-02-23
|
||||
|
||||
## Задание
|
||||
1. Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с за-держкой на заданное время Т.
|
||||
2. Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: вы-борка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения.
|
||||
3. Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y ли-нейной регрессии при значении переменной Х
|
||||
Y=b1+b2*X
|
||||
и имеющую аргументы b1, b2 и X.
|
||||
|
||||
## Решение
|
||||
```py
|
||||
def signal_delay(current_input, delay_time, output_history, input_history):
|
||||
"""
|
||||
Расчет выходного сигнала устройства задержки
|
||||
current_input - текущее значение входного сигнала
|
||||
delay_time - время задержки
|
||||
output_history - история выходных значений
|
||||
input_history - история входных значений
|
||||
"""
|
||||
if len(input_history) < delay_time:
|
||||
return 0
|
||||
else:
|
||||
return input_history[-delay_time]
|
||||
|
||||
|
||||
d = 4
|
||||
output_signal = []
|
||||
input_signal = [1, 2, 3, 4, 5, 6, 7]
|
||||
input_history = []
|
||||
|
||||
for x in input_signal:
|
||||
input_history.append(x)
|
||||
y = signal_delay(x, d, output_signal, input_history)
|
||||
output_signal.append(y)
|
||||
|
||||
print("Входной сигнал:", input_signal)
|
||||
print("Выходной сигнал:", output_signal, "(задержка 4)")
|
||||
|
||||
|
||||
Входной сигнал: [1, 2, 3, 4, 5, 6, 7]
|
||||
Выходной сигнал: [0, 0, 0, 1, 2, 3, 4] (задержка 4)
|
||||
```
|
||||
|
||||
```py
|
||||
# Пункт 2
|
||||
def raschet_giostogrammy(viborka, kol_int):
|
||||
"""
|
||||
Расчет гистограммы по выборке случайной величины
|
||||
|
||||
Аргументы:
|
||||
viborka - список значений выборки
|
||||
kol_int - число интервалов разбиения
|
||||
|
||||
Возвращает:
|
||||
w - список с числами элементов в интервалах
|
||||
"""
|
||||
minn = min(viborka)
|
||||
maxx = max(viborka)
|
||||
shirina = (maxx - minn) / kol_int # Исправлена ошибка в формуле
|
||||
|
||||
w = [0] * kol_int
|
||||
|
||||
for znachenie in viborka:
|
||||
num_int = int((znachenie - minn) / shirina) # Исправлено: от minn
|
||||
if num_int == kol_int:
|
||||
num_int = kol_int - 1
|
||||
w[num_int] += 1
|
||||
|
||||
# Вывод таблицы
|
||||
print("Гистограмма:")
|
||||
print("Интервал\t\tКоличество")
|
||||
for i in range(kol_int):
|
||||
start = minn + i * shirina
|
||||
end = minn + (i + 1) * shirina
|
||||
print(f"{start:.2f} - {end:.2f}\t\t{w[i]}")
|
||||
|
||||
return w
|
||||
|
||||
# Проверка функции
|
||||
import random
|
||||
|
||||
viborka = [random.gauss(0, 1) for _ in range(100)]
|
||||
kol_interv = 5
|
||||
resultat = raschet_giostogrammy(viborka, kol_interv)
|
||||
|
||||
|
||||
|
||||
Гистограмма:
|
||||
Интервал Количество
|
||||
-2.11 - -1.31 13
|
||||
-1.31 - -0.52 12
|
||||
-0.52 - 0.28 30
|
||||
0.28 - 1.07 34
|
||||
1.07 - 1.86 11
|
||||
```
|
||||
|
||||
```py
|
||||
anonim_func = lambda b1, b2, X: b1 + b2 * X
|
||||
print(anonim_func (1, 2, 3))
|
||||
|
||||
7
|
||||
```
|
||||
Ссылка в новой задаче
Block a user