Envelope Example

> with(Groebner):

Consider the following family of circles in the plane:

> F:=(x-t)^2+(y-t^5/5+t^3/3+t)^2-1;

[Maple Math]

> dFdt:=diff(F,t);

[Maple Math]

The path of the center:

> plot(x^5/5-x^3/3-x,x=-2..2);

The envelope of this family is a rather complicated set. For instance, on the line x = -4/3, the envelope

has four points altogether, corresponding to four different t-values:

> G1:=gbasis([F,dFdt,x+4/3],plex(x,y,t));

[Maple Math]
[Maple Math]

> tvals:=[fsolve(G1[1],t)];

[Maple Math]

> fsolve(subs(t=tvals[1],G1[2]),y,complex);

[Maple Math]

> fsolve(subs(t=tvals[2],G1[2]),y,complex);

[Maple Math]

> fsolve(subs(t=tvals[3],G1[2]),y,complex);

[Maple Math]

> fsolve(subs(t=tvals[4],G1[2]),y,complex);

[Maple Math]

> G2:=gbasis([F,dFdt,x+5/4],plex(x,y,t));

[Maple Math]
[Maple Math]

> fsolve(G2[1],t);

[Maple Math]

The equation of the envelope of this family of circles:

> Env := 576650390625*y^10+442867500000*x^13*y^3+221433750000*y^5*x^11-230660156250*y^9*x^5-1922167968750*y^9*x^3-52685256433545*x^4+2636889975000*y^2*x^6+90643431449250*y^3*x^5-13108217343750*x*y^5+23066015625*x^18-3229242187500*y^5*x^9-1032537375000*x^14*y^2-922640625000*y^7*x^7-5355485505000*y^3*x^11+14029590732750*x^7*y-4798328161230*x^5*y-55263843202500*y^3*x^3-26642526961470*x^8+44870547522455*x^6-8498142843750*y^5*x^3+50542024346595*x^2+27303823055250*y^2+34733921090625*y^4*x^4-8540576718750*y^6*x^2+17939623837500*y^5*x^5+2386959738750*y^3*x^7+2438043701625*y^2*x^8-874253250000*y^6*x^10-1443214968750*y^4*x^12-192216796875*y^8*x^8-11397082460400*y*x-12572247037050*x^9*y-4353346626075*x^12-101868384375*y^4*x^6+4190326171875*y^8*x^2-6948919125000*y^5*x^7-22075979101875*y^4+4657828252500*y^3*x^9+217845703125*y^8*x^6+2988584822250*y^2*x^2+1752675468750*y^6*x^8-1191744140625*y^8*x^4-6727075312500*y^7*x^5+2689322257350*y*x^11+13533771093750*y^7*x^3+4017388691250*y^4*x^10+1153300781250*y^9*x+138396093750*x^14*y^4+92264062500*y^6*x^12+221433750000*y*x^15+29301950475000*y^3*x+8182146106200*y*x^3+11809570543353*x^10-75714081439500*x^4*y^2-7770663871875*y^4*x^2-18493156334689-271358859375*x^16-2219394026250*x^13*y-3490657031250*y^8+1113086863125*x^14+10960811156250*y^6-7465306319550*y^2*x^10+507452343750*y^7*x-7934595468750*y^6*x^6-16502786100000*y^4*x^8-2206477968750*y^6*x^4+2817190428750*y^2*x^12+92264062500*y^2*x^16+23066015625*y^8*x^10:

(This was computed via a process called the "Groebner Walk", although resultants could also be used easily for this)

> with(plots):

> EPlot:=implicitplot(Env,x=-3..1,y=-5..5,grid=[100,100],scaling=CONSTRAINED,color=blue):

> FPlot:=animate([cos(s)+t,sin(s)+t^5/5-t^3/3-t,s=0..2*Pi],t=-2..0,color=black,frames=20):

> CPlot:=plot(x^5/5-x^3/3-x,x=-3..1,y=-5..3):

An animated display showing the circles of the family as t increases from -2 to 0, together with the path of the centers (in red), and the envelope curve (in blue). See if you can visualize the four different times when the circle is tangent to the envelope at points on vertical lines near x = -1:

> display({EPlot,FPlot,CPlot});

>