好的,所以我试图用一个表达式绘制一个带有e的函数,但是我在输入的行(##)@中一直出错,其中错误信息是
TypeError:*:' numpy.ufunc'不支持的操作数类型并且'浮动'
#!C:\Users\msawe\Anaconda3 or C:\Anaconda3\python
import numpy as np
import matplotlib.pyplot as plt
plt.figure (figsize=(10,10), dpi=100)
ax = plt.subplot(111)
plt.title('Projectile Motion: Goround given by h(x) ', size=24)
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
def h(x):
"This function will return the y-coordinate for a given x-coordinate launch."
##return 1 - np.exp(-1* x/1000) + 0.28 *( 1 - np.exp(-0.038*x**2))*(1 - np.cos*(20*x**0.2))
X = np.linspace(0, 10, 101, endpoint=True)
##plt.plot(X, h(X), color="black", linewidth=3, linestyle="-", label="h(x)")
plt.xlim(0,10)
plt.xticks(np.linspace(0,10,11,endpoint=True))
plt.ylim(0,20.0)
plt.yticks(np.linspace(0,20,11,endpoint=True))
plt.legend(loc='upper left', frameon=False)
plt.savefig("Ch5_P4_lowRes.png",dpi=60)
plt.savefig("Ch5_P4_hiRes.png",dpi=200)
plt.savefig("Ch5_P4_plotting.pdf",dpi=72)
plt.show()
如果我能够大致了解如何让它发挥作用那将会很棒。
答案 0 :(得分:0)
假设我正确地解释了你的等式,你在h(x)的定义中实现np.cos()
时出现了一个错误:你写了np.cos*(...)
而不是np.cos(...)
。修好后,代码能够绘制 - 希望它能给出正确的结果!
这会使你对h(x)的定义变为:
def h(x):
return 1 - np.exp(-1* x/1000) + 0.28 *( 1 - np.exp(-0.038*x**2))*(1 - np.cos*(20*x**0.2))
进入:
def h(x):
return 1 - np.exp(-1* x/1000) + 0.28 *( 1 - np.exp(-0.038*x**2))*(1 - np.cos(20*x**0.2))
差异很微妙但很重要!你可以通过连续运行较小的代码片段来查看这样的错误,看看哪个操作引发错误 - 这让我快速了解np.cos*(...)
错字。