|
D.4.19.1 nonMonomials
Procedure from library pointid.lib (see pointid_lib).
- Usage:
- nonMonomials(id); id = <list of vectors> or <list of lists> or <module>
or <matrix>.
Let A= {a1,...,as} be a set of points in K^n, ai:=(ai1,...,ain), then
A can be given as
- a list of vectors (the ai are vectors) or
- a list of lists (the ai are lists of numbers) or
- a module s.t. the ai are generators or
- a matrix s.t. the ai are columns
- Assume:
- basering must have ordering rp, i.e., be of the form 0,x(1..n),rp;
(the first entry of a point belongs to the lex-smallest variable, etc.)
- Return:
- ideal, the non-monomials of the vanishing ideal I(A) of A
- Purpose:
- compute the set of non-monomials Mon(x(1),...,x(n)) \ {LM(f)|f in I(A)}
of the vanishing ideal I(A) of the given set of points A in K^n, where
K[x(1),...,x(n)] is equipped with the lexicographical ordering induced
by x(1)<...<x(n) by using the algorithm of Cerlienco-Mureddu
Example:
| LIB "pointid.lib";
ring R1 = 0,x(1..3),rp;
vector a1 = [4,0,0];
vector a2 = [2,1,4];
vector a3 = [2,4,0];
vector a4 = [3,0,1];
vector a5 = [2,1,3];
vector a6 = [1,3,4];
vector a7 = [2,4,3];
vector a8 = [2,4,2];
vector a9 = [1,0,2];
list A = a1,a2,a3,a4,a5,a6,a7,a8,a9;
nonMonomials(A);
==> _[1]=1
==> _[2]=x(1)
==> _[3]=x(2)
==> _[4]=x(1)^2
==> _[5]=x(3)
==> _[6]=x(1)^3
==> _[7]=x(2)*x(3)
==> _[8]=x(3)^2
==> _[9]=x(1)*x(2)
matrix MAT[9][3] = 4,0,0,2,1,4,2,4,0,3,0,1,2,1,3,1,3,4,2,4,3,2,4,2,1,0,2;
MAT = transpose(MAT);
print(MAT);
==> 4,2,2,3,2,1,2,2,1,
==> 0,1,4,0,1,3,4,4,0,
==> 0,4,0,1,3,4,3,2,2
nonMonomials(MAT);
==> _[1]=1
==> _[2]=x(1)
==> _[3]=x(2)
==> _[4]=x(1)^2
==> _[5]=x(3)
==> _[6]=x(1)^3
==> _[7]=x(2)*x(3)
==> _[8]=x(3)^2
==> _[9]=x(1)*x(2)
module MOD = gen(3),gen(2)-2*gen(3),2*gen(1)+2*gen(3),2*gen(2)-2*gen(3),gen(1)+3*gen(3),gen(1)+gen(2)+3*gen(3),gen(1)+gen(2)+gen(3);
print(MOD);
==> 0,0, 2,0, 1,1,1,
==> 0,1, 0,2, 0,1,1,
==> 1,-2,2,-2,3,3,1
nonMonomials(MOD);
==> _[1]=1
==> _[2]=x(2)
==> _[3]=x(1)
==> _[4]=x(2)^2
==> _[5]=x(1)^2
==> _[6]=x(1)*x(2)
==> _[7]=x(3)
ring R2 = 0,x(1..2),rp;
list l1 = 0,0;
list l2 = 0,1;
list l3 = 2,0;
list l4 = 0,2;
list l5 = 1,0;
list l6 = 1,1;
list L = l1,l2,l3,l4,l5,l6;
nonMonomials(L);
==> _[1]=1
==> _[2]=x(2)
==> _[3]=x(1)
==> _[4]=x(2)^2
==> _[5]=x(1)^2
==> _[6]=x(1)*x(2)
|
|