【发布时间】:2023-03-25 12:49:01
【问题描述】:
SymPy 新手,正在尝试除法多项式。目前,我正在运行 Python 3.6.4 和 SymPy 1.1.1(安装了 pip)。在浏览了他们的文档后,我在他们的0.6.7 documentation page 上发现了以下有用的示例:
另一种选择是同时除以多个多项式。通常,输出不是唯一的,取决于除数的顺序和给定的单项式顺序(如果指定)。
>>> f = x*y + y*z + z*x >>> g1 = x + 1 >>> g2 = 2*y + 1 >>> q, r = div(f, [g1, g2], x, y, z) >>> q z [y + z, -1/2 + -] 2 >>> r 3*z 1/2 - --- 2
不过,这个功能,至少在1.1.1 documentation page是不存在的。而且,更重要的是,如果我尝试在 1.1.1 上尝试类似的操作,我会收到以下错误:
>>> f = x*y + y*z + z*x
>>> g1 = x + 1
>>> g2 = 2*y + 1
>>> q, r = div(f, [g1, g2], x, y, z)
Traceback (most recent call last):
File "C:\[...]\Python\Python36\lib\site-packages\sympy\polys\polytools.py", line 4659, in div
(F, G), opt = parallel_poly_from_expr((f, g), *gens, **args)
File "C:\[...]\Python\Python36\lib\site-packages\sympy\polys\polytools.py", line 4266, in parallel_poly_from_expr
return _parallel_poly_from_expr(exprs, opt)
File "C:\[...]\Python\Python36\lib\site-packages\sympy\polys\polytools.py", line 4312, in _parallel_poly_from_expr
raise PolificationFailed(opt, origs, exprs, True)
sympy.polys.polyerrors.PolificationFailed: can't construct polynomials from x*y + x*z + y*z, [x + 1, 2*y + 1]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\[...]\Python\Python36\lib\site-packages\sympy\polys\polytools.py", line 4661, in div
raise ComputationFailed('div', 2, exc)
sympy.polys.polyerrors.ComputationFailed: div(x*y + x*z + y*z, [x + 1, 2*y + 1]) failed without generators
我非常怀疑此功能已被删除,因为这是一个非常重要的功能,尤其是对于仿射变量和 Groebner 基分析(我正在研究的主题)
有人可以向我指出一个使用 SymPy 的工作示例吗?
【问题讨论】:
标签: python sympy polynomial-math