Python同坐标轴绘制指数与多项式复合函数报TypeError如何解决
错误原因
- 你遇到的
TypeError: 'numpy.ndarray' object is not callable报错,核心原因是y_p的计算公式中遗漏了乘法运算符*:(A*np.exp((-x**2)/2))和后面括号包裹的表达式之间没有加乘号,Python会误认为你要把前半部分生成的numpy数组当作函数调用,因此触发类型错误。 - Python的数值计算中所有乘法都需要显式写
*,不能像手写数学公式一样直接将两个括号拼接表示相乘。
修正后可正常运行的代码
import numpy as np import matplotlib.pyplot as plt x = np.arange(-10,10,0.1) A=1 B=0.1 C=0.1 # 两个括号表达式中间补加乘号*即可修复报错 y_p = (A*np.exp((-x**2)/2)) * (1+(B*((2*(np.sqrt(2))*(x**3))-(3*(np.sqrt(2))*x))/((np.sqrt(6))))) plt.plot(x, y_p, label="y'") # 如需在同一坐标轴绘制y函数,补充对应计算逻辑后多调用一次plt.plot即可,示例如下: # y = A * np.exp(-x**2/2) # 请替换为你实际的y函数公式 # plt.plot(x, y, label="y") plt.legend() # 显示图例区分不同曲线 plt.xlabel("x") plt.ylabel("函数值") plt.show()
内容的提问来源于stack exchange,提问作者Jerome
相关产品推荐
相关产品推荐

