在 python 中一起绘制指数函数和多项式函数
plotting exponential and polynomial function together in 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 的新手,非常感谢您的帮助!
您不能在 python.
中隐式乘法(不使用 *
)
修改后的代码如下:
import matplotlib.pyplot as plt
import numpy as np
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)
plt.show()
适当的方法是一步一个脚印:
您可以先将 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))
这样您输入错误的几率就会降低。
我想在 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 的新手,非常感谢您的帮助!
您不能在 python.
中隐式乘法(不使用*
)
修改后的代码如下:
import matplotlib.pyplot as plt
import numpy as np
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)
plt.show()
适当的方法是一步一个脚印:
您可以先将 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))
这样您输入错误的几率就会降低。