форкнуто от main/python-labs
Родитель
333267ea06
Сommit
551febc2b8
|
После Ширина: | Высота: | Размер: 20 KiB |
@ -0,0 +1,73 @@
|
||||
# Общее контрольное задание по Теме 7
|
||||
Лазарев Данил, А-01-23
|
||||
## Задание
|
||||
1) Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т.
|
||||
|
||||
2) Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения.
|
||||
|
||||
3) Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х Y=b1+b2*X и имеющую аргументы b1, b2 и X.
|
||||
|
||||
## Решение
|
||||
1
|
||||
```
|
||||
import random
|
||||
def pause(signal, Tzad):
|
||||
for i in range(len(signal)):
|
||||
signal[i] += Tzad
|
||||
return signal
|
||||
x = [random.gauss(4,2) for i in range(50)]
|
||||
print(x)
|
||||
>> [4.554934668143937, 3.4840034067481596, 5.783704920257177, 2.2673981556849854, 3.637207518963695, 4.928284537892706, 3.655624852662219, 2.1080409531171194, 0.3493513242388757, -1.7563458690614748, 6.748642350711133, 6.722646615888181, 4.569884290438617, 6.523501317666689, 4.658363631486193, 4.218911925736901, 4.890426470089574, 8.796310317418829, 1.8981326102969862, 4.870651657859748, 6.063331622595339, 3.2857361029730523, 4.093997703289792, 5.1098105549168675, 9.165990116422284, 4.265606387207712, 1.4428720762923297, 7.614937398547371, 3.8768383637378863, 1.1980432801244003, 2.520471922428432, 6.366190221564959, 1.8032226151758288, 6.041064797415087, 4.599636124519937, 5.4791124080761, 5.7067407987291645, 0.8069938478306939, 8.160238960930872, -1.9708104724118636, 5.063074517209827, 3.9774440034373657, 2.5302029826241235, 0.6101816450926814, 3.52062840858419, 4.153092578291465, -0.3244177464779172, 1.7990262033369353, 4.7018669445967545, 3.9988651429527797]
|
||||
|
||||
y = pause(x,3)
|
||||
print(y)
|
||||
>> [7.554934668143937, 6.48400340674816, 8.783704920257177, 5.267398155684985, 6.637207518963695, 7.928284537892706, 6.6556248526622195, 5.108040953117119, 3.3493513242388757, 1.2436541309385252, 9.748642350711133, 9.72264661588818, 7.569884290438617, 9.523501317666689, 7.658363631486193, 7.218911925736901, 7.890426470089574, 11.796310317418829, 4.898132610296987, 7.870651657859748, 9.063331622595339, 6.285736102973052, 7.093997703289792, 8.109810554916868, 12.165990116422284, 7.265606387207712, 4.44287207629233, 10.614937398547372, 6.876838363737886, 4.1980432801244, 5.520471922428432, 9.36619022156496, 4.803222615175828, 9.041064797415087, 7.599636124519937, 8.4791124080761, 8.706740798729165, 3.806993847830694, 11.160238960930872, 1.0291895275881364, 8.063074517209827, 6.977444003437366, 5.5302029826241235, 3.6101816450926814, 6.52062840858419, 7.153092578291465, 2.675582253522083, 4.799026203336935, 7.7018669445967545, 6.99886514295278]
|
||||
|
||||
```
|
||||
2
|
||||
```
|
||||
import numpy as np
|
||||
import random
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
def histo(data, num):
|
||||
minval, maxval = min(data), max(data)
|
||||
parts = np.linspace(minval, maxval, num + 1)
|
||||
rows = [0] * num
|
||||
for now in data:
|
||||
for i in range(num):
|
||||
if parts[i] <= now < parts[i + 1]:
|
||||
rows[i] += 1
|
||||
break
|
||||
if now == maxval:
|
||||
rows[-1] += 1
|
||||
|
||||
plt.hist(data, bins=parts)
|
||||
plt.xlabel('Значения выборки')
|
||||
plt.ylabel('Число элементов')
|
||||
plt.title('Гистограмма выборки')
|
||||
plt.show()
|
||||
|
||||
return rows
|
||||
|
||||
sample = [random.betavariate(random.random(), random.random()) for _ in range(random.randint(10,200))]
|
||||
intervals = int(input("Введите количество интервалов разбиения: "))
|
||||
output = histo(sample, intervals)
|
||||
|
||||
Введите количество интервалов разбиения: 10
|
||||
```
|
||||

|
||||
|
||||
3
|
||||
```
|
||||
regression = lambda b1,b2,X: b1+b2*X
|
||||
b1 = float(input("Введите значение b1"))
|
||||
b2 = float(input("Введите значение b2"))
|
||||
X = float(input("Введите значение X"))
|
||||
Forecast = regression(b1,b2,X)
|
||||
>> Введите значение b1 1
|
||||
>> Введите значение b2 2
|
||||
>> Введите значение X 4
|
||||
print("Полученное предсказанное значение:",Forecast)
|
||||
>> Полученное предсказанное значение: 9.0
|
||||
```
|
||||
@ -0,0 +1,45 @@
|
||||
|
||||
import random
|
||||
def pause(signal, Tzad):
|
||||
for i in range(len(signal)):
|
||||
signal[i] += Tzad
|
||||
return signal
|
||||
x = [random.gauss(4,2) for i in range(50)]
|
||||
print(x)
|
||||
y = pause(x,3)
|
||||
print(y)
|
||||
|
||||
import numpy as np
|
||||
import random
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
def histo(data, num):
|
||||
minval, maxval = min(data), max(data)
|
||||
parts = np.linspace(minval, maxval, num + 1)
|
||||
rows = [0] * num
|
||||
for now in data:
|
||||
for i in range(num):
|
||||
if parts[i] <= now < parts[i + 1]:
|
||||
rows[i] += 1
|
||||
break
|
||||
if now == maxval:
|
||||
rows[-1] += 1
|
||||
|
||||
plt.hist(data, bins=parts)
|
||||
plt.xlabel('Значения выборки')
|
||||
plt.ylabel('Число элементов')
|
||||
plt.title('Гистограмма выборки')
|
||||
plt.show()
|
||||
|
||||
return rows
|
||||
|
||||
sample = [random.betavariate(random.random(), random.random()) for _ in range(random.randint(10,200))]
|
||||
intervals = int(input("Введите количество интервалов разбиения: "))
|
||||
output = histo(sample, intervals)
|
||||
|
||||
regression = lambda b1,b2,X: b1+b2*X
|
||||
b1 = float(input("Введите значение b1"))
|
||||
b2 = float(input("Введите значение b2"))
|
||||
X = float(input("Введите значение X"))
|
||||
Forecast = regression(b1,b2,X)
|
||||
print("Полученное предсказанное значение:",Forecast)
|
||||
Загрузка…
Ссылка в новой задаче