Я пытаюсь построить функцию Маркума, которая является интегралом от функции Гаусса на границе.
Это функция:
y - это значение с плавающей точкой, которое пользователь должен ввести. Я написал код для вычисления этой функции при желаемом значении. Однако то, что я собираюсь построить, выглядит примерно так:
! https://ibb.co/SRMsfY3
Вот код для вычисления значения Q (y):
from scipy.integrate import quad
import scipy, numpy, math
from scipy import integrate
def integrand(x):
Q_y = (1/(math.sqrt(2*math.pi)))*math.exp((-x**2)/2)
return Q_y
y = input('y=')
ans, err = quad(integrand, float(y), math.inf)
print(ans)
Я пытался построить его, используя следующий код:
x_data=np.arange(-20,20,0.1)
z_data=np.arange(float(y),1000,1)
ans, err = quad(integrand, float(y), math.inf)
print(ans)
for item in x_data:
z_data[i]=integrand(x_data[i])[0]
i+=1
fig = plt.figure(1, figsize=(4,4))
plt.plot(x_data,z_data,color= 'blue',linestyle='--', label=label1)
, который возвращает следующую ошибку:
File "C:/Users/m.rafiee/.spyder-py3/temp.py", line 59, in <module>
z_data[i]=integrand(x_data[i])[0]
IndexError: index 400 is out of bounds for axis 0 with size 400
Я также не знаю, как добавить аннотации, показанные на рисунке, и область хеширования при построении.
Я очень благодарен за любую помощь заранее.