为错误函数erf(x)写一个while循环?

时间:2016-10-14 21:42:26

标签: python while-loop

我知道python中有一个erfWikipedia)函数。但是在这个赋值中,我们特别要求编写错误函数,好像它在使用while loop时在python中尚未实现。

erf (x)已简化为:(2/ (sqrt(pi)) (x - x^3/3 + x^5/10 - x^7/42...)

必须添加系列中的术语,直到绝对总数小于10 ^ -20。

1 个答案:

答案 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