def derivatives(f, x, a, n):
f = f(x)
x = var
a = 1.0
n = 5
ds = np.zeros(n)
exp = f(x)
for i in range(n):
exp = sp.diff(exp,x)
ds(i) = exp.replace(x, a)
return ds
x = sp.symbols('x')
f = sp.exp(2*x) # an expression, not a function
n = 5
a = 0
print(f.diff(x, n).subs(x, a)) # take derivative n times, then plug a for x
你的意思可能是
ds[i]
,而不是ds(i)
。用于索引的方括号与用于函数调用的圆括号。也就是说,代码还有其他问题,从未定义的var
到使用NumPy数组(?)来存储SymPy对象。通常,建议记住,Symphy主要用于表达式而不是函数。表达式不“接受参数”,它们不像Python中的可调用函数所有这些都是不必要的,因为SymPy自己计算n阶导数。例如,exp(2*x)在0处的五阶导数:
打印32。或者,如果您希望Taylor扩展到并包括
x**n
:打印
1 + 2*x + 2*x**2 + 4*x**3/3 + 2*x**4/3 + 4*x**5/15 + O(x**6)
相关问题 更多 >
编程相关推荐