algcurves - Maple Programming Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Algebra : Polynomials : Algebraic Curves : algcurves/intersectcurves

algcurves

  

intersectcurves

  

intersect two plane algebraic curves

 

Calling Sequence

Parameters

Returns

Options

Description

Examples

References

Compatibility

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 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 PC are precisely the roots β of by=0 and the x-coordinates are precisely the roots α of ax,β=0 for some such β. The cycle description of C is

bβ=0aα,β=0α,β,1.

• 

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 PC are precisely the roots α of ax=0. The cycle description of C is sumα,1,0,aα=0.

• 

a,b,c=1,0,0, 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 b and then by increasing degree of a.

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 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 zdegffxz,yz and zdegggxz,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.

Examples

withalgcurves:

intersectcurvesx2+y21,x2+y24,x,y

2,x2+1,1,0

(1)

The output represents the two points I,1,0 and −I,1,0 in the projective plane 2, each taken with multiplicity 2.

fy2z3x3z2x5

fx5x3z2+y2z3

(2)

gy2z3x3z2x4z

gx4zx3z2+y2z3

(3)

Lintersectcurvesf,g,x,y,z,t,u

L8,t,u,1,1,t1,u22,1,15,t,1,0

(4)

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.

evalf,g,x=0,y=0,z=1

0,0

(5)

evalf,g,x=1,y=sqrt2,z=1

0,0

(6)

evalf,g,x=1,y=sqrt2,z=1

0,0

(7)

evalf,g,x=0,y=1,z=0

0,0

(8)

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,t1,u22,1 actually represents two points):

degreefdegreeg

25

(9)

We can also request the output to be sorted by multiplicity:

Lintersectcurvesf,g,x,y,z,t,u,sort=multiplicity

L1,t1,u22,1,8,t,u,1,15,t,1,0

(10)

Ayzx5+y2yzx4+y3y2zx3+y2z2+yz3x2+y3z2+y2z3xy4z2+y3z3

Ayzx5+y2yzx4+y3y2zx3+y2z2+yz3x2+y3z2+y2z3xy4z2+y3z3

(11)

By22z2x2+y32yz2x+y4y2z22z4

By22z2x2+y32yz2x+y4y2z22z4

(12)

intersectcurvesA,B,x,y,z

1,x2+x+2,y1,1,1,x+y,y2+1,1,1,x2+xy+2,y22,1,1,x3y,y22,1,1,y3+x,y4+1,1,2,x2+x+1,1,0,2,1,0,0

(13)

In this example,

– 

x2+x+2,y1,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+xy+2,y22,1 is the formal sum of the two points α1,2,1, where α1 runs over the two roots of x2+2x+2, plus the formal sum of the two points α2,2,1, where α2 runs over the two roots of x22x+2.

– 

x3y,y22,1 is the formal sum of the six points α,α3,1, where α runs over the roots of x62, 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π,ⅇ3I4π,ⅇ5I4π,ⅇ7I4π of y4+1, i.e., the primitive 8th roots of unity;

– 

x2+x+1,1,0 is the formal sum of the two points ⅇ2I3π,1,0+ⅇ4I3π,1,0, where ⅇ2I3π,ⅇ4I3π are the two roots of x2+x+1, 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.

• 

For more information on Maple 17 changes, see Updates in Maple 17.

See Also

algcurves