SymPy多项式表征为字典

时间:2018-11-02 14:41:48

标签: python sympy polynomials

我必须表征许多变量(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再次运行相同的代码,则会在其第一个组件中添加零。

1 个答案:

答案 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}