intersect two plane algebraic curves
intersectcurves(f, g, x, y, options)
intersectcurves(f, g, x, y, z, options)
intersectcurves(f, g, x, y, z, t, u, options)
polynomials with rational coefficients describing algebraic curves
optional variable name for the homogeneous case
optional variable names to be used in the result
optional equation of the form 'sort'='multiplicity'
list of pairs of the form m,a,b,c, where a,b,c describe a set C of intersection points in homogeneous coordinates and m is a positive integer representing the intersection multiplicity of each of the points in C. Three cases may occur:
c=1. In this case all points in C are affine, b is an irreducible univariate polynomial, and a is an irreducible bivariate polynomial, with the property that the y-coordinates of all points P∈C are precisely the roots β of b⁡y=0 and the x-coordinates are precisely the roots α of a⁡x,β=0 for some such β. The cycle description of C is
b=1 and c=0. In this case all points in C are at infinity and a is an irreducible univariate polynomial with the property that the x-coordinates of all points P∈C are precisely the roots α of a⁡x=0. The cycle description of C is sum⁡α,1,0,a⁡α=0.
a,b,c=1,0,0, a special point at infinity.
'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 b and then by increasing degree of a.
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 f=0 and g=0, 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 zdeg⁡f⁢f⁡xz,yz and zdeg⁡g⁢g⁡xz,yz 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.
The output represents the two points I,1,0 and −I,1,0 in the projective plane ℙ2ℂ, each taken with multiplicity 2.
f ≔ y2⁢z3−x3⁢z2−x5
g ≔ y2⁢z3−x3⁢z2−x4⁢z
L ≔ intersectcurves⁡f,g,x,y,z,t,u
This represents the affine points 0,0,1 of multiplicity 8, each of 1,2,1 and 1,−2,1 with multiplicity 1, and the infinite point 0,1,0 with multiplicity 15.
Note that t,u were used instead of x,y 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 1,t−1,u2−2,1 actually represents two points):
We can also request the output to be sorted by multiplicity:
L ≔ intersectcurves⁡f,g,x,y,z,t,u,'sort'='multiplicity'
A ≔ y−z⁢x5+y2−y⁢z⁢x4+y3−y2⁢z⁢x3+−y2⁢z2+y⁢z3⁢x2+−y3⁢z2+y2⁢z3⁢x−y4⁢z2+y3⁢z3
B ≔ y2−2⁢z2⁢x2+y3−2⁢y⁢z2⁢x+y4−y2⁢z2−2⁢z4
In this example,
x2+x+2,y−1,1 is the formal sum of the two points α,1,1, where α runs over the two roots of x2+x+2;
x+y,y2+1,1 is the formal sum of the two points −I,I,1+I,−I,1;
x2+x⁢y+2,y2−2,1 is the formal sum of the two points α1,2,1, where α1 runs over the two roots of x2+2⁢x+2, plus the formal sum of the two points α2,−2,1, where α2 runs over the two roots of x2−2⁢x+2.
x3−y,y2−2,1 is the formal sum of the six points α,α3,1, where α runs over the roots of x6−2, i.e., the 6th roots of 2;
−y3+x,y4+1,1 is the formal sum of the four points β3,β,1, where β runs over the four roots ⅇI4⁢π,ⅇ3⁢I4⁢π,ⅇ5⁢I4⁢π,ⅇ7⁢I4⁢π of y4+1, i.e., the primitive 8th roots of unity;
x2+x+1,1,0 is the formal sum of the two points ⅇ2⁢I3⁢π,1,0+ⅇ4⁢I3⁢π,1,0, where ⅇ2⁢I3⁢π,ⅇ4⁢I3⁢π are the two roots of x2+x+1, i.e., the primitive cube roots of unity.
J. Hilmar and C. Smyth, Euclid meets Bezout: intersecting algebraic plane curves with the Euclidean algorithm, American Mathematical Monthly 117 (2010), 250-260.
The algcurves[intersectcurves] command was introduced in Maple 17.
For more information on Maple 17 changes, see Updates in Maple 17.
Download Help Document