用增加的变量绘制方程python

时间:2020-04-16 17:16:23

标签: python python-3.x variables plot

我一直在尝试创建一个函数(下面的代码中为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) 

1 个答案:

答案 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] 只绘制实部。 希望这会有所帮助!