Looking for some pointers on how to approach this problem: I'm considering a system like the following - two springs and two masses connected in sequence: http://www.myphysicslab.com/dbl_spring1.html I would like to find the following: Given m1, m2, k1, k2. The springs are compressed each by a certain amount (x1start and x2start) and the velocities are set to 0. The springs can be released at any point in time. Once a spring is released and it stretches so that its stretch reaches a peak, it is clamped at that position. Once both springs reach their peak stretch the simulation is ended. Here is what I'm trying to find: Assuming the left spring is released at t=0. At what time should the right spring be released to maximize the peak velocity of the right block. I could iterate numerically using Runge-Kutta and try stepping up the release time of the right spring and record peak velocity of the right block but that seems very brute forced. I would like to find a better solution for this if possible. As a side question, I was wondering if there was an analytical solution to this system? Thanks for any pointers.