需要帮助使用泰勒级数逼近 python 中的正弦函数

use*_*367 3 python

我对 Python 非常陌生,正在尝试使用系列来近似正弦函数。

我的代码如下所示:

import math
def sin(x,n):
sine = 0
for i in range(n):
    sign = (-1)**i
    sine = sine + ((x**(2.0*i-1))/factorial(2**i-1))*sign
return sine
Run Code Online (Sandbox Code Playgroud)

这并没有返回我希望的答案,但我很困惑,找不到我的错误......到python和一般编程)。

它似乎类似于我之前必须编写的程序来近似给定这个系列的pi :

def piApprox(n):
pi = 0
for i in range(n):
    sign = (-1)**i
    pi = pi + 1.0/(2*i+1)*sign
return 4*pi
Run Code Online (Sandbox Code Playgroud)

我不知道这是否有任何用处,但这就是我试图用它来找出我的正弦方法的原因。任何帮助解决此问题或将我指向正确的方向将不胜感激!

Joh*_*ica 5

sin( x )的泰勒级数是:

sin(x) 的泰勒级数

将您的代码与该定义进行比较,这两部分有一些错误:

x**(2.0*i-1)
factorial(2**i-1)
Run Code Online (Sandbox Code Playgroud)

减号应该是加号,阶乘中的指数应该是乘法。

x**(2.0*i+1)
factorial(2*i+1)
Run Code Online (Sandbox Code Playgroud)