I would try this: 1. Let M be an augmented matrix over the *integer* ring whose entries in the left block are (as you state) the coefficients of p_1*p_2, ... p_i*p_j. You can create a matrix over the integer ring using M = matrix(ZZ,...).
2. Echelonize the matrix: M.echelonize(). 3. See if you can back-substitute from the echelon form to an integer solution. For example, sage: M = matrix(ZZ,[[1,2,3,4,11],[0,1,2,3,6],[0,0,2,3,5], [0,0,0,1,1]]) sage: M.echelonize() sage: M >> [1 0 1 0 3] >> [0 1 0 0 1] >> [0 0 2 0 2] >> [0 0 0 1 1] sage: M = matrix(ZZ,[[1,2,3,4,11],[0,1,2,3,6],[0,0,2,3,4], [0,0,0,1,1]]) sage: M.echelonize() sage: M >> [1 0 1 0 3] >> [0 1 0 0 1] >> [0 0 2 0 1] >> [0 0 0 1 1] Notice that in the second echelon form, the third row implies 2*x3 == 1. In the first, we have 2*x3 == 2 instead. There's probably a much, much better way to do this, but that's all I can think of offhand. regards john perry On Sep 9, 1:34 am, Cary Cherng <[email protected]> wrote: > Suppose I form the row matrix: M = [ (p_1*p_2, .., p_i*p_j) ] and then > try looking for a column vector x satifying M*x = q where the elements > of x are integers, hopefully 1 or -1. If I tried this approach how > would I get sage to only consider integer vectors x as solutions. > > On Sep 8, 6:20 am, john_perry_usm <[email protected]> wrote: > > > Are you asking whether q=p_1*p_2+...+p_5*p_6? If so, you can simply > > construct q and the p_i, then test for equality: > > > sage: q == p_1*p_2 + ... + p_5*p_6 > > > >> True (or False, depending) > > > (you would fill in the ellipsis with the form you want, which is not > > obvious to me from what you've written). > > > If instead you want to know if q is *some* linear combination of > > p_1*p_2, ..., p_5*p_6 then you could use either linear algebra (I > > think) or some slightly more sophisticated commutative algebra (e.g., > > a Groebner basis, but that might be more than you need for this > > specific case). > > > regards > > john perry > > > On Sep 8, 1:57 am, Cary Cherng <[email protected]> wrote: > > > > I am not familiar with algebraic geometry or its terminology and new > > > to sage. > > > > p_1,...p_n and q are elements of Z[x_1,...,x_n]. In my context I have > > > some evidence that q can be written as something like q = p_1*p_2 > > > + ... + p_5*p_6. In other words q is a degree 2 polynomial in the > > > p_i's. Can Sage find out if q can be written in terms of the p_i's? -- To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/sage-support URL: http://www.sagemath.org
