Your command f = sin (x) is invalid; the argument is a character symbol, not a legal argument to the sin function .
, , , . f sin ... , , , .
import math
import numpy
import sympy as sy
import numpy as np
from sympy.functions import sin,cos
import matplotlib.pyplot as plt
x = sy.Symbol('x')
print "sy.Symbol('x') is", x, type(x)
f = sin(x)
def factorial(n):
if n <= 0:
return 1
else:
return n*factorial(n-1)
taylor_series = sin(x).series(n=None)
def trap(a,b,f,N):
xedge = numpy.linspace(a,b,N+1)
integral = 0.0
n = 0
while n < N:
x0 = xedge[n]
x1 = xedge[n+1]
print x0, x1
sub1 = x1 - x0
f0 = math.sin(x0)
f1 = math.sin(x1)
sub2 = f0 + f1
integral = integral + 0.5 * sub1 * sub2
n += 1
return integral
N = 3
a = 0.0
b = 1.0
z = sum([next(taylor_series) for i in range(N)])
print("Taylor series:",z)
N = 2
while (N <= 2):
dd = trap(a,b,z,N)
print ('Trapezoid rule result:', dd)
N *= 2