【发布时间】:2021-02-25 01:03:06
【问题描述】:
为什么 sympy 不对这个多项式进行除法?
>>> import sympy as sp
>>> x,y = sp.symbols("x y")
>>> print(sp.div(y+x,y))
(0, x + y)
我期待答案是(1,x),因为商是1,余数是x。我怎样才能对多项式进行除法?
我想要将一些多项式p 表示为p=aq+r,其中r 是余数,q 是商,a 是除数。在上面的示例中,请注意y+x=1*x+y,因此在我看来,我们应该能够找到1 是p 与x 的商。
更多细节
假设我正在处理一个真正的多元多项式环,并说我想将一些多项式 p 表示为 p=aq+r,对于一些非零多项式 a 和对于一些 r 和 deg(r)<deg(q)。度数 (deg) 我的意思是总度数,即用x 替换所有变量时得到的单变量多项式的度数。例如,xy^2 的总度数为 3。虽然这样的一对(q,r) 可能不存在,但如果确实存在,则它是唯一的给定(p,a)。这是一个证明:
说p=aq+r 和p=aq'+r' 对于一些r st。 deg(r)<deg(a) 并假设 q≠q'。
通过减去这些方程式并重新排列,我们得到a(q-q')=r'-r。
请注意,因为q-q'≠0,我们有deg(a)≤deg(a(q-q'))=deg(r-r')。
因此,因为deg(r)<deg(a),我们可以得出结论deg(a)≤deg(r')。
因此,如果存在这样一个r,那么这个r 是唯一的。
我指出这一点是为了表明我要求的计算是明确定义的。 在我看来,能够进行多元多项式除法是一种自然特征 那同情应该支持。如果我在这里错了,请告诉我原因。
【问题讨论】:
-
奇怪的是
div(x+y,x)的行为与您预期的一样。 -
@hpaulj,我在我的问题中添加了更多信息。希望这有助于澄清我为什么感到困惑。
-
当有多个变量时,似乎存在某种隐含顺序,例如
x+y在x中被认为是一个多边形,但在y中却不是,其中顺序似乎与符号创建顺序有关。当只有一个符号时,文档会更清晰。只有几个例子有几个符号。 -
可以明确排序,例如
div(x+y, x, [x, y])与div(x+y, x, [y, x]) -
你可以只简化表达式而不是像
sp.simplify((x**2 - y**2)/(x * (x - y)))那样使用div
标签: sympy