# Finding the volume enclosed by two surfaces of revolution

I've come this far as to combine both functions in a graph:

f = Plot[4 - x^2, {x, -10, 10}]
g = Plot[-1 + 4 x, {x, -10, 10}]
Show[g, f, PlotRange -> All]


Solved the intersections:

sol = x /. NSolve[f == g, x, Reals]


{-5., 1.}

Next thing I would like to do is integrate and rotate the area between the intersects enclosed by the functions around the X axis and calculate the volume of the resulting rotational body. I'm fairly new to Mathematica and require some help to finish the plot.

EDIT: I have painted the area, so it is clear which area is meant to be revolved:

• I'm not sure what you mean by "rotate the region". Do you want to create a solid of revolution using the region between the two curves? If yes, which axis are you rotating around? – Szabolcs Sep 9 '17 at 19:04
• 1) I think you want 4 - x^2 rather than 4 - x. 2) What line in 3D space to want as the axis of revolution? – m_goldberg Sep 9 '17 at 19:13
• @Szabolcs around the X axis. I mean the Area, the 2 functions are enclosing between the intersections. Do you have an idea how to plot this? – BlkPengu Sep 9 '17 at 22:03

This is not an answer, but an explanation of why the question, as currently posed, is not clear.

If the two curves are rotated about the x-axis, they do not enclose a simple closed region -- they produce as region that self-intersects and for which it is difficult to define volume. Here are two views of a half-revolution plot that show the difficulty of determining the volume.

However, if the two curves are translated upward by 21, then revolving them about the x-axis produces a simple closed region for which has a volume that can be computed with reasonable effort.

Is volume enclosed by the translated curves the one you want?

### Update

Code for producing the half-revolution plots

f[x_] := 4 - x^2
g[x_] := -1 + 4 x
fSurface =
RevolutionPlot3D[f[x], {x, -5, 1}, {u, 0, π},
ColorFunction -> (White &), RevolutionAxis -> "X"];
gSurface =
RevolutionPlot3D[g[x], {x, -5, 1}, {u, 0, π},
ColorFunction -> (White &), RevolutionAxis -> "X"];
Show[
fSurface, gSurface,
BoxRatios -> {1, 1, 1}, PlotRange -> All, Lighting -> "Neutral"]


This may be the answer you are looking for. I will solve the problem by translating the curves.

The functions after translating the curves upward by 21.

f[x_] := 25 - x^2
g[x_] := 20 + 4 x
Plot[{f[x], g[x]}, {x, -5, 1}]


The surfaces of revolution

fSurface =
RevolutionPlot3D[f[x], {x, -5, 1}, {u, 0, 2 π},
ColorFunction -> (White &), RevolutionAxis -> "X"];
gSurface =
RevolutionPlot3D[g[x], {x, -5, 1}, {u, 0, 2 π},
ColorFunction -> (White &), RevolutionAxis -> "X"];
Show[
fSurface, gSurface,
BoxRatios -> {1, 1, 1}, PlotRange -> All, Lighting -> "Neutral"]


The inner surface of revolution and the volume it encloses

inner =
Volume @
ImplicitRegion[y^2 + z^2 <= g[x]^2, {{x, -5, 1}, {y, -24, 24}, {z, -24, 24}}]


1152 π

The outer surface of revolution and the volume it encloses

outer =
Volume @
ImplicitRegion[y^2 + z^2 <= f[x]^2, {{x, -5, 1}, {y, -25, 25}, {z, -25, 25}}]


(11376 π)/5

The volume enclosed between the two surfaces

outer - inner


(5616 π)/5

Getting the volume by integration (which for this problem is much faster)

Integrate[π (f[x]^2 - g[x]^2), {x, -5, 1}]


(5616 π)/5

• I edited the post to depict the exact area I want to revolve around the X axis. I'm not sure which one of your plots that is, but I get what the problem is. Those look almost like Klein Bottles in some way. However the last plot looks promising. – BlkPengu Sep 10 '17 at 11:19
• Could you add the syntax used to plot the objects pictured above? I could learn a great deal from it. – BlkPengu Sep 10 '17 at 11:23
• @BlkPengu. I have updated my post to provide the code you asked for and some more that I think will answer your question. – m_goldberg Sep 10 '17 at 22:18

This is an approach (note volume of RegionDifference does not seem to work):

f[x_] := 4 - x^2
g[x_] := 4 x - 1
region = ImplicitRegion[
0 < y^2 + z^2 <= Max[f[x]^2, g[x]^2], {{x, -5, 1}, y, z}];
mr = ImplicitRegion[
0 < y^2 + z^2 <= Min[f[x]^2, g[x]^2], {{x, -5, 1}, y, z}];
ro = RegionDifference[region, mr];
rplot = RegionPlot3D[ro, PlotPoints -> 100, PlotStyle -> Opacity[0.6],
Background -> Black];
rot[a_] := RotationMatrix[a, {1, 0, 0}]
ppl[a_] :=
ParametricPlot3D[{rot[a].{x, 0, f[x]}, rot[a].{x, 0, g[x]}}, {x, -5,
1}, PlotStyle -> Directive[Red, Thick]]
Manipulate[Show[rplot, ppl[a]], {a, 0, 2 Pi}]


Volume:

Through[{Simplify, N}[Volume[region] - Volume[mr]]]


yields:

{-(8/5) (-394 + 49 Sqrt[7]) π, 1328.81}