Solids of Revolution
Copyright 2001
Department of Mathematics
University of Georgia
Athens, Georgia
Carol W. Penney
A solid of revolution can be described as the solid generated by revolving a lamina (a region in the plane) about a line in that plane. In this project you will display such solids by generating graphs of the surfaces generated by revolving a curve or curves that bound the lamina about either the x- or y-axis. You will then determine the volume of the resulting solid, using either the method of slices or the method of cylindrical shells. Finally, you will play with the tubeplot command to generate an interesting surface of your own.
Revolution about the y-axis:
Consider the lamina bounded by the graphs of y=f(x) and y=g(x) from x=a to x=b. We'll revolve this lamina about the y-axis.
| > | restart: |
| > | f:=x->(x+7)^2-5*(x+7); |
| > | g:=x->2*(x+7); |
We first plot the graph, using "scaling=constrained" to force the units on x- and y-axes to be equal.:
| > | a:=-7;b:=0; |
We plot the graphs.
| > | plot([f(x),g(x)],x=a..b,scaling=constrained); |
| > |
If we revolve these graphs about the y-axis, we obtain a surface of revolution. This surface is the graph of a function of two variables defined on a portion of a horizontal plane. We obtain the graph of the resulting surface by using what are called cylindrical coordinates. To get cylindrical coordinates, we revolve the x-axis in a circle. When the x-axis has been revolved an angle
, a point that initially was on the x-axis at x-coordinate x=c has been rotated to lie on the rotated x-axis at a distance from the origin equal to the absolute value of c. We say that, in cylindrical coordinates, the point is at position
and an angle of
. The height of a point on the surface above this point is f(r). We add a "z_cylindrical coordinate system" to Maple's library of coordinate systems with the following command:
| > | readlib(addcoords)(z_cylindrical,[z,r,theta],[r*cos(theta),r*sin(theta),z]); |
Now plot the surface obtained by revolving the graph of f(x) about the y-axis:
| > | plot3d(f(r),r=a..b,theta=0..2*Pi,coords=z_cylindrical); |
| > |
If you click anywhere in the picture, you can grab the surface with your mouse and twist it to obtain any view you desire. If you click on the picture with your right mouse button, you can select various styles. Wireframe style allows you to see hidden portions of the surface. Experiment with various choices. You can change the color by adding the option color=red , for example, to the list of options after coords=z_cylindrical. . If your surface is one color, you will probably want to highlight it by adding lightmodel=light4 , for example to the list of options. Possible lightmodels are light1 through light4.
Now we'll look at the solid generated by revolving the lamina bounded by the graph of
,
,
, and the graph of g(x)=2*(x+7) about the
-axis.
First sketch the lamina:
| > | a1:=plot(f(x),x=a..b,color=navy,thickness=2): |
| > | a2:=plot(g(x),x=a..b,color=navy,thickness=2): |
We load the plots and the plottools programs:
| > | with(plots):with(plottools): |
and plot their graphs:
| > | display([a1,a2],scaling=constrained); |
Now we will revolve this region by plotting the surface of revolution generated by each of the two boundary curves:
| > | p1:=plot3d(f(r),r=a..b,theta=0..2*Pi,coords=z_cylindrical): |
| > | p2:=plot3d(g(r),r=a..b,theta=0..2*Pi,coords=z_cylindrical): |
| > | with(plots):display([p1,p2]); |
| > |
Revolution about the x-axis:
To show the solid generated by revolving the region bounded by y=x*sin(x)+12 and y=x*(x-2*Pi)+12 about the x-axis: Here we use a command called tubeplot , which sketches a tube about the x-axis whose radius at any point is the height of the function.
| > | restart: |
| > | f:=x->x*sin(x)+12; |
| > | g:=x->x*(x-2*Pi)+12; |
| > | a:=0;b:=2*Pi; |
We load the plots and the plottools programs:
| > | with(plots):with(plottools): |
| > | plot([f(x),g(x)],x=a..b); |
| > | t1:=tubeplot([0,x,0,x=a..b,radius=f(x)]): |
| > | t2:=tubeplot([0,x,0,x=a..b,radius=g(x)]): |
| > | display([t1,t2]); |
| > |
Here again, you can rotate the figure to any desired position, change the style, color, axes, or perspective.
Your own examples:
Now you can create your own surfaces of revolution. Simply define one or more functions f, g, h, etc., determine the domain [a,b] that you want to display, and enter the commands. You need to understand that a and b represent values of r; they are the least and the greatest distance from x=0 in your domain, so they must be non-negative numbers. For example, if your curve f(x) is to run from x=-7 to x=-3, let r run from a=+3 to b=+7. Experiment to see if you can obtain some interesting surfaces. You might try, for example, to show a torus, a sphere with a hole drilled through the center, or some other interesting solid.
| > | restart: |
| > | f:=x-> ; |
| > | g:=x-> ; |
You can define a third function h, fourth function k, and so on.
| > | a:= ; |
| > | b:= ; |
Sketch the curve or lamina obtained by revolving about the y-axis:
| > | plot([f(x),g(x)],x=a..b,scaling=constrained); |
| > | ### WARNING: persistent store makes one-argument readlib obsolete readlib(addcoords)(z_cylindrical,[z,r,theta],[r*cos(theta),r*sin(theta),z]); |
| > | with(plots):with(plottools): |
| > | p1:=plot3d(f(r),r=a..b,theta=0..2*Pi,coords=z_cylindrical): |
| > | p2:=plot3d(g(r),r=a..b,theta=0..2*Pi,coords=z_cylindrical): |
If you defined a third function, define a p3 (by copying and pasting the p1 command and changing p1 to p3, f to h) and add it to the list in the following command.
| > | display([p1,p2]); |
| > |
Now revolve about the x-axis:
| > | with(plots):with(plottools): |
| > | t1:=tubeplot([0,x,0,x=a..b,radius=f(x)]): |
| > | t2:=tubeplot([0,x,0,x=a..b,radius=g(x)]): |
| > | display([t1,t2]); |
| > |
Revolution about a line other than the x- or y-axis:
If you want to revolve your curve or lamina about a vertical line other than the y-axis and display the surface or solid that is generated, translate your functions the appropriate distance to the right or left and revolve about the y-axis. For example, in order to revolve about the line x=-5, translate your functions 5 units to the right by replacing each occurrence of x with x-5.
If you want to revolve your lamina about a horizontal line other than the x-axis, translate up or down. For example, to revolve about the line y=5, translate your functions down by replacing y with y+5. Then revolve about the
-axis.
Project: Solids of Revolution
Tools for this Project:
Parts A and B:
Sketch the surface obtained by revolving a lamina bounded by the graphs of f and g about the y-axis:
| > | ### WARNING: persistent store makes one-argument readlib obsolete readlib(addcoords)(z_cylindrical,[z,r,theta],[r*cos(theta),r*sin(theta),z]); |
| > | with(plots):with(plottools): |
| > | p1:=plot3d(f(r),r=a..b,theta=0..2*Pi,coords=z_cylindrical): |
| > | p2:=plot3d(g(r),r=a..b,theta=0..2*Pi,coords=z_cylindrical): |
| > | display([p1,p2]); |
Part B:
Sketch the surface obtained by revolving a lamina bounded by the graphs of f and g about the x-axis:
| > | with(plots):with(plottools): |
| > | plot([f(x),g(x)],x=a..b); |
| > | t1:=tubeplot([0,x,0,x=a..b,radius=f(x)]): |
| > | t2:=tubeplot([0,x,0,x=a..b,radius=g(x)]): |
| > | display([t1,t2]); |
The Most Common Maple Commands
Academic Honesty Statement:
Place the following statement (by copying and pasting) at the end of your report and sign it in ink. Your instructor will not grade your report unless this signed statement appears at the end of your report.
I understand that I may work with others if I give them credit in this statement. I also understand that I am required to write my report--that to copy all or part of someone else's report or to allow someone else to copy all or part of my report constitutes plagiarism, which is a serious violation of academic honesty.
I worked with (replace this parenthetical remark with first and last names of those with whom you worked) on this project. I wrote my own report. I did not copy any of this report from anyone else and I did not allow anyone else to copy any of this report.
Signed: