On this page
A block of mass m is held at height h above the top of an uncompressed vertical spring and let go. It falls, lands on the spring, and keeps going down until it stops for an instant. That lowest point is the maximum compression, and finding it is a standard energy question in Class 11 physics and JEE preparation.
Why is it mg(h + x) and not mgh?
Two energy formulas do all the work. Near the Earth's surface, gravitational potential energy is U = mgy, and a spring compressed by x from its natural length stores elastic potential energy U = ½kx², as OpenStax University Physics, section 8.1 sets out. Mechanical energy stays constant when non-conservative forces such as friction and air resistance do no work (OpenStax University Physics, section 8.3).
The trap is the height. The block does not stop at the top of the spring; it falls a further x while squashing it. So the total drop is h + x. Kinetic energy is zero at the start and zero again at the lowest point, so:
mg(h + x) = ½kx²
How do you solve the quadratic for maximum compression?
Rearrange to standard form: ½kx² − mgx − mgh = 0. The quadratic formula gives x = mg/k ± √((mg/k)² + 2mgh/k).
Worked example, with g = 10 m/s²: m = 2 kg, k = 800 N/m, h = 0.40 m.
mg = 20 N, so the equation is 20(0.40 + x) = 400x².
Divide by 4 and rearrange: 100x² − 5x − 2 = 0.
x = (5 ± √(25 + 800)) / 200 = (5 ± 28.72) / 200.
The positive root is x = 0.169 m, about 16.9 cm.
Check: mg(h + x) = 20 × 0.569 ≈ 11.4 J, and ½kx² = 400 × 0.169² ≈ 11.4 J. They match.
The equilibrium compression for the same block is mg/k = 20/800 = 0.025 m, or 2.5 cm. The maximum compression is nearly seven times that.
Why isn't the maximum compression equal to mg/k?
The equilibrium compression mg/k comes from balancing forces: the spring pushes up exactly as hard as gravity pulls down. It is the same balance OpenStax uses for a mass hanging on a vertical spring, mg = kΔy (OpenStax University Physics, section 15.1). Balanced forces mean zero acceleration, not zero speed. The block reaches x₀ = mg/k moving at its fastest, so it overshoots.
Below x₀ the spring force is larger than the weight, so the block slows and stops at x_max. If it stays on the spring, it then oscillates about x₀, as the same OpenStax section explains. Our post on a mass on a vertical spring and its new equilibrium works through that motion.
Even with h = 0 the answer is not mg/k. Put h = 0 in the formula and you get x = 2mg/k, the result OpenStax derives in section 8.1 for a block released from the spring's natural length. It is the same idea as the maximum extension when a load is released suddenly on a spring: a sudden load goes twice as far as a slowly lowered one.
In the graph at the top, the gap between the blue line, mg(h + x), and the pink curve, ½kx², is the kinetic energy: widest at x₀, zero at x_max.
Which root of the quadratic do you keep?
Keep the positive root, because x was defined as compression. In the example the negative root is (5 − 28.72)/200 = −0.119 m. It is not nonsense: if the block were fixed to the spring, it is how far above the natural length the block would rise, the other turning point of the oscillation. Both roots sit 14.4 cm from x₀ = 2.5 cm, which is a quick check on your arithmetic. For a block that simply lands on the spring, set it aside.
A four-step check before you write the answer
Measure h from the bottom of the block to the top of the spring, not to the ground. If the question gives height above the ground, subtract the spring's natural length.
Use h + x in the gravitational term, and set kinetic energy to zero only at the lowest point.
Keep the positive root, and confirm it is larger than 2mg/k whenever h is greater than zero.
Substitute back: both sides should agree to within rounding.
That kind of wrong-method mistake is what the Fermi Problem Library is for: worked problems with a step-by-step solver that explains the reasoning rather than printing an answer.
For the bigger picture on choosing this method, read when to use energy conservation instead of Newton's laws.



