我想计算一组微分方程的稳态,如下面的代码所示。
from sympy import *
from sympy import solve
from sympy import init_printing
init_printing()
X = Symbol("\X")
Y = Symbol("\Y")
Z = Symbol("\Z")
tau = Symbol(r"\tau")
Ryx = Symbol(r"\Ryx")
Rxy = Symbol(r"\Rxy")
Ry = Symbol(r"\Ry")
Rz = Symbol(r"\Rz")
Rzy = Symbol(r"\Rzy")
Rzz = Symbol(r"\Rzz")
Rxz = Symbol(r"\Rxz")
Ryz = Symbol(r"\Ryz")
#equation system
dX = X - X**2 - Ryx * Y * X
dY = Ry * ( Y - Y**2 + Rxy * X * Y + Rzy * Z * Y )
dZ = Rz * ( -Rzz * Z + Rxz * X * Z + Ryz * Y * Z )
equilibria = solve( (dX,dY,dZ),X,Y,Z )
如果我在sympy live shell中复制我的代码,代码工作正常,并为我提供了一套解决方案。
由于我想将结果保存在latex文件中,我想在我的系统上运行此代码。以下是Ubuntu 12.04,python2.7.3,sympy 0.7.1。 在这里,我的代码导致以下错误:
NotImplementedError: only zero-dimensional systems supported (finite number of solutions)
如果我取消最后一个等式和Z变量,我得到一组解决方案
equilibria = solve( (dX,dY),X,Y )
-> [(0, 0), (1, 0)]
在我看来,系统需要很多计算时间来解决整套问题。
你有什么建议吗?
我找到了可以解决这个问题的模块
from sympy.solvers.solveset import nonlinsolve
但我的同意版本并不知道这个模块。
提前谢谢