简化Python中方程组符号解算器的解决方案(带符号输出)

时间:2017-08-25 12:23:00

标签: python sympy symbolic-math equation-solving

我有以下方程组:

-2yz = a
-2xy = b
-x^2 + y^2 - z^2 = c

如何使用SymPy简化这些方程的解? x, y, z是未知数。我有以下脚本:

from sympy import *

x, y, z = var('x y z')
a, b, c = var('a b c')

E1 = -2 * y * z - a
E2 = -2 * x * y - b
E3 = -x**2 + y ** 2 - z ** 2 - c


sols = solve([E1, E2, E3], [x, y, z])

简化解决方案并不适合。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以考虑在解决方案上运行cse。我会让你看看替换是什么,但结果如下:

>>> r, e = cse(flatten(sols))
>>> reshape(e, (3,))  # restore tuples of 3 solutions
[
(x1*x9, -x11*x13, x9), 
(-x1*x13, x11*x9, -x13), 
(-x16, x12*x17, -x15), 
(x16, x17*x8, x15)]