Python 递归逼近正弦

Python 递归逼近正弦,python,recursion,series,trigonometry,Python,Recursion,Series,Trigonometry,因此,我试图编写一个由两个递归函数组成的文件。其中一个通过泰勒级数计算近似正弦所需的阶乘。第二个是另一个递归函数,它将正弦值作为浮点值输出,并将尽可能多的输入术语。这是我的目标的数学表示 以下是我的代码,目前尚未完成,因为我对实际的正弦计算函数有困难: def main(): ang = int(input("Enter the angle to approximate (in radians): ")) trms = int(input("Enter the amount of

因此,我试图编写一个由两个递归函数组成的文件。其中一个通过泰勒级数计算近似正弦所需的阶乘。第二个是另一个递归函数,它将正弦值作为浮点值输出,并将尽可能多的输入术语。这是我的目标的数学表示

以下是我的代码,目前尚未完成,因为我对实际的正弦计算函数有困难:

def main():
    ang = int(input("Enter the angle to approximate (in radians): "))
    trms = int(input("Enter the amount of terms to compute: "))
    sinApprox(ang,trms)
def calcFac(x):
    if x <= 0:
        return 1
    else:
        return x * calcFac(x-1)
def sinApprox(angle, terms):
    if calcFac(terms) <= 0:
        return (sinApprox(angle,terms)/calcFac(terms))
    elif terms % 2 == 0:
        return sinApprox(angle**) 

请注意,这两个函数都必须是纯函数和递归函数。

这里有一种方法可以做到这一点

def calcFac(x):
    if x == 1 or x == 0: return 1
    val = 1
    for i in range(2, x+1):
        val = val * i
    return val

def sinApprox(angle, terms):
    mult = 1
    if terms % 2 == 0: mult = -1

    power = 2*terms - 1
    val = angle ** power
    val = mult * val/calcFac(power)

    if terms == 1: return val
    else: return val + sinApprox(angle, terms - 1)

angle = int(input("Enter the angle to approximate (in radians): "))
terms = int(input("Enter the amount of terms to compute: "))
sinApprox(angle, terms)

问题是什么?我需要帮助写第二个函数,这将调用第一个函数,该函数计算正弦近似的阶乘部分,并将正弦近似作为浮点值返回,并将在用户输入时继续多次。为什么它必须使用递归?那么,如果你回答问题,你会得到一个太宽而不是不清楚的闭包。同时,这听起来真像是家庭作业中的“必须”部分。如果你读了关于如何做家庭作业的文章,就可以在家庭作业方面寻求帮助,因此如果是,你不必编造故事。当然,如果你是从一本书或什么东西中自学,那也没关系。