Заставьте симпози записать выражение в полиномиальной форме - PullRequest
1 голос
/ 22 октября 2019

В настоящее время у меня есть выражение в виде

(a+x^2) / b + x /c + xd + k

Как мне сделать sympy, чтобы выписать его в полиномиальной форме для x как

x^2 (.)+ x() + (.) 

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

1 Ответ

2 голосов
/ 22 октября 2019

Вы можете использовать класс Poly и метод all_coeffs. Ссылка доступна здесь: https://docs.sympy.org/latest/modules/polys/reference.html

Это то, что она дала бы в вашем примере, предполагая, что все символы были объявлены:

>>> pol = sp.Poly(((a+x**2) / b + x /c + x*d + k), x); pol
Poly(1/b*x**2 + (c*d + 1)/c*x + (a + b*k)/b, x, domain='ZZ(a,b,c,d,k)')
>>> pol.all_coeffs()
[1/b, (c*d + 1)/c, (a + b*k)/b]

После этого вы можете получить доступ к каждому коэффициенту с помощью егоположение.

...