Sage多项式系数包括零

时间:2015-06-20 09:15:08

标签: sage binomial-coefficients

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

但我喜欢&#34;完整&#34;列表放入矩阵。在上面的例子中它应该是

    [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

我错过了什么吗?

1 个答案:

答案 0 :(得分: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()时才有用,class App_Form_BootstrapForm extends Zend_Form { public function __construct($options = null) { // decorator style } public function populate($data) { foreach ($data as $field => $value) { $this->{$field}->setValue($value); } return $this; } } 提供具有这些系数的单项式的匹配列表。