2014-09-25 18 views
0

我有下面的等式,我正在試圖解決它,類似於目標尋找在excel中的工作方式。目前我正在試圖用sympy做到這一點。如何找到x截距爲0的方程的變量

公式:

(-0.0108242189900525*(x*x)) + (-0.127049195945013*x) + 0.00668862850925914*45.78) + 0.688105530515927 

在Excel中,我會用進球尋求與該組小區將上述公式。在這個例子中,x在excel中是F2。 的到值:0 通過改變細胞:F2

我需要編寫一個python算法來求解x,其中x截距是0 如果我運行上述等式它會發現的X截距-0.000219998通過將F2更改爲5.3706。

我試圖找出如何用sympy做到這一點,解決類似 python solving equations for unknown variable

感謝您的幫助!

+0

下面是sympy解決方案的文檔:http://docs.sympy.org/latest/modules/solvers/solvers.html?highlight=solve#sympy.solvers – mkmitchell 2014-09-25 20:06:48

回答

1

工作示例,但較短的常量與您的近似值不同。

from sympy import * 

x = Symbol('x') 

#I use approximate constants because I'm lazy 
c1 = -0.0108 
c2 = -0.1270 
c3 = 0.006*46 
d = 0.688 

solve(x*x * c1 + x*c2 + c3 + d, x) 
>>> [-17.0074912319716, 5.24823197271239] 

第二,5.248 ...,是你的答案5.3706的近似形式,錯誤是由我在每個不變的所有20位沒有進入造成的。

+0

謝謝。我必須改變求解(x * x * c1 + x * c2 + c3 + d,d)來求解(x * x * c1 + x * c2 + c3 + d,x)。之後,它效果很好。什麼是-17的價值? – mkmitchell 2014-09-25 20:05:59

+0

這是一個二次方程,所以你期望兩個答案。 – mixedmath 2014-09-25 20:06:26

+0

好吧,這是有道理的。我剛剛獲得了這些數據,甚至沒有想到它是二次的。我應該繪製它。再次感謝。 – mkmitchell 2014-09-25 20:08:37