【问题标题】:sympy division of multivariate polynomials多元多项式的 sympy 除法
【发布时间】: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,因此在我看来,我们应该能够找到1px 的商。

更多细节

假设我正在处理一个真正的多元多项式环,并说我想将一些多项式 p 表示为 p=aq+r,对于一些非零多项式 a 和对于一些 rdeg(r)<deg(q)。度数 (deg) 我的意思是总度数,即用x 替换所有变量时得到的单变量多项式的度数。例如,xy^2 的总度数为 3。虽然这样的一对(q,r) 可能不存在,但如果确实存在,则它是唯一的给定(p,a)。这是一个证明:

p=aq+rp=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+yx 中被认为是一个多边形,但在 y 中却不是,其中顺序似乎与符号创建顺序有关。当只有一个符号时,文档会更清晰。只有几个例子有几个符号。
  • 可以明确排序,例如div(x+y, x, [x, y])div(x+y, x, [y, x])
  • 你可以只简化表达式而不是像sp.simplify((x**2 - y**2)/(x * (x - y)))那样使用div

标签: sympy


【解决方案1】:

here

给定一个符号族 (??) 或其他合适的对象,包括数字,通过重复加减乘法从它们导出的表达式在生成器??中称为多项式表达式。

您需要指定生成器。因为给定表达式y+x,机器无法确定哪个变量是生成器。可以是f(y) = x+yf(x) = x+y

你需要告诉它生成器的顺序是 [x,y]。

print(sp.div(y+x, y,gens=[x,y]))
# (0, x + y)

如果将生成器的顺序设置为 [y,x]。

print(sp.div(y+x, y,gens=[y,x]))
# (1, x)

【讨论】:

  • 感谢您的帮助。我仍然对生成器顺序的重要性感到困惑。正如我试图在“更多细节”部分下的问题中解释的那样,在我看来,给定一组特定变量(生成器)的除法问题,应该可以定义一个唯一的商和余数(如果它们存在) .我担心对发电机下订单不会给我想要的结果。再次感谢。
猜你喜欢
  • 1970-01-01
  • 2014-09-20
  • 2016-05-15
  • 2022-11-28
  • 1970-01-01
  • 2023-03-25
  • 2016-08-17
  • 2015-07-10
  • 1970-01-01
相关资源
最近更新 更多