2014-09-04 35 views
0

我是新來的Python語言,我試圖編寫一個程序來解決一堆時間/距離/加速度變量。我知道我需要在Dtot-Dacceleration-Dconstant-Dbraking = 0行中使用某種求解函數,但我不知道要使用什麼函數或者它的語法是什麼。這是我的一塊代碼,任何幫助將不勝感激!在Python中求解等於0的二次方程

def VehicleProfile(Vi, Fa, Fd, Dtot, Vf, Taccel): 

    Vconstant = Vi+(Fa*9.81*Taccel) 
    Dacceleration = (Vi*Taccel)+(.5*Fa*9.81*(Taccel**2)) 
    Dconstant = Vconstant*Tconstant 
    Dbraking = ((Vf**2)-(Vconstant**2))/(2*Fd*9.81) 
    Tbraking = (Vf-Vconstant)/(Fd*9.81) 
    Dtot-Dacceleration-Dconstant-Dbraking=0 
    return (Tconstant, Tbraking) 

而且我使用python 2.7.7

+5

http://en.wikipedia.org/wiki/Quadratic_formula – 2014-09-04 17:41:17

+1

在'Dconstant = Vconstant * Tconstant'中使用'Tconstant'之前,它已被賦予一個值 – Optox 2014-09-04 17:44:23

回答

3

您只需重新安排它在右手邊

Dtot = Dacceleration + Dconstant + Dbraking 

一切都已經在這一點衆所周知。

+0

該函數的錯誤比一行更多。 – Optox 2014-09-04 17:46:21

+0

自從我回答以來,他們已經改變了函數幾次,但假設他們在右側有變量,看起來他們已經計算出來了,這只是代數,正如我寫的那樣解決'Dtot'。 – CoryKramer 2014-09-04 17:47:31

0

我已經做了必要的更改以使此函數可以正常工作。

def VehicleProfile(Vi, Fa, Fd, Dtot, Vf, Taccel): 
    Vconstant = Vi+(Fa*9.81*Taccel) 
    Dacceleration = (Vi*Taccel)+(.5*Fa*9.81*(Taccel**2)) 
    Dbraking = ((Vf**2)-(Vconstant**2))/(2*Fd*9.81) 
    Tbraking = (Vf-Vconstant)/(Fd*9.81) 
    Dconstant = Dtot-Dacceleration-Dbraking 
    Tconstant = Dconstant/Vconstant 
    return (Tconstant, Tbraking) 

你需要了解作爲節目的基礎是對=號左邊的變量是哪裏的答案,右邊的表達被保存。你在等式的右邊有Tconstant,並試圖稍後返回它。該等式也使用Dconstant,由於線條從上到下運行,所以尚未計算。