使用fsolve

时间:2019-08-02 12:00:22

标签: python nonlinear-optimization

试图解决由四个非线性方程组成的系统。我尝试使用fsolve,但是鉴于收到的错误,解决方案似乎无法收敛:

RuntimeWarning: The iteration is not making good progress, as measured by the 
  improvement from the last ten iterations.

我尝试使用不同的初始猜测,但并没有带我任何地方。这是我正在使用的代码。

mu2=5.999820005399838e+31
qp2=np.array([ -2721.9017225255006, 82286.415916307858, 0.18811991204543224]) 

def equations(p,qf):
        q1, q2, q3, q4 = p
        r1=np.sqrt((qf[0]-mu2)**2+qf[1]**2+qf[2]**2)
        return q1**2-q2**2-q3**2+q4**2-qf[0]+mu2, 2*q1*q2-2*q3*q4-qf[1],2*q1*q3+2*q2*q4-qf[2], q1**2+q2**2+q3**2+q4**2-r1

q1, q2, q3, q4 = fsolve(equations, (1,1,1,1),qp2)

print(equations((q1, q2, q3, q4),qp2))

反正有没有解决此错误的方法,或者有其他用于解决此问题的求解器?

0 个答案:

没有答案