For Uni I'm doing this assignment where I have to approximate the difference between the sine function and its n-th Taylor approximation. When running the code plotting these two functions I run into the following error:
TypeError: ufunc 'add' output (typecode 'O') could not be coerced to provided output parameter (typecode 'd') according to the casting rule ''same_kind''
The weird thing (in my opinion) is that the program works fine for n <= 20, but when I choose anything above that, it throws this error.
Does anyone know where in my code the problem may lie? Thanks in advance.
import matplotlib.pyplot as plt
import numpy as np
import math
def constant(n, x):
return np.full(x.shape, (2*math.pi)**(n+1)/(math.factorial(n+1)))
def taylor_n(n,x):
val = 0
for i in range(1, n+1):
if i%2 == 1:
val += (-1)**((i-1)/2)* x**i/math.factorial(i)
return val
N = [1, 5, 10, 20, 50]
x = np.linspace(0,2*math.pi,100)
for n in N:
plt.plot(x, abs(np.sin(x) - taylor_n(n, x)))
plt.plot(x, constant(n, x))
