using CalculusWithJulia
using Plots
plotly()
using SymPy
using QuadGK
47 Surface Area
This section uses these add-on packages:
47.1 Surfaces of revolution
The surface area generated by rotating the graph of \(f(x)\) between \(a\) and \(b\) about the \(x\)-axis is given by the integral
\[ \int_a^b 2\pi f(x) \cdot \sqrt{1 + f'(x)^2} dx. \]
If the curve is parameterized by \((g(t), f(t))\) between \(a\) and \(b\) then the surface area is
\[ \int_a^b 2\pi f(t) \cdot \sqrt{g'(t)^2 + f'(t)^2} dx. \]
These formulas do not add in the surface area of either of the ends.
The above figure shows a cone (the line \(y=x\)) presented as a surface of revolution about the \(x\)-axis.
To see why this formula is as it is, we look at the parameterized case, the first one being a special instance with \(g(t) =t\).
Let a partition of \([a,b]\) be given by \(a = t_0 < t_1 < t_2 < \cdots < t_n =b\). This breaks the curve into a collection of line segments. Consider the line segment connecting \((g(t_{i-1}), f(t_{i-1}))\) to \((g(t_i), f(t_i))\). Rotating this around the \(x\) axis will generate something approximating a disc, but in reality will be the frustum of a cone. What will be the surface area?
Consider a right-circular cone parameterized by an angle \(\theta\) and the largest radius \(r\) (so that the height satisfies \(r/h=\tan(\theta)\)). If this cone were made of paper, cut up a side, and laid out flat, it would form a sector of a circle, whose area would be \(R^2\gamma/2\) where \(R\) is the radius of the circle (also the side length of our cone), and \(\gamma\) an angle that we can figure out from \(r\) and \(\theta\). To do this, we note that the arc length of the circle’s edge is \(R\gamma\) and also the circumference of the bottom of the cone so \(R\gamma = 2\pi r\). With all this, we can solve to get \(A = \pi r^2/\sin(\theta)\). But we have a frustum of a cone with radii \(r_0\) and \(r_1\), so the surface area is a difference: \(A = \pi (r_1^2 - r_0^2) /\sin(\theta)\).
Relating this to our values in terms of \(f\) and \(g\), we have \(r_1=f(t_i)\), \(r_0 = f(t_{i-1})\), and \(\sin(\theta) = \Delta f / \sqrt{(\Delta g)^2 + (\Delta f)^2}\), where \(\Delta f = f(t_i) - f(t_{i-1})\) and similarly for \(\Delta g\).
Putting this altogether we get that the surface area generarated by rotating the line segment around the \(x\) axis is
\[ \text{sa}_i = \pi (f(t_i)^2 - f(t_{i-1})^2) \cdot \sqrt{(\Delta g)^2 + (\Delta f)^2} / \Delta f = \pi (f(t_i) + f(t_{i-1})) \cdot \sqrt{(\Delta g)^2 + (\Delta f)^2}. \]
(This is \(2 \pi\) times the average radius times the slant height.)
As was done in the derivation of the formula for arc length, these pieces are multiplied both top and bottom by \(\Delta t = t_{i} - t_{i-1}\). Carrying the bottom inside the square root and noting that by the mean value theorem \(\Delta g/\Delta t = g'(\xi)\) and \(\Delta f/\Delta t = f'(\psi)\) for some \(\xi\) and \(\psi\) in \([t_{i-1}, t_i]\), this becomes:
\[ \text{sa}_i = \pi (f(t_i) + f(t_{i-1})) \cdot \sqrt{(g'(\xi))^2 + (f'(\psi))^2} \cdot (t_i - t_{i-1}). \]
Adding these up, \(\text{sa}_1 + \text{sa}_2 + \cdots + \text{sa}_n\), we get a Riemann sum approximation to the integral
\[ \text{SA} = \int_a^b 2\pi f(t) \sqrt{g'(t)^2 + f'(t)^2} dt. \]
If we assume integrability of the integrand, then as our partition size goes to zero, this approximate surface area converges to the value given by the limit. (As with arc length, this needs a technical adjustment to the Riemann integral theorem as here we are evaluating the integrand function at four points (\(t_i\), \(t_{i-1}\), \(\xi\) and \(\psi\)) and not just at some \(c_i\). An figure appears at the end.
Examples
Lets see that the surface area of an open cone follows from this formula, even though we just saw how to get this value.
A cone can be envisioned as rotating the function \(f(x) = x\tan(\theta)\) between \(0\) and \(h\) around the \(x\) axis. This integral yields the surface area:
\[\begin{align*} \int_0^h 2\pi f(x) \sqrt{1 + f'(x)^2}dx &= \int_0^h 2\pi x \tan(\theta) \sqrt{1 + \tan(\theta)^2}dx \\ &= (2\pi\tan(\theta)\sqrt{1 + \tan(\theta)^2}) x^2/2 \big|_0^h \\ &= \pi \tan(\theta) \sec(\theta) h^2 \\ &= \pi r^2 / \sin(\theta). \end{align*}\]
(There are many ways to express this, we used \(r\) and \(\theta\) to match the work above. If the cone is parameterized by a height \(h\) and radius \(r\), then the surface area of the sides is \(\pi r\sqrt{h^2 + r^2}\). If the base is included, there is an additional \(\pi r^2\) term.)
Example
Let the graph of \(f(x) = x^2\) from \(x=0\) to \(x=1\) be rotated around the \(x\) axis. What is the resulting surface area generated?
\[ \text{SA} = \int_a^b 2\pi f(x) \sqrt{1 + f'(x)^2}dx = \int_0^1 2\pi x^2 \sqrt{1 + (2x)^2} dx. \]
This integral is done by a trig substitution, but gets involved. We let SymPy
do it:
@syms x
= integrate(2 * PI * x^2 * sqrt(1 + (2x)^2), x) F
\(2 \pi \left(\frac{x^{5}}{\sqrt{4 x^{2} + 1}} + \frac{3 x^{3}}{8 \sqrt{4 x^{2} + 1}} + \frac{x}{32 \sqrt{4 x^{2} + 1}} - \frac{\operatorname{asinh}{\left(2 x \right)}}{64}\right)\)
We show F
, only to demonstrate that indeed the integral is a bit involved. The actual surface area follows from a definite integral, which we get through the fundamental theorem of calculus:
F(1) - F(0)
\(2 \pi \left(- \frac{\operatorname{asinh}{\left(2 \right)}}{64} + \frac{9 \sqrt{5}}{32}\right)\)
47.1.1 Plotting surfaces of revolution
The commands to plot a surface of revolution will be described more clearly later; for now we present them as simply a pattern to be followed in case plots are desired. Suppose the curve in the \(x-y\) plane is given parametrically by \((g(u), f(u))\) for \(a \leq u \leq b\).
To be concrete, we parameterize the circle centered at \((6,0)\) with radius \(2\) by:
g(u) = 6 + 2sin(u)
f(u) = 2cos(u)
= 0, 2pi a, b
(0, 6.283185307179586)
The plot of this curve is:
= range(a, b, length=100)
us plot(g.(us), f.(us), xlims=(-0.5, 9), aspect_ratio=:equal, legend=false)
plot!([0,0],[-3,3], color=:red, linewidth=5) # y axis emphasis
plot!([3,9], [0,0], color=:green, linewidth=5) # x axis emphasis
Though parametric plots have a convenience constructor, plot(g, f, a, b)
, we constructed the points with Julia
’s broadcasting notation, as we will need to do for a surface of revolution. The xlims
are adjusted to show the \(y\) axis, which is emphasized with a layered line. The line is drawn by specifying two points, \((x_0, y_0)\) and \((x_1, y_1)\) in the form [x0,x1]
and [y0,y1]
.
Now, to rotate this about the \(y\) axis, creating a surface plot, we have the following pattern:
S(u,v) = [g(u)*cos(v), g(u)*sin(v), f(u)]
= range(a, b, length=100)
us = range(0, 2pi, length=100)
vs = unzip(S.(us, vs')) # reorganize data
ws surface(ws..., zlims=(-6,6), legend=false)
plot!([0,0], [0,0], [-3,3], color=:red, linewidth=5) # y axis emphasis