From 378525e808c9849f32573ab0efaaaa6975d7788c Mon Sep 17 00:00:00 2001 From: VatariShin Date: Fri, 5 Dec 2025 11:34:17 +0300 Subject: [PATCH] done ikz --- TEMA8/IKZ.py | 3 +++ TEMA8/IKZ_res.txt | 15 +++++++++++++++ TEMA8/IKZ_test.py | 16 ++++++++++++++++ TEMA8/OKZ2.py | 4 ++-- TEMA8/task.md | 6 +++--- TEMA8/test.md | 37 +++++++++++++++++++++++++++++++++++++ 6 files changed, 76 insertions(+), 5 deletions(-) create mode 100644 TEMA8/IKZ.py create mode 100644 TEMA8/IKZ_res.txt create mode 100644 TEMA8/IKZ_test.py create mode 100644 TEMA8/test.md diff --git a/TEMA8/IKZ.py b/TEMA8/IKZ.py new file mode 100644 index 0000000..e1180b2 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/TEMA8/IKZ_res.txt b/TEMA8/IKZ_res.txt new file mode 100644 index 0000000..a53541b --- /dev/null +++ b/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 diff --git a/TEMA8/IKZ_test.py b/TEMA8/IKZ_test.py new file mode 100644 index 0000000..8dbd312 --- /dev/null +++ b/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) \ No newline at end of file diff --git a/TEMA8/OKZ2.py b/TEMA8/OKZ2.py index 90e5c2f..6e73498 100644 --- a/TEMA8/OKZ2.py +++ b/TEMA8/OKZ2.py @@ -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)) diff --git a/TEMA8/task.md b/TEMA8/task.md index 64914af..c79a22d 100644 --- a/TEMA8/task.md +++ b/TEMA8/task.md @@ -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)) diff --git a/TEMA8/test.md b/TEMA8/test.md new file mode 100644 index 0000000..3a2a98c --- /dev/null +++ b/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) +```