|
D.2.4.16 FamElemsAtEnvCompPoints
Procedure from library grobcov.lib (see grobcov_lib).
- Usage:
- FamElemsAtEnvCompPoints(poly F,ideal C,ideal 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:
ideal E=Env[1][1];
E;
==> E[1]=(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
==> _[2]=80*s*x1-512*y1^3+512*y1^2*x1-192*y1^2-128*y1*x1^2+400*y1*x1\
+30*y1-32*x1^2+68*x1-1
==> _[3]=40*s*y1+20*s-8*y1^2-16*y1*x1-6*y1-4*x1-1
==> _[4]=10*s^2+6*y1^2-8*y1*x1-y1-2*x1
==> _[5]=8*r+10*s-2*y1-4*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.
|
|