Rotating Mass-Spring System

In the x y xy -coordinate system, a 1 kg \SI{1}{\kilo\gram} mass is attached to one end of a massless ideal spring. The other end of the spring is fixed at the origin. The spring constant is k = 10 N / m k = \SI[per-mode=symbol]{10}{\newton\per\meter} , and the spring's unstretched length is 1 m \SI{1}{\meter} .

The mass is initially being held in the air horizontally at ( x , y ) = ( 1 m , 0 m ) , (x,y) = (\SI{1}{\meter}, \SI{0}{\meter}), and then is released so that gravity pulls it downwards. How far is the mass from the origin right at the moment it first crosses the (vertical) y y -axis?


Details and Assumptions:

  • Give your answer in meters, to 2 decimal places.
  • There is an ambient downward gravitational acceleration of 10 m / s 2 \SI[per-mode=symbol]{10}{\meter\per\second\squared} .
  • For the sake of this problem, assume that the spring can be stretched to great lengths.


The answer is 3.53.

This section requires Javascript.
You are seeing this because something didn't load right. We suggest you, (a) try refreshing the page, (b) enabling javascript if it is disabled on your browser and, finally, (c) loading the non-javascript version of this page . We're sorry about the hassle.

3 solutions

Mark Hennings
May 15, 2017

If r r is the distance of the mass from the origin, and θ \theta the angle that the spring makes with the downward vertical, then the equation of motion of the system is x ¨ = 10 ( r 1 ) ( sin θ cos θ ) + 10 ( 0 1 ) \ddot{\mathbf{x}} \; =\; 10(r-1){-\sin\theta \choose \cos\theta} + 10{0 \choose -1} where x = ( r sin θ r cos θ ) \mathbf{x} = {r \sin\theta \choose -r\cos\theta} is the position vector of the mass, and the canonical unit vectors point horizontally and vertically up. Taking radial and transverse components, we obtain r ¨ r θ ˙ 2 = 10 ( r 1 ) + 10 cos θ r θ ¨ + 2 r ˙ θ ˙ = 10 sin θ \begin{array}{c}\ \ddot{r} - r\dot{\theta}^2 & = -10(r-1)+ 10\cos\theta \\ \ r\ddot{\theta} + 2\dot{r}\dot{\theta} & = -10\sin\theta \end{array} together with the initial conditions r ( 0 ) = 1 r(0) = 1 , θ ( 0 ) = 1 2 π \theta(0) = \tfrac12\pi , r ˙ ( 0 ) = θ ˙ ( 0 ) = 0 \dot{r}(0) = \dot{\theta}(0) = 0 . Solving these equations numerically, we find that θ = 0 \theta = 0 for the first time when t = 1.09173 t = 1.09173 , at which time r = 3.53001 r = \boxed{3.53001} .

@Nathan Sheely . The solution could have been done with Cartesian coordinates. Using differential equations for the horizontal and vertical motion. These equations lead to the same answer (which is what I did much like Arjen's answer but I used RK4 for integrating the accs to velocities). The beauty of the polar motion approach is that it avoids the (x|y)/sqrt(x x+y y) terms. The radial equations are a radial acc term less the centripetal acc. Whilst the tangential equ. has terms for the angular acc and the coriolis acc.

@Steven Chase , nice problem. I tried the numerical method with a 0.1s time step and it got a value of x=-0.014 (14mm left of center) and y= 3.530 at 1.1s. This quite good, especially as the "x" steps are about 200mm in the horizontal near the solution. It is just plausible to have done this is in the pre-digital age at this sort of step size. Using square and sqrt tables, or sin and cos tables. I am just old enough to have done "high school" applied maths without a calculator; a slide rule and a book of tables were the tools, the former was quicker but less accurate.

Ed Sirett - 4 years ago

Log in to reply

I'm impressed that a time step of 0.1 s worked so well. A team of "calculators" could have done this in relatively short order, had the outcome of World War I depended on it or something (ha ha).

Steven Chase - 4 years ago

Thanks for the solution. We all used numerical methods. How solvable do you suppose this would have been 100 years ago?

Steven Chase - 4 years ago

Superb solution. I like your approach to the problem, the way you first wrote the force in the x and y-direction and then breaking the acceleration in the radial and tangential direction.

The main thing to notice here is the ball does not take a perfect circle. That is why the radial acceleration is r ¨ r θ ˙ 2 \ddot{r} - r \dot{\theta}^2 and the tangential acceleration is r θ ¨ + 2 r ˙ θ ˙ r \ddot {\theta} + 2 \dot {r} \dot {\theta} .

Rohit Gupta - 4 years ago

Hi, I don't understand how to get the equations that were obtained by taking the radial and transverse components of the initial x-y coordinate equations of motion, or how to obtain the time (or the r at that time) from those equations and the initial conditions. If someone could clarify those steps for me or point me in the right direction to understanding the solution, I would appreciate it.

Nathan Sheely - 4 years ago

Log in to reply

Here's my interpretation of the dynamics in polar coordinates. I think it's the same as what Mark has, except for the different angular convention. It makes use of Lagrangian Mechanics.

Steven Chase - 4 years ago

With x = ( r sin θ r cos θ ) \mathbf{x} \; = \; {r\sin\theta \choose -r\cos\theta} we differentiate twice to obtain x ˙ = r ˙ ( sin θ cos θ ) + r θ ˙ ( cos θ sin θ ) x ¨ = r ¨ ( sin θ cos θ ) + 2 r ˙ θ ˙ ( cos θ sin θ ) + r θ ¨ ( cos θ sin θ ) r θ ˙ 2 ( sin θ cos θ ) = ( r ¨ r θ ˙ 2 ) ( sin θ cos θ ) + ( r θ ¨ + 2 r ˙ θ ˙ ) ( cos θ sin θ ) \begin{aligned} \ \dot{\mathbf{x}} & = \dot{r}{\sin\theta \choose -\cos\theta} + r\dot{\theta}{\cos\theta \choose \sin\theta} \\ \ \ddot{\mathbf{x}} & = \ddot{r}{\sin\theta \choose -\cos\theta} + 2\dot{r}\dot{\theta}{\cos\theta \choose \sin\theta} + r\ddot{\theta}{\cos\theta \choose \sin\theta} - r\dot{\theta}^2{\sin\theta \choose -\cos\theta} \\ & = \big(\ddot{r} - r\dot{\theta}^2\big){\sin\theta \choose -\cos\theta} + \big(r\ddot{\theta} + 2\dot{r}\dot{\theta}\big){\cos\theta \choose \sin\theta} \end{aligned} Plug this into the original equation, and take components; in other words, take the inner product with ( sin θ cos θ ) {\sin\theta \choose -\cos\theta} and ( cos θ sin θ ) {\cos\theta \choose \sin\theta} .

There is not room here to go into the theory of numerical solution of differential equations - you will need to find a book.

Mark Hennings - 4 years ago

I don't understand why the calculations have to be so complex? What I did was equate the total energy at the origin and the point where the ball crosses the vertical axis, the Kinetic energy I found out with centripetal acceleration at x = 0. This gave me a simple quadratic equation on t, the extended length, which came out for me to be (1+((7)^(1/2)))/2. Which gave me the final answer 2.82 metre. If someone could tell me where I went wrong, thanks.

Also, at any point, the sine component of gravitational acceleration is the tangential acceleration, no? That could be related to the change in length of the spring by relation of centripetal acceleration with k't'. If you could also tell me if you think that leads to something meaningful, I will appreciate it.

Nabh Spandan - 4 years ago

Log in to reply

Did you take the centripetal acceleration as v 2 r \frac{v^2}{r} and tangential acceleration as r α r\alpha ? If that is so then it is incorrect. Can you show the equations you make?

Rohit Gupta - 4 years ago

Log in to reply

Had no need for tangential acc., but can you tell me why v^2/r is wrong

Nabh Spandan - 4 years ago

Log in to reply

@Nabh Spandan Ok, The particle is not moving in the perfect circular motion and therefore, it will suffer a Coriolis force. That is why the radial/centripetal acceleration is r ¨ r θ ˙ 2 \ddot{r} - r \dot{\theta}^2 and the tangential acceleration is r θ ¨ + 2 r ˙ θ ˙ r \ddot {\theta} + 2 \dot {r} \dot {\theta} .

The second last equation in Mark's solution is the equation of the centripetal acceleration.

Rohit Gupta - 4 years ago

Not that SHM didn't occur to me, my method seems simpler because I don't have to deal with complicated expressions or big calculations, yes?

Nabh Spandan - 4 years ago

Log in to reply

The energy equation (in Cartesian coordinates) states that 1 2 ( x ˙ 2 + y ˙ 2 ) + 5 ( x 2 + y 2 1 ) 2 = 10 y \tfrac12(\dot{x}^2 +\dot{y}^2) + 5\big(\sqrt{x^2 + y^2} - 1\big)^2 \; = \; 10y Since x ˙ \dot{x} , y ˙ \dot{y} , x ¨ \ddot{x} and y ¨ \ddot{y} are nonzero when x = 0 x=0 , these equations are too complicated to handle in the manner you propose.

Mark Hennings - 4 years ago

Log in to reply

shouldn't we include I w 2 / 2 Iw^2 / 2

Asif Hasan - 3 years, 10 months ago

Log in to reply

@Asif Hasan No, only a point particle is involved, so there is no moment of inertia.

Mark Hennings - 3 years, 10 months ago

Whilst conservation of energy applies. I.e. The gravitational energy mgh becomes the mechanical strain energy in the spring (1/2kx^2) and the motion energy 1/2mv^2. However the velocity and y-position are unknown at x=0. Thus the need to solve the pair of 2nd order diff eqns.

Ed Sirett - 4 years ago

@nabh spandan: I did the same thing and got 2.82 as the answer. No idea what's wrong in that method of energy conservation.

MAC A - 4 years ago

Log in to reply

May be it is because tangential velocity is changing and not constant, so the force balancing equation becomes invalid.

MAC A - 4 years ago

Beautiful solution.

Pedro Arantes - 4 years ago
Arjen Vreugdenhil
May 15, 2017

If k k were very large, the problem would reduce to a large-amplitude pendulum, which has no closed algebraic solution. Therefore we have no hope of accomplishing that here. If numerical methods are needed anyway, we might as well do a numerical simulation.

(Mark's approach with polar coordinates can be convenient, but the price we would pay here consists of sines and cosines. In Cartesian coordinates, the most involved mathematical operation is the square root.)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
int main(int argc, char** argv) {

    double sim_dt = 0.0001;     // step size for simulation

    double x = 1.0000, y = 0.0000;          // initial position
    double vx = 0.0000, vy = 0.0000;        // initial velocity
    double g = 10.000;                      // acceleration due to gravity

    double m = 1.00;            // mass of object
    double k = 10.00;           // spring constant
    double L0 = 1.00;           // neutral length of spring

    double t = 0.0000;          // start the timer

    while (x > 0) {

        double new_t = t + sim_dt;

        // Calculate distance to origin
        double r = sqrt(x*x + y*y);
        double L = r - L0;

        // Calculate forces
        double Fspr = -k*L;
        double Fg = m*g;
        double Fx = Fspr * x/r;
        double Fy = Fspr * y/r + Fg;

        // Calculate acceleration
        double ax = Fx/m;
        double ay = Fy/m;

        // Simple numerical integration
        double dt = new_t - t;
        double new_vx = vx + ax*dt;
        double new_vy = vy + ay*dt;
        double new_x = x + (vx+new_vx)/2 * dt;
        double new_y = y + (vy+new_vy)/2 * dt;

        // Get ready for the next step        
        x = new_x; y = new_y; 
        vx = new_vx; vy = new_vy; 
        t = new_t;
    }

    cout << y;

    return 0;
}

Output:

1
3.53038

Thanks for the solution. I like your observation that with high k, this reduces to a large-amplitude pendulum problem. I did it the same way you did but with a microsecond time step and Euler integration.

import math

L = 1.0
m = 1.0
g = 10.0

k = 10.0

x = L
y = 0.0

vx = 0.0
vy = 0.0

ax = 0.0
ay = -g

t = 0.0
dt = 10.0**(-6.0)

while x >= 0.0:

    x = x + vx * dt
    y = y + vy * dt

    vx = vx + ax * dt
    vy = vy + ay * dt

    r = math.hypot(x,y)

    delx = 0.0 - x
    dely = 0.0 - y

    u1x = delx / r
    u1y = dely / r

    Fsmag = k * math.fabs(r - L)

    Fsx = Fsmag * u1x
    Fsy = Fsmag * u1y

    Fx = Fsx
    Fy = Fsy - m*g

    ax = Fx / m
    ay = Fy / m

    t = t + dt

print t,y

# Results (t, y)
# 1.09173 -3.53001388952

Steven Chase - 4 years ago

Log in to reply

I think Arjen has used the midpoint method in his solution. How does the Euler's method compare with the midpoint method time-complexity wise? Which method gives more accurate value for the same step size?

Pranshu Gaba - 4 years ago

Log in to reply

Indeed I use the midpoint method for position calculations. v ( t + Δ t ) v ( t ) + a ( t ) Δ t ; x ( t + Δ t ) x ( t ) + v ( t ) + v ( t + Δ t ) 2 Δ t . \vec v(t + \Delta t) \approx \vec v(t) + \vec a(t)\:\Delta t; \\ \vec x(t + \Delta t) \approx \vec x(t) + \frac{\vec v(t) + \vec v(t+\Delta t)}2\: \Delta t.

It is easy (since the old and new velocity are readily available), and obviously an improvement over the most primitive approach. For instance, for constant-acceleration motion this approach gives exact values.

If I make my step size 1 0 6 10^{-6} (as Steve did) I get the more accurate answer of 3.53001 3.53001 .

Arjen Vreugdenhil - 4 years ago

Log in to reply

@Arjen Vreugdenhil This is nice, just the small modification to the primitive method make the simulation more stable. If the midpoint method is used to calculate velocity also, then it would give exact results for linear acceleration too.

Pranshu Gaba - 4 years ago

The trapezoid (midpoint) method is better for a given step size. The interesting thing too is that these different methods have different levels of numerical stability. I posted a problem on this a while back.

https://brilliant.org/problems/numerical-stability-of-eulers-method/?ref_id=1343388

Steven Chase - 4 years ago

Log in to reply

@Steven Chase Right, I get it. The midpoint method takes into account the old as well as the new value, so it is more stable compared to the Euler method. On the other hand, the Euler method is a bit easier to implement.

Pranshu Gaba - 4 years ago

Log in to reply

@Pranshu Gaba Another interesting thing is that the stability depends on whether the method is explicit or implicit. Examples of explicit and implicit Euler methods are below:

E x p l i c i t : y k = y k 1 + y k 1 Δ t = y k 1 + f ( y k 1 , u k ) Δ t I m p l i c i t : y k = y k 1 + y k Δ t = y k 1 + f ( y k , u k ) Δ t Explicit: y_k = y_{k-1} + y'_{k-1} \Delta t = y_{k-1} + f(y_{k-1},u_k) \Delta t \\ Implicit: y_k = y_{k-1} + y'_{k} \Delta t = y_{k-1} + f(y_{k},u_k) \Delta t

The explicit method solves for y y in terms of the previous value of y y and the present value of the forcing function u u , both of which are known. For the implicit method, we see that y k y_k is on both sides of the equation, and if the function f f is non-linear, it can be considerably harder to solve than the explicit method. But the advantage is that the implicit method has better numerical stability.

Steven Chase - 4 years ago

The quarter period of a simple pendulum, which swings from horizontal to horizontal (through an arc of π \pi ), does have a closed form. If the length of the pendulum is a a , then this time is a 2 g 0 1 2 π d θ cos θ = a 8 g B ( 1 4 , 1 2 ) = 1 4 a π g Γ ( 1 4 ) 2 \sqrt{\tfrac{a}{2g}}\int_0^{\frac12\pi} \frac{d\theta}{\sqrt{\cos\theta}} \; = \; \sqrt{\tfrac{a}{8g}}B\big(\tfrac14,\tfrac12\big) \; = \; \tfrac14\sqrt{\frac{a}{\pi g}} \Gamma\big(\tfrac14\big)^2

Mark Hennings - 4 years ago

Log in to reply

That is true, although one can hardly call Γ ( 1 4 ) \Gamma(\tfrac14) "algebraic"... It stands to reason that the additional oscillation would only complicate the integrand and get us even farther afield than beta and gamma functions.

Arjen Vreugdenhil - 4 years ago

Log in to reply

What do you want to understand by "algebraic"? Are you only going to include functional expressible by radicals? If so, not much can be expressed that way. If you start including transcendental functions like the trig functions, why stop there? To say that Γ \Gamma is more odd than tan \tan is just a matter of habit...

Mark Hennings - 4 years ago

Log in to reply

@Mark Hennings I think a more useful criteria is whether or not you can come up with a formula which allows you to calculate the behavior at a particular time, without being concerned with any other point in time. This has been described as "computational reducibility" - the ability to shortcut a problem.

Steven Chase - 4 years ago

Log in to reply

@Steven Chase Of course. The time taken for a simple pendulum to reach any angle from a stationary horizontal point can be expressed in terms of an elliptic integral of the first kind, a transcendental function just as computable as any other!

I know the elliptic integrals are readily computable because I once helped an architect design a bridge, and I implemented the necessary elliptic integral calculations on a very early version of Excel.

Mark Hennings - 4 years ago
Ed Sirett
May 19, 2017

Plot of the trajectory, step 10ms, 0-2s.

How do you draw this graph?

Rohit Gupta - 4 years ago

Made a simple text file from the output of the numerical solving program. Then used GNUplot to plot the x and y positions for the 200 steps. Once I had the GNUplot setting looking right, I asked it to dump to graphics as a PNG file. Motion after about 2s will depend on what assumptions you make about the spring's behavior; does it apply an outward radial force to the weight or does it go slack?
Arjen V posted the source code and you could add a simple print x,y at the top of the while loop body. I'm sure GNUplot could handle the 10^6 lines of data or you could drop the time step to 1ms.

Ed Sirett - 4 years ago

Log in to reply

Nice graph, there is hardly any symmetry in it. Do you think the motion of the particle will be periodic? That is, will it return to (1, 0) with velocity 0 after some time?

Pranshu Gaba - 4 years ago

Log in to reply

Well I tried longer simulations. With the spring going slack: the simulations show a simple parabola trajectory inside the unit semi circle near the top. There was no regular pattern completely chaotic as far as I could tell up to a few hundred bounces.

Likewise with a spring capable of pushing when compressed, there was no pattern, but the paths were all more or less on average in the form of a deep semi ellipse similar to the initial 2s. The paths were on average rather similar whilst no paths were identical there is a remote chance that one of them might eventually get very close to the starting point. I believe that when chaotic systems center around a typical path this path is known as the basin of attraction of the hidden attractor.

Ed Sirett - 4 years ago

Log in to reply

@Ed Sirett Could this be because we are taking discrete time points which have small error in each time step, which could lead to large errors after many steps in the simulation? This system does look chaotic, being a spring pendulum. Small changes in the initial conditions could lead to a very different trajectory.

By the way, here's an interesting page with animations of various kinds of chaotic system made using springs and pendulums.

Pranshu Gaba - 4 years ago

Log in to reply

@Pranshu Gaba I don't think this is the integrating error. People have got the same result with different methods and time or angle steps. I think this a genuinely chaotic system, even the orbit of 3 bodies is chaotic, or even a rigid two bar linkage. It is surprising that a such simple and idealised system can be so complex in its motion.

Ed Sirett - 4 years ago

Log in to reply

@Ed Sirett Yes, I agree it is a chaotic system which moves in a complex path. It would have been nice if it had some kind of a simple periodic motion.

Pranshu Gaba - 4 years ago

@Ed Sirett This shouldn't be a chaotic system. It does produce a bird's nest pattern in it's trajectory...

Krishna Karthik - 1 year, 1 month ago

0 pending reports

×

Problem Loading...

Note Loading...

Set Loading...