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

4.9 KiB

Выполнение индивидуального контрольного задания по теме 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