форкнуто от main/python-labs
main
Родитель
a939d38d56
Сommit
0962381968
@ -0,0 +1,26 @@
|
|||||||
|
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
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
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)
|
||||||
@ -0,0 +1,105 @@
|
|||||||
|
# Индивидуальные контрольные задания по теме 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
|
||||||
|
```
|
||||||
|
|
||||||
|
Файл появился. В него записались значения:
|
||||||
|
|
||||||
|
<img src = "./photo1.png" width="500" height="300" align="center">
|
||||||
|
|
||||||
|
Содержимое файла:
|
||||||
|
|
||||||
|
<img src = "./photo2.png" width="500" height="300" align="center">
|
||||||
|
После Ширина: | Высота: | Размер: 9.2 KiB |
|
После Ширина: | Высота: | Размер: 64 KiB |
@ -0,0 +1,7 @@
|
|||||||
|
0.622459 0.534943 0.465057
|
||||||
|
0.415809 0.386986 0.377541
|
||||||
|
0.386986 0.415809 0.465057
|
||||||
|
0.534943 0.622459 0.719100
|
||||||
|
0.811533 0.886954 0.939346
|
||||||
|
0.970688 0.987131 0.994832
|
||||||
|
0.998092 0.999351 0.999797
|
||||||
Загрузка…
Ссылка в новой задаче