首页 > 解决方案 > 在python中一起绘制指数和多项式函数

问题描述

我想在 python 的同一轴上一起绘制以下 y 和 y' 函数。x 轴值应以 0.1 的间隔从 -10 变为 10: 在此处输入图像描述

我尝试了什么:我尝试仅绘制 y'(标记为 y_p),但出现错误。

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)

但这会产生错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-71-c184f15d17c7> in <module>
      7 B=0.1
      8 C=0.1
----> 9 y_p = (A*np.exp((-x**2)/2))(1+(B*((2*(np.sqrt(2))*(x**3))-(3*(np.sqrt(2))*x))/((np.sqrt(6)))))
     10 plt.plot(x,y_p)

TypeError: 'numpy.ndarray' object is not callable

​

我确信有更好的方法来做到这一点。我对python很陌生,所以任何帮助都非常感谢!

标签: pythonnumpyplotpolynomialsexponential

解决方案


适当的方法是一次迈出一步:

您可以从定义y1为 lambda 开始:

y1 = lambda x: (2*np.sqrt(2)*x**3 - 3*np.sqrt(2)*x)/np.sqrt(6)

然后实现你的公式:

y_p = A * np.exp(-x**2/2)*(1 + B*y1(x))

这样,您出错的机会就会减少。


推荐阅读