包括零的 Sage 多项式系数

Sage polynomial coefficients including zeros

例如,如果我们在 SAGE 中有一个多元多项式

    f=3*x^3*y^2+x*y+3

如何显示完整的系数列表,包括最大 dregree 项和常数之间缺失项的零系数。

    P.<x,y> = PolynomialRing(ZZ, 2, order='lex')
    f=3*x^2*y^2+x*y+3
    f.coefficients()

给我列表

    [3, 1, 3]

但我希望将 "full" 列表放入矩阵中。在上面的例子中应该是

    [3, ,0 , 0, 1, 0, 0, 0, 0, 3]

对应词条:

    x^2*y^2, x^2*y, x*y^2, x*y, x^2, y^2, x, y, constant

我是不是漏掉了什么?

你想要的输出没有很好地定义,因为你列出的单项式不在字典顺序中(你在代码的第一行中使用的)。无论如何,使用双循环你可以按照你想要的任何特定方式排列系数。这是执行此操作的自然方法:

coeffs = []
for i in range(f.degree(x), -1, -1):
    for j in range(f.degree(y), -1, -1):
        coeffs.append(f.coefficient({x:i, y:j}))

现在coeffs为[3, 0, 0, 0, 1, 0, 0, 0, 3],对应

x^2*y^2, x^2*y, x^2, x*y^2, x*y, x, y, constant

内置的 .coefficients() 方法仅在您还使用 .monomials() 时才有用,它提供了具有这些系数的单项式的匹配列表。