Conical Frustum

Author

Eric W. Weisstein
July 22, 2014

This notebook downloaded from http://mathworld.wolfram.com/notebooks/SolidGeometry/ConicalFrustum.nb.

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

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

Initialization

Definitions

ineq=x^2+y^2≤(a (h-z)+b z)^2/h^2&&0≤z≤h;

reg=RegionIntersection[ImplicitRegion[z≤h,{x,y,z}],Cone[{{0,0,0},{0,0,((a h)/(a-b))}},a]];

assum=0<b<a&&h>0;

Graphic

Diagram

Show[SolidData["SolidConicalFrustum","Image"],ImageSize->Small]

DiscretizeRegion

Block[{a=1,b=.6,h=.5},Show[DiscretizeRegion[reg],ImageSize->Small]]

RegionPlot3D

Block[{a=1,b=.6,h=.5},RegionPlot3D[ineq,{x,-a,a},{y,-a,a},{z,0,h},Mesh->False,Boxed->False,BoxRatios->Automatic,Axes->None,ImageSize->Small]]

Graphics3D

V5

g=Show[Graphics3D[ConicalFrustum[20,1,.6]],Boxed->False]

LiveGraphics3D

<<Utilities`LiveGraphics3D`

WriteLiveForm[conifrus.m,g]

V6

With[{a=1,b=.5,h=.8,n=40},Show[{Graphics3D[{Polygon[Table[{a Cos[((2π i)/n)],a Sin[((2π i)/n)],0},{i,n}]],
Polygon[ Table[{b Cos[((2π i)/n)],b Sin[((2π i)/n)],h},{i,n}]]}],RevolutionPlot3D[((h (a-t))/(a-b)),{t,b,a},Mesh->False]},Boxed->False,Method->{"ShrinkWrap"->True},ImageSize->Small]]

Equations

Parametric Equations

Solve[((h+l)/a)==(l/b),l]

FullSimplify[((b h)/(a-b))+h]

FullSimplify[{a (((a h)/(a-b))-u)/((a h)/(a-b)) Cos[v],a (((a h)/(a-b))-u)/((a h)/(a-b)) Sin[v],u}]

With[{a=1,b=.6,h=.5},
ParametricPlot3D[{(((a (h-u)+b u) Cos[v])/h),(((a (h-u)+b u) Sin[v])/h),u},
{v,0,2π},{u,0,h}]
]

Cartesian

FullSimplify[((((((a (h-u)+b u) Cos[v])/h)))^2)+((((((a (h-u)+b u) Sin[v])/h)))^2)]

Properties

Height of Extended Cone

Solve[z/b==(z+h)/a,z]

Simplify[h+((b h)/(a-b))]

Surface Area

{ℰ,ℱ,𝒢}=FullSimplify[FirstFundamentalForm[frustum,{u,v}]]

FullSimplify[(Sqrt[ℰ 𝒢-(ℱ^2)]),0<a<b&&0<u<h]

Integrate[(((Sqrt[(((a-b))^2)+(h^2)]) (a (h-u)+b u))/(h^2)),{u,0,h},{v,0,2π}]//FullSimplify

% /. b->0

Volume

Integrate

r[z_]:=(R1+(R2-R1)(z/h))

r/@{0,h}

vol=π Integrate[r[z]^2,{z,0,h}]

(1/3) h π ((R1^2)+R1 R2+(R2^2))/.{R1->a,R2->b}

(1/3) ((a^2)+a b+(b^2)) h π/.b->0

Numerical Check

{(1/3) ((a^2) h π+a b h π+(b^2) h π),
(b^2) h π,
(((a^3) h π-(b^3) h π+(b^3) h Log[(b/(a+(Sqrt[(a^2)-(b^2)])))]+(b^3) h Log[((a+(Sqrt[(a^2)-(b^2)]))/b)])/(3 (a-b))),
(1/(12 (a-b)))((a^3) h π-4 (b^3) h π+6 (a^3) h ArcCos[(b/a)]+6 (a^3) h ArcSin[(b/a)]+2 (b^3) h Log[b]+4 (b^3) h Log[(b/(a+(Sqrt[(a^2)-(b^2)])))]-2 (b^3) h Log[a+(Sqrt[(a^2)-(b^2)])]+6 (b^3) h Log[((a+(Sqrt[(a^2)-(b^2)]))/b)])
}/.{a->1,b->1.2,h->3.4}//Chop

V6

Integrate[Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{x,-a,a},{y,-a,a},{z,0,h},Assumptions->0<b<a&&h>0]//Timing

...correct...

Integrate[Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{x,-a,a},{y,-a,a},{z,0,h},Assumptions->0<b<a&&h>0,GenerateConditions->True]//Timing

...takes a long time...

V7

Integrate[Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{x,-a,a},{y,-a,a},{z,0,h},Assumptions->0<b<a&&h>0]//Timing

...wrong...

Integrate[Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{x,-a,a},{y,-a,a},{z,0,h},Assumptions->0<b<a&&h>0,GenerateConditions->True]//Timing

... wrong ...

Assuming[a>0&&b>0&&a>b&&h>0,Volume[(x^2+y^2)<(a (h-z)+b z)^2/h^2&&0<z<h,{x,y,z}]]//Timing

FullSimplify[Last[%3],a>0&&b>0&&a>b&&h>0]

FullSimplify[ExpToTrig[%36],a>0&&b>0&&a>b&&h>0]

V8

Integrate[Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{x,-a,a},{y,-a,a},{z,0,h},Assumptions->0<b<a&&h>0]//Timing

...correct but unnecessarily complicated...

Integrate[Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{x,-a,a},{y,-a,a},{z,0,h},Assumptions->0<b<a&&h>0,GenerateConditions->True]//Timing

...correct but unnecessarily complicated...

Assuming[a>0&&b>0&&a>b&&h>0,Volume[(x^2+y^2)<(a (h-z)+b z)^2/h^2&&0<z<h,{x,y,z}]]//Timing

FullSimplify[Rest[%],a>b&&a>0&&b>0]

expr1=(1/3) ((a^2) h π+a b h π+(b^2) h π);

expr2=((h (((a^3)-(b^3)) π-(b^3) (ArcCsch[(b/(Sqrt[(a^2)-(b^2)]))]+Log[(b/(a+(Sqrt[(a^2)-(b^2)])))])))/(3 (a-b)));

expr3=FullSimplify[expr1-expr2,a>0&&b>0&&a>b]

FullSimplify[TrigToExp[expr3],a>0&&b>0&&a>b]

Integrate[Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{x,-a,a},{y,-a,a},{z,0,h},Assumptions->0<b<a&&h>0]//Timing

v=Simplify[(1/3) ((a^2) h π+a b h π+(b^2) h π)]

RegionMeasure

Assuming[assum,RegionMeasure[reg]]//Timing

FullSimplify[Last[%],assum]//Timing

Centroid

Integrate

zmean=π Integrate[z r[z]^2,{z,0,h}]//Simplify

Simplify[(zmean/vol)]//TraditionalForm

((h ((R1^2)+2 R1 R2+3 (R2^2)))/(4 ((R1^2)+R1 R2+(R2^2))))/.{R1->a,R2->b}

((((a^2)+2 a b+3 (b^2)) h)/(4 ((a^2)+a b+(b^2))))/.b->0

V6

(1/((1/3) ((a^2)+a b+(b^2)) h π))Integrate[{x,y,z}Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{z,0,h},{x,-a,a},{y,-a,a},Assumptions->0<b<a&&h>0]//Timing

Assuming[0<b<a&&h>0,Centroid[(x^2+y^2)<(a (h-z)+b z)^2/h^2&&0<z<h,{x,y,z}]]//Timing

V7

(1/((1/3) ((a^2)+a b+(b^2)) h π))Integrate[{x,y,z}Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{z,0,h},{x,-a,a},{y,-a,a},Assumptions->0<b<a&&h>0]//Timing

(1/((1/3) ((a^2)+a b+(b^2)) h π))Integrate[{x,y,z}Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{x,-a,a},{y,-a,a},{z,0,h},Assumptions->0<b<a&&h>0]//Timing

Assuming[0<b<a&&h>0,Centroid[(x^2+y^2)<(a (h-z)+b z)^2/h^2&&0<z<h,{x,y,z}]]//Timing

V8

(1/((1/3) ((a^2)+a b+(b^2)) h π))Integrate[{x,y,z}Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{z,0,h},{x,-a,a},{y,-a,a},Assumptions->0<b<a&&h>0]//Timing

(1/((1/3) ((a^2)+a b+(b^2)) h π))Integrate[{x,y,z}Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{x,-a,a},{y,-a,a},{z,0,h},Assumptions->0<b<a&&h>0]//Timing

Assuming[0<b<a&&h>0,Centroid[(x^2+y^2)<(a (h-z)+b z)^2/h^2&&0<z<h,{x,y,z}]]//Timing

Numerical

With[{a=1,h=2,b=1/2},(1/((1/3) ((a^2)+a b+(b^2)) h π))NIntegrate[z Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{x,-a,a},{y,-a,a},{z,0,h}]
]

V7 (wrong)

Integrate[z Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{x,-a,a},{y,-a,a},{z,0,h},Assumptions->0<b<a&&h>0]//Timing

...wrong...

FullSimplify[(1/(12 (((a-b))^2)))(6 (a^2) b (Sqrt[(a^2)-(b^2)]) (h^2)+4 (b^3) (Sqrt[(a^2)-(b^2)]) (h^2)-4 a (b^3) (h^2) π+3 (b^4) (h^2) π+6 (a^4) (h^2) ArcSin[(b/a)]-4 (a^4) (h^2) ArcTan[(b/(Sqrt[(a^2)-(b^2)]))]+8 a (b^3) (h^2) Log[(b/(a+(Sqrt[(a^2)-(b^2)])))]),0<b<a&&h>0]

{(1/(12 (((a-b))^2)))(h^2) (6 (a^2) b (Sqrt[(a^2)-(b^2)])+4 (b^3) (Sqrt[(a^2)-(b^2)])-4 a (b^3) π+3 (b^4) π+6 (a^4) ArcSin[(b/a)]-4 (a^4) ArcTan[(b/(Sqrt[(a^2)-(b^2)]))]+8 a (b^3) Log[(b/(a+(Sqrt[(a^2)-(b^2)])))])(1/((1/3) ((a^2)+a b+(b^2)) h π)),((((a^2)+2 a b+3 (b^2)) h)/(4 ((a^2)+a b+(b^2))))}/.{a->1,h->2,b->1/2}//FullSimplify

N[%]

V8 (wrong)

Integrate[z Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{x,-a,a},{y,-a,a},{z,0,h},Assumptions->0<b<a&&h>0]//Timing

...wrong...

{(1/(12 (((a-b))^2)))(6 (a^2) b (Sqrt[(a^2)-(b^2)]) (h^2)+4 (b^3) (Sqrt[(a^2)-(b^2)]) (h^2)-4 a (b^3) (h^2) π+3 (b^4) (h^2) π+6 (a^4) (h^2) ArcSin[(b/a)]-4 (a^4) (h^2) ArcTan[(b/(Sqrt[(a^2)-(b^2)]))]+2 a (b^3) (h^2) Log[b]+6 a (b^3) (h^2) Log[(b/(a+(Sqrt[(a^2)-(b^2)])))]-2 a (b^3) (h^2) Log[a+(Sqrt[(a^2)-(b^2)])])(1/((1/3) ((a^2)+a b+(b^2)) h π)),((((a^2)+2 a b+3 (b^2)) h)/(4 ((a^2)+a b+(b^2))))}/.{a->1,h->2,b->1/2}//FullSimplify

N[%]

V8 (GenerateConditions -> True; correct)

(i=Integrate[z Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{x,-a,a},{y,-a,a},{z,0,h},Assumptions->0<b<a&&h>0,GenerateConditions->True])//Timing

FullSimplify[i/v]

FullSimplify[i/v/.{a->1,h->2,b->1/2}]

FullSimplify[i/v,0<b<a&&h>0]

RegionCentroid

Assuming[assum,RegionCentroid[reg]]//Timing

Inertia Tensor

axis through base center (z==0) and Apex (z==h)

V6

Integrate[Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],{x,-a,a},{y,-a,a},{z,0,h},Assumptions->0<b<a&&h>0,GenerateConditions->True]//Timing

i=With[{ρ=(M/((1/3) ((a^2)+a b+(b^2)) h π))},
ρ Integrate[{{y^2+z^2,-x y,-x z},
{-x y,z^2+x^2,-y z},
{-x z,-y z,x^2+y^2}}Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2&&0<z<h],
{x,-a,a},{y,-a,a},{z,0,h},Assumptions->0<b<a&&h>0]
];//Timing

i=With[{ρ=(M/((1/3) ((a^2)+a b+(b^2)) h π))},
ρ Integrate[{{y^2+z^2,-x y,-x z},
{-x y,z^2+x^2,-y z},
{-x z,-y z,x^2+y^2}}Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2&&0<z<h],
{x,-a,a},{y,-a,a},{z,0,h},Assumptions->0<b<a&&h>0,GenerateConditions->True]
];//Timing

V7

i=With[{ρ=(M/((1/3) ((a^2)+a b+(b^2)) h (π^2)))},
ρ Integrate[{{y^2+z^2,-x y,-x z},
{-x y,z^2+x^2,-y z},
{-x z,-y z,x^2+y^2}}Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2&&0<z<h],
{x,-∞,∞},{y,-∞,∞},{z,-∞,∞},Assumptions->0<b<a&&h>0]
];//Timing

i//FullSimplify

V8

$Version

i=With[{ρ=(M/((1/3) ((a^2)+a b+(b^2)) h π))},
ρ Integrate[{{y^2+z^2,-x y,-x z},
{-x y,z^2+x^2,-y z},
{-x z,-y z,x^2+y^2}}Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2&&0<z<h],
{x,-∞,∞},{y,-∞,∞},{z,-∞,∞},Assumptions->0<b<a&&h>0,GenerateConditions->True]
];//Timing

...ran overnight...

$Version

$MachineName

V8

i=With[{ρ=(M/((1/3) ((a^2)+a b+(b^2)) h π))},
ρ Integrate[{{y^2+z^2,-x y,-x z},
{-x y,z^2+x^2,-y z},
{-x z,-y z,x^2+y^2}}Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],
{z,0,h},{x,-a,a},{y,-a,a},Assumptions->0<b<a&&h>0]
]//FullSimplify//Timing

i=With[{ρ=(M/((1/3) ((a^2)+a b+(b^2)) h π))},
ρ Integrate[{{y^2+z^2,-x y,-x z},
{-x y,z^2+x^2,-y z},
{-x z,-y z,x^2+y^2}}Boole[(x^2+y^2)<(a (h-z)+b z)^2/h^2],
{z,0,h},{x,-a,a},{y,-a,a},Assumptions->0<b<a&&h>0,GenerateConditions->True]
]//FullSimplify//Timing

Limits

i={{(((3 ((a^4)+(a^3) b+(a^2) (b^2)+a (b^3)+(b^4))+2 ((a^2)+3 a b+6 (b^2)) (h^2)) M)/(20 ((a^2)+a b+(b^2)))),0,0},{0,(((3 ((a^4)+(a^3) b+(a^2) (b^2)+a (b^3)+(b^4))+2 ((a^2)+3 a b+6 (b^2)) (h^2)) M)/(20 ((a^2)+a b+(b^2)))),0},{0,0,((3 ((a^4)+(a^3) b+(a^2) (b^2)+a (b^3)+(b^4)) M)/(10 ((a^2)+a b+(b^2))))}};

Cylinder about base:

{{(1/12) (3 (a^2)+4 (h^2)) M,0,0},{0,(((3 (a^2) h+4 (h^3)) M)/(12 h)),0},{0,0,(((a^2) M)/2)}}

Limit[i,b->a]

Cone about base:

Limit[i,b->0]

Curvatures

frustum={(((a (h-u)+b u) Cos[v])/h),(((a (h-u)+b u) Sin[v])/h),u};

Curvatures[frustum,{u,v},FullSimplify[#,Assumptions->0<u<h&&0<a<b]&]

FullSimplify[PrincipalCurvatures[frustum,{u,v}],0<u<h&&0<a<b]

Metric Properties

Metric Tensor

FullSimplify[MetricTensor[frustum,{u,v}],-π/2<u<π/2&&0<v<π]

Christoffel Symbol of the Second Kind

FullSimplify[ChristoffelSymbols[frustum,{u,v}],-π/2<u<π/2&&0<v<π&&0<u<h&&0<a<b]

Vector Properties

eqn={((a (h-u)+b u) Cos[v])/h,((a (h-u)+b u) Sin[v])/h,u};

Vector Length

FullSimplify[Norm[eqn]/.Abs[x_]^2:>x^2,v∈Reals&&a>0&&b>0&&h>0]

Normal Vector

FullSimplify[NormalVector[eqn,{u,v}]/.Abs[x_]^2:>x^2,v∈Reals&&a>0&&b>0&&h>0]