построение уравнений с растущими переменными python - PullRequest
1 голос
/ 16 апреля 2020

Я пытался создать функцию (Pmotion в приведенном ниже коде), которая с несколькими параметрами дает мне реальные и мнимые части уравнения (эта часть в порядке)

, но на следующем шаге я хочу запустить функцию для возрастающей переменной (в этом случае время (t) возрастает с скачками от 0,1 до 2) и иметь возможность построить все эти выборки на графике реальной части (Up_real по оси y ) и t по оси x

как я могу получить увеличение, сохраняя при этом возможность начального ввода 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 Ответ

2 голосов
/ 16 апреля 2020

Прежде всего, разделите ваш код на маленькие независимые блоки (высокая когезия), поэтому создайте функцию с требуемым вычислением:

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] , чтобы отобразить только действительную часть. Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...