在回答这个问题时,我尝试实现一个递归函数,以使用 Maclaurin 级数计算余弦,达到指定的精度 (epsilon)。
公式:
我只是不知道如何实施精度检查来完成/退出递归。
这是没有精度检查的功能草图:
import math
def cosine_rec(x, i=0, err=10**9, eps=1e-5):
if i < 1:
return 1
# как проверить текущую ошибку ???
res = (-1)**i * (x**(2*i) / math.factorial(2*i))
return res + cosine_rec(x, i+1, err=err, eps=eps)
PS 使用迭代算法,一切都很简单,所以请不要提供非递归的解决方案。

1 个回答