|
D.2.4.15 AssocTanToEnv
Procedure from library grobcov.lib (see grobcov_lib).
- Usage:
- AssocTanToEnv(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
in the variables u1,..um for defining the family.
C must contain less polynomials than m.
ideal E must be a component of
envelop(F,C), previously computed.
(x_1,..,x_n) are the variables of the hypersurfaces
of F, that are considered as parameters of the
parametric ring. (u_1,..,u_m) are the parameteres
of the hyper-surfaces, that are considered as variables
of the parametric ring. Having computed an envelop
component E of a family of hyper-surfaces F,
with constraints C, it returns the parameter values
of the associated tangent hyper-surface of the
family passing at one point of the envelop component E.
Calling sequence: (s<m)
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);
AssocTanToEnv(F,C,E,[,options]);
- Return:
- list [lpp,basis,segment]. The basis determines
the associated tangent hyper-surface at a point of
the envelop component E. The segment is given in Prep.
See book
A. Montes. "The Groebner Cover":
- 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.
Example:
| LIB "grobcov.lib";
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);
"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)
|
|