我知道python中有一个erf(Wikipedia)函数。但是在这个赋值中,我们特别要求编写错误函数,好像它在使用while loop
时在python中尚未实现。
erf (x)
已简化为:(2/ (sqrt(pi)) (x - x^3/3 + x^5/10 - x^7/42...)
必须添加系列中的术语,直到绝对总数小于10 ^ -20。
答案 0 :(得分:0)
首先 - 当人们为你编码时,SO不是这个地方,这里的人帮助你解决特定问题而不是整个任务
任何方式: 实现维基百科算法并不太难:
import math
def erf(x):
n = 1
res = 0
res1 = (2 / math.sqrt(math.pi)) * x
diff = 1
s = x
while diff > math.pow(10, -20):
dividend = math.pow((-1), n) * math.pow(x, 2 * n + 1)
divider = math.factorial(n) * (2 * n + 1)
s += dividend / divider
res = ((2 / math.sqrt(math.pi)) * s)
diff = abs(res1 - res)
res1 = res
n += 1
return res
print(erf(1))
请仔细阅读源代码并发布您不理解的所有问题。
Also you may check python sources并了解如何实施erf