форкнуто от main/python-labs
Родитель
9aaa5896e6
Сommit
f85ae22107
@ -1,26 +1,84 @@
|
|||||||
\# Общее контрольное задание по теме 5
|
# Общее контрольное задание по теме 5
|
||||||
|
|
||||||
Соловьёва Екатерина, А-01-23
|
Соловьёва Екатерина, А-01-23
|
||||||
|
|
||||||
|
## Задание
|
||||||
|
* Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т.
|
||||||
\## Задание
|
* Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения.
|
||||||
|
* Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х
|
||||||
\* Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т.
|
Y=b1+b2*X
|
||||||
|
|
||||||
\* Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения.
|
|
||||||
|
|
||||||
\* Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х
|
|
||||||
|
|
||||||
Y=b1+b2\*X
|
|
||||||
|
|
||||||
и имеющую аргументы b1, b2 и X.
|
и имеющую аргументы b1, b2 и X.
|
||||||
|
|
||||||
|
## Решение
|
||||||
|
# 1
|
||||||
\## Решение
|
|
||||||
|
|
||||||
```py
|
```py
|
||||||
|
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
|
||||||
|
```py
|
||||||
|
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
|
||||||
|
```py
|
||||||
|
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
|
||||||
|
```
|
||||||
Загрузка…
Ссылка в новой задаче