1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Homework Help: Find x(t) for a ball travelling down a cycloid under gravity

  1. May 19, 2015 #1
    1. The problem statement, all variables and given/known data

    I want to find the equations of motion for a ball travelling down a cycloid under gravity so I can model the brachistochrone problem on matlab. I've looked online everywhere and can only find the equations for x and y with respect to theta (of the cycloid). I'm guessing then that I'd have to find an equation for the angle with respect to the time and then work with that to find x(t) but I have no idea how to do it.

    2. Relevant equations

    Equations for cycloid:

    http://www.myphysicslab.com/eqns/Brachistochrone066.png [Broken]
    http://www.myphysicslab.com/eqns/Brachistochrone055.png [Broken]


    I derived this equation (with the help of Ray Vickson) where you can just sub in f(x) but obviously its a little more difficult when you've got parametric equations for a cycloid.

    3. The attempt at a solution

    Well using those cycloid equations, I can find

    dx/d0 = a - cos0 (0 is supposed to be theta, im not sure how you generate equations)

    and dy/d0 = sin0

    then from that we can find dy/dx = sin0/(a - cos0)

    I know i've got to bring the time into it somehow but I have no idea how. I've thought about using the chain rule but I don't know how to apply that. To be fair I'm not even entirely sure what I'm trying to find, whether it be d0/dt or what.

    Any tips you have are helpful, thanks!
    Last edited by a moderator: May 7, 2017
  2. jcsd
  3. May 19, 2015 #2


    User Avatar
    2017 Award

    Staff: Mentor

    I'm not sure if an analytic solution is possible. You can certainly set up an integral, but solving this could be tricky. Is a numerical solution okay?
  4. May 19, 2015 #3

    Ray Vickson

    User Avatar
    Science Advisor
    Homework Helper

    You can get a differential equation for ##\theta(t)##. Do you know about the Lagrangian formulation of dynamics? If so, set up the Lagrangian
    [tex] L(\theta, \dot{\theta}) = T - V, [/tex]
    where T = kinetic energy and V = potential energy:
    [tex] T = \frac{1}{2} m v^2, \; V = m g y[/tex]
    Then, the equation of motion is
    [tex] \frac{d}{dt} \left( \frac{\partial L}{\partial \dot{\theta}}\right) = \frac{\partial L}{\partial \theta} [/tex]
    You can get ##y## and ##v^2 = v_x^2 + v_y^2## in terms of ##\theta## and ##\dot{\theta}##, using the equations for ##x,y## in terms of ##\theta##.

    You will get a second-order DE for ##\theta##, of the form
    [tex] \frac{d^2 \theta}{dt^2} = F\left(\theta, \frac{d \theta}{dt} \right), [/tex]
    So, you will need to find out how to deal with second-order DEs numerically.

    See. eg., http://en.wikipedia.org/wiki/Lagrangian_mechanics
    or http://ice.as.arizona.edu/~dpsaltis/Phys422/chapter6.pdf
    for more on Lagrangian dynamics.
    Last edited by a moderator: May 7, 2017
  5. May 19, 2015 #4
    At the moment I've gotten Vx, Vy and y in terms of θ and subbed them into L = K-U

    and so I've got L is equal to some θ's and dθ/dt's

    This may be a stupid question but how do I find dL/dθ and dL/dθ' individually? Like how do I find dL/dθ'? Do I just treat θ as a constant and only take the derivatives of the dθ/dt's?

    and then after I've done that, how would I find d/dt(dL/dθ') since it wouldn't have any t's in it?
    I haven't come across lagrangian dynamics before so this is a bit confusing.
  6. May 20, 2015 #5

    Ray Vickson

    User Avatar
    Science Advisor
    Homework Helper

    The Lagrangian is a function of the two variables ##r## and ##s##, where ##r## means ##\theta## but is easier to type, and ##s## means ##d \theta /dt = dr/dt##. In other words, you just have a function ##L(r,s)## of two variables. The derivatives ##L_r = \partial L / \partial r## and ##L_s = \partial L / \partial s## are just computed in the usual way that you always compute partial derivatives. That gives you ##L_s = G(r,s)##, some function of ##r,s## that you can compute. Now
    [tex] \frac{d}{dt} G(r,s) = G_r \frac{dr}{dt} + G_s \frac{ds}{dt}.[/tex]
    At this point you can put back ##s = dr/dt## to get the equation of motion
    [tex] \frac{d}{dt} G(r,s) = G_r(r,s) \frac{dr}{dt} + G_s(s,t) \frac{d^2 r}{dt^2} = M(r,s), [/tex]
    where ##M(r,s)## is the function ##L_s##. I hope that by giving the functions ##L_r, L_s## new names not involving the letter ##L## that you will see more clearly what is going on.

    If you are still unsure about this, look at the links provided, or find more articles by a Google search on 'Lagrangian dynamics' (searching on 'Lagrangian mechanics' does not work very well; it gives lots of automobile repair shops).
  7. May 20, 2015 #6
    I had a go but when solving for dL/dtheta I ended up with some ridiculously long equation, not sure if I did something wrong though. My professor says that the easiest method is to split the cycloid into small straight line segments then calculate what I want for those, not completely sure what he means but I'll have a go at that.

    Thanks for all the help.
  8. May 20, 2015 #7


    User Avatar
    Homework Helper

    I feel like your professor is saying you can just simulate the physics on the computer. i.e. you don't need to calculate x(t). Instead, maybe the problem is to find difference equations which represent your problem, and get the computer to simulate it. Did your professor ever explicitly say to analytically calculate x(t) ? If not, then I think most likely the problem is to program the computer to simulate the problem, thus giving you x(t) as a graph that you can plot.

    edit: In other words, you were asked to model the problem in matlab right? So that suggests actually using matlab to solve the dynamics of the problem, rather than analytically calculating x(t) and then just plotting it using matlab.
    Last edited: May 21, 2015
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted