求解非线性方程组

时间:2014-06-09 09:00:16

标签: numpy scipy

我试图使用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 个答案:

答案 0 :(得分:1)

SciPy有一组可能适合您应用的非线性求解器。它们是scipy.optimize的一部分,专为非线性系统设计。可以找到文档here。有关如何使用求解器的深入讨论,请参阅前面的S.O.讨论主题here