Hey there,
I need to create a polynomials (say P1, P2) that will have a number of variables (ca. 5) and abstract coefficients (ca. 9) (but I can assume that coefficients are variables carrying integer values). Then I would like to multiply P1, P2 and collect variables and extract coefficients standing next to them, e.g
from
XA * XB + XA^2 + 2 * A * XA + 4*XB / XC + 5
I should be able to get
2*A*XA + XA^2 + XA*XB + 4*XB/XC + 5
and from this a list of coefficients like
[2A, 1, 1, 4, 5]
(with zeros in proper places eg. coefficient for XAXBXC)
Browsing the net I have found sth like:
B.<x,y,z> = QQ[];
A.<x,y,z>=B[];
ex = (1-a^2)*x*y^2+(a-b^2+c)*x*y*z+(b^2-c^2-a)*x^2*z;
ex.coefficients();
ex.monomials()
And my questions are:
(1.) how can I pass a list of variables to define a ring, I am interested in sth like
B.list = QQ[];
A.list2 = B[]
(2.) As you run the code above you can easily note that the output is:
[-x*y^2, x^2*z - x*y*z, -x^2*z, -x^2*z + x*y*z, x*y*z, x*y^2];
[a^2, b^2, c^2, a, c, 1]
As you can see the list from ex.coefficients() contains multiply entries for xy^2 and -xy^2 separately. And this is no go. Any ideas how can I fix it?
Thanks for any suggestions! Bests Michal