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}]

enter image description here

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?


5 Answers 5


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:


enter image description here

and directly compute




Area @ DiscretizeRegion @ reg / Pi


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).


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}]



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

  • 6
    $\begingroup$ Alternatively, using Area[{Sqrt[4-z^2],\[Theta],z},{z,-1,1},{\[Theta],0, 2Pi}, "Cylindrical"] evaluates much more quickly. $\endgroup$
    – Carl Woll
    Commented Jan 14, 2017 at 1:50
  • $\begingroup$ @corey979 Thanks for this demonstration. I will find it quite useful teaching class. $\endgroup$
    – David
    Commented Jan 14, 2017 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}]


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.


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
  • $\begingroup$ 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. $\endgroup$
    – David
    Commented Jan 25, 2017 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",

(* 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}]



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 

enter image description here

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]
  • $\begingroup$ Another very helpful answer. I want to share this with our Calc III teacher this semester. $\endgroup$
    – David
    Commented Jan 14, 2017 at 21:08
  • $\begingroup$ @David thank you for the positive feedback. Happy New Year:) $\endgroup$
    – ubpdqn
    Commented Jan 15, 2017 at 5:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.