Changeset 7f24dd7 in git
- Timestamp:
- May 19, 2000, 12:07:06 PM (24 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- b49b894ff4ce8577af08f6a78a8e02f07eee6663
- Parents:
- 44561f48e2c8324b07d2d764f22307e5759be86d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/primdec.lib
r44561f r7f24dd7 1 // $Id: primdec.lib,v 1.6 6 2000-05-16 12:19:05pfister Exp $1 // $Id: primdec.lib,v 1.67 2000-05-19 10:07:06 pfister Exp $ 2 2 /////////////////////////////////////////////////////////////////////////////// 3 3 // primdec.lib // … … 11 11 /////////////////////////////////////////////////////////////////////////////// 12 12 13 version="$Id: primdec.lib,v 1.6 6 2000-05-16 12:19:05pfister Exp $";13 version="$Id: primdec.lib,v 1.67 2000-05-19 10:07:06 pfister Exp $"; 14 14 info=" 15 15 LIBRARY: primdec.lib PROCEDURES FOR PRIMARY DECOMPOSITION … … 43 43 LIB "random.lib"; 44 44 LIB "inout.lib"; 45 LIB "matrix.lib"; 45 46 /////////////////////////////////////////////////////////////////////////////// 46 47 // … … 4581 4582 } 4582 4583 4584 proc zerodec(ideal I) 4585 "USAGE: zerodec(I); I ideal 4586 RETURN: a list of primary ideals, the zero-dimensional decomposition of I 4587 NOTE: the algorithm of C. Monico, works only good for small vdim(std(I)) 4588 (<=100) and without parameters 4589 EXAMPLE: example zerodec; shows an example 4590 " 4591 { 4592 def R=basering; 4593 poly q; 4594 poly va=var(1); 4595 int j; 4596 ideal J=groebner(I); 4597 int d=vdim(J); 4598 ideal ba=kbase(J); 4599 ideal jmap=randomLast(100); 4600 poly p=jmap[size(jmap)]+random(-50,50); 4601 matrix m; 4602 matrix n[d][d]; 4603 list re; 4604 4605 for(j=2;j<=nvars(basering);j++) 4606 { 4607 va=va*var(j); 4608 } 4609 for(j=1;j<=d;j++) 4610 { 4611 q=reduce(p*ba[j],J); 4612 m=coeffs(q,ba,va); 4613 n[j,1..d]=m[1..d,1]; 4614 } 4615 execute("ring P=("+charstr(R)+"),T,dp;"); 4616 map phi=R,T; 4617 matrix n=phi(n); 4618 matrix E=unitmat(d); 4619 poly charpol=det(n-T*E); 4620 if(charpol[size(charpol)]!=0) 4621 { 4622 list fac=factorize(charpol); 4623 setring R; 4624 map psi=P,p; 4625 list rfac=psi(fac); 4626 list re; 4627 4628 option(redSB); 4629 for(j=2;j<=size(rfac[1]);j++) 4630 { 4631 re[j-1]=interred(I+ideal(rfac[1][j]^rfac[2][j])); 4632 } 4633 option(noredSB); 4634 return(re); 4635 } 4636 else 4637 { 4638 setring R; 4639 return(zerodec(I)); 4640 } 4641 } 4642 4643 example 4644 { "EXAMPLE:"; echo = 2; 4645 ring r=0,(x,y),dp; 4646 ideal i=x2-2,y2-2; 4647 list pr=zerodec(i); 4648 pr; 4649 } 4650 4651 4652
Note: See TracChangeset
for help on using the changeset viewer.