|
Calling Sequence
|
|
intersectcurves(f, g, x, y, options)
intersectcurves(f, g, x, y, z, options)
intersectcurves(f, g, x, y, z, t, u, options)
|
|
Parameters
|
|
f, g
|
-
|
polynomials with rational coefficients describing algebraic curves
|
x, y
|
-
|
variable names
|
z
|
-
|
optional variable name for the homogeneous case
|
t, u
|
-
|
optional variable names to be used in the result
|
options
|
-
|
optional equation of the form 'sort'='multiplicity'
|
|
|
|
|
Returns
|
|
list of pairs of the form , where describe a set of intersection points in homogeneous coordinates and is a positive integer representing the intersection multiplicity of each of the points in . Three cases may occur:
•
|
. In this case all points in are affine, is an irreducible univariate polynomial, and is an irreducible bivariate polynomial, with the property that the -coordinates of all points are precisely the roots of and the -coordinates are precisely the roots of for some such . The cycle description of is
|
•
|
and . In this case all points in are at infinity and is an irreducible univariate polynomial with the property that the -coordinates of all points are precisely the roots of . The cycle description of is .
|
•
|
, a special point at infinity.
|
|
|
Options
|
|
•
|
'sort'='multiplicity': If this optional argument is specified, the output will be sorted by increasing multiplicity.
|
|
Otherwise, by default, affine points precede points at infinity in the output order, and further to this the output is sorted by increasing degree of and then by increasing degree of .
|
|
|
Description
|
|
•
|
The intersectcurves command computes the intersection cycle, i.e., the formal sum of the intersection points in the projective plane, with multiplicities, of the two plane algebraic curves given by and , respectively.
|
•
|
If f and g are polynomials in x and y, and either z=1 or z is omitted, then the intersection cycle of their homogenized versions and is computed.
|
•
|
If z is specified and f and g are polynomials in x, y, and z, both polynomials are required to be homogeneous.
|
•
|
The polynomials f and g are assumed to have no nonconstant common factor. This can be checked using gcd. Otherwise an error message will be generated.
|
|
|
Examples
|
|
The output represents the two points and in the projective plane , each taken with multiplicity 2.
This represents the affine points of multiplicity , each of and with multiplicity , and the infinite point with multiplicity .
Note that were used instead of as variables in the output polynomials.
Let us verify that each of these points actually lies on both curves.
By Bezout's theorem, the total number of intersection points, counted with multiplicities, equals the product of the degrees of the input polynomials (note that actually represents two points):
We can also request the output to be sorted by multiplicity:
In this example,
–
|
is the formal sum of the two points , where runs over the two roots of ;
|
–
|
is the formal sum of the two points ;
|
–
|
is the formal sum of the two points , where runs over the two roots of , plus the formal sum of the two points , where runs over the two roots of .
|
–
|
is the formal sum of the six points , where runs over the roots of , i.e., the th roots of ;
|
–
|
is the formal sum of the four points , where runs over the four roots of , i.e., the primitive th roots of unity;
|
–
|
is the formal sum of the two points , where are the two roots of , i.e., the primitive cube roots of unity.
|
|
|
References
|
|
|
J. Hilmar and C. Smyth, Euclid meets Bezout: intersecting algebraic plane curves with the Euclidean algorithm, American Mathematical Monthly 117 (2010), 250-260.
|
|
|
Compatibility
|
|
•
|
The algcurves[intersectcurves] command was introduced in Maple 17.
|
|
|
|
|