Piriform Curve

Author

Eric W. Weisstein
July 1, 2014

This notebook downloaded from http://mathworld.wolfram.com/notebooks/PlaneCurves/PiriformCurve.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/PiriformCurve.html.

©2014 Wolfram Research, Inc. except for portions noted otherwise

Initialization

Definition

piriform[a_,b_][t_]:={a,b Cos[t]}(1+Sin[t])

Equation

FullSimplify[Eliminate[{x==a(1+Sin[t]),y==b Cos[t](1+Sin[t]),Sin[t]^2+Cos[t]^2==1},{Sin[t],Cos[t]}]]

eqn=Expand[-(a^4) (y^2)-(b^2) (x^3) (-2 a+x)]

Polar

FullSimplify[(Sqrt[#.#])&[piriform[a,b][t]],Assumptions->(a|b)∈Reals&&0<t<2π]

Plot

V5

ParametricPlot[{1,Cos[t]}(1+Sin[t]),{t,0,2π},PlotStyle->Red,Ticks->None,AspectRatio->Automatic]

V6

ParametricPlot[piriform[##][t],{t,0,2π}]&@@@{{1,1},{1,2},{2,1}}

Properties

curve={a,b Cos[t]}(1+Sin[t]);

Area

Simplify[Abs[Area[piriform,{t,0,2π}]],a>0&&b>0]

Assuming[a>0&&b>0,Area[2 a (b^2) (x^3)-(b^2) (x^4)-(a^4) (y^2)>0,{x,y}]]

V5

<<Graphics`InequalityGraphics`

InequalityPlot[ (y^2)< (x^3) (2 -x),{x},{y}]

<<Calculus`Integration`

Integrate[Boole[ (y^2)< (x^3) (2 -x)],{x},{y}]

V6

RegionPlot[ (y^2)< (x^3) (2 -x),{x,0,2},{y,-1.4,1.4},ImageSize->Small]

Integrate[Boole[(b^2) (x^3) (-2 a+x)< -(a^4) (y^2)],{x,-∞,∞},{y,-∞,∞},Assumptions->a>0&&b>0]

AreaInertiaTensor

Assuming[a>0&&b>0,AreaInertiaTensor[2 a (b^2) (x^3)-(b^2) (x^4)-(a^4) (y^2)>0,{x,y}]]//Timing

ArcLengthFunction

V5

ArcLength[piriform,t]//Timing

V6

ArcLength[piriform[a,b][t],t]//Timing

V7

ArcLength[piriform[a,b][t],t]//Timing

ArcLength[piriform[a,b][t],t,Assumptions->a>0&&b>0]//Timing

Arc Length

V5

ArcLength[piriform,{t,0,2π}]//Timing

V6

ArcLength[piriform[a,b][t],{t,0,2π}]//Timing

V7

ArcLength[piriform[a,b][t],{t,0,2π}]//Timing

Arc Length with Assumptions

ArcLength[piriform[a,b][t],{t,0,2π},Assumptions->a>0&&b>0]//Timing

FullSimplify[Sqrt[#.#&[D[piriform[a,b][t],t]]],0<t<2π&&a>0&&b>0]

Integrate[(Sqrt[(a^2) ((Cos[t])^2)+(b^2) (((Cos[2 t]-Sin[t]))^2)]),{t,0,2π},Assumptions->a>0&&b>0]//Timing

ArcLength[piriform[a,b][t],{t,0,2π}]//Timing

...crashes kernel when run locally...

...crashes FE when run in an ssh-tunnelled kernel...

V7

ArcLength[piriform[a,b][t],{t,0,2π},Assumptions->a>0&&b>0]//Timing

Centroid

Assuming[a>0&&b>0,Centroid[2 a (b^2) (x^3)-(b^2) (x^4)-(a^4) (y^2)>0,{x,y}]]//Timing

Curvature

v5

FullSimplify[Curvature[piriform,t]]

V6

FullSimplify[Curvature[piriform[a,b][t],t],a>0&&b>0]

SortBy[FullSimplify[Curvature[eqn,{x,y}],a>0&&b>0&&(x|y)∈Reals],ByteCount]

Inflection Points

Simplify[{x,y}/.Solve[eqn==-(a^4) (b^4) (((3 a-2 x))^2) (x^4)+6 (a^8) (b^2) (a-x) x (y^2)==0,{x,y}],a>0&&b>0]//Union

InflectionPoints[eqn,{x,y}]

Singular Points

SingularPoints[eqn,{x,y}]

Slope

Slope[{a,b Cos[t]} (1+Sin[t]),t]//FullSimplify

Slope[-a^4 y^2==b^2 x^3 (-2 a+x),{x,y}]//FullSimplify

SpecialAffineCurvature

FullSimplify[SpecialAffineCurvature[curve,t],a>0&&b>0&&0<t<2π]

Tangential Angle

v4.2.1

TangentialAngle[piriform,t]//Timing

Integrate[((a b (Cos[2 t]+2 Sin[t]))/(-(a^2)-(b^2)+(a^2) Sin[t]+(b^2) Sin[3 t])),{t,0,t}]

v5

Integrate[((a b (Cos[2 t]+2 Sin[t]))/(-(a^2)-(b^2)+(a^2) Sin[t]+(b^2) Sin[3 t])),{t,0,t}]

TangentialAngle[piriform,t]//Timing

v6

FullSimplify[TangentialAngle[piriform[a,b][t],t],a>0&&b>0]

...aborted...

TangentialAngle[piriform,t]//Timing

...crashes kernel when run locally...

...crashes FE when run in an ssh-tunnelled kernel...

V7

TangentialAngle[piriform[a,b][t],t]//Timing

...ran overnight...