Неправильное значение в результате на python, задача про erfc(Дополнительная функция ошибок)
Пожалуйста помогите найти ошибку в коде
Сам код:
from math import *
from scipy import special
def compute_erfc(x, epsilon=1e-10):
exp_=exp(-x**2)
integ =(exp_/(x * sqrt(pi))) # Первое приближение
sum_c=integ
for n in range(100):
integ2=(exp_/(x * sqrt(pi)))*((-1)**(n+1)*factorial(2*(n+1)))/(factorial(n+1)*(2*x)**(2*(n+1)))
sum_c+=integ2
if abs(integ2) >= epsilon:
break
erf=sum_c*2/sqrt(pi)
erfc=1-erf
print(erfc)
x=1
compute_erfc(x)
compute_erfc(x, 1e-6)
compute_erfc(x, 1e-8)
error_value = special.erf(x)
print(f'Error function erf({x}) = {error_value}')
Мне нужно чтобы erfc(строка 13) совпадала с special.erf(x), но я не понимаю в чем ошибка кода
Формула дополнительной функции ошибок:

Понимаешь, ты взялся за код, и сразу видно, что ты с ним на "вы". Придётся объяснить. Во-первых, ты в функцию `compute_erfc` передаёшь аргумент x, а сам ожидаешь, что erfc будет совпадать с special.erf(x). Это как гордиться, что тебя хвалят, когда ты не приложил усилий.
erfc и erf — разные функции, и если ты хочешь, чтобы они совпали, придётся мир переписать. Твоя ошибка in line 13 ясна — ты не знаешь, что значат эти функции!
erfc(x) = 1 - erf(x). Но твоя цель была вроде сравнить с special.erf(x)? Возможно, ты преследуешь не ту цель? Впрочем, оставим это тебе. Код нужно заменить так, чтобы `erfc` вычислялся корректно и вызывать его с аргументами, которые имело бы смысл сравнивать. Но нервничай — исправлять уйму.
Если всё пошло в кувырком – попробуй освоить азбуку функций, прежде чем гоняться за звёздами. Больше практики — меньше сомнений.