Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
NCTM or The Math Forum.



Algebraic substitution with PolynomialReduce
Posted:
Mar 9, 2011 7:00 AM


Dear group,
in order to perform algebraic substitutions in expressions, I usually rely on replacementFunction, that is a very nice wrapper to PolynomialReduce made by Daniel Lichtblau and Andrzej Kozlowski (see links below).
However, I realized that replacementFunction is not enough when dealing with multiple substitutions. Take this expression (which itself is a subexpression of a more complicated one in my code):
terms = (2 kx1^2 kx2^2)/3  (kx2^2 ky1^2)/3 + 2 kx1 kx2 ky1 ky2  ( kx1^2 ky2^2)/3 + (2 ky1^2 ky2^2)/3  (kx2^2 kz1^2)/3  ( ky2^2 kz1^2)/3 + 2 kx1 kx2 kz1 kz2 + 2 ky1 ky2 kz1 kz2  ( kx1^2 kz2^2)/3  (ky1^2 kz2^2)/3 + (2 kz1^2 kz2^2)/3
If I define k1 = {kx1, ky1, kz1} and k2 = {kx2, ky2, kz2}, then the above is equal to the following combination of scalar products:
(1/3 k1.k1 k2.k2  (k1.k2)^2)
In order to explicitly reproduce the equality (and thus simplify the equation), I tried to apply replacementFunction several times, with no success. So I turned to PolynomialReduce. However, the following:
polylist = { k1.k1 k2.k2, (k1.k2)^2 }; PolynomialReduce[ terms, polylist, Join[k1, k2] ] // Last
did not return a zero remainder.
By reading old messages in the mailing list, I see that this may be due to the ordering of the variables in the third argument, i.e. Join[ k1,k2 ]. Using GroebnerBasis, I managed to prove that 'terms' can be expressed in terms of the polynomials in 'polylist'. In fact:
gb = GroebnerBasis[polylist, Join[k1, k2] ]; PolynomialReduce[terms, gb, Join[k1, k2] ] // Last
yields zero.
The question is: how can I obtain the coefficients of my expression ('term') with respect to my polynomials ('polylist'), given that I already have the coefficients of 'terms' with respect to the Groebner basis of 'polylist'?
Thank you very much for your consideration!
Best wishes,
Guido W. Pettinari
REPLACEMENT FUNCTION LINKS: http://groups.google.com/group/comp.softsys.math.mathematica/browse_thread/thread/634a54e2e844837f/ddf3803cab4f3a5f?lnk=gst&q=replacementfunction#ddf3803cab4f3a5f
http://groups.google.com/group/comp.softsys.math.mathematica/browse_thread/thread/1397ca25b770b9af/59f63501668f7fbe?lnk=gst&q=replacementfunction#59f63501668f7fbe



