# Индивидуальные контрольные задания по теме 8 Зеленкина Ксения А-02-23 ## Задача _Задание из ЛР 7_ _(Вариант 11)_ Разработайте анонимную функцию с 5 аргументами: х, a,b,c,d, вычисляющую значение a/(1+exp(-b-c*x-d*x2)). Рассчитайте значения этой функции в диапазоне значений входного па-раметра х: -20 ≤ x ≤ 20 с шагом 2 при некоторых положительных значениях параметров a,b,c,d. Обеспечьте запись рассчитанных значений в текстовый файл по три значения на строке, разде-ленных пробелами. ## Решение Содержимое __Mod1.py__ ```py import math f = lambda x, a, b, c, d: a / (1 + math.exp(-b - c * x - d * x * x)) def func1(a, b, c, d): """ Рассчитывает значения анонимной функции в диапазоне значений входного параметра х: -20 ≤ x ≤ 20 с шагом 2 при некоторых положительных значениях параметров a,b,c,d. """ res = [] for x in range(-20, 21, 2): res.append(f(x, a, b, c, d)) return res def wf (data, filename): """ Записывает данные в файл по 3 значения в строке """ with open(filename, 'w') as file: i = 0 while i < len(data): a = data[i:i+3] s = list(map(str, a)) file.write(" ".join(s) + "\n") i += 3 ``` Содержимое __Mod2.py__ ```py import Mod1 print("Введите параметры:") a = float(input("a = ")) b = float(input("b = ")) c = float(input("c = ")) d = float(input("d = ")) x = -20 res = Mod1.func1(a, b, c, d) for y in res: print(f"f({x}) = {y}") x += 2 filename = input("Имя файла для сохранения: ") Mod1.wf(res, filename) ``` _Вывод:_ ```py Введите параметры: a = 1 b = 0.5 c = 0.2 d = 0.01 f(-20) = 0.6224593312018546 f(-18) = 0.5349429451582144 f(-16) = 0.4650570548417855 f(-14) = 0.4158094770645926 f(-12) = 0.38698582386066444 f(-10) = 0.3775406687981454 f(-8) = 0.38698582386066455 f(-6) = 0.4158094770645926 f(-4) = 0.4650570548417855 f(-2) = 0.5349429451582145 f(0) = 0.6224593312018546 f(2) = 0.7190996574163839 f(4) = 0.8115326747861805 f(6) = 0.8869541699279211 f(8) = 0.9393460966843479 f(10) = 0.9706877692486436 f(12) = 0.9871312358039476 f(-2) = 0.5349429451582145 f(0) = 0.6224593312018546 f(2) = 0.7190996574163839 f(4) = 0.8115326747861805 f(6) = 0.8869541699279211 f(8) = 0.9393460966843479 f(10) = 0.9706877692486436 f(12) = 0.9871312358039476 f(14) = 0.9948315469697114 f(16) = 0.9980924000956662 f(18) = 0.9993513704723885 f(20) = 0.9997965730219448 Имя файла для сохранения: test ``` Файл появился. В него записались значения: Содержимое файла: