1

This is a question on division algorithm. Consider polynomial f=-4x^4y^2z^2+y^6+3z^5 and polynomials G={y^6-z^5, x*z-y^2, x*y^4-z^4, x^2*y^2-z^3 *x^3-z^2}.

How can you factor f with respect to G computationally such that the linear combination f=\sum_i C_i*G_i is satisfied?


I know that the remainder is zero but not which are the coefficients C_i in the above formula, example with Macaulay2

enter image description here

This can be related to the more general mathematical question about ideals here.

Community
  • 1
  • 1
hhh
  • 50,788
  • 62
  • 179
  • 282

2 Answers2

2

This is a very late response. You probably already have the answer, but here it is anyway. "//" computes the coefficients using the division algorithm.

R=QQ[x,y,z,MonomialOrder=>Lex];
f=-4*x^2*y^2*z^2+y^6+3*z^5;
I=ideal(x*z-y^2,x^3-z^2);
G=gb(I);
f//(gens G)
o5 = {6} | 0             |
     {2} | 3x2z2-xy2z-y4 |
     {5} | 0             |
     {4} | 0             |
     {3} | -3z3          |

So

f=-4*x^2*y^2*z^2+y^6+3*z^5

=0*(y^6-z^5)+(3*x^2*z^2-x*y^2*z-y^4)(xz-y^2)+0*(xy^4-z^4)+0(x^2*y^2-z^3)+(-3*z^3)*(x^3-z^2).

Another tip is to copy and paste your code, so that others can copy and paste it. If you post an image then we have to type it out manually. If you put four spaces before each line then it will appear as code, as I have done here.

Jonathan
  • 36
  • 3
  • How can you divide f with polynomials G (misleadingly marked in q)? I Mark G as gro [here](http://pastebin.com/wt6zky29) – hhh Mar 25 '17 at 07:16
1

Maybe it's enough to just do a repeated polynomial division, something like this (a rough pseudo code..)

order G lexicographically
total_rest = 0
coefficients = {g[0]:None, g[1]:None,...}
while f > 0:
    for g in G:
        quotient, reminder = f / g     # polynomial division
        coefficients[g] += quotient
        if reminder == 0:
             return      # We are done. f was devisible by G.
        f = reminder
    total_rest += lt(f)    #  lt: leading term 
    f -= lt(f)

# Now it should hold that 
# f = coefficient[g]*g + ... + total_rest
Jesper Freesbug
  • 415
  • 4
  • 11