Sympy linsolve:EmptySet 结果

Sympy linsolve : EmptySet result

我正在使用 sympy linsolve 求线性方程组的解。

在#b 中,打印了 EmptySet。

你是怎么找到m的解的?

import sympy
from sympy.solvers.solveset import linsolve

x,y,z,m = sympy.symbols('x,y,z,m')

# a)
m=1
ans1 = linsolve([x + y +z - 6, x-y+2*z - 5, x+3*y+(m*z) - 4], (x,y,z,m))
print(ans1)
# Out: {(10, -1, -3, 1)}

# b)
x=1;y=2;z=3
ans2 = linsolve([x + y +z - 6, x-y+2*z - 5, x+3*y+(m*z) -4], (x,y,z,m))
print(ans2)
# Out: EmptySet

由于您有 3 个方程式和 4 个未知数,您将只能得到其中 3 个方程式的解。如果您想查看 m 的值与符号 1 的关系,请从方程的 non-linear 解中排除该符号:

>>> eqs = [x + y +z - 6, x-y+2*z - 5, x+3*y+(m*z) - 4]

>>> solve(eqs,exclude=[x])
[{m: 9/(2*x - 11), y: -(x - 7)/3, z: -(2*x - 11)/3}]

>>> solve(eqs,exclude=[y])
[{m: -3/(2*y - 1), x: 7 - 3*y, z: 2*y - 1}]

>>> solve(eqs, exclude=[z])
{m: -3/z, x: 11/2 - 3*z/2, y: z/2 + 1/2}