jbriggs444
Science Advisor
Homework Helper
2024 Award
- 13,370
- 8,042
Apologies for the length. I wrote some simple code. Rather than getting fancy with a 3 x 3 transition matrix and some kind of Markov chain that I think @haruspex was going for, I simply ran the simulation.
It seems the the idea of a single resulting speed is a correct heuristic. [As conservation of momentum demands].
The number of bounces seems to scale roughly with the square root of the mass ratio.
For 1000 kg ramps with a 1 kg bead one gets:
As expected, quadrupling the ramp height does not change the number of bounces or the velocity ratios.
Just for grins, at a mass ratio of a billion (1,000,000,000) to one we get ten sig fig agreement on ramp speeds:
It seems the the idea of a single resulting speed is a correct heuristic. [As conservation of momentum demands].
The number of bounces seems to scale roughly with the square root of the mass ratio.
For 1000 kg ramps with a 1 kg bead one gets:
Note that the final bounce left the bead moving in the same direction as the bounced-from ramp. This is not unusual for the final bounce. [Roughly 50/50 chance].my code said:After 35 bounces the bead is moving at -0.722076525808794, the new target ramp is moving at 1.00023061595632 and the bounced-from ramp is moving at 0.999508539430512
The bead/disc can no longer catch up. Total bounces: 35
Initial total ke = 1000
Final total ke = 1000
Final total momentum = -3.33066907387547e-013
As expected, quadrupling the ramp height does not change the number of bounces or the velocity ratios.
Increasing the mass ratio to 1,000,000 : 1 increases the number of bounces substantially and seems to equalize the ramp velocities rather nicely.my code said:After 35 bounces the bead is moving at -1.44415305161759, the new target ramp is moving at 2.00046123191264 and the bounced-from ramp is moving at 1.99901707886102
The bead/disc can no longer catch up. Total bounces: 35
Initial total ke = 4000
Final total ke = 4000
Final total momentum = -6.66133814775094e-013
The lead up to that final bounce was:my code said:After 1110 bounces the bead is moving at 0.0279794771352128, the new target ramp is moving at 0.0632455361191364 and the bounced-from ramp is moving at 0.0632455640986138
The bead/disc can no longer catch up. Total bounces: 1110
Initial total ke = 4000
Final total ke = 4000
Final total momentum = -2.53513265935368e-010
Roughly speaking, each bounce saps twice the receding ramp's velocity from the bead's speed.my code said:After 1105 bounces the bead is moving at 0.6604285866624, the new target ramp is moving at 0.0632434988675383 and the bounced-from ramp is moving at 0.0632441592961247
After 1106 bounces the bead is moving at 0.533940394558343, the new target ramp is moving at 0.0632441592961247 and the bounced-from ramp is moving at 0.0632446932365195
After 1107 bounces the bead is moving at 0.407451134574564, the new target ramp is moving at 0.0632446932365195 and the bounced-from ramp is moving at 0.0632451006876539
After 1108 bounces the bead is moving at 0.280961059689331, the new target ramp is moving at 0.0632451006876539 and the bounced-from ramp is moving at 0.0632453816487138
After 1109 bounces the bead is moving at 0.15447042288254, the new target ramp is moving at 0.0632453816487138 and the bounced-from ramp is moving at 0.0632455361191364
After 1110 bounces the bead is moving at 0.0279794771352128, the new target ramp is moving at 0.0632455361191364 and the bounced-from ramp is moving at 0.0632455640986138
Just for grins, at a mass ratio of a billion (1,000,000,000) to one we get ten sig fig agreement on ramp speeds:
my code said:After 35124 bounces the bead is moving at -0.00170532064285094, the new target ramp is moving at 0.00200000000048912 and the bounced-from ramp is moving at 0.0019999999987838
The bead/disc can no longer catch up. Total bounces: 35124
Initial total ke = 4000
Final total ke = 3999.99999999991
Final total momentum = -3.35048848647962e-009
Code:
#!/usr/bin/perl
my $ke = 4000; # Initial KE in Joules
my $m = 1; # Mass of small bead/disc
my $M = 1000000000; # Mass of each of the two ramps
my $v_right = 0;
my $trips = 0;
# Initial launch will distribute KE to launch ramp (left ramp) and bead in inverse ratio of their masses.
my $bead_ke = $M * $ke / ( $m+$M );
my $ramp_ke = $m * $ke / ( $m+$M );
$v_left = sqrt(2*$ramp_ke/$M);
$v_bead = sqrt(2*$bead_ke/$m);
print "Initial total momentum = ", $M*$v_right - $M*$v_left + $m*$v_bead, "\n"; # Bead is currently on rightward convention.# Adopt the simplification that the bead is always moving to the "right". We'll flip the directions every time through the loop.
print "Begin with $m kg bead moving rightward at $v_bead, left $M kg ramp at $v_left and right $M kg ramp at rest\n";
while ( $v_bead > $v_right ) {
# The center-of-momentum frame is moving to the right at (m*v_bead + M*v_right)/(m+M)
# The collision is elastic. So the velocity toward the CM before the collision becomes
# the velocity away from the CM afterward. A little algebra then yields:
my $v_cm = ( $m * $v_bead + $M * $v_right ) / ( $m+$M );
$v_bead = 2 * $v_cm - $v_bead; # Result will almost certainly be negative (leftward)
$v_right = 2 * $v_cm - $v_right; # Result will certainly be positive (rightward)
$trips++;
$v_bead = - $v_bead; # Shift bead/disc to leftward convention;
print "After $trips bounces the bead is moving at $v_bead, the new target ramp is moving at $v_left and the bounced-from ramp is moving at $v_right\n";
# Shift ramps to leftward convention
my $temp = $v_right;
$v_right = $v_left;
$v_left = $temp;
};
print "The bead/disc can no longer catch up. Total bounces: $trips\n";
print "Initial total ke = $ke\n";
print "Final total ke = ", $M*$v_right**2/2 + $M*$v_left**2/2 + $m*$v_bead**2/2, "\n";
print "Final total momentum = ", $M*$v_right - $M*$v_left + $m*$v_bead, "\n";
Last edited: