我想计算一组微分方程的稳态,如下面的代码所示 .

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

但我的同意版本并不知道这个模块 .

先感谢您