ответвлено от main/python-labs
done ikz
Этот коммит содержится в:
3
TEMA8/IKZ.py
Обычный файл
3
TEMA8/IKZ.py
Обычный файл
@@ -0,0 +1,3 @@
|
||||
from math import pi, exp
|
||||
|
||||
calc = lambda x, a, b: exp(-(x - a)**2 / b) / (2 * pi * b)**0.5
|
||||
15
TEMA8/IKZ_res.txt
Обычный файл
15
TEMA8/IKZ_res.txt
Обычный файл
@@ -0,0 +1,15 @@
|
||||
3.48132629866869e-05,0.00011105198605141639
|
||||
0.0003270125124308196,0.0008889121702194339
|
||||
0.0022305387662290435,0.005166746338522999
|
||||
0.011047930833002735,0.021807264658486272
|
||||
0.039735426919319354,0.06683608675088461
|
||||
0.10377687435514844,0.14874644656436697
|
||||
0.1968108579285715,0.24038532470982668
|
||||
0.27103369677621564,0.28209479177387814
|
||||
0.27103369677621597,0.24038532470982732
|
||||
0.19681085792857225,0.1487464465643677
|
||||
0.1037768743551491,0.06683608675088512
|
||||
0.03973542691931971,0.021807264658486494
|
||||
0.011047930833002859,0.005166746338523063
|
||||
0.0022305387662290756,0.0008889121702194466
|
||||
0.00032701251243082483,0.00011105198605141855
|
||||
16
TEMA8/IKZ_test.py
Обычный файл
16
TEMA8/IKZ_test.py
Обычный файл
@@ -0,0 +1,16 @@
|
||||
from IKZ import calc
|
||||
from numpy import arange
|
||||
|
||||
a = int(input('Enter a value: '))
|
||||
b = int(input('Enter b value: '))
|
||||
res = []
|
||||
xRange = arange(a - 3 * b**0.5, a + 3 * b ** 0.5, 0.2 * b ** 0.5)
|
||||
for i in range(len(xRange)):
|
||||
res.append(calc(xRange[i], a, b))
|
||||
|
||||
with open('IKZ_res.txt', 'w') as file:
|
||||
resString = ''
|
||||
for i in range(len(res)):
|
||||
divider = ',' if i % 2 == 0 else '\n'
|
||||
resString += f'{res[i]}{divider}'
|
||||
file.write(resString)
|
||||
@@ -1,8 +1,8 @@
|
||||
import math
|
||||
def correlation(l1, l2):
|
||||
n = min(len(l1), len(l2))
|
||||
sum1 = sum(l1)
|
||||
sum2 = sum(l2)
|
||||
sum1 = sum(l1[:n])
|
||||
sum2 = sum(l2[:n])
|
||||
sum1sq = sum(now ** 2 for now in l1)
|
||||
sum2sq = sum(now ** 2 for now in l2)
|
||||
sum12 = sum(x * y for x, y in zip(l1, l2))
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
```
|
||||
def reading (file):
|
||||
nums = []
|
||||
with open(file, 'r') as file:
|
||||
with open(file) as file:
|
||||
for line in file:
|
||||
nums.extend(map(float, line.split()))
|
||||
return nums
|
||||
@@ -23,8 +23,8 @@ def reading (file):
|
||||
import math
|
||||
def correlation(l1, l2):
|
||||
n = min(len(l1), len(l2))
|
||||
sum1 = sum(l1)
|
||||
sum2 = sum(l2)
|
||||
sum1 = sum(l1[:n])
|
||||
sum2 = sum(l2[:n])
|
||||
sum1sq = sum(now ** 2 for now in l1)
|
||||
sum2sq = sum(now ** 2 for now in l2)
|
||||
sum12 = sum(x * y for x, y in zip(l1, l2))
|
||||
|
||||
37
TEMA8/test.md
Обычный файл
37
TEMA8/test.md
Обычный файл
@@ -0,0 +1,37 @@
|
||||
# Индивидуальное контрольное задание по теме 8
|
||||
|
||||
Коваленко Дмитрий, А-01-23
|
||||
|
||||
## Задание 12
|
||||
|
||||
Разработайте анонимную функцию с 3 аргументами: х, a, b, вычисляющую значение exp(-(x-a)2/b)/(2*π*b)1/2. Рассчитайте значения функции в диапазоне значений х от a-3*b1/2 до a+3*b1/2 с шагом 0.2*b1/2 и запишите эти значения в текстовый файл по два значения на строке, разделенных запятыми.
|
||||
|
||||
на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов.
|
||||
## Решение
|
||||
|
||||
Модуль-реализация
|
||||
```py
|
||||
from math import pi, exp
|
||||
|
||||
calc = lambda x, a, b: exp(-(x - a)**2 / b) / (2 * pi * b)**0.5
|
||||
```
|
||||
|
||||
Модуль-проверка
|
||||
```py
|
||||
from IKZ import calc
|
||||
from numpy import arange
|
||||
|
||||
a = int(input('Enter a value: '))
|
||||
b = int(input('Enter b value: '))
|
||||
res = []
|
||||
xRange = arange(a - 3 * b**0.5, a + 3 * b ** 0.5, 0.2 * b ** 0.5)
|
||||
for i in range(len(xRange)):
|
||||
res.append(calc(xRange[i], a, b))
|
||||
|
||||
with open('IKZ_res.txt', 'w') as file:
|
||||
resString = ''
|
||||
for i in range(len(res)):
|
||||
divider = ',' if i % 2 == 0 else '\n'
|
||||
resString += f'{res[i]}{divider}'
|
||||
file.write(resString)
|
||||
```
|
||||
Ссылка в новой задаче
Block a user