Individual Project 4

The goal of this project is to simulate the motion of balls on a pool table. Based on some simple experiments, I think that the acceleration of a ball rolling on the pool table is approximately equal to

where is the velocity of the ball (in meters/second), m is the mass of the ball (in kilograms), and and are constants. Note that the ``acceleration'' is due to the friction of the felt on the table, and so must be opposite in sign to the velocity; in addition, if the velocity is zero, then the acceleration must also be zero.

Another complication is that the ball will slow down when it bumps against the edge of the table. Let represent the amount by which the velocity is reduced. (For example, if the ball loses 1% of its velocity, then .)

To solve the differential equations, use the Matlab function ode15s. If your version of Matlab does not have this function, you can download the ``ODE Suite'' from the Mathworks home page: Mathworks home page

C Grade: In your initial computations, you need only model the motion of the ball from end to end on the table (that is, there is no side to side motion). Measure a pool table (for example, on the lower level of SUB I) to determine its length. At this grade level, you may use the values:

You are to compute the position of the ball from the moment when it is struck until the moment when it stops, and to plot this position as a function of time. Use the following initial conditions:

Under what circumstances is the differential equation stable? Stiff?

B Grade: We will (with a portable scale) weigh a real pool ball to determine the correct value of the parameter m. Using a real pool table, you are to measure the length and width of the table, and the size of the pockets. With the same pool table, you are to collect data for 15 experiments. (I encourage you to work in groups to collect the data, although you must analyze the results individually.) In addition, obtain data for 15 other experiments from another group. (Below you will find suggestions for how to collect the data.) Use least-squares data fitting to estimate the parameters , , and . Is my model effective at approximating the motion of a ball on a pool table?

A Grade: In the above computations, you ignored side-to-side motion, and only considered one ball. Modify your software so that the ball can move anywhere on the table. Take into account the six pockets in the table. Allow up to three balls. You can use the parameter values determined in the B-grade section. Run your model for at least 5 cases that illustrate the features of your software. Your cases must include examples of (a) two balls, (b) three balls, (c) a ball going into a pocket. Are the results ``realistic''?

Preliminary deadline: Friday, April 17

Final deadline: Wednesday, April 29, 9:30am

Collecting Data: I want you to run experiments where you apply an initial force to a ball, and then time how long it takes it to stop. The difficulty is to determine the initial velocity of the ball. I suggest that you use the following technique (as illustrated in the Figure):

By using elementary equations from physics, you should be able to compute the velocity of Ball 2 when it reaches the bottom of the ramp (we will assume, for simplicity, that this is the initial velocity of Ball 1). You should also be able to compute the time that it takes for Ball 2 to go down the ramp, and this time can be subtracted from the total time.

Collecting Data

Links:

OR481/Math 446

Stephen Nash

(snash@gmu.edu)



Stephen G Nash
Fri Apr 3 17:22:58 EST 1998