2014-06-09 218 views
0

我試圖解決下面的表格的非線性方程系統,使用numpy的的一個系統:求解非線性方程

a(y-2.7)(1-exp(-a*z)) = (x-2.7)(1-exp(-z)) 
b(w-2.7)(1-exp(-b*z)) = (x-2.7)(1-exp(-z)) 
c(w-2.7)(1-exp(-b*z)) = (y-2.7)(1-exp(-a*z) 
d([y+w]/2-2.7)(1-exp(-d*z)) = (x-2.7)(1-exp(-z)) 

顯然,有儘可能多的方程如在系統的未知數。值a,b,c,d是上述系統的常數。這是最簡單的系統,在其他情況下會有更多方程式。 這些方程的解有相似的數量級,所以我知道Levenberg-Marquardt算法可以用來求解給定一組未知值的初始值的系統。我相信scipy.optimize可以用默認值全部爲1來表示未知數w,x,y,z。

回答

1

SciPy有一組非線性求解器,可能適用於您的應用程序。它們是scipy.optimize的一部分,專門爲非線性系統設計。該文檔可以發現here。有關如何使用求解器的深入討論,請參閱前面的S.O.討論專題here