Taylor approach of a function

Sep 23rd, 2020 (edited)
801
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. # I will try to approach a function with a Taylor series that has N-rank (3-rank here)
2. # My function will be:
3. # f(x) = sin(x) + 2 * ln(x+1) - 3 * x ^ 3 in the interval [0, 4*pi]
4. from math import pi, sin, cos, log
5. from matplotlib import pyplot as plt
6.
7. def f(x):
8.     return sin(x) + 2 * log(x+1) - 3 * x**3
9.
10. def df(x):
11.     return cos(x) + 2 / (x+1) - 9 * x**2
12.
13. def d2f(x):
14.     return - sin(x) - 2 / (x+1)**2 - 18 * x
15.
16. def d3f(x):
17.     return - cos(x) + 4 / (x+1)**3 - 18
18.
19. def taylorF(x, center):
20.     return f(center) + df(center) * (x-center) + 1/2 * d2f(center) * (x-center)**2 + 1/6 * d3f(center) * (x-center)**3
21.
22.
23. # MAIN FUNCTION
24. x = list()
25. counter = 0
26. while counter <= 4*pi:
27.     x.append(counter)
28.     counter += pi / 100
29.
30. centers = list(range(0, 11, 2))
31. for center in centers:
32.     function = list()
33.     taylor = list()
34.     for elementX in x:
35.         function.append(f(elementX))
36.         taylor.append(taylorF(elementX, center))
37.     plt.plot(x, function, label="Function")
38.     plt.plot(x, taylor, label="Taylor")
39.     plt.title("Center = " + str(center))
40.     plt.legend()
41.     plt.show()
RAW Paste Data