The Buckling Spring

BUCKLING_SPRING is a MATLAB program which illustrates solutions of the buckling spring equations.

We are given three points A, B, and C:



  • A vertical load MU is applied at point B (downward is positive);
  • A horizontal load LAMBDA is applied at point C (leftware is positive);
  • The spring force is applied perpendicularly to the axes of the two springs.
  • If we compute F(1), the force along the axis of one spring, and F(2), the force perpendicular to the axis of one spring, we have that F(L,THETA,LAMBDA,MU) is given by:

    To explore these equations, we can first solve for MU and LAMBDA in terms of L and THETA:

    We can then study the behavior of solutions by choosing a fixed value of THETA (say pi/8), and plotting LAMBDA(L,THETA) versus MU(L,THETA) over a range of values of L, say from 0.25 to 1.75. Recall that L = 1 when the springs are at their "natural" length. This approach is taken by the function BUCKLING_SPRING_L.

    We can also plot the same data, but instead fix a value of L, typically in the range of 0.25 to 1.75, and the plot LAMBDA(L,THETA) versus MU(L,THETA) over a range of values of THETA, say from -3pi/8 to +3pi/8. This approach is taken by the function BUCKLING_SPRING_THETA.


    To draw lines of constant L, with THETA varying along a line:

    buckling_spring_l ( l_num, theta_num )

    To draw lines of constant THETA, with L varying along a line:

    buckling_spring_theta ( l_num, theta_num )


    The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.


    BUCKLING_SPRING is available in a Mathematica version and a MATLAB version.

    Related Data and Programs:

    TEST_CON, a FORTRAN program which sets up sample problems for continuation, including the buckling spring.


    1. Tim Poston, Ian Stewart,
      Catastrophe Theory and its Applications,
      Dover, 1996,
      ISBN13: 978-0486692715,
      LC: QA614.58.P66.

    Source Code:

    You can go up one level to the MATLAB directory.

    Last revised on 04 August 2009.