I’m so thankful to my friend Chija for pointing out this video for me:
Here’s her tweet
When I saw it I started to wonder if angular momentum was enough to explain it. So I set about trying to model it. Here’s my first try:
It does a pretty good job showing how the fast rotation of the red ball produces enough tension in the line to slow and then later raise the green ball. Here’s a plot of the tension in the line as a function of time:
So how did I model it? I decided to use a Lagrange multiplier approach where the length of the rope needs to be held constant. Here’s a screenshot of the code:
You define the constraint, the kinetic and potential energies, and then just do a lagrangian differential equation for x and y of both particles:
(note that in the screen shot above there’s actually some air resistance added as an extra term on the left hand side of the “el” command).
Very cool. But what about the notion that the rope wraps around the bar, effectively shortening the string? I thought about it for a while and realized I could approach the problem a little differently if I used radial coordinates. First here’s a code example of a particle tied to a string whose other side is tied to the post:
I’ve changed the constraint so that some of the rope is wrapped around the bar according to the angle of the particle. Here’s what that yields:
Ok, so then I wanted to feature wrapping in the code with both masses. Here’s that code:And here’s the result, purposely starting the more massive object a little off from vertical:
Fun times! Your thoughts? Here are some starters for you:
- Why do you insist on using Mathematica for this? It would be much easier in python, here’s how . . .
- Some of the animations don’t look quite right to me. Are you sure that . . .?
- This is cool, do you plan to do this for your students soon?
- What about contact friction between the rope and the bar? I would think that would be a major part.
- In the video he just comes to a rest instead of bouncing up. Clearly you’ve done this all wrong.