# Area of surface of revolution

I am asked to rotate the curve $y=\sqrt{4-x^2}$ from $x=-1$ to $x=1$ about the x-axis and find the area of the surface. I was able to use RevolutionPlot3D to show the surface.

RevolutionPlot3D[Sqrt[4 - x^2], {x, -1, 1},
RevolutionAxis -> {1, 0, 0}]


I used calculus to find the surface area:

Integrate[2 π Sqrt[4 - x^2] Sqrt[1 + (-x/Sqrt[4 - x^2])^2], {x, -1, 1}]


Which produces the answer $8\pi$.

Here is my question. Is there some cute way of finding surface area using Mathematica; that is, something like using the Area and Volume commands, or some other commands?

f[x] == Sqrt[4 - x^2] is the distance at height x from the origin (i.e., from {0, 0} at height x) to the surface; hence, one can construct

reg = ImplicitRegion[z^2 + y^2 == Sqrt[4 - x^2]^2 && -1 <= x <= 1, {x, y, z}]


which looks like this:

DiscretizeRegion[reg]


and directly compute

Area[reg]


$8\pi$

Numerically:

Area @ DiscretizeRegion @ reg / Pi


7.99449

in very good agreement.

In general this can be applied to any revolution surface, as due to its rotational symmetry it will always be given by an equation of the form z^2 + y^2 == f[x] (given the revolution is around the x axis).

EDIT:

To get the volume of such a barrel, consider reg2, different from reg only in that == is replaced with <=:

reg2 = ImplicitRegion[z^2 + y^2 <= Sqrt[4 - x^2]^2 && -1 <= x <= 1, {x, y, z}]


Then

Volume[reg2]


$\frac{22 \pi }{3}$

• Alternatively, using Area[{Sqrt[4-z^2],\[Theta],z},{z,-1,1},{\[Theta],0, 2Pi}, "Cylindrical"] evaluates much more quickly. – Carl Woll Jan 14 '17 at 1:50
• @corey979 Thanks for this demonstration. I will find it quite useful teaching class. – David Jan 14 '17 at 21:04

The trick is DiscretizeGraphics. Turns your graphic into a surface:

r = DiscretizeGraphics@
RevolutionPlot3D[Sqrt[4 - x^2], {x, -1, 1},
RevolutionAxis -> {1, 0, 0}]


then:

In[24]:= Area@r

Out[24]= 25.5411


It ain't perfect, but it's close:

In[26]:= Area@r / \[Pi]

Out[26]= 8.12997


I use this to compute Van der Waals volumes of molecules. Note that Volume only works on closed surfaces though, but there's an answer on here (can't find it right now) that provides a way to do it with the MeshCoordinates.

### Update

Here we are. That gives you the volume.

The most direct analog, IMO, to your plot is to use the parametric form of Area, where you add a theta variable for the rotation:

In[11]:= Area[{x, Sqrt[4 - x^2] Cos[θ], Sqrt[4 - x^2] Sin[θ]},
{x, -1, 1}, {θ, 0, 2 π}]
Out[11]= 8 π


Adding a radius variable which gives the distance from the x-axis gives you the volume (this is x-centered cylindrical coordinates):

In[12]:= Volume[{x, r Cos[θ], r Sin[θ]},
{x, -1, 1}, {θ, 0, 2 π}, {r, 0, Sqrt[4 - x^2]}]
Out[12]= (22 π)/3

• I just wanted to thank you for this suggestion. I used this when teaching my calculus class tonight to teach getting the volume of a surface of revolution and to do a parametric plot. Absolutely what my students needed was an introduction to parametrization. – David Jan 25 '17 at 3:39

Is there some cute way of finding surface area using Mathematica?

I think this fits the bill,

WolframAlpha["rotate sqrt(4-x^2) from x=-1 to x=1 about x axis surface area",
"Result"]

(* 25.1327 *)


Parametrize surface:

f[u_, v_] := {u, Cos[v] Sqrt[4 - u^2], Sin[v] Sqrt[4 - u^2]};


Area element:

i =
FullSimplify[Norm[Cross @@ Transpose[D[f[x, y], {{x, y}}]]],
Assumptions -> {x \[Element] Reals, Abs[x] < 1, 0 < y < 2 Pi}]


gives:

(*2*)


Calculate surface area:

Integrate[i, {u, -1, 1}, {v, 0, 2 Pi}]


yields 8$\pi$

or by considering the region of interest as a subset of a sphere of radius 2 (and orienting so "x-axis" is "z-axis", the desired surface area is sphere-2 * cap, where cap and sphere are the surface areas as suggested by the names:

cap = Integrate[4 Sin[u], {u, 0 , ArcCos[1/2]}, {v, 0, 2 Pi}]
sphere = 16 Pi
region = sphere - 2 cap


fm[u_, v_] := {Cos[v] Sqrt[4 - u^2], Sin[v] Sqrt[4 - u^2], u};
Show[ParametricPlot3D[fm[u, v], {u, -1, 1}, {v, 0, 2 Pi},
Mesh -> None],
SphericalPlot3D[2, {u, 0, Pi}, {v, 0, 2 Pi},
PlotStyle -> Opacity[0.5], Mesh -> False], PlotRange -> All,
BoxRatios -> 1, Boxed -> False, Axes -> False, Background -> Black]

• Another very helpful answer. I want to share this with our Calc III teacher this semester. – David Jan 14 '17 at 21:08
• @David thank you for the positive feedback. Happy New Year:) – ubpdqn Jan 15 '17 at 5:46