【问题标题】:Sage polynomial coefficients including zeros包括零的 Sage 多项式系数
【发布时间】:2015-09-06 06:31:22
【问题描述】:

例如,如果我们在 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]

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

    [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

我错过了什么吗?

【问题讨论】:

    标签: sage binomial-coefficients


    【解决方案1】:

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

    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
    

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

    【讨论】:

    • 你说得对,我不清楚我的输出,也不知道 coefficient() 方法。我使用的解决方法是构建单项式([x,y],[2,2]) 并比较每个元素。我的排序问题是采用单项式 xy>x^2 AND xy>y^2。我仍然找不到任何已知的顺序或方法来做到这一点,所以你的答案仍然是最简单和最接近的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多