警告 我是Sage开发人员,所以我可能不会保持中立。
我不知道如何在纯Python中实现这一点,但我建议使用Sage系统,其界面是用Python编写的(实际上命令行是一个特别配置的IPython),可以完成这样的事情:
+--------------------------------------------------------------------+
| Sage Version 5.10, Release Date: 2013-06-17 |
| Type "notebook()" for the browser-based notebook interface. |
| Type "help()" for help. |
+--------------------------------------------------------------------+
sage: var("sigma y x rho beta z")
(sigma, y, x, rho, beta, z)
sage: sys = [sigma*(y-x), x*(rho-z)-y, x*y-beta*z]
sage: solve(sys, x, y, z)
[[x == sqrt(beta*rho - beta), y == (beta*rho - beta)/(sqrt(rho - 1)*sqrt(beta)), z == rho - 1], [x == -sqrt(beta*rho - beta), y == -(beta*rho - beta)/(sqrt(rho - 1)*sqrt(beta)), z == rho - 1], [x == 0, y == 0, z == 0]]
通常更容易像这样使用:
。
sage: solve(sys, x, y, z, solution_dict=True)
[{z: rho - 1,
x: sqrt(beta*rho - beta),
y: (beta*rho - beta)/(sqrt(rho - 1)*sqrt(beta))},
{z: rho - 1,
x: -sqrt(beta*rho - beta),
y: -(beta*rho - beta)/(sqrt(rho - 1)*sqrt(beta))},
{z: 0, x: 0, y: 0}]
主要缺点是Sage是一个完整的数学软件分发,它附带自己的Python解释器(以及许多其他语言编写的大量东西,包括C/C ++、Cython、lisp、fortran),如果您想使用自己的解释器,则安装起来非常困难。
对于您的问题,一个好消息是Scipy已经与Sage一起提供。