Home Online Manual
Top
Back: AssocTanToEnv
Forward: discrim
FastBack:
FastForward:
Up: grobcov_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.2.4.16 FamElemsAtEnvCompPoints

Procedure from library grobcov.lib (see grobcov_lib).

Usage:
FamElemsAtEnvCompPoints(poly F,ideal C,poly E);
poly F must be the family of hyper-surfaces whose
envelope is analyzed. It must be defined in the ring
R=Q[x_1.,,x_n][u_1,..,u_m],
ideal C must be the ideal of restrictions on the
variables u1,..um.
Must contain less polynomials than m.
ideal E must be a component of
envelop(F,C), previously computed.
After computing the envelop of a family of
hyper-surfaces F, with constraints C,
Consider a component with top E. The call to
FamElemsAtEnvCompPoints(F,C,E)
returns the parameter values of the
set of all hyper-surfaces of the family passing at
one point of the envelop component E.
Calling sequence:
ring R=(0,x_1,..,x_n),(u_1,..,u_m),lp;
poly F=F(x_1,..,x_n,u_1,..,u_m);
ideal C=g_1(u_1,..u_m),..,g_s(u_1,..u_m);
poly E(x_1,..,x_n);
FamElemsAtEnvCompPoints(F,C,E[,options]);

Return:
list [lpp,basis,segment]. The basis determines
the parameter values of the of hyper-surfaces that
pass at a fixed point of the envelop component E.
The lpp determines the dimension of the set.
The segment is the component and is given in Prep.
Fixing the values of (x_1,..,x_n) inside E, the basis allows to detemine the values of the parameters
(u_1,..u_m), of the hyper-surfaces passing at a point of E. See the book
A. Montes. "The Groebner Cover" (Discussing
Parametric Polynomial Systems).

Options:
"moreinfo",n n=0 is the default option, and
only the segment of the top of the component is shown. n=1 makes the result to shown all the segments.

Note:
grobcov is called internally.
The basering R, must be of the form Q[a][x]
(a=parameters, x=variables).

Example:
 
LIB "grobcov.lib";
if(defined(R)){kill R;}
ring R=(0,x,y),(t),dp;
short=0;
poly F=(x-5*t)^2+y^2-9*t^2;
ideal C;
def Env=envelop(F,C);
Env;
==> [1]:
==>    [1]:
==>       _[1]=(3*x+4*y)
==>    [2]:
==>       [1]:
==>          _[1]=1
==>    [3]:
==>       [1]:
==>          1
==>       [2]:
==>          Normal
==>       [3]:
==>          _[1]=0
==> [2]:
==>    [1]:
==>       _[1]=(3*x-4*y)
==>    [2]:
==>       [1]:
==>          _[1]=1
==>    [3]:
==>       [1]:
==>          1
==>       [2]:
==>          Normal
==>       [3]:
==>          _[1]=0
// E is a component of the envelope:
def E=Env[1][1][1];
E;
==> (3*x+4*y)
def A=AssocTanToEnv(F,C,E);
A;
==> [1]:
==>    _[1]=t
==> [2]:
==>    _[1]=12*t+(5*y)
==> [3]:
==>    [1]:
==>       [1]:
==>          _[1]=(3*x+4*y)
==>       [2]:
==>          [1]:
==>             _[1]=1
// The basis of the parameter values of the associated
//    tangent component is
A[2][1];
==> 12*t+(5*y)
// Thus t=-(5/12)*y, and  the associated tangent family
//    element at (x,y) is
subst(F,t,-(5/12)*y);
==> (18*x^2+75*x*y+68*y^2)/18
def FE=FamElemsAtEnvCompPoints(F,C,E);
FE;
==> [1]:
==>    _[1]=t^2
==> [2]:
==>    _[1]=144*t^2+(120*y)*t+(25*y^2)
==> [3]:
==>    [1]:
==>       [1]:
==>          _[1]=(3*x+4*y)
==>       [2]:
==>          [1]:
==>             _[1]=1
factorize(FE[2][1]);
==> [1]:
==>    _[1]=1
==>    _[2]=12*t+(5*y)
==> [2]:
==>    1,2
// Thus the unique family element passing through the envelope point (x,y)
// corresponds to the value of t of the Associated Tangent
// EXAMPLE:
if(defined(R)){kill R;}
ring R=(0,x,y),(r,s,y1,x1),lp;
poly F=(x-x1)^2+(y-y1)^2-r;
ideal g=(x1-2*(s+r))^2+(y1-s)^2-s;
def E=envelop(F,g);
E;
==> [1]:
==>    [1]:
==>       _[1]=(512*x^3-1024*x^2*y^2-2560*x^2*y-640*x^2+4096*x*y^3+4864*x*y^2\
   -704*x*y+984*x-4096*y^4+1536*y^3-16*y^2+144*y+289)
==>    [2]:
==>       [1]:
==>          _[1]=1
==>    [3]:
==>       [1]:
==>          1
==>       [2]:
==>          Normal
==>       [3]:
==>          _[1]=1024*y1^4-1024*y1^3*x1+896*y1^3+256*y1^2*x1^2-1344*y1^2*x1+\
   132*y1^2+128*y1*x1^2-560*y1*x1-28*y1+16*x1^2-72*x1+1
def A=AssocTanToEnv(F,g,E[1][1][1]);
A;
==> [1]:
==>    _[1]=x1
==>    _[2]=y1
==>    _[3]=s
==>    _[4]=r
==> [2]:
==>    _[1]=4*x1+(-4*x-1)
==>    _[2]=(1024*y^3-768*y^2+192*y-556)*y1+(192*x^2+128*x*y^2-832*x*y-136*x-\
   1024*y^4+1024*y^3+272*y^2+48*y-29)
==>    _[3]=(5120*y^3-3840*y^2+960*y-2780)*s+(1024*x^2*y+704*x^2-2048*x*y^3-1\
   920*x*y^2-4288*x*y+984*x-1024*y^4+4352*y^3-816*y^2-880*y+357)
==>    _[4]=(2048*y^3-1536*y^2+384*y-1112)*r+(-512*x^2*y-256*x^2+1792*x*y^2+1\
   536*x*y-4*x-2176*y^3+928*y^2+368*y+85)
==> [3]:
==>    [1]:
==>       [1]:
==>          _[1]=(512*x^3-1024*x^2*y^2-2560*x^2*y-640*x^2+4096*x*y^3+4864*x*\
   y^2-704*x*y+984*x-4096*y^4+1536*y^3-16*y^2+144*y+289)
==>       [2]:
==>          [1]:
==>             _[1]=(256*y^3-192*y^2+48*y-139)
==>             _[2]=(24*x-64*y^2-16*y-13)
def M1=coef(A[2][1],x1);
def M2=coef(A[2][2],y1);
def M3=coef(A[2][3],s);
def M4=coef(A[2][4],r);
// The parameter values corresponding to the family
//    element tangent at point (x,y) of the envelope are:
"x1=";-M1[2,2]/M1[2,1];
==> x1=
==> (4*x+1)/4
"y1=";-M2[2,2]/M2[2,1];
==> y1=
==> (-192*x^2-128*x*y^2+832*x*y+136*x+1024*y^4-1024*y^3-272*y^2-48*y+29)/(102\
   4*y^3-768*y^2+192*y-556)
"s=";-M3[2,2]/M3[2,1];
==> s=
==> (-1024*x^2*y-704*x^2+2048*x*y^3+1920*x*y^2+4288*x*y-984*x+1024*y^4-4352*y\
   ^3+816*y^2+880*y-357)/(5120*y^3-3840*y^2+960*y-2780)
"r=";-M4[2,2]/M4[2,1];
==> r=
==> (512*x^2*y+256*x^2-1792*x*y^2-1536*x*y+4*x+2176*y^3-928*y^2-368*y-85)/(20\
   48*y^3-1536*y^2+384*y-1112)
// Now detect if there are other family elements passing at this point:
def FE=FamElemsAtEnvCompPoints(F,g,E[1][1][1]);
FE;
==> [1]:
==>    _[1]=s^2
==>    _[2]=r
==> [2]:
==>    _[1]=2560*s^2+4096*s*y1^2+(-8192*y-1024)*s*y1+4096*s*x1^2+(-8192*x-204\
   8)*s*x1+(4096*x^2+4096*y^2-512)*s+2048*y1^4+(-8192*y)*y1^3+4096*y1^2*x1^2\
   +(-8192*x-2048)*y1^2*x1+(4096*x^2+12288*y^2+512)*y1^2+(-8192*y)*y1*x1^2+(\
   16384*x*y+4096*y)*y1*x1+(-8192*x^2*y-8192*y^3)*y1+2048*x1^4+(-8192*x-2048\
   )*x1^3+(12288*x^2+4096*x+4096*y^2+512)*x1^2+(-16384*x^2*y^2-40960*x^2*y-1\
   2288*x^2+65536*x*y^3+69632*x*y^2-11264*x*y+15744*x-65536*y^4+24576*y^3-23\
   04*y^2+2304*y+4624)*x1+(8192*x^2*y^4+24576*x^2*y^3+46080*x^2*y^2+28416*x^\
   2*y-736*x^2-32768*x*y^5-104448*x*y^4-118272*x*y^3-18048*x*y^2-16736*x*y-6\
   076*x+32768*y^6+69632*y^5-8064*y^4-8512*y^3-5112*y^2-6500*y-1445)
==>    _[2]=r-y1^2+(2*y)*y1-x1^2+(2*x)*x1+(-x^2-y^2)
==> [3]:
==>    [1]:
==>       [1]:
==>          _[1]=(512*x^3-1024*x^2*y^2-2560*x^2*y-640*x^2+4096*x*y^3+4864*x*\
   y^2-704*x*y+984*x-4096*y^4+1536*y^3-16*y^2+144*y+289)
==>       [2]:
==>          [1]:
==>             _[1]=1
// FE[1] is the set of lpp. It has dimension 4-2=2.
//     Thus there are points of the envelope at which
//     they pass infinitely many circles of the family.
//     To separe the points of the envelope further analysis must be done.