Numpy 求解非线性方程组

Numpy 求解非线性方程组,numpy,scipy,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是上述系统的常数。这是最简单的系

我正在尝试使用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可以与未知值w、x、y、z的所有默认值1一起使用。

scipy有一组非线性解算器,可能适用于您的应用程序。它们是scipy.optimize的一部分,专门为非线性系统设计。可以找到文档。有关如何使用解算器的深入讨论,请参阅上一篇S.O.关于该主题的讨论