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



我有以下方程组:

-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])

简化的解决方案并不是真正可口的。知道吗?

您可以考虑对解决方案运行 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)]

最新更新