ответвлено от main/python-labs
new: added report and ОКЗ
Этот коммит содержится в:
64
TEMA7/task.md
Обычный файл
64
TEMA7/task.md
Обычный файл
@@ -0,0 +1,64 @@
|
||||
# Общее контрольное задание по теме 7
|
||||
|
||||
Беженарь Алёна, А-02-23
|
||||
|
||||
# Задание:
|
||||
|
||||
* Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т.
|
||||
|
||||
* Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения.
|
||||
|
||||
* Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х Y=b1+b2*X и имеющую аргументы b1, b2 и X.
|
||||
|
||||
# Решение
|
||||
```py
|
||||
>>> #1
|
||||
>>> def zaderzka (signal, T):
|
||||
... """"Расчёт выхода y(t) для устройства задержки
|
||||
... signal - входной сигнал
|
||||
... T-параметр задержки сигнала"""
|
||||
... output=[]
|
||||
... for i in range(len(signal)+T):
|
||||
... if i < T:
|
||||
... output.append(0)
|
||||
... else:
|
||||
... output.append(signal[i-T])
|
||||
... return output
|
||||
...
|
||||
>>> x=[1,2,3.4,4.5,6,7,8.9] # Входной сигнал
|
||||
>>> y=zaderzka(x,4)
|
||||
>>> print(y)
|
||||
[0, 0, 0, 0, 1, 2, 3.4, 4.5, 6, 7, 8.9]
|
||||
>>> #2
|
||||
>>> def histogram (viborka, korziny):
|
||||
... niz_gran = min(viborka) #нижняя граница
|
||||
... verx_gran = max(viborka) #верхняя граница
|
||||
... bins=(verx_gran-niz_gran)/korziny # Ширина одного интервала
|
||||
... Num_elements = [0]*korziny # Создание списка для подсчёта элементов в каждом интервале
|
||||
... intervals = [] # Список для хранения границ интервалов
|
||||
... for i in range(korziny):
|
||||
... lower = niz_gran + i * bins
|
||||
... upper = verx_gran + (i+1) * bins
|
||||
... intervals.append((lower, upper))
|
||||
... for x in viborka:
|
||||
... i = int((x-niz_gran)/bins) # Вычисление номера интервала для текущего элемента
|
||||
... if i == korziny:
|
||||
... i=korziny-1
|
||||
... Num_elements[i] +=1
|
||||
... plt.hist(viborka, korziny)
|
||||
... plt.xlabel('Значения выборки')
|
||||
... plt.ylabel('Число элементов')
|
||||
... plt.title('Гистограмма выборки')
|
||||
... plt.show()
|
||||
... return Num_elements
|
||||
>>> data = [random.gauss(1, 20) for _ in range(100)]
|
||||
>>> histogram (data, 5)
|
||||
```
|
||||

|
||||
```py
|
||||
>>> #3
|
||||
>>> linear_regression = lambda b1, b2, x: b1+b2 * x
|
||||
>>> result = linear_regression (5,10,20)
|
||||
>>> result
|
||||
205
|
||||
```
|
||||
Ссылка в новой задаче
Block a user