Ask Your Question

Revision history [back]

Force Convert a Polynomial Ring into Multivariate Polynomial

I have the following code

xi = var('xi')
eta = var('eta')
P = 3*eta  - 1
Pr = P.polynomial(QQ)
Pr.coefficients(sparse=False)

which gives the output

[-1,3]

I would like to get the output in terms of both xi and eta that is, I want the output to be [-1,0,3]. How to force that? The reason I ask this is because my P is actually a mode in list of polyomials and generally function of both xi and eta and for different modes, either one or the other variable might not be there in the expression at all, and I want a general way to get the coefficients in a list corresponding to the coefficients of the terms 1,xi,eta,xi^2,xi *eta, eta^2 and so on.