无需使用“幂”和“阶乘”函数即可在泰勒级数中计算cosx值的情况下更改python中的代码的可能性

问题描述

我正在尝试使用泰勒级数计算cos(x)的值: Value of cos(x) with Taylor Series

我的代码如下。

x = float(input("x: "))
n = int(input("n: "))

k=0
s=0
sign=1

while k<n:
    term = sign * x **(k)/math.factorial(k)
    s = s+term
    k = k+2
    sign = -sign

有没有一种方法可以不使用**-power或factorial功能,而不能使用其他功能。我的想法是只执行一个循环就可以运行代码

n代表系列中的第n个元素,例如x^4/x!是泰勒级数的第三个元素。

解决方法

注意4! = 2! * 3 * 4;请注意,x ^ 4 = x ^ 2 * x * x。

您可以执行以下操作,而不是每次都进行计算:

x = float(input("x: "))
n = int(input("n: "))

k = 0
s = 0
sign = 1

factorial = 1
x_k = 1

while k < n:
    term = sign * x_k / factorial
    s = s + term
    k = k + 2

    # calculate next k! and x ^ k
    factorial *= k * (k - 1)
    x_k *= x * x
    sign = -sign