SymPy solve无法求解简单方程组零空间:用法有误还是求解器局限?
SymPy求解函数集零空间的问题
我尝试用Python的SymPy模块求解各类函数集的零空间,其中针对${(x - 1)!, x * (x - 2)!, (x - 2)!}$这类函数集的求解是成功的,代码及输出如下:
from sympy import solve, factorial from sympy.abc import a, b, c, x eq = a * factorial(x - 1) + b * x * factorial(x - 2) + c * factorial(x - 2) print(solve(eq, a, b, c, set=True)) # 输出: ([a, b, c], {((-b*x + b - c)/x, b, c)}) eq = -b * x + b - c - a * x print(solve(eq, a, b, c, set=True)) # 输出: ([a, b], {(-c, c)})
但求解${(x - 1) * y - z, y, x * y, z}$这类简化问题时,编写的代码及得到的输出如下:
eq = a * (x-1) * y - a * z + b * y + c * x * y + d * z print(solve(eq, a, b, c, d, set=True)) # 输出: ([a, b, c, d], {((b*y + c*x*y + d*z)/(-x*y + y + z), b, c, d)})
这里SymPy的solve函数未能给出预期解([a, b, c], {d, d, -d}),想确认是solve用法错误还是求解器存在能力局限?
内容的提问来源于stack exchange,提问作者Martin Clever
相关产品推荐
相关产品推荐

