首页 文章

用SymPy(Python)求解非线性符号方程组

提问于
浏览
0

我正在尝试使用SymPy解决以下非线性方程组:

enter image description here

其中
enter image description here
是未知数(其余为已知参数符号) .

我的代码是:

import sympy as sy
sy.init_printing()

m, v0, k, g, R, u, v = sy.symbols('m v0 k g R u v')

sy.nonlinsolve([0.5*m*v0**2 - m*g*2*R - 0.5*m*v**2 - 0.5*k*m*u**2, 
     m*v0 - m*v - k*m*u, m*g - m*((u+v)**2)/R], [v0, v, u] )

但是我得到了无限的处理时间,不得不打断内核 . 另外,我知道v0的解决方案是:

enter image description here

有没有更好的方法来解决它?也许是另一个求解器?或者也许有办法让Python检查我的解决方案是否有效?

谢谢 !!!

1 回答

  • 1

    我已经在解决函数中使用了一些添加的标志:

    当我做的时候:

    import sympy as sy
    sy.init_printing()
    
    m, v0, k, g, R, u, v = sy.symbols('m v0 k g R u v')   #Define Symbols
    
    sy.solve((0.5*m*v0**2 - m*g*2*R - 0.5*m*v**2 - 0.5*k*m*u**2, 
             m*v0 + m*v - k*m*u, m*g - m*((u+v)**2)/R), [v0,u,v] ,
             force=True, manual=True, set=True)
    

    有效!! 'force''manual' 标志就行了!

相关问题