代码出了什么问题,怎么解决

不知道是哪里出了问题,运行结果出现错误提示,无法转为float型

img

使用符号表达式时,需要始终使用sympy函数(sympy.exp, sympy.cos,sympy.log等),若使用math库中的函数,因为参数为表达式无法解析而报错,同时使用lambdify将符号表达式转换为数值计算式:
将代码改成如下即可:

import sympy as sy
import matplotlib.pyplot as plt
import numpy as np

x=sy.symbols('x')
a=sy.tan(x/2+2)
f=sy.log(a)
df=sy.diff(f,x)
xv = np.linspace(-5, 1, 100)
f1 = sy.lambdify(x, f, "numpy")
y=f1(xv)
plt.plot(xv,y)
plt.show()

运行结果图:

img

如有帮助,请点采纳 。

tan函数要求参数为浮点数,改为tan(x/2+2.0)

math.tan()方法接受唯一的数字,如果我们提供除数字以外的其他任何内容,它将返回错误TypeError- “ TypeError:需要浮点数” 。