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

82 строки
8.0 KiB
Markdown

# Общее контрольное задание по Теме 7
Ходюк Максим Романович А-01-23
## Задание
• Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с за-держкой на заданное время Т.
• Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращае-мый результат функции: список с числами элементов выборки в интервалах разбиения.
• Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х Y=b1+b2*X и имеющую аргументы b1, b2 и X.
### Решение
#### Пункт 1:
```
def DelayDevice(x,T):
Delayed = x.copy()
if T<len(x):
Delayed = [0]*T+x[:-T]
else:
Delayed = [0]*len(x)
return Delayed
import random as rn
x = [rn.gauss(3, 1.5) for i in range(40)]
x
[3.1589137709718664, 0.15786881651624274, 3.655937104939686, 1.3856988790368416, 2.4149579106455343, 3.568139429890449, 0.6502982925728604, 2.1288342216840332, 0.10248162468353073, 5.438586993036432, 1.297796576373099, 3.514772803475419, 0.3936488059210079, 3.3886107922050206, 2.673091880093213, 4.618651491868087, 4.317410501200125, 3.0369790324418533, 2.6505882683872373, 2.526249500767949, 4.45594490411977, 3.0154987709680396, 1.60901116619933, 3.686469689169056, 2.66935184492142, 0.8004068095518924, -0.06600109304723034, 0.8947107481055605, 4.979471939334061, 2.8688993459163132, 1.7797761176870224, 1.1081847381986072, 4.7503090811221185, 5.261889235788347, 2.715216417011531, 4.564748747903588, 2.32931481167102, 5.32068272026709, 3.686288757113939, 3.7262748782542134]
y = DelayDevice(x,3)
y
[0, 0, 0, 3.1589137709718664, 0.15786881651624274, 3.655937104939686, 1.3856988790368416, 2.4149579106455343, 3.568139429890449, 0.6502982925728604, 2.1288342216840332, 0.10248162468353073, 5.438586993036432, 1.297796576373099, 3.514772803475419, 0.3936488059210079, 3.3886107922050206, 2.673091880093213, 4.618651491868087, 4.317410501200125, 3.0369790324418533, 2.6505882683872373, 2.526249500767949, 4.45594490411977, 3.0154987709680396, 1.60901116619933, 3.686469689169056, 2.66935184492142, 0.8004068095518924, -0.06600109304723034, 0.8947107481055605, 4.979471939334061, 2.8688993459163132, 1.7797761176870224, 1.1081847381986072, 4.7503090811221185, 5.261889235788347, 2.715216417011531, 4.564748747903588, 2.32931481167102]
```
#### Пункт 2:
```
def histog(Data, NumOfBins):
PartIntervals = np.linspace(min(Data),max(Data),NumOfBins+1)
Bins = [0]*NumOfBins
for x in Data:
for i in range(NumOfBins):
if PartIntervals[i]<= x < PartIntervals[i+1]:
Bins[i] += 1
break
if x == max(Data):
Bins[-1] += 1
return Bins, PartIntervals
import matplotlib.pyplot as plt
data
[0.5378216995683558, 1.1641589082566997, 0.9147103596009363, 0.5776633502983135, 0.2792996433359695, -0.5380463152699617, -0.11398986117548277, 0.464250090411372, -0.1180243219953355, 0.9392621334129809, 0.2602467488731561, 0.11137063002511538, 1.0143704999861716, 0.9405864021219105, 0.30064634170255167, 0.8562856595996535, 0.051083247475117444, 0.34072284772951444, -0.5532354093325268, 0.6866962172012473, 0.8965397875222096, 0.9929453387120099, -0.5953523836268519, 0.8021587960226041, 1.9546837866138094, -0.7424097094091009, -0.0956552481747655, 0.6924390955614415, 1.0250337911920306, 0.8275003913021624, 0.10994750512663758, 0.5289757668604967, 0.26799949912357107, 0.37973524002087466, 1.5113353518207422, 1.1939154246440982, -0.8249955650037828, 1.126892111969929, -1.016215293110937, 0.9759837638837126, 0.6950225161885795, 0.7572837212456087, -0.5265904134149108, 2.457010568216869, 0.44672225119196785, -0.5509641066519938, 0.4696290378726147, 0.8814765811801879, 0.6762491768403642, 0.17190218474929633, 0.8218627371754621, 0.5416170394630445, 0.9114921616592224, 0.3544816188119451, 0.4756829010056257, 0.00782646665602904, 1.2358999602753222, 0.8083393494705281, 1.2588457987982808, 0.805988133090431, 0.16219883634120713, 0.4518205658327258, 0.1599602558137734, 0.5097603200711073, -0.4610511433897865, -0.3819260879741204, 1.5600558952457446, 0.339825431792831, -0.17078684174281955, 0.20058378403870256, 1.0033775253872794, 1.0724613439660726, 0.032684733867573895, -0.7728994174164051, 0.48671452779023466, 0.9724145477348829, 1.135568097372498, 0.7199643203270871, -0.3531333720621094, 1.072205774213457, 0.7677224563206929, 1.0049793264905427, 1.8202742272818593, 1.8932219658939857, 0.6290284540098144, 1.312187448195754, -1.0052240958876464, -0.2512858370869674, 0.5643550634286253, 0.9573448967654771, 0.31651970752940917, 0.9738021341667136, 0.6345303352005807, -1.1491797486267818, 0.7906710751543553, 0.33372584330754596, 0.058350198023357724, 0.9341769987228196, 0.4012483646843851, -0.005374018323411889, 0.744254234579628, 0.12330272842228102, 0.6786227936939597, -0.37632710171874495, 0.9245031060710469, 0.8035701765839196, 2.6078433227329296, 0.07119641031349294, 0.6102599343061698, 0.49953869236728743, 0.5448863221554354, 0.4586548778361403, 0.7942965401929633, 0.31567333732179226, 0.32774877428259147, 0.25933335901074467, 1.0225612714563157, 1.374256108299675, 0.3097228764845623, 0.13431896141567445, 0.924405334005902, -0.22299081295116258, 0.7964179022876605, 1.1184587921307172, 0.779729411597617, 0.8926712397832665, -0.17674282596964386, 0.8829109759002627, 0.8186014299523164, -0.057807379612117044, -0.04785851777817823, 1.2294159898452923, -0.13041631377597987, 0.6675005746749451, 0.9915678237703984]
N = int(input('Введите количество интервалов разбиения'))
Введите количество интервалов разбиения 5
import numpy as np
bins, partintervals = histog(data,N)
plt.hist(data, bins=partintervals)
(array([12., 39., 67., 13., 4.]), array([-1.14917975, -0.39777513, 0.35362948, 1.10503409, 1.85643871,
2.60784332]), <BarContainer object of 5 artists>)
plt.xlabel('Значения выборки')
Text(0.5, 0, 'Значения выборки')
plt.ylabel('Число элементов')
Text(0, 0.5, 'Число элементов')
plt.title('Гистограмма выборки')
Text(0.5, 1.0, 'Гистограмма выборки')
plt.show()
print("кол-во элементов в корзинах:", bins)
кол-во элементов в корзинах: [12, 39, 67, 13, 4]
```
Полученный график:
![Figure1.png](Figure1.png)
#### Пункт 3:
```
LinRegr = lambda b1,b2,X: b1+b2*X
b1 = float(input("Введите коэффициент b1 линейной регрессии: "))
Введите коэффициент b1 линейной регрессии: 5
b2 = float(input("Введите коэффициент b2 линейной регрессии: "))
Введите коэффициент b2 линейной регрессии: 7
X = float(input("Введите значение x: "))
Введите значение x: 12
print(LinRegr(b1,b2,X))
89.0
```