|
D.2.4.12 envelop
Procedure from library grobcov.lib (see grobcov_lib).
- Usage:
- envelop(F,C);
The first argument F must be the family of curves of which
on want to compute the envelop.
The second argument C must be the ideal of conditions
over the variables, and should contain as polynomials
as the number of variables -1.
- Return:
- The components of the envelop with its taxonomy:
The taxonomy distinguishes 'Normal',
'Special', 'Accumulation', 'Degenerate' components.
In the case of 'Special' components, it also
outputs the antiimage of the component
and an integer (0-1). If the integer is 0
the component is not a curve of the family and is
not considered as 'Relevant' by the envelopdg routine
applied to it, but is considered as 'Relevant' if the integer is 1.
- Note:
- grobcov is called internally.
The basering R, must be of the form Q[a][x] (a=parameters, x=variables).
Example:
| LIB "grobcov.lib";
// Steiner Deltoid
// 1. Consider the circle x1^2+y1^2-1=0, and a mover point M(x1,y1) on it.
// 2. Consider the triangle A(0,1), B(-1,0), C(1,0).
// 3. Consider lines passing through M perpendicular to two sides of ABC triangle.
// 4. Obtain the envelop of the lines above.
ring R=(0,x,y),(x1,y1,x2,y2),lp;
ideal C=(x1)^2+(y1)^2-1,
x2+y2-1,
x2-y2-x1+y1;
matrix M[3][3]=x,y,1,x2,y2,1,x1,0,1;
poly F=det(M);
short=0;
// Curves Family F=
F;
==> -x1*y2+(y)*x1+(-y)*x2+(x)*y2
// Conditions C=
C;
==> C[1]=x1^2+y1^2-1
==> C[2]=x2+y2-1
==> C[3]=-x1+y1+x2-y2
def Env=envelop(F,C);
Env;
==> [1]:
==> [1]:
==> _[1]=(x^4+2*x^2*y^2+10*x^2*y-x^2+y^4-6*y^3+12*y^2-8*y)
==> [2]:
==> [1]:
==> _[1]=1
==> [3]:
==> Normal
==> [4]:
==> 1
==> [2]:
==> [1]:
==> _[1]=(x+y-1)
==> [2]:
==> [1]:
==> _[1]=1
==> [3]:
==> [1]:
==> Special
==> [2]:
==> y2,x2-1,y1,x1-1
==> [3]:
==> 0
==> [4]:
==> 1
|
|