Volumes of Revolution: Disk and Washer Method Demonstration

Volumes of Revolution: Disk and Washer Method Demonstration
Loading the math board and drawing, please wait…
2012-07-21 22:59
In collections Calculus Concepts
This GeoGebra example demonstrates the disk and washer method for computing volumes of solids of revolution using definite integrals. It dynamically visualizes how a plane region bounded by functions f and g rotates around a coordinate axis to generate a solid, with cross-sectional disks or washers whose volumes are approximated by Riemann sums and compared to the exact integral value. Core mathematical concepts include definite integration, the disk method, the washer method, volume of revolution, functions, limits of integration, and solid geometry. The construction employs GeoGebra commands such as Point, Segment, Sequence, Function, Mirror, Textfield, Integral, Translate, Corner, Element, CurveCartesian, Circle, Intersect, and Polygon, together with objects like sliders n, sliderYoffset, offsetYaxis, sliderXoffset, offsetXaxis, Δx, function f and g, axis, listf_{radii}, Vf_{approx}, and Vf_{actual}. It is suitable for high school calculus electives, undergraduate mathematical analysis, and engineering mathematics courses, as well as self-study of geometric applications of definite integrals and three-dimensional volume computation.

GeoGebra Commands & Parameters

  1. Point(offsetYaxis) → axis
  2. Point(offsetXaxis) → a_f
  3. Point(offsetXaxis) → b_f
  4. Segment(a_f + (0, sliderXoffset2), b_f + (0, sliderXoffset2)) → innerslider
  5. Point(innerslider) → a_g
  6. Point(innerslider) → b_g
  7. Sequence((af_x + i, axis_y), i, 0, Δx * (n - 1), Δx) → list_{centers}
  8. Sequence((af_x + i + leftright * Δx, f(af_x + i + leftright * Δx)), i, 0, Δx * (n - 1), Δx) → listf_{points}
  9. Sequence(If[(x(Element[list_{centers}, i]) < ag_x) ∨ (x(Element[list_{centers}, i]) > bg_x - Δx), Corner[1] + (-1, -1), (x(Element[listf_{points}, i]), g(x(Element[listf_{points}, i])))], i, 1, n) → listg_{points}
  10. Function(f, af_x, bf_x) → f_1
  11. Sequence(abs(y(Element[listf_{points}, i]) - y(Element[list_{centers}, i])), i, 1, n) → listf_{radii}
  12. Sequence((0, Element[listf_{radii}, i] * sqrt(1 - tilt^(2))), i, 1, n) → listf_c
  13. Sequence(Ellipse[Element[listf_{foci1}, i], Element[listf_{foci2}, i], Element[listf_{radii}, i]], i, 1, n) → listf_{ellipses1}
  14. Sequence(Segment[Element[listf_{points}, i] - (leftright * Δx, 0), Element[listf_{points}, i] + ((1 - leftright) * Δx, 0)], i, 1, n) → listf_{segments1}
  15. Mirror(listf_{segments1}, axisline) → listf_{segments2}
  16. Textfield(f) → inputBox1
  17. Integral(π * (f(x) - axis_y)^(2), af_x, bf_x) → Vf_{actual}
  18. Segment(a_f, (af_x, axis_y)) → segment_a
  19. Segment(b_f, (bf_x, axis_y)) → segment_b
  20. Sequence(If[(x(Element[list_{centers}, i]) < ag_x) ∨ (x(Element[list_{centers}, i]) > bg_x - Δx), 0, abs(y(Element[listg_{points}, i]) - y(Element[list_{centers}, i]))], i, 1, n) → listg_{radii}
  21. Function(g, ag_x, bg_x) → g_1
  22. Sequence((0, Element[listg_{radii}, i] * sqrt(1 - tilt^(2))), i, 1, n) → listg_c
  23. Sequence(Ellipse[Element[listg_{foci1}, i], Element[listg_{foci2}, i], Element[listg_{radii}, i]], i, 1, n) → listg_{ellipses1}
  24. Textfield(g) → inputBox2
  25. Translate(listf_{ellipses1}, Vector[(0, 0), (Δx, 0)]) → listf_{ellipses2}
  26. Translate(listg_{ellipses1}, Vector[(0, 0), (Δx, 0)]) → listg_{ellipses2}
  27. Sequence(Segment[Element[listg_{points}, i] - (leftright * Δx, 0), Element[listg_{points}, i] + ((1 - leftright) * Δx, 0)], i, 1, n) → listg_{segments1}
  28. Mirror(listg_{segments1}, axisline) → listg_{segments2}
  29. Integral(π * (g(x) - axis_y)^(2), ag_x, bg_x) → Vg_{actual}
  30. Corner(6) → A
  31. Segment(a_g, (ag_x, axis_y)) → segmenti_a
  32. Segment(b_g, (bg_x, axis_y)) → segmenti_b
  33. Segment((x(a_f), sliderXoffset3), (x(b_f), sliderXoffset3)) → ellipseslider
  34. Point(ellipseslider) → highlight
  35. Element(list_{centers}, ellipsenumber) → ellipsecenter
  36. Element(listf_{radii}, ellipsenumber) → ellipsef_a
  37. Element(listf_{ellipses2}, ellipsenumber) → ellipsef
  38. CurveCartesian(x(ellipsecenter) + ellipsef_b * cos(t), y(ellipsecenter) + ellipsef_a * sin(t), t, 1.5707963267948966, 4.71238898038469) → ellipsehalf1_f
  39. Element(listf_{segments1}, ellipsenumber) → segmentf1
  40. Element(listf_{segments2}, ellipsenumber) → segmentf2
  41. Element(listg_{ellipses2}, ellipsenumber) → ellipseg
  42. Element(listg_{radii}, ellipsenumber) → ellipseg_a
  43. Circle((0, 0), ellipseg_a) → d
  44. Circle((Δx / tilt, 0), ellipseg_a) → e
  45. Intersect(d, e) → B, C, ,
  46. CurveCartesian(x(ellipsecenter) + ellipseg_b * cos(t), y(ellipsecenter) + ellipseg_a * sin(t), t, -β, β) → ellipsepart_g
  47. CurveCartesian(x(ellipsecenter) + Δx + ellipsef_b * cos(t), y(ellipsecenter) + ellipsef_a * sin(t), t, 1.5708, 4.71238898038469) → ellipsehalf2_f
  48. CurveCartesian(x(ellipsecenter) + Δx + ellipsef_b * cos(t), y(ellipsecenter) + ellipsef_a * sin(t), t, -1.5708, 1.5707963267948966) → ellipsehalf3_f
  49. Polygon({(0, ellipsef_a), (Δx, ellipsef_a), (Δx, -ellipsef_a), (0, -ellipsef_a)} + ellipsecenter) → poly1, , , ,
  50. Function(-f(x) + 2 * axis_y, af_x, bf_x) → f_2
  51. Function(-g(x) + 2 * axis_y, ag_x, bg_x) → g_2
  52. CurveCartesian(x(ellipsecenter) + Δx + ellipseg_b * cos(t), y(ellipsecenter) + ellipseg_a * sin(t), t, π - β, π + β) → ellipsepartb_g

AI Drawing Prompt Reference

Draw a planar region bounded by two adjustable curves f(x) and g(x) that rotates around a horizontal axis to illustrate the disk and washer methods for volumes of revolution. Show the axis, a set of equally spaced vertical slices whose number, axis offset, and slice width Δx are controlled by sliders. Each slice produces a disk (radius from f to the axis) or a washer (inner radius from g, outer from f). Display the elliptical cross‑sections of the slices, their mirrored edge segments, the Riemann‑sum approximation of the volume, and the exact integral values for both functions.
The prompt above was compiled from the original drawing commands and is for reference only.