Напишите программу для расчета серии Тейлора. - PullRequest
0 голосов
/ 30 сентября 2018

Я новичок в Python и не понимаю, как правильно использовать библиотеки.Я пытаюсь написать программу для вычисления приближения ряда Тейлора функции с центром в 0 при заданном x и n.

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 голосов
/ 10 октября 2018

Вот что работает для меня после того, как я исправил вещи из вашего кода.Я использовал симпозиальный факториал.

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                                
...