Path: blob/master/experiments/taylor.py
1700 views
# -*- coding: utf-8 -*-1"""2Created on Thu Mar 19 08:26:08 201534@author: rlabbe5"""67import numpy as np8import matplotlib.pyplot as plt910from math import sin, cos, factorial11def df(x, p):12if p == 0:13return sin(x)1415return x16if p % 4 == 1:17return cos(x)1819if p % 4 == 2:20return -sin(x)2122if p % 4 == 3:23return -cos(x)2425return sin(x)2627282930def taylor(df, x, a, n):3132f = 0.03334for i in range(n+1):35term = df(a, i) * (x - a)**i / factorial(i)36f += term3738return f394041x = 0.142a = 0.843n = 144454647plt.cla()4849xs = np.linspace(-2, 2, 100)50ts = [taylor(df, i, a, n) for i in xs]5152plt.plot(xs, np.sin(xs))53plt.plot(xs, ts)5455565758