Есть ли функция sympy для извлечения коэффициентов одночленов с отрицательной степенью?

У меня есть многочлен: eps * x 3 - x 2 + 2 + 3 * x * eps -2. Как мне получить список всех коэффициентов, включая отрицательные?

Я пробовал методы coeffs() и all_coeffs(), но они не работают с отрицательными степенями эпсилона:

import sympy as sp
x, eps = sp.symbols('x E')
expr = eps * x**3 - x**2 + 2 + 3 * x * eps**(-2)
coeffs_list = sp.Poly(expr, eps).coeffs()

Я хочу получить список коэффициентов типа [x^3, x^2 + 2, 3*x]


person George Zorikov    schedule 08.11.2019    source источник


Ответы (2)


Умножение с большой степенью eps помогает получить коэффициенты.

import sympy as sp
x, eps = sp.symbols('x E')
expr = eps * x**3 - x**2 + 2 + 3 * x * eps**(-2)
coeffs_list = sp.Poly(expr*eps**2, eps).coeffs()

дает

[x**3, 2 - x**2, 3*x]
person JohanC    schedule 08.11.2019

Если вы не уверены, какова отрицательная мощность eps, вы можете найти коэффициенты выражения, поставив их над общим знаменателем:

>>> n, d  expr.as_numer_denom()
>>> Poly(n, eps).coeffs()
[x**3, 2 - x**2, 3*x]
person smichr    schedule 08.11.2019