SymPy полиномиальная характеристика как словарь - PullRequest
0 голосов
/ 02 ноября 2018

Мне нужно охарактеризовать очень большое полиномиальное выражение многих переменных (x1, x2, ...., xn) следующим образом:

  • сила каждого из мономных терминов образует упорядоченный кортеж, который будет сохранен как ключи словаря.
  • коэффициент этого мономного выражения сохраняется как значение этого конкретного ключа.

Пример: if 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, он поместит ноль в свой первый компонент.

1 Ответ

0 голосов
/ 02 ноября 2018

Метод 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}
...