我必须表征许多变量(x1,x2,....,xn)的非常大的多项式表达式,如下所示:
示例:如果p=Poly(3*x1**2 - x1*x2 + 5*x2 +7)
dic={"(2,0)":3 , "(1,1)":-1 , "(0,1)": 5 , "(0,0)": 7}
非常重要的一点是,元组的第一个组件始终是与x1相关联的幂,如果我使用不带x1变量的新poly再次运行相同的代码,则会在其第一个组件中添加零。
答案 0 :(得分:0)
如果您将变量及其顺序指定为Poly的第二个参数,例如as_dict
,则Poly方法Poly(..., (x1, x2))
会执行此操作。假设已经创建了符号x1,x2,则其工作原理如下。
>>> p = Poly(3*x1**2 - x1*x2 + 5*x2 + 7, (x1, x2))
>>> p.as_dict()
{(0, 0): 7, (0, 1): 5, (1, 1): -1, (2, 0): 3}
>>> p = Poly(x2 + 5*x2 + 7, (x1, x2))
>>> p.as_dict()
{(0, 0): 7, (0, 1): 6}