0
$\begingroup$

How is it possible to demonstrate a visual solid of revolution utilizing the washer method?

For example to show the shape formed by rotating the region bounded by $y=(x-2)^4, 8x-y=16$ about $x=10$?

I'm interested in how this sort of task is verified on Mathematica if it is possible visually at an algebraic and graphical sense.

Hints as to the necessary coding would be much appreciated, thank you in advance for taking the time to try to help.

$\endgroup$

closed as off-topic by Daniel Lichtblau, RunnyKine, user9660, MarcoB, xzczd Apr 27 '16 at 12:28

This question appears to be off-topic. The users who voted to close gave these specific reasons:

  • "This question arises due to a simple mistake such as a trivial syntax error, incorrect capitalization, spelling mistake, or other typographical error and is unlikely to help any future visitors, or else it is easily found in the documentation." – MarcoB, xzczd
  • "This question cannot be answered without additional information. Questions on problems in code must describe the specific problem and include valid code to reproduce it. Any data used for programming examples should be embedded in the question or code to generate the (fake) data must be included." – Daniel Lichtblau, RunnyKine, Community
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 3
    $\begingroup$ Have you looked at RevolutionPlot3D[] already? $\endgroup$ – J. M. is away Apr 26 '16 at 2:52
  • 2
    $\begingroup$ I was under the impression that disk and washer methods were used to find the volume of a solid of rotation. MMA can generate the solid you describe graphically (here is the example you describe), but it won't find the volume automatically - that is you still need to set up the correct integral. $\endgroup$ – Jason B. Apr 26 '16 at 7:40
  • $\begingroup$ Several examples on the demonstrations site $\endgroup$ – Michael E2 Apr 26 '16 at 11:37
3
$\begingroup$

Here's a symbolic-algebraic way, based on the cylindrical algebraic decomposition (CAD) that Reduce computes.

(* Disk/Washer method *)
Clear[x, y, z];
eqns = {y == (x - 2)^4, 8 x - y == 16};
axis = x == 10;
{depV} = Variables[Subtract @@ axis];
{indepV} = Complement[{x, y}, {depV}];
vars = {indepV, depV};
components = Map[
   Reduce[#, vars] &,     (* compute CAD *)
   MapThread[               (* construct divisions of the plane by the curves *)
      ReplaceAll,           (* replace == by  all combinations of <, > *)
      {eqns, 
       Thread[Equal -> #]}] & /@ Tuples[{Less, Greater}, Length@eqns]
   ];
(* compute bounds and pick out bounded components *)
bounds = RegionBounds@ImplicitRegion[#, Evaluate@vars] & /@ components;
bounded = Pick[components, FreeQ[#, DirectedInfinity] & /@ bounds];
bounds = Pick[bounds, FreeQ[#, DirectedInfinity] & /@ bounds];
(* check axis does not intersect interior *)
v0 = depV /. First@Solve[axis, depV];
If[bounds[[1, -1, 1]] < v0 < bounds[[1, -1, 2]],
  Print["Warning: axis passes through region."]];
(* construct solid of revolution description *)
solid = bounded /. ineq : (h_)[v1_, r1___, depV, r2___, v2_] :>
    If[v0 <= bounds[[1, -1, 1]],                      (* check which side *)
     h[v1 - v0, r1, Sqrt[(depV - v0)^2 + z^2], r2, v2 - v0],
     h[v0 - v2, r2, Sqrt[(depV - v0)^2 + z^2], r1, v0 - v1]];
(* set up volume integral(s) *)
integrals = bounded /. 
  HoldPattern[_[a_, ___, b_] && _[v1_, ___, v2_]] :> 
   Sign[((v1 - v0)^2 - (v2 - v0)^2) /. indepV -> Mean[N@{a, b}]] *
    Inactive[Integrate][Pi ((v1 - v0)^2 - (v2 - v0)^2), {indepV, a, b}]
(* compute the integral(s) *)
volume = integrals // Activate // Total

Mathematica graphics

Here's the Cartesian description of the solid of revolution:

solid
(*
  {0 < y < 16 && 
    10 - Root[16 - y - 32 #1 + 24 #1^2 - 8 #1^3 + #1^4 &, 2] < 
     Sqrt[(-10 + x)^2 + z^2] < 10 + 1/8 (-16 - y)}
*)

To visualize the solid, it's better to use RevolutionPlot3D, but here's what happens when you do a straightforward Cartesian RegionPlot3D:

maxR = Max[Abs[v0 - bounds[[1, -1]]]] + 0.1;
RegionPlot3D[First@solid,
 {x, v0 - maxR, v0 + maxR}, {y, 0, 16.1}, {z, -maxR, +maxR},
 PlotPoints -> 50, AxesLabel -> Automatic]

Mathematica graphics

$\endgroup$
  • $\begingroup$ Great! Now how can I turn this into a solid MeshRegion so I can find the volume numerically? :-D $\endgroup$ – Jason B. Apr 26 '16 at 15:39
  • $\begingroup$ @JasonB For a numerical solution, I would replace Integrate by NIntegrate. For a region-based solution, I've found (so far) that mesh utilities seem to lack sufficient robustness to handle all cases. I can apply Discretize@Normal@plot to this plot and get a mesh region, but Volume returns 0. $\endgroup$ – Michael E2 Apr 26 '16 at 16:34
3
$\begingroup$

If you just want to make a plot of the region in question, this is good

RevolutionPlot3D[{{x, (x + 8)^4}, {x, 8 x + 64}}, {x, -8, -6}, {th, 0,
   2 π}, Mesh -> None, Axes -> False, Boxed -> False, 
 BoxRatios -> {1, 1, .3}]

Mathematica graphics

But try as I might, I can't seem to find a way to get the volume of the region using Volume - this would involve turning the surface generated above into a closed Region. I've tried the method listed here, but the command

RevolutionPlot3D[{{x, (x + 8)^4}, {x, 8 x + 64}}, {x, -8, -6}, {th, 0,
     2 π}] // Normal // BoundaryDiscretizeGraphics

causes a kernel crash.

$\endgroup$
  • $\begingroup$ I get this with DiscretizeGraphics $\endgroup$ – Michael E2 Apr 26 '16 at 16:35
  • $\begingroup$ @MichaelE2 Right, but that is just the shell, a 2D region embedded in 3D space. So if you try to ask for the Volume it will give zero. Now it clearly seems to be a closed region so you ought to be able to convert it to a filled region by first making a boundary and then filling it, but it fails. I just wanted to show that the Region result matched the analytic result, tried to do this for the goat problem, but it failed there too $\endgroup$ – Jason B. Apr 26 '16 at 18:53
  • $\begingroup$ D'oh! Silly me, I just saw it as what I wanted to see. $\endgroup$ – Michael E2 Apr 26 '16 at 20:55

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