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

3.2 KiB

Индивидуальные контрольные задания по теме 8

Зеленкина Ксения А-02-23

Задача

Задание из ЛР 7 (Вариант 11) Разработайте анонимную функцию с 5 аргументами: х, a,b,c,d, вычисляющую значение a/(1+exp(-b-cx-dx2)). Рассчитайте значения этой функции в диапазоне значений входного па-раметра х: -20 ≤ x ≤ 20 с шагом 2 при некоторых положительных значениях параметров a,b,c,d. Обеспечьте запись рассчитанных значений в текстовый файл по три значения на строке, разде-ленных пробелами.

Решение

Содержимое Mod1.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

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)

Вывод:

Введите параметры:
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

Файл появился. В него записались значения:

Содержимое файла: