错误TypeError: can't convert expression to float
经过对公式仔细排查,发现是diff()函数不能对math.exp(x)这个表达式进行求导,想来应当是对其他第三方库里类似的函数都不能求导。
故而将math.exp(x)转换为预置的pow(e,x)
但通过查资料发现,python预置的pow()函数和math.pow()有区别
区别1:预置的pow()函数有三个参数,除了math.pow()的功能外,还可以将结果对第三个参数进行取模
区别2:pow()函数会把参数作为整型,而math.pow()则会把参数转换成float进行计算
但通过实际操作发现区别2还是可以解决的。
print (pow(3,2))
print (math.pow(3,2))
print (pow(3.0,2))
9
9.0
9.0
也就是说,预置的pow()函数传入的参数只要已经是float,则与math.pow()无异
而恰巧我这次的项目中,正是要计算pow(math.e,x),math.e本就不是int型,所以不影响计算结果。