From f66f431d9e0be3b04ecb236ca67695f1464872a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=20=E2=84=96=209=20=D0=B0=D1=83=D0=B4=D0=B8?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B8=D0=B8=20=D0=96-202?= Date: Fri, 21 Nov 2025 10:25:36 +0300 Subject: [PATCH] TEMA7/report.md and TEMA7/task.md --- TEMA7/Figure_1.png | Bin 0 -> 8608 bytes TEMA7/Figure_2.png | Bin 0 -> 6785 bytes TEMA7/report.md | 421 +++++++++++++++++++++++++++++++++++++++++++++ TEMA7/task.md | 52 ++++++ 4 files changed, 473 insertions(+) create mode 100644 TEMA7/Figure_1.png create mode 100644 TEMA7/Figure_2.png create mode 100644 TEMA7/report.md create mode 100644 TEMA7/task.md diff --git a/TEMA7/Figure_1.png b/TEMA7/Figure_1.png new file mode 100644 index 0000000000000000000000000000000000000000..8f34be111f09c5a469196ce70d1bd4ae700cadb9 GIT binary patch literal 8608 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 V75v>j6#`%9PTT%i{twUF{{_{#IU@i7 literal 0 HcmV?d00001 diff --git a/TEMA7/Figure_2.png b/TEMA7/Figure_2.png new file mode 100644 index 0000000000000000000000000000000000000000..9b98d900f33d0338a5d65538f8be15eb62a1d6ec GIT binary patch literal 6785 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 Q0FU!$EKbw@>> def uspeh(): +... """Подтверждение успеха операции""" +... print('Выполнено успешно!') +... +... +>>> uspeh() +Выполнено успешно! +>>> dir(uspeh) +['__annotations__', '__builtins__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__getstate__', '__globals__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__kwdefaults__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__type_params__'] +>>> help(uspeh) +Help on function uspeh in module __main__: + +uspeh() + Подтверждение успеха операции +``` + +### 2.2. Пример функции с аргументами + +```py +>>> def sravnenie(a,b): +... """Сравнение a и b""" +... if a>b: +... print(a,' больше ',b) +... elif a>> n,m=16,5;sravnenie(n,m) +16 больше 5 +``` + +### 2.3. Пример функции, содержащей return. + +```py +>>> def logistfun(b,a): +... """Вычисление логистической функции""" +... import math +... return a/(1+math.exp(-b)) +... +>>> v,w=1,0.7;z=logistfun(w,v) +>>> print(z) +0.6681877721681662 +``` + +### 2.4. Сложение для разных типов аргументов + +```py +>>> def slozh(a1,a2,a3,a4): +... """ Сложение значений четырех аргументов""" +... return a1+a2+a3+a4 +... +... +>>> slozh(1,2,3,4) +10 +>>> slozh('1','2','3','4') +'1234' +>>> b1=[1,2];b2=[-1,-2];b3=[0,2];b4=[-1,-1] +``` + +### 2.5. Функция, реализующая модель некоторого устройства + +```py +>>> def inerz(x,T,ypred): +... """ Модель устройства с памятью: +... x- текущее значение вх.сигнала, +... T -постоянная времени, +... ypred - предыдущее значение выхода устройства""" +... y=(x+T*ypred)/(T+1) +... return y +... +... +>>> sps=[0]+[1]*100 +>>> spsy=[] +>>> TT=20 +>>> yy=0 +>>> for xx in sps: +... yy = inerz(xx,TT,yy) +... spsy.append(yy) +... + +spsy +[0.0, 0.047619047619047616, 0.09297052154195011, 0.13616240146852393, 0.177297525208118, 0.21647383353154095, 0.25378460336337233, 0.2893186698698784, 0.3231606379713128, 0.35539108378220263, 0.38608674645924057, 0.4153207109135625, 0.4431625818224405, 0.46967864935470527, 0.4949320470044812, 0.5189829019090297, 0.5418884780085997, 0.5637033123891426, 0.5844793451325168, 0.6042660429833493, 0.6231105171269993, 0.6410576353590469, 0.6581501289133781, 0.6744286942032173, 0.6899320897173498, 0.7046972283022379, 0.7187592650497504, 0.7321516809997624, 0.7449063628569166, 0.7570536789113491, 0.768622551344142, 0.7796405250896592, 0.7901338334187231, 0.800127460398784, 0.8096452003797943, 0.8187097146474231, 0.8273425853784983, 0.8355643670271411, 0.8433946352639439, 0.8508520335847084, 0.8579543176997223, 0.8647183978092594, 0.8711603788659613, 0.8772955989199631, 0.88313866563806, 0.8887034910838667, 0.8940033248417778, 0.899050785563598, 0.9038578910129503, 0.9084360866790003, 0.9127962730276193, 0.9169488314548756, 0.9209036490046435, 0.9246701419091843, 0.9282572780087468, 0.9316735981035684, 0.9349272362891128, 0.9380259393229645, 0.94097708506949, 0.9437877000661808, 0.9464644762535056, 0.9490137869081006, 0.9514417018172386, 0.9537540017307035, 0.9559561921244795, 0.958053516309028, 0.96005096791336, 0.9619533027746285, 0.963765050261551, 0.9654905240586201, 0.9671338324367811, 0.9686988880350297, 0.9701894171762188, 0.971608968739256, 0.9729609226088152, 0.9742484977226811, 0.9754747597358867, 0.976642628319892, 0.9777548841141828, 0.9788141753468407, 0.9798230241398483, 0.9807838325141413, 0.981698888108706, 0.982570369627339, 0.9834003520260372, 0.9841908114533686, 0.9849436299555892, 0.9856605999577039, 0.9863434285311466, 0.9869937414582349, 0.9876130871030808, 0.9882029400981722, 0.988764704855402, 0.9892997189099068, 0.9898092561046732, 0.9902945296234982, 0.9907566948795221, 0.9911968522662116, 0.9916160497773444, 0.9920152855022327, 0.9923955100021263] +>>> from pylab import * +>>> plot(sps, spsy) +[] +>>> show() +``` + +![График](Figure_1.png) + +## Пункт 3. Функции как объекты + +### 3.1. Получение списка атрибутов объекта-функции + +```py +>>> dir(inerz) +['__annotations__', '__builtins__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__getstate__', '__globals__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__kwdefaults__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__type_params__'] +>>> inerz.__doc__ +``` + +### 3.2. Сохранение ссылки на объект-функцию в другой переменной + +```py +>>> fnkt=sravnenie +>>> v=16 +>>> fnkt(v,23) +16 меньше 23 +``` + +### 3.3. Возможность альтернативного определения функции в программе + +```py +>>> typ_fun=8 +>>> if typ_fun==1: +... def func(): +... print('Функция 1') +... else: +... def func(): +... print('Функция 2') +... +>>> func() +Функция 2 +``` + +## Пункт 4. Аргументы функции + +### 4.1. Изучите возможность использования функции в качестве аргумента другой функции + +```py +>>> def fun_arg(fff,a,b,c): +... """fff-имя функции, используемой +... в качестве аргумента функции fun_arg""" +... return a+fff(c,b) +... +... +>>> zz=fun_arg(logistfun,-3,1,0.7) +>>> print(zz) +-2.3318122278318336 +``` + +### 4.2. Обязательные и необязательные аргументы + +```py +>>> def logistfun(a,b=1): #Аргумент b – необязательный; значение по умолчанию=1 +... """Вычисление логистической функции""" +... import math +... return b/(1+math.exp(-a)) +... +... +>>> logistfun(0.7) +0.6681877721681662 +>>> logistfun(0.7,2) +1.3363755443363323 +``` + +### 4.3. Возможность обращения к функции с произвольным (непозиционным) расположением аргументов + +```py +>>> logistfun(b=0.5,a=0.8) +0.34498724056380625 +``` + +### 4.4. Пример со значениями аргументов функции, содержащимися в списке или кортеже + +```py +>>> b1234=[b1,b2,b3,b4] +>>> qq=slozh(*b1234) +>>> print(qq) +[1, 2, -1, -2, 0, 2, -1, -1] +``` + +### 4.5. Пример со значениями аргументов функции, содержащимися в словаре + +```py +>>> dic4={"a1":1,"a2":2,"a3":3,"a4":4} +>>> qqq=slozh(**dic4) +>>> print(qqq) +10 +``` + +### 4.6. Смешанные ссылки + +```py +>>> e1=(-1,6);dd2={'a3':3,'a4':9} +>>> qqqq=slozh(*e1,**dd2) +>>> print(qqqq) +17 +``` + +### 4.7. Переменное число аргументов у функции + +```py +>>> def func4(*kort7): +... """Произвольное число аргументов в составе кортежа""" +... smm=0 +... for elt in kort7: +... smm+=elt +... return smm +... +>>> func4(-1,2) +1 +>>> func4(-1,2,0,3,6) +10 +``` + +### 4.8. Комбинация аргументов + +```py +>>> def func4(a,b=7,*kort7): +... """Кортеж - сборка аргументов - должен быть последним!""" +... smm=0 +... for elt in kort7: +... smm+=elt +... return a*smm+b +... +>>> func4(-1,2,0,3,6) +-7 +``` + +### 4.9. Изменение значений объектов, используемых в качестве аргументов функции + +```py +>>> func4(-1,2,0,3,6) +-7 +>>> a=90 +>>> def func3(b): +... b=5*b+67 +... +... +>>> func3(a) +>>> a +90 +>>> sps1=[1,2,3,4] +>>> def func2(sps): +... sps[1]=99 +... +>>> func2(sps1) +>>> print(sps1) +[1, 99, 3, 4] +``` + +## Пункт 5. Специальные типы пользовательских функций + +### 5.1. Анонимные функции + +```py +>>> anfun1=lambda: 1.5+math.log10(17.23) +>>> anfun1() +2.7362852774480286 +>>> anfun2=lambda a,b : a+math.log10(b) +>>> anfun2(17,234) +19.369215857410143 +>>> anfun3=lambda a,b=234: a+math.log10(b) +>>> anfun3(100) +102.36921585741014 +``` + +### 5.2. Функции-генераторы + +```py +>>> def func5(diap,shag): +... """ Итератор, возвращающий значения +... из диапазона от 1 до diap с шагом shag""" +... for j in range(1,diap+1,shag): +... yield j +... +... +>>> for mm in func5(7,3): +... print(mm) +... +... +1 +4 +7 +>>> alp=func5(7,3) +>>> alp + +>>> type(alp) + +>>> alp=func5(7,3) +>>> print(alp.__next__()) +1 +>>> print(alp.__next__()) +>>> print(alp.__next__()) +7 +``` + +## Пункт 6. Локализация объектов в функциях + +### 6.1. Примеры на локализацию объектов + +```py +>>> def func7(arg): +... loc1=15 +... glb=8 +... return loc1*arg +... +>>> res = func7(glb) +>>> print(res) +150 +>>> print(glb) +10 +>>> def func8(arg): +... loc1=15 +... print(glb) +... glb=8 +... return loc1*arg +... +>>> res=func8(glb) +Traceback (most recent call last): + File "", line 1, in + res=func8(glb) + File "", line 3, in func8 + print(glb) +UnboundLocalError: cannot access local variable 'glb' where it is not associated with a value +>>> glb=11 +>>> def func7(arg): +... loc1=15 +... global glb +... print(glb) +... glb=8 +... return loc1*arg +... +>>> res=func7(glb) +11 +``` + +### 6.2. Выявление локализации объекта с помощью функций + +```py +>>> globals().keys() +dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__annotations__', '__builtins__', 'inerz', 'sravnenie', 'logistfun', 'slozh', 'fnkt', 'v', 'typ_fun', 'func', 'fun_arg', 'zz', 'b1', 'b2', 'b3', 'b4', 'b1234', 'qq', 'dic4', 'qqq', 'e1', 'dd2', 'qqqq', 'func4', 'a', 'func3', 'sps1', 'func2', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8']) +>>> globals().values() +dict_values(['__main__', None, None, , None, {}, , , , , , , 16, 8, , , -2.3318122278318336, [1, 2], [-1, -2], [0, 2], [-1, -1], [[1, 2], [-1, -2], [0, 2], [-1, -1]], [1, 2, -1, -2, 0, 2, -1, -1], {'a1': 1, 'a2': 2, 'a3': 3, 'a4': 4}, 10, (-1, 6), {'a3': 3, 'a4': 9}, 17, , 90, , [1, 99, 3, 4], , at 0x000001BD5FCF0E00>, , at 0x000001BD5FCF0B80>, at 0x000001BD5FCF0C20>, , 7, , 8, , 165, ]) +>>> locals().keys() +dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__annotations__', '__builtins__', 'inerz', 'sravnenie', 'logistfun', 'slozh', 'fnkt', 'v', 'typ_fun', 'func', 'fun_arg', 'zz', 'b1', 'b2', 'b3', 'b4', 'b1234', 'qq', 'dic4', 'qqq', 'e1', 'dd2', 'qqqq', 'func4', 'a', 'func3', 'sps1', 'func2', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8']) +>>> globals().keys()==locals().keys() +True +>>> def func8(arg): +... loc1=15 +... glb=8 +... print(globals().keys()) +... print(locals().keys()) +... return loc1*arg +... +>>> hh = func8(glb) +dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__annotations__', '__builtins__', 'inerz', 'sravnenie', 'logistfun', 'slozh', 'fnkt', 'v', 'typ_fun', 'func', 'fun_arg', 'zz', 'b1', 'b2', 'b3', 'b4', 'b1234', 'qq', 'dic4', 'qqq', 'e1', 'dd2', 'qqqq', 'func4', 'a', 'func3', 'sps1', 'func2', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8']) +dict_keys(['arg', 'loc1', 'glb']) +>>> 'glb' in globals().keys() +True +``` + +### 6.3. Локализация объектов при использовании вложенных функций + +```py +>>> znach=input('k1,T,k2,Xm,A,F,N=').split(',') +k1,T,k2,Xm,A,F,N=8,5,3,10,2,0.5,1000 +>>> k1=float(znach[0]) +>>> T=float(znach[1]) +>>> k2=float(znach[2]) +>>> Xm=float(znach[3]) +>>> A=float(znach[4]) +>>> F=float(znach[5]) +>>> N=int(znach[6]) +>>> vhod=[] +>>> for i in range(N): +... vhod.append(A*math.sin((2*i*math.pi)/F)) +... +... +>>> vhod +## Огромное страшное полотно текста + +def realdvig(xtt,kk1,TT,yti1,ytin1): + #Модель реального двигателя + yp=kk1*xtt #усилитель + yti1=yp+yti1 #Интегратор + ytin1=(yti1+TT*ytin1)/(TT+1) + return [yti1,ytin1] + + +def tahogen(xtt,kk2,yti2): + #Модель тахогенератора + yp=kk2*xtt #усилитель + yti2=yp+yti2 #интегратор + return yti2 + + + +>>> def nechus(xtt,gran): +... if xtt(-gran): +... ytt=0 +... elif xtt>=gran: +... ytt=xtt-gran +... elif xtt<=(-gran): +... ytt=xtt+gran +... return ytt +... +>>> yi1 = 0; yin1 = 0; yi2 = 0 +>>> vyhod = [] +>>> for xt in vhod: +... xt1 = xt - yi2 #отрицательная обратная связь +... [yi1,yin1] = realdvig(xt1,k1,T,yi1,yin1) +... yi2 = tahogen(yin1,k2,yi2) +... yt = nechus(yin1,Xm) +... vyhod.append(yt) +... +... +>>> print('y=',vyhod) +y= ## Огромное страшное полотно текста +``` \ No newline at end of file diff --git a/TEMA7/task.md b/TEMA7/task.md new file mode 100644 index 0000000..1c06973 --- /dev/null +++ b/TEMA7/task.md @@ -0,0 +1,52 @@ +# Общее контрольное задание по теме 7 + +Гордиевских Данил А-03-23 + +## Задание 1 + +Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т + +```py +from math import * +def scary(t, T): + y = exp(t-T) + return y + +yt = scary(5,2) +print(yt) +20.085536923187668 +``` + +## Задание 2 + +Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения. + +```py +from pylab import * +from random import * + +def what(sps, n): + hist(sps, bins = n) + show() + + +a = [] +for j in range(1000): + a.append(gauss(0,1)) + +what(a, 10) +``` + +![Гистограмма](Figure_2.png) + +## Задание 3 + +Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х +Y=b1+b2*X +и имеющую аргументы b1, b2 и X. + +```py +yt = lambda b1, b2, x: b1+b2*x +print(yt(1, 2, 5)) +11 +``` \ No newline at end of file