Функция синуса в Python как приближение ряда Тейлора

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

Результат:

и мой код на 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 ответ

Благодаря @mkrieger проблем с функцией не было, но диапазоны были очень глупыми. Теперь это на самом деле выглядит так:

https://st ackru.com/images/94d6a83c289de02ed628ccd803c69546f99c225b.png

Спасибо, @mkrieger!:))

Другие вопросы по тегам