buckling_spring
buckling_spring,
a MATLAB code which
illustrates solutions of the buckling spring equations.
We are given three points A, B, and C:

A is at the origin (0,0);

B has coordinates (X,Y) with Y nonnegative, and the ray from A to B
makes an angle of THETA with the horizontal axis.

C is at the point (2*X,0).
Springs:

A spring extends from A to B; it is normally of length 1, and is
currently of length L.

A spring extends from B to C; it is normally of length 1, and is
currently of length L.

A spring force is also exerted, which tends to draw the two
springs together, proportional to the angle between the two springs.
Forces:
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:

F(1) =  2 ( 1  L ) + 2 * LAMBDA * cos ( THETA ) + MU * sin ( THETA )

F(2) = 0.5 * THETA  2 * LAMBDA * L * sin ( THETA ) + MU * L * cos ( THETA )
To explore these equations, we can first solve for MU and LAMBDA in terms
of L and THETA:

LAMBDA(L,THETA) = (1L) * cos(THETA) + 0.25 * THETA * sin(THETA) / L

MU(L,THETA) = 2 * (1L) * sin(THETA)  0.5 * THETA * cos(THETA) / L
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.
Usage:
To draw lines of constant L, with THETA varying along a line:
buckling_spring_l ( l_num, theta_num )
where

l_num is the number of L lines to draw;

theta_num is the number of THETA values along each L line.
To draw lines of constant THETA, with L varying along a line:
buckling_spring_theta ( l_num, theta_num )
where

l_num is the number of L values along each THETA line;

theta_num is the number of THETA lines to draw.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
buckling_spring is available in
a Mathematica version and
a MATLAB version.
Related Data and Programs:
buckling_spring_test
Reference:

Tim Poston, Ian Stewart,
Catastrophe Theory and its Applications,
Dover, 1996,
ISBN13: 9780486692715,
LC: QA614.58.P66.
Source Code:

buckling_spring_l.m,
chooses equally spaced values of THETA between 3pi/8 and +3pi/8,
and plots curves of LAMBDA(L,THETA) versus MU(L,THETA) over a range
of values of L, from 0.25 to 1.75.

buckling_spring_theta.m,
chooses equally spaced values of L between 0.25 and 1.75
and plots curves of LAMBDA(L,THETA) versus MU(L,THETA) over a range
of values of THETA, from 3pi/8 to +3pi/8.
Last revised on 04 December 2018.