如果我们在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
我错过了什么吗?
答案 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;
}
}
提供具有这些系数的单项式的匹配列表。