我一直在尝试创建一个函数(下面的代码中为Pmotion),该函数具有多个参数,可以为方程式提供实部和虚部(该部分可以)
但是在下一步中,我想为增加的变量运行函数(在这种情况下,time(t)以0.1的跃升一直上升到2),并能够将所有这些样本绘制在图中实部(y轴为Up_real),x轴为t的值
如何在保持最初输入t的可能性的同时增加? 任何帮助都会很棒
def Pmotion(x,t,A,alpha,f):
w=2*np.pi*f
k1 = (w/alpha)
theta = k1*x-w*t
Up = k1*A*complex(-np.sin(theta),np.cos(theta))
Up_real = Up.real
Up_imag = Up.imag
plt.plot([t],[UP_real]) #here i want these to be in the x and y axis
plt.show()
#Pmotion(x=0,t=0,A=1,alpha=6000,f=2)
答案 0 :(得分:2)
首先,将您的代码分成多个独立的小块(高内聚性),这样可以创建具有所需计算的函数:
def Pmotion(x,t,A,alpha,f):
w=2*np.pi*f
k1 = (w/alpha)
theta = k1*x-w*t
Up = k1*A*complex(-np.sin(theta),np.cos(theta))
Up_real = Up.real
Up_imag = Up.imag
return Up_real, Up_imag
然后,您可以开始考虑绘图方法。例如
def plot_Pmotion_t():
t_range = np.arange(0,2,0.1)
reals = [Pmotion(0,t,1,6000,2) for t in t_range]
plt.plot(t_range, reals)
plt.show()
您现在可以在不更改Pmotion功能的情况下自由更改或添加绘图功能。
注意:您现在正在绘制实数值和虚数值,将其更改为reals = [Pmotion(0,t,1,6000,2)[0] for t in t_range]
只绘制实部。
希望这会有所帮助!