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

2.2 KiB

Выполнение индивидуального контрольного задания по теме 7

Голощапов Д.Е.,А-01-23

Задание

Разработайте анонимную функцию с 3 аргументами: х, a, b, вычисляющую значение exp(-(x-a)2/b)/(2πb)1/2. Рассчитайте значения функции в диапазоне значений х от a-3b1/2 до a+3b1/2 с шагом 0.2*b1/2 и запишите эти значения в текстовый файл по два значения на строке, разделенных запятыми.

Решение

>>> import os
>>> os.chdir('C:\\Users\\u115-07\\Desktop\\python-labs\\TEMA7')
>>> normal= lambda x, a, b: math.exp(-(x-a)**2/b) / math.sqrt(2 * math.pi * b)
>>> def test_normal():
...     a, b = 0, 1
...     std_dev = math.sqrt(b)
...     start = a - 3 * std_dev
...     end = a + 3 * std_dev
...     step = 0.2 * std_dev
...     x_values = []
...     current = start
...     while current <= end:
...         x_values.append(current)
...         current += step
...     function_values = []
...     for x in x_values:
...         y = normal_pdf(x, a, b)
...         function_values.append(y)
...     file = open('ikz.txt', 'w')
...     for i in range(0, len(function_values), 2):
...         if i + 1 < len(function_values):
...             file.write(str(function_values[i])+','+str(function_values[i+1])+'\n')
...         else:
...             file.write(str(function_values[i])+',0\n')
... 
...         
>>> test_normal()

4.9233388666234e-05,0.0001570512248023814
0.00046246553014536756,0.0012571116468828324
0.0031544581746000837,0.007306882745280797
0.015624133620192436,0.03084012943829092
0.05619437965598666,0.09452050033904612
0.14676266317374007,0.21035924208613316
0.2783325845048708,0.33995618640009767
0.3832995298410415,0.3989422804014327
0.3832995298410414,0.33995618640009745
0.27833258450487053,0.21035924208613285
0.1467626631737398,0.09452050033904591
0.056194379655986504,0.030840129438290835
0.01562413362019238,0.007306882745280764
0.0031544581746000672,0.0012571116468828236
0.0004624655301453643,0.00015705122480238025