|
D.2.4.13 locus
Procedure from library grobcov.lib (see grobcov_lib).
- Usage:
- locus(list G[,options])
The list G must be the output of grobcov. Calling sequence: locus(grobcov(S))[,options]);
The input must be the grobcov of a parametrical ideal in Q[a][x], (a=parameters, x=variables). In practice
a must be the tracer coordinates and x the mover coordinates and remaining auxiliary variables. (Invert the
concept of parameters and variables of the ring).
Special routine for determining the locus of points of geometrical constructions. Given a parametric ideal J
representing the system determining the locus of points (a) which verify certain properties, the call to locus
on the output of grobcov(J) determines the different classes of locus components, following the taxonomy
defined in
Abanades, Botana, Montes, Recio:
"An Algebraic Taxonomy for Locus Computation in Dynamic Geometry".
Computer-Aided Design 56 (2014) 22-33.
The components can be "Normal", "Special", "Accumulation" or "Degenerate".
- Options:
- An option is a pair of arguments: string, integer. To modify the default options, pairs of arguments
-option name, value- of valid options must be added to the call.
The algorithm allows the following options as pair of arguments:
"vmov", ideal(mover variables) : by default vmov are the last n variables, where n is the number of parameters
of the ring (tracer variables plus extra parameters). Thus, if the mover coordinates are not indicated, locus
algorithm will assume that they are the last n ring variables.
When locus is called internally by envelop, by default, the mover variables are assumed to be all the ring variables.
"version", v : There are two versions of the algorithm. ("version",1) is a full algorithm that always
distinguishes correctly between "Normal" and "Special" components, whereas ("version",0) can declare a
component to be "Normal" being in fact "Special", but it is more effective. By default, ("version",1) is used
when the number of variables is less than 4 and 0 if not. The user can force to use one or other version, but it is
not recommended.
"comments", c: by default it is 0, but it can be set to 1.
Usually locus problems have mover coordinates, variables and tracer coordinates.
Example of option call:
locus(S,"version",1,"vmov",ideal(x1,y1))
- Return:
- The output is a list of the components [C_1, .. , C_n] of the locus. Each component is given by
Ci=[[pi,[pi1,..pi_s_i],type_i,level_i]]
where the first element is the canonical P-representation of the subset. The type is one of
"Normal", "Special", "Accumulation" or "Degenerate", and level is the depth of the segment in the
constructible set of the locus. Generally it is 1, because the locus components are locally closed.
The locus is divided into two class of subsets: the normal and the non-normal locus.
The Normal locus has two kind of components: "Normal" and "Special".
The Non-normal locus has two kind of components: "Accumulation" and "Degenerate".
Normal component is n-1-dimensional component, where each point in the component has 0-dimensional
antiimage, and the anti-image depends on the point in the component.
Special component is n-1-dimensional component, where each point in the component has 0-dimensional
antiimage, and the anti-image does not depend on the point in it. The Special components return more
information, namely the antiimage of the component, that is 0-dimensional, and is independent of the point
in the locus component.
Accumulation component is of dimension less that n-1 (less than an hyper-surface) whose anti-image is
non-zero dimensional.
Degenerate components is n-1-dimensional component, and each point in the component has non-zero-
dimensional anti-image.
The level is the depth of the segment of the constructible locus subset (normal and non-normal subsets).
If all levels of a locus are 1, then all subsets are locally closed.
- Note:
- The input must be the grobcov of the locus system in generic representation ("ext",0), which is the default.
Example:
| LIB "grobcov.lib";
if(defined(R)){kill R;}
ring R=(0,a,b),(x,y),dp;
short=0;
// Concoid
ideal S96=x^2+y^2-4,(b-2)*x-a*y+2*a,(a-x)^2+(b-y)^2-1;
S96;
==> S96[1]=x^2+y^2-4
==> S96[2]=(b-2)*x+(-a)*y+(2*a)
==> S96[3]=x^2+y^2+(-2*a)*x+(-2*b)*y+(a^2+b^2-1)
locus(grobcov(S96));
==> [1]:
==> [1]:
==> _[1]=(a^4+2*a^2*b^2-9*a^2+b^4-9*b^2+4*b+12)
==> [2]:
==> [1]:
==> _[1]=1
==> [3]:
==> Normal
==> [4]:
==> 1
==> [2]:
==> [1]:
==> _[1]=(a^2+b^2-4*b+3)
==> [2]:
==> [1]:
==> _[1]=1
==> [3]:
==> [1]:
==> Special
==> [2]:
==> y-2,x
==> [4]:
==> 1
|
|