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

102 строки
3.6 KiB
Markdown

# Общее контрольное задание по теме 7
Зеленкина Ксения, А-02-23
## Задание
- Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т.
- Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения.
- Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х
Y=b1+b2*X
и имеющую аргументы b1, b2 и X.
#### Решение
##### 1
_Код:_
```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]
delay = 3
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, delay, output_signal, input_history)
output_signal.append(y)
print("Входной сигнал:", input_signal)
print("Выходной сигнал (задержка 3):", output_signal)
```
_Вывод:_
```py
Входной сигнал: [1, 2, 3, 4, 5, 6, 7]
Выходной сигнал (задержка 3): [0, 0, 1, 2, 3, 4, 5]
```
##### 2
_Код:_
```py
def raschet_giostogrammy(viborka, kol_int):
minn = min(viborka)
maxx = max(viborka)
shirina_intervala = (minn - maxx) / kol_int
w = [0] * kol_int
for znachenie in viborka:
num_int = int((znachenie - maxx) / shirina_intervala)
if num_int == kol_int:
num_int = kol_int - 1
w[num_int] += 1
print("Гистограмма:")
for i in range(kol_int):
start = maxx + i * shirina_intervala
end = maxx + (i + 1) * shirina_intervala
print(f"[{start:.2f}, {end:.2f}]: {w[i]}")
return w
import random
rand = [random.gauss(0, 1) for _ in range(100)]
kol_int = 5
res = raschet_giostogrammy(rand, kol_int)
```
_Вывод:_
```py
Гистограмма:
[3.43, 2.27]: 2
[2.27, 1.11]: 9
[1.11, -0.05]: 37
[-0.05, -1.20]: 37
[-1.20, -2.36]: 15
```
##### 3
_Код:_
```py
anonim_func = lambda b1, b2, X: b1 + b2 * X
print(anonim_func (2, 3, 5))
```
_Вывод:_
```py
17
```