Как ускорить разложение очень больших полиномов в sympy? - PullRequest
1 голос
/ 19 апреля 2019

Я работаю с очень большими полиномами в sympy, и мне нужно иметь их в расширенной форме, чтобы найти определенные члены и коэффициенты. Однако разложение этих полиномов занимает много времени. Существует ли быстрый способ расширения полиномов или получения определенных членов и коэффициентов по-другому?

Я могу найти термины в расширенном полиномиальном штрафе, но ограничивающим фактором является время их расширения.

Полиномы очень большие, например:
(x + y + z + a + b + c) ** 24

Я пробовал как sympy.expand (), так и Add.as_poly (). И обнаружили, что Add.as_poly () быстрее, но все еще очень медленный.

my_poly = (x + y + z + a + b + c) ** 24
# expand using Add.as_poly()
my_poly.as_poly()
# this takes multiple minutes to execute

Я бы хотел иметь возможность поиска по терминам в расширенном полиноме, чтобы найти те, которые содержат другие термины:
(псевдокод): x ** 3 * y z a ** 2, содержащийся в 500 * x ** 5 * y ** 2 * z * a ** 4 * b * c ** 2
и если он содержится, я хочу получить коэффициент этого термина.

Я хочу ускорить расширение или использовать другой метод, чтобы найти нужные термины за меньшее время.

...