Sympy 求解无法找到简单方程的零空间

问题描述 投票:0回答:0

我正在尝试使用 pythons 模块

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))  #  output: ([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)) #  output: ([a, b], {(-c, c)})

然而,它与布景斗争

{upper_gamma(x, -1), upper_gamma(x - 1, -1), x * upper_gamma(x - 1, -1), (-1) ^ x}

这很公平,即使是 wolfram-alpha 也找不到解决方案。然而,令我惊讶的是它在简化问题上也失败了
{(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))  # output: ([a, b, c, d], {((b*y + c*x*y + d*z)/(-x*y + y + z), b, c, d)})

我期待解决方案

([a, b, c], {d, d, -d})
.
我是不是错误地使用了
solve
或者这个求解器很难解决这个问题?

python sympy linear-algebra symbolic-math
© www.soinside.com 2019 - 2024. All rights reserved.