【发布时间】:2013-12-30 07:16:19
【问题描述】:
我需要求解以下 3 个非线性方程组:
-xyt + HF = 0
-2xzt + 4yzt - xyt + 4z^2t - M1F = 0
-2xt + 2yt + 4zt - 1 = 0
其中 x、HF 和 M1F 是已知参数。因此,y、z、t是需要计算的参数。
尝试解决问题:
def equations(p):
y,z,t = p
f1 = -x*y*t + HF
f2 = -2*x*z*t + 4*y*z*t - x*y*t + 4*t*z**2 - M1F
f3 = -2*x*t + 2*y*t + 4*z*t - 1
return (f1,f2,f3)
y,z,t = fsolve(equations)
print equations((y,z,t))
但问题是,如果我想使用scipy.optimize.fsolve,那么我应该输入一个初始猜测。就我而言,我没有任何初始条件。
在python中是否有另一种方法可以求解具有3个未知数的3个非线性方程?
编辑:
原来我有条件!条件是HF > M1F,HF > 0,M1F > 0。
【问题讨论】:
-
但我无法添加任何初步猜测。除了使用
scipy.optimize,还有其他方法吗? -
你读过这个post吗?
标签: python-2.7 optimization numpy scipy nonlinear-optimization