Best way to isolate one coefficient of a multivariate polynomial in sympy

那年仲夏 提交于 2020-03-18 04:24:08

问题


I have a multivariate polynomial (which in the general case many many variables) whose coefficients list some data that I need to read off, but it doesn't seem like sympy gives a good way to do this.

The collect function seemed like the right idea, but when you use it with several variables, it doesn't actually give you the individual monomials, but rather strange groupings of monomials that depend on the order you listed the variables.

Does anyone know of a way to do this?


回答1:


The documentation of polynomial module lists plenty of ways to handle coefficients. For example:

>>> import sympy
>>> x,y,z = sympy.symbols('x,y,z')
>>> p = sympy.poly((x+2*y-z)**3)
>>> p.coeffs()
[1, 6, -3, 12, -12, 3, 8, -12, 6, -1]

These are nonzero coefficients in lexicographic order. To see the monomials in matching order, use

>>> p.monoms()
[(3, 0, 0), (2, 1, 0), (2, 0, 1), (1, 2, 0), (1, 1, 1), (1, 0, 2), (0, 3, 0), (0, 2, 1), (0, 1, 2), (0, 0, 3)]

To get the coefficient of a particular monomial, use

>>> p.coeff_monomial(x**2*y)
6


来源:https://stackoverflow.com/questions/36818025/best-way-to-isolate-one-coefficient-of-a-multivariate-polynomial-in-sympy

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!