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

157 строки
4.9 KiB
Plaintext

# Выполнение индивидуального контрольного задания по теме 8
Голощапов Д.Е.,А-01-23
# Задание
Разработайте функцию с 2 аргументами: x и В, реализующую преобразование входного сигнала x по формуле: y=0 при -B≤x≤B, y=x - B при x>B, y=x+B при x<-B. Создайте список со 100 значениями входного сигнала х – случайными, нормально распределенными числами с математическим ожиданием 0.5 и дисперсией 25. Для элементов списка с помощью функции рассчитайте список со значениями выходного сигнала y при В=4.5. Записать результаты в текстовый файл в виде двух столбцов: хi, yi.
# Решение
Функция для линейно-кусочного преобразования transform_signal находится в модуле transformation_module.py
Код представлен ниже:
def transform_signal(x, B):
"""
Кусочно-линейное преобразование:
y = 0 при -B <= xi <= B
y = xi - B при xi > B
y = xi + B при xi < -B
x - список входных значений
"""
y = []
for xi in x:
if -B <= xi <= B:
y.append(0)
elif xi > B:
y.append(xi - B)
else:
y.append(xi + B)
return y
Код основного модуля:
import random
import math
from transform_module import transform_signal
def main():
x = [random.gauss(0.5, 5) for i in range(100)]
# 0.5 - мат ожидание, 5 - СКО = корень из 25 (дисперсия = 25)
y = transform_signal(x, 4.5)
with open('file.txt', 'w') as f:
f.write("xi yi\n")
for xi, yi in zip(x, y):
f.write(f"{xi} {yi}\n")
# вывод в файле file.txt
main()
Содержимое файла file.txt:
xi yi
3.670624845040832 0
-0.3521658782544006 0
8.474868613693486 3.974868613693486
-1.2523156239267281 0
-3.7587096811346328 0
7.812468585140991 3.3124685851409907
-6.0856889627564446 -1.5856889627564446
-5.724951279110531 -1.224951279110531
-7.209307783131958 -2.7093077831319583
-0.03177225581110221 0
0.7262377096028143 0
-2.1451811018035256 0
0.682492352684937 0
-7.974098743623873 -3.4740987436238733
-4.739894789384625 -0.23989478938462483
0.5785673884962104 0
2.7900552540834824 0
-2.9878254998277147 0
8.68266903601552 4.18266903601552
0.6358011132082179 0
-1.581248665373875 0
-7.714241862469274 -3.214241862469274
4.191086710659071 0
-5.8603083872222115 -1.3603083872222115
6.6401090127726645 2.1401090127726645
2.260239806764301 0
-1.6714707105856204 0
2.11512773242201 0
-5.1120638328556165 -0.6120638328556165
-10.945281168071894 -6.445281168071894
2.8366672115699614 0
1.4086809273229965 0
-2.1496484779110046 0
-2.204188117632971 0
5.109718373038055 0.6097183730380547
-0.8627148245032066 0
-3.940717361293867 0
-6.317208582843859 -1.8172085828438593
4.161315157870332 0
3.7381890083293237 0
3.509751762296771 0
-5.112977704740069 -0.6129777047400689
1.3712601808556377 0
-4.511100221705535 -0.011100221705534707
5.187248298870852 0.6872482988708519
7.526201082555464 3.026201082555464
0.943215636501155 0
-1.6731422501170918 0
-3.6509712338126468 0
-8.970988280742628 -4.4709882807426276
-3.7178510417802197 0
-9.181348116863681 -4.681348116863681
-7.096909208628782 -2.596909208628782
-6.356674467305581 -1.8566744673055808
12.362835482493008 7.862835482493008
-3.829821255664842 0
3.863254268939434 0
-7.361058739291252 -2.861058739291252
2.647441327077496 0
-0.2463332543002399 0
-6.43345466288511 -1.9334546628851097
1.0010663991036108 0
4.891543232391817 0.3915432323918173
3.217395947085928 0
7.24856212261116 2.74856212261116
0.03268157666206739 0
2.361643183782607 0
2.7565941347292853 0
6.614328614660419 2.114328614660419
-4.522306819553961 -0.022306819553961077
-2.417360799898943 0
1.438340972480404 0
-10.538183665090727 -6.0381836650907275
2.3976210633141606 0
-7.884528665296656 -3.3845286652966564
-3.7426936627274277 0
4.2656325795417 0
8.00340261637121 3.5034026163712095
3.0203739276410437 0
2.239032949899291 0
-5.4012053050140345 -0.9012053050140345
-0.5456659941079272 0
-3.3423758989922203 0
0.6911815315164658 0
4.499821505200004 0
-2.7737597404880163 0
0.9093545223215143 0
4.045688327501273 0
3.417507437526962 0
2.287170277997463 0
12.444224815662537 7.944224815662537
-2.3029729728150645 0
7.5434316730659905 3.0434316730659905
0.875475942768364 0
-1.0441288330619352 0
-1.9188907056958815 0
-5.4887311611961715 -0.9887311611961715
7.893972719410864 3.393972719410864
-7.404570078842247 -2.904570078842247
-2.066644631987605 0