primary decomposition of an ideal
Page 1 of 1

Author:  Dmitry [ Sun Jun 10, 2012 2:56 am ]
Post subject:  primary decomposition of an ideal

I'm trying to decompose an ideal generated by 4 quadrics, in 10 variables:

LIB "primdec.lib";
ring r=0,(z0,z1,z2,z3,z4,z5,z6,z7,z8,z9),dp;
poly f1=3*z1^2-z0*z2;poly f2=7*z1*z4-z0*z5-z2*z3;
poly f3=z6*(z2+2*z1-z0)+4*z1*z2-6*z2^2;
poly f4=8*z1*z8+4*z4^2-z0*z9-z3*z5+z6*z7+z2*(-4*z8-2*z7);
ideal i=f1,f2,f3,f4;

(Probably I'm doing this in a very stupid way, being ignorant.) After two hours of work I've shut Singular. Are there some small tricks to speed up this particular example?

If it's relevant, I know that the corresponding scheme contains as a component (with multiplicity 2) the variety defined by
z0=0=z1=z2, 4*z4^2+z6*z7=z3*z5

Author:  steenpass [ Wed Jun 20, 2012 9:22 am ]
Post subject:  Re: primary decomposition of an ideal

I don't see that you could do any better here. However, you could try the algorithm by Shimoyama and Yokoyama which is also implemented in Singular's primdec.lib (as primdecSY()).

I started both computations on one of our compute servers here in Kaiserslautern and I will let you know whether or not I got a result within a reasonable amount of time.

Thank you for providing this example, we are always looking for challenging new examples. Where did you get this from?

Best regards,

Author:  steenpass [ Thu Jun 21, 2012 12:18 pm ]
Post subject:  Re: primary decomposition of an ideal

It was pointed out to me that in fact, you can do better. If you already know that one of the components is given by
ideal j = z0, z1, z2, 4*z4^2+z6*z7-z3*z5;

you can saturate the ideal i w. r. t. j:
list s1 = sat(i, j);

This geometrically corresponds to the complement of V(j) in V(i) where V(i) is the variety defined by i. You can then decompose this, which gives you one component:
> list l1 = primdecGTZ(s1[1]);
> size(l1);

Then you do it the other way round:
> list s2 = sat(i, l1[1][1]);
> list l2 = primdecGTZ(s2[1]);
> size(l2);

Finally, you can check that l1+l2 is indeed a primary decomposition of the ideal i:
> ideal t = intersect(l1[1][1], l2[1][1]);
> size(reduce(t, std(i)));
> size(reduce(i, t));

which shows that the ideal t is indeed (mathematically) equal to i.

The desired result can thus be obtained in a few seconds cpu time.

Best regards,

Author:  Dmitry [ Sat Jun 23, 2012 1:15 pm ]
Post subject:  Re: primary decomposition of an ideal

Wow! Thanks!

Author:  ipeh [ Mon Jul 15, 2013 7:32 pm ]
Post subject:  Re: primary decomposition of an ideal

I'm newcomer in SINGULAR. I have same problem with primary decomposition but more complicated (4 polynomials).
It took me more than 1 hour and drove me crazy. Cause MAPLE cannot handle it, so I tried with SINGULAR, but still no result.
Please anyone help me, is there anything I can do to make it faster?

This is my code:

ring r=0,(x0,x1,x2,x3,y0,y1,y2,y3,h0,h1),dp;
ideal i=-h0+(x0^2+x1^2-x2^2-x3^2)*h1-2*x0*y1+2*x1*y0-2*x2*y3+2*x3*y2,

I appreciate your helps, guys...
Thank you.

Author:  ipeh [ Tue Jul 16, 2013 8:46 am ]
Post subject:  Re: primary decomposition of an ideal

after I computed for one day, it returns result:

Singular error: no more memory
System -2081280k:-1773568k Appl 318583k/5000k Malloc 0k/0k Valloc 323584k/5000k Pages 40181/267 Regions 79:79

halt 14

help me please....

Page 1 of 1 All times are UTC + 1 hour [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group