编写一个程序来计算泰勒级数。

时间:2018-09-30 17:22:13

标签: python taylor-series

我是python新手,不了解如何正确使用这些库。我正在尝试编写一个程序,计算给定x和n处以0为中心的函数的泰勒级数逼近。

def fact(n):    #function to calculate n!
if n <= 0:
    return 1
else:
    return n * fact(n - 1)

#h= 0.00000000001

#def derivative(f,x,n):    #function that calculates the derivative of a 
 function at a specified x
    # return (f(x + h) - f(x - h)) /(2 * h)

 from sympy import *
 x = symbols('x')


def taylor(f,x,n):    
    for i in range(0,n):
      t = 0
      t = t + ((diff(f,x,n))/(fact(n))) * (x ** n)
      return t

  taylor(sin(x),1/32,1)

1 个答案:

答案 0 :(得分:0)

在我修复了您代码中的内容后,这对我有用。我使用了sympy阶乘。

from sympy import *
x = symbols('x')

def taylor(f,x,x0, n):  
    t = 0  
    for i in range(0,n):
        t = t + ((diff(f,x,i).subs(x,x0))/(factorial(i))) * (x ** i)
    return t

pprint(taylor(sin(x),x,Rational(1,32),4))

我得到的答案是

   3              2                                    
  x ⋅cos(1/32)   x ⋅sin(1/32)                          
- ──────────── - ──────────── + x⋅cos(1/32) + sin(1/32)
       6              2