форкнуто от main/python-labs
				
			
							Родитель
							
								
									cddd379760
								
							
						
					
					
						Сommit
						c33867f9c8
					
				@ -0,0 +1,74 @@
 | 
				
			||||
# ОБЩЕЕ КОНТРОЛЬНОЕ ЗАДАНИЕ по Теме 5
 | 
				
			||||
Выполнил: Тимошенко А.А. Проверил: Козлюк Д.А.
 | 
				
			||||
 | 
				
			||||
## Задание
 | 
				
			||||
•	Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с за-держкой на заданное время Т.
 | 
				
			||||
•	Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в ви-де таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращае-мый результат функции: список с числами элементов выборки в интервалах разбиения.
 | 
				
			||||
•	Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х 
 | 
				
			||||
Y=b1+b2*X
 | 
				
			||||
и имеющую аргументы b1, b2 и X.
 | 
				
			||||
 | 
				
			||||
## Решение
 | 
				
			||||
```
 | 
				
			||||
def delays (signal, T):
 | 
				
			||||
	for i in range(len(signal)):
 | 
				
			||||
		signal[i] += T
 | 
				
			||||
	return signal
 | 
				
			||||
 | 
				
			||||
>>> y = [random.gauss(3, 1.5) for _ in range(40)]#Входной сигнал
 | 
				
			||||
>>> y
 | 
				
			||||
[3.5308366978488173, 0.006892666223876187, 1.2394771504589523, 2.0069405045596493, 3.3701806146667646, 4.568309578320961, 3.830576373772275, 5.089352582074263, 0.6086460457038703, 3.1769401246921265, 3.677587266397529, 4.042570885242653, 0.9287756515029977, 4.3904562576474095, 1.1736063571678461, 0.6917653051585262, 2.300866393101024, 2.6571601817161152, -1.098586574456716, 2.9743622204041698, 3.366759165331458, 1.8996085601865385, 2.973218126967005, 4.503496241270362, 4.2343496688138815, 0.9139308016811043, 3.340602488969483, 5.6955620693596245, 4.809363647837281, 0.44651663563187505, 4.662161337773905, 3.529505402423845, 2.738439309413467, 5.037519402382986, 2.5068399986117065, 3.4389064953446677, 3.3575710964945547, 3.021725105125102, 2.3955360493488564, 1.11368253377079]
 | 
				
			||||
 | 
				
			||||
>>> yd = delays(y, 4)
 | 
				
			||||
>>> yd
 | 
				
			||||
[7.530836697848818, 4.006892666223877, 5.239477150458953, 6.006940504559649, 7.370180614666765, 8.56830957832096, 7.830576373772275, 9.089352582074262, 4.60864604570387, 7.176940124692127, 7.677587266397529, 8.042570885242654, 4.928775651502997, 8.39045625764741, 5.173606357167846, 4.691765305158526, 6.300866393101024, 6.657160181716115, 2.901413425543284, 6.97436222040417, 7.366759165331458, 5.899608560186539, 6.973218126967005, 8.503496241270362, 8.23434966881388, 4.913930801681104, 7.340602488969483, 9.695562069359625, 8.80936364783728, 4.446516635631875, 8.662161337773906, 7.529505402423845, 6.738439309413467, 9.037519402382987, 6.5068399986117065, 7.438906495344668, 7.357571096494555, 7.0217251051251015, 6.3955360493488564, 5.11368253377079]
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
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.gauss(random.random(), random.random()) for _ in range(random.randint(10,200))]
 | 
				
			||||
intervals = int(input("Введите количество интервалов разбиения: "))
 | 
				
			||||
output = histo(sample, intervals)
 | 
				
			||||
 | 
				
			||||
======= RESTART: C:\Users\mapon\OneDrive\Рабочий стол\ПО АС\ТЕМА7\OKZ2.py ======
 | 
				
			||||
Введите количество интервалов разбиения: 12
 | 
				
			||||
Список с числами элементов в интервалах: [3, 4, 10, 10, 6, 8, 7, 0, 1, 0, 0, 1]
 | 
				
			||||
 | 
				
			||||
#График сохранен под именем Figure_2
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
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 линейной регрессии: 2
 | 
				
			||||
Введите коэффициент b2 линейной регрессии: 3
 | 
				
			||||
Введите значение x: 5
 | 
				
			||||
17.0
 | 
				
			||||
```
 | 
				
			||||
					Загрузка…
					
					
				
		Ссылка в новой задаче