代码之家  ›  专栏  ›  技术社区  ›  safakeskin

Python中的正弦函数作为Taylor级数逼近

  •  0
  • safakeskin  · 技术社区  · 5 年前

    我试图将正弦函数实现为泰勒级数近似。用Taylor级数近似形式不能得到合理的结果。我不明白为什么。

    结果是: sine with Taylor Series Approximation

    我的Python代码如下:

    import numpy as np
    import matplotlib.pyplot as plt
    import functools
    f_reduce = functools.reduce
    
    pow = np.power
    
    from math import factorial
    
    def f(t):
        return 2*t + np.pi / 2
    
    # sine function in Taylor series form
    def t_sin(t):
        def inner(n):
            return pow(-1, n) * pow(t, 2*n + 1) / factorial(2*n + 1)
        return f_reduce( lambda x,y: x + y, [ inner(step) for step in range(80) ] )
    
    time = np.arange(-10*np.pi, 10 * np.pi, 0.1)
    # x = np.sin(f(time))
    x = t_sin(f(time))
    
    plt.plot(time, x)
    plt.show()
    

    我的密码怎么了?我遗漏了什么吗?

    1 回复  |  直到 5 年前
        1
  •  0
  •   safakeskin    5 年前

    多亏了@mkrieger,函数没有问题,但是范围非常愚蠢。现在,它实际上看起来是这样的:

    enter image description here

    谢谢你@mkrieger!:))

    推荐文章