2

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

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

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

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

给我清单

    [3, 1, 3]

但我希望将“完整”列表放入 aa 矩阵中。在上面的例子中应该是

    [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

我错过了什么吗?

4

1 回答 1

5

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

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()

于 2015-06-21T22:57:55.743 回答