VatariShin 2 месяцев назад
Родитель af70130e47
Сommit 378525e808

@ -0,0 +1,3 @@
from math import pi, exp
calc = lambda x, a, b: exp(-(x - a)**2 / b) / (2 * pi * b)**0.5

@ -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

@ -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 import math
def correlation(l1, l2): def correlation(l1, l2):
n = min(len(l1), len(l2)) n = min(len(l1), len(l2))
sum1 = sum(l1) sum1 = sum(l1[:n])
sum2 = sum(l2) sum2 = sum(l2[:n])
sum1sq = sum(now ** 2 for now in l1) sum1sq = sum(now ** 2 for now in l1)
sum2sq = sum(now ** 2 for now in l2) sum2sq = sum(now ** 2 for now in l2)
sum12 = sum(x * y for x, y in zip(l1, l2)) sum12 = sum(x * y for x, y in zip(l1, l2))

@ -13,7 +13,7 @@
``` ```
def reading (file): def reading (file):
nums = [] nums = []
with open(file, 'r') as file: with open(file) as file:
for line in file: for line in file:
nums.extend(map(float, line.split())) nums.extend(map(float, line.split()))
return nums return nums
@ -23,8 +23,8 @@ def reading (file):
import math import math
def correlation(l1, l2): def correlation(l1, l2):
n = min(len(l1), len(l2)) n = min(len(l1), len(l2))
sum1 = sum(l1) sum1 = sum(l1[:n])
sum2 = sum(l2) sum2 = sum(l2[:n])
sum1sq = sum(now ** 2 for now in l1) sum1sq = sum(now ** 2 for now in l1)
sum2sq = sum(now ** 2 for now in l2) sum2sq = sum(now ** 2 for now in l2)
sum12 = sum(x * y for x, y in zip(l1, l2)) sum12 = sum(x * y for x, y in zip(l1, l2))

@ -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)
```
Загрузка…
Отмена
Сохранить