<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="m10147"> 

  <name>Matrix Methods for Mechanical Systems:  A Small Planar Truss</name> 

  <metadata>
  <md:version>2.5</md:version>
  <md:created>2001/06/27</md:created>
  <md:revised>2002/07/23 00:00:00.005 GMT-5</md:revised>
  <md:authorlist>
      <md:author id="rainking">
      <md:firstname>Doug</md:firstname>
      
      <md:surname>Daniels</md:surname>
      <md:email>rainking@alumni.rice.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="rainking">
      <md:firstname>Doug</md:firstname>
      
      <md:surname>Daniels</md:surname>
      <md:email>rainking@alumni.rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>big O</md:keyword>
    <md:keyword>unstable mode</md:keyword>
    <md:keyword>pseudo-inverse</md:keyword>
    <md:keyword>pseudo inverse</md:keyword>
    <md:keyword>small planar truss</md:keyword>
    <md:keyword>biaxial testing problem</md:keyword>
  </md:keywordlist>

  <md:abstract>Continuing with discussion of matrix methods for solving mechanical problems, we consider a simple swing.  Using the method developed in the uniaxial problem, we encode the physics of the problem into matrices.  Gaussian elimination leaves us with a singular matrix.  We discuss the implications of this, and hint at possible ways to obtain a solution when the S matrix is singular.</md:abstract>
</metadata>

  <content>
    <para id="p1">
      We return once again to the biaxial testing problem, introduced
      in the <cnxn target="intro" document="m10146" strength="9">uniaxial truss module</cnxn>. It turns out that
      singular matrices are typical in the biaxial testing problem. As
      our initial step into the world of such planar structures let us
      consider the simple truss in the figure of <cnxn target="simple_swing">a simple swing</cnxn>.
    </para>

    <figure id="simple_swing">
      <name>A simple swing</name>
      <media type="image/png" src="lec2fig2.png"/>
    </figure>

    <para id="p2">
      We denote by
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>x</m:mi>
	    <m:mn>1</m:mn>
	  </m:msub></m:ci>
      </m:math>
      <!-- x_1 -->

      and
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>x</m:mi>
	    <m:mn>2</m:mn>
	  </m:msub></m:ci>
      </m:math>
      <!-- x_2 -->

      the respective horizontal and vertical displacements of
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>m</m:mi>
	    <m:mn>1</m:mn>
	  </m:msub></m:ci>
      </m:math>
      <!-- m_1 -->

      (positive is right and down). Similarly, 
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>f</m:mi>
	    <m:mn>1</m:mn>
	  </m:msub></m:ci>
      </m:math>
      <!-- f_1 -->

      and
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>f</m:mi>
	    <m:mn>2</m:mn>
	  </m:msub></m:ci>
      </m:math>
      <!-- f_2 -->

      will denote the associated components of force. The corresponding 
      displacements and forces at
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>m</m:mi>
	    <m:mn>2</m:mn>
	  </m:msub></m:ci>
      </m:math>
      <!-- m_2 -->

      will be denoted by 
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>x</m:mi>
	    <m:mn>3</m:mn>
	  </m:msub></m:ci>
      </m:math>,
      <!-- x_3 -->

      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>x</m:mi>
	    <m:mn>4</m:mn>
	  </m:msub></m:ci>
      </m:math>
      <!-- x_4 -->

      and
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>f</m:mi>
	    <m:mn>3</m:mn>
	  </m:msub></m:ci>
      </m:math>,
      <!-- f_3 -->

      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>f</m:mi>
	    <m:mn>4</m:mn>
	  </m:msub></m:ci>
      </m:math>.
      <!-- f_4 -->

      In computing the elongations of the three springs we shall make
      reference to their unstretched lengths,
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>L</m:mi>
	    <m:mn>1</m:mn>
	  </m:msub></m:ci>
      </m:math>,
      <!-- L_1 -->

      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>L</m:mi>
	    <m:mn>2</m:mn>
	  </m:msub></m:ci>
      </m:math>,
      <!-- L_2 -->

      and
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>L</m:mi>
	    <m:mn>3</m:mn>
	  </m:msub></m:ci>
      </m:math>.
      <!-- L_3 -->
    </para>

    <para id="p3">
      Now, if spring 1 connects

      <m:math display="inline">
	<m:set>
	  <m:cn>0</m:cn>
	  <m:apply><m:minus/>
	    <m:ci><m:msub>
		<m:mi>L</m:mi>
		<m:mn>1</m:mn>
	      </m:msub></m:ci>
	  </m:apply>
	</m:set>
      </m:math> 
      <!-- ( 0 , - L_1 ) -->

      to 
      <m:math display="inline">
	<m:set>
	  <m:cn>0</m:cn>
	  <m:cn>1</m:cn>
	</m:set>
      </m:math> when at rest and

      <m:math display="inline">
	<m:set>
	  <m:cn>0</m:cn>
	  <m:apply><m:minus/>
	    <m:ci><m:msub>
		<m:mi>L</m:mi>
		<m:mn>1</m:mn>
	      </m:msub></m:ci>
	  </m:apply>
	</m:set>
      </m:math>
      <!-- ( 0 , - L_1 ) --> 

      to
      <m:math display="inline">
	<m:set>
	  <m:ci><m:msub>
	      <m:mi>x</m:mi>
	      <m:mn>1</m:mn>
	    </m:msub></m:ci>
	  <m:ci><m:msub>
	      <m:mi>x</m:mi>
	      <m:mn>2</m:mn>
	    </m:msub></m:ci>
	</m:set>
      </m:math>
      <!-- ( x_1 , x_2 ) -->

      when stretched then its elongation is simply
      <equation id="eqn2_6">
	<m:math display="block">
	  <m:apply><m:eq/>
	    <m:ci><m:msub>
		<m:mi>e</m:mi>
		<m:mn>1</m:mn>
	      </m:msub></m:ci>
	    <m:apply><m:minus/>
	      <m:apply><m:root/>
		<m:degree><m:cn>2</m:cn></m:degree>
		<m:apply><m:plus/>
		  <m:apply><m:power/>
		    <m:ci><m:msub>
			<m:mi>x</m:mi>
			<m:mn>1</m:mn>
		      </m:msub></m:ci>
		    <m:cn>2</m:cn>
		  </m:apply>
		  <m:apply><m:power/>
		    <m:apply><m:plus/>
		      <m:ci><m:msub>
			  <m:mi>x</m:mi>
			  <m:mn>2</m:mn>
			</m:msub></m:ci>
		      <m:ci><m:msub>
			  <m:mi>L</m:mi>
			  <m:mn>1</m:mn>
			</m:msub></m:ci>
		    </m:apply>
		    <m:cn>2</m:cn>
		  </m:apply>
		</m:apply>
	      </m:apply>
	      <m:ci><m:msub>
		  <m:mi>L</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci>
	    </m:apply>
	  </m:apply>
	</m:math>
      </equation>
      <!-- e_1 = sqrt( (x_1)^2 + ( x_2 + L_1 )^2 ) - L_1 -->
    </para>

    <para id="p4">
      The price one pays for moving to higher dimensions is that lengths
      are now expressed in terms of square roots. The upshot is that the
      elongations are not linear combinations of the end displacements
      as they were in <cnxn target="uniaxial_truss" document="m10146" strength="7">the uniaxial case</cnxn>. If we presume, however,
      that the loads and stiffnesses are matched in the sense that the
      displacements are small compared with the original lengths, then
      we may effectively ignore the nonlinear contribution in <cnxn target="eqn2_6" strength="8"/>.  In order to make this precise we
      need only recall the
      
      <rule id="taylor" type="rule">
	<name>Taylor development of the square root of (1 + t) </name>
	
	<statement>
	  <para id="state_p1">
	    The Taylor development of
	    <m:math display="inline">
	      <m:apply><m:root/>
		<m:degree><m:cn>2</m:cn></m:degree>
		<m:apply><m:plus/>
		  <m:cn>1</m:cn>
		  <m:ci>t</m:ci>
		</m:apply>
	      </m:apply>
	      <!-- sqrt( 1 + t ) -->
	    </m:math>
	    
	    about 
	    <m:math display="inline">
	      <m:apply><m:eq/>
		<m:ci>t</m:ci>
		<m:cn>0</m:cn>
	      </m:apply>
	      <!-- t = 0 -->
	    </m:math>
	    
	    is
	    <m:math display="block">
	      <m:apply><m:eq/>
		<m:apply><m:root/>
		  <m:degree><m:cn>2</m:cn></m:degree>
		  <m:apply><m:plus/>
		    <m:cn>1</m:cn>
		    <m:ci>t</m:ci>
		  </m:apply>
		</m:apply>
		<m:apply><m:plus/>
		  <m:cn>1</m:cn>
		  <m:apply><m:divide/>
		    <m:ci>t</m:ci>
		    <m:cn>2</m:cn>
		  </m:apply>
		  <m:apply>
		    <m:ci type="fn">O</m:ci>
		    <m:apply><m:power/>
		      <m:ci>t</m:ci>
		      <m:cn>2</m:cn>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:math>
	    <!-- sqrt( 1 + t ) = 1 + t/2 + O(t^2) -->

	    where the latter term signifies the remainder.
	  </para>
	</statement>
      </rule>

      With regard to
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>e</m:mi>
	    <m:mn>1</m:mn>
	  </m:msub></m:ci>
      </m:math>

      this allows
      <equation id="eqna1">
	<m:math display="block">
	  <m:apply><m:eq/>
	    <m:ci><m:msub>
		<m:mi>e</m:mi>
		<m:mn>1</m:mn>
	      </m:msub></m:ci>
	    <m:apply><m:minus/>
	      <m:apply><m:root/>
		<m:degree><m:cn>2</m:cn></m:degree>
		<m:apply><m:plus/>
		  <m:apply><m:power/>
		    <m:ci><m:msub>
			<m:mi>x</m:mi>
			<m:mn>1</m:mn>
		      </m:msub></m:ci>
		    <m:cn>2</m:cn>
		  </m:apply>
		  <m:apply><m:power/>
		    <m:ci><m:msub>
			<m:mi>x</m:mi>
			<m:mn>2</m:mn>
		      </m:msub></m:ci>
		    <m:cn>2</m:cn>
		  </m:apply>
		  <m:apply><m:times/>
		    <m:cn>2</m:cn>
		    <m:ci><m:msub>
			<m:mi>x</m:mi>
			<m:mn>2</m:mn>
		      </m:msub></m:ci>
		    <m:ci><m:msub>
			<m:mi>L</m:mi>
			<m:mn>1</m:mn>
		      </m:msub></m:ci>
		  </m:apply>
		  <m:apply><m:power/>
		    <m:ci><m:msub>
			<m:mi>L</m:mi>
			<m:mn>1</m:mn>
		      </m:msub></m:ci>
		    <m:cn>2</m:cn>
		  </m:apply>
		</m:apply>
	      </m:apply>
	      <m:ci><m:msub>
		  <m:mi>L</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci>
	    </m:apply>
	    
	    <!-- e_1 = sqrt( (x_1)^2 + (x_2)^2 + 2(x_2)(L_1) + (L_1)^2 ) - L_1 -->
	    <m:apply><m:minus/>
	      <m:apply><m:times/>
		<m:ci><m:msub>
		    <m:mi>L</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub></m:ci>
		<m:apply><m:root/>
		  <m:degree><m:cn>2</m:cn></m:degree>
		  <m:apply><m:plus/>
		    <m:cn>1</m:cn>
		    <m:apply><m:divide/>
		      <m:apply><m:plus/>
			<m:apply><m:power/>
			  <m:ci><m:msub>
			      <m:mi>x</m:mi>
			      <m:mn>1</m:mn>
			    </m:msub></m:ci>
			  <m:cn>2</m:cn>
			</m:apply>
			<m:apply><m:power/>
			  <m:ci><m:msub>
			      <m:mi>x</m:mi>
			      <m:mn>2</m:mn>
			    </m:msub></m:ci>
			  <m:cn>2</m:cn>
			</m:apply> 
		      </m:apply>
		      <m:apply><m:power/>
			<m:ci><m:msub>
			    <m:mi>L</m:mi>
			    <m:mn>1</m:mn>
			  </m:msub></m:ci>
			<m:cn>2</m:cn>
		      </m:apply>
		    </m:apply>
		    <m:apply><m:divide/>
		      <m:apply><m:times/>
			<m:cn>2</m:cn>
			<m:ci><m:msub>
			    <m:mi>x</m:mi>
			    <m:mn>2</m:mn>
			  </m:msub></m:ci>
		      </m:apply>
		      <m:ci><m:msub>
			  <m:mi>L</m:mi>
			  <m:mn>1</m:mn>
			</m:msub></m:ci>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	      <m:ci><m:msub>
		  <m:mi>L</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci>
	    </m:apply>
	    <!-- = L_1 * sqrt[ 1 + ( (x_1)^2 + (x_2)^2 ) / (L_1)^2 + 2x_2 / L_1 ] 
	    - L_1  -->
	  </m:apply>
	</m:math>
      </equation>

      <equation id="eqna2">
	<m:math display="block">
	  <m:apply><m:eq/>
	    <m:ci><m:msub>
		<m:mi>e</m:mi>
		<m:mn>1</m:mn>
	      </m:msub></m:ci>
	    <m:apply><m:minus/>
	      <m:apply><m:plus/>
		<m:ci><m:msub>
		    <m:mi>L</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub></m:ci>
		<m:apply><m:divide/>
		  <m:apply><m:plus/>
		    <m:apply><m:power/>
		      <m:ci><m:msub>
			  <m:mi>x</m:mi>
			  <m:mn>1</m:mn>
			</m:msub></m:ci>
		     <m:cn>2</m:cn>
		    </m:apply>
		    <m:apply><m:power/>
		      <m:ci><m:msub>
			  <m:mi>x</m:mi>
			  <m:mn>2</m:mn>
			</m:msub></m:ci>
		      <m:cn>2</m:cn>
		    </m:apply> 
		  </m:apply>
		  <m:apply><m:times/>
		    <m:cn>2</m:cn>
		    <m:ci><m:msub>
			<m:mi>L</m:mi>
			<m:mn>1</m:mn>
		      </m:msub></m:ci>
		  </m:apply>
		</m:apply>
		<m:ci><m:msub>
		    <m:mi>x</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub></m:ci>
		<m:apply><m:times/>
		  <m:ci><m:msub>
		      <m:mi>L</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub></m:ci>
		  <m:apply>
		    <m:ci type="fn">O</m:ci>
		    <m:apply><m:power/>
		      <m:apply><m:plus/>
			<m:apply><m:divide/>
			  <m:apply><m:plus/>
			    <m:apply><m:power/>
			      <m:ci><m:msub>
				  <m:mi>x</m:mi>
				  <m:mn>1</m:mn>
				</m:msub></m:ci>
			      <m:cn>2</m:cn>
			    </m:apply>
			    <m:apply><m:power/>
			      <m:ci><m:msub>
				  <m:mi>x</m:mi>
				  <m:mn>2</m:mn>
				</m:msub></m:ci>
			      <m:cn>2</m:cn>
			    </m:apply> 
			  </m:apply>
			  <m:apply><m:power/>
			    <m:ci><m:msub>
				<m:mi>L</m:mi>
				<m:mn>1</m:mn>
			      </m:msub></m:ci>
			    <m:cn>2</m:cn>
			  </m:apply>
			</m:apply>
			<m:apply><m:divide/>
			  <m:apply><m:times/>
			    <m:cn>2</m:cn>
			    <m:ci><m:msub>
				<m:mi>x</m:mi>
				<m:mn>2</m:mn>
			      </m:msub></m:ci>
			  </m:apply>
			  <m:ci><m:msub>
			      <m:mi>L</m:mi>
			      <m:mn>1</m:mn>
			    </m:msub></m:ci>
			</m:apply>
		      </m:apply>
		      <m:cn>2</m:cn>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	      <m:ci><m:msub>
		  <m:mi>L</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci>
	    </m:apply>
	    <!-- = L_1 + ( (x_1)^2 + (x_2)^2 ) / (2L_1) + x_2 + L_1 *
	    O( ( ( (x_1)^2 + (x_2)^2 ) / (L_1)^2 + 2x_2 / L_1 )^2 ) - L_1 -->
	    
	    <m:apply><m:plus/>
	      <m:ci><m:msub>
		  <m:mi>x</m:mi>
		  <m:mn>2</m:mn>
		</m:msub></m:ci>
	      <m:apply><m:divide/>
		<m:apply><m:plus/>
		  <m:apply><m:power/>
		    <m:ci><m:msub>
			<m:mi>x</m:mi>
			<m:mn>1</m:mn>
		      </m:msub></m:ci>
		    <m:cn>2</m:cn>
		  </m:apply>
		  <m:apply><m:power/>
		    <m:ci><m:msub>
			<m:mi>x</m:mi>
			<m:mn>2</m:mn>
		      </m:msub></m:ci>
		    <m:cn>2</m:cn>
		  </m:apply> 
		</m:apply>
		<m:apply><m:times/>
		  <m:cn>2</m:cn>
		  <m:ci><m:msub>
		      <m:mi>L</m:mi>
		      <m:mn>1</m:mn>
		    </m:msub></m:ci>
		</m:apply>
	      </m:apply>
	      <m:apply><m:times/>
		<m:ci><m:msub>
		    <m:mi>L</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub></m:ci>
		<m:apply>
		  <m:ci type="fn">O</m:ci>
		  <m:apply><m:power/>
		    <m:apply><m:plus/>
		      <m:apply><m:divide/>
			<m:apply><m:plus/>
			  <m:apply><m:power/>
			    <m:ci><m:msub>
				<m:mi>x</m:mi>
				<m:mn>1</m:mn>
			      </m:msub></m:ci>
			    <m:cn>2</m:cn>
			  </m:apply>
			  <m:apply><m:power/>
			    <m:ci><m:msub>
				<m:mi>x</m:mi>
				<m:mn>2</m:mn>
			      </m:msub></m:ci>
			    <m:cn>2</m:cn>
			  </m:apply> 
			</m:apply>
			<m:apply><m:power/>
			  <m:ci><m:msub>
			      <m:mi>L</m:mi>
			      <m:mn>1</m:mn>
			    </m:msub></m:ci>
			  <m:cn>2</m:cn>
			</m:apply>
		      </m:apply>
		      <m:apply><m:divide/>
			<m:apply><m:times/>
			  <m:cn>2</m:cn>
			  <m:ci><m:msub>
			      <m:mi>x</m:mi>
			      <m:mn>2</m:mn>
			    </m:msub></m:ci>
			</m:apply>
			<m:ci><m:msub>
			    <m:mi>L</m:mi>
			    <m:mn>1</m:mn>
			  </m:msub></m:ci>
		      </m:apply>
		    </m:apply>
		   <m:cn>2</m:cn>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	  <!-- = ( x_2 + (x_1)^2 + (x_2)^2 ) / (2L_1) + 
	  L_1 * O( ( ( (x_1)^2 + (x_2)^2 ) / (L_1)^2 + 2x_2 / L_1 )^2 ) -->
	</m:math>
      </equation>
    </para>

    <para id="p5">
      If we now assume that
      <equation id="eqn2_7">
	<m:math display="block">
	  <m:apply><m:divide/>
	    <m:apply><m:plus/>
	      <m:apply><m:power/>
		<m:ci><m:msub>
		    <m:mi>x</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub></m:ci>
		<m:cn>2</m:cn>
	      </m:apply>
	      <m:apply><m:power/>
		<m:ci><m:msub>
		    <m:mi>x</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub></m:ci>
		<m:cn>2</m:cn>
	      </m:apply> 
	    </m:apply>
	    <m:apply><m:times/>
	      <m:cn>2</m:cn>
	      <m:ci><m:msub>
		  <m:mi>L</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci>
	    </m:apply>
	  </m:apply>
	  <!-- ( (x_1)^2 + (x_2)^2 ) / (2L_1) -->
	  
	  <m:mrow><m:mi> </m:mi>
	    <m:mtext>is small compared to</m:mtext>
	    <m:mi> </m:mi></m:mrow>
	  
	  <m:ci><m:msub>
	      <m:mi>x</m:mi>
	      <m:mn>2</m:mn>
	    </m:msub></m:ci>
	  <!-- x_2 -->
	</m:math>
      </equation>

      then, as the <m:math><m:ci>O</m:ci></m:math> term is even
      smaller, we may neglect all but the first terms in the above and
      so arrive at
      <m:math display="block">
	<m:apply><m:eq/>
	  <m:ci><m:msub>
	      <m:mi>e</m:mi>
	      <m:mn>1</m:mn>
	    </m:msub></m:ci>
	  <m:ci><m:msub>
	      <m:mi>x</m:mi>
	      <m:mn>2</m:mn>
	    </m:msub></m:ci> 
	</m:apply>
	<!-- e_1 = x_2 -->
      </m:math>

      To take a concrete example, if 
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>L</m:mi>
	    <m:mn>1</m:mn>
	  </m:msub></m:ci>
      </m:math>
      <!-- L_1 -->

      is one meter and
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>x</m:mi>
	    <m:mn>1</m:mn>
	  </m:msub></m:ci>
      </m:math>
      
      and
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>x</m:mi>
	    <m:mn>2</m:mn>
	  </m:msub></m:ci>
      </m:math>
      <!-- x_2 -->

      are each one centimeter, then
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>x</m:mi>
	    <m:mn>2</m:mn>
	  </m:msub></m:ci>
      </m:math>
      <!-- x_2 -->

      is one hundred times
      <m:math display="inline">
	<m:apply><m:divide/>
	  <m:apply><m:plus/>
	    <m:apply><m:power/>
	      <m:ci><m:msub>
		  <m:mi>x</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci>
	      <m:cn>2</m:cn>
	    </m:apply>
	    <m:apply><m:power/>
	      <m:ci><m:msub>
		  <m:mi>x</m:mi>
		  <m:mn>2</m:mn>
		</m:msub></m:ci>
	      <m:cn>2</m:cn>
	    </m:apply> 
	  </m:apply>
	  <m:apply><m:times/>
	    <m:cn>2</m:cn>
	    <m:ci><m:msub>
		<m:mi>L</m:mi>
		<m:mn>1</m:mn>
	      </m:msub></m:ci>
	  </m:apply>
	</m:apply>
      </m:math>.
      <!-- ( (x_1)^2 + (x_2)^2 ) / (2L_1) -->
    </para>

    <para id="p6">
      With regard to the second spring, arguing as above, its elongation is
      (approximately) its stretch along its initial direction. As its initial
      direction is horizontal, its elongation is just the difference of the
      respective horizontal end displacements, namely,
      
      <m:math display="block">
	<m:apply><m:eq/>
	  <m:ci><m:msub>
	      <m:mi>e</m:mi>
	      <m:mn>2</m:mn>
	    </m:msub></m:ci>
	  <m:apply><m:minus/>
	    <m:ci><m:msub>
		<m:mi>x</m:mi>
		<m:mn>3</m:mn>
	      </m:msub></m:ci>
	    <m:ci><m:msub>
		<m:mi>x</m:mi>
		<m:mn>1</m:mn>
	      </m:msub></m:ci>
	  </m:apply>
	</m:apply>
	<!-- e_2 = x_3 - x_1 -->
      </m:math>

      Finally, the elongation of the third spring is (approximately)
      the difference of its respective vertical end displacements,
      <foreign>i.e.</foreign>,

      <m:math display="block">
	<m:apply><m:eq/>
	  <m:ci><m:msub>
	      <m:mi>e</m:mi>
	      <m:mn>3</m:mn>
	    </m:msub></m:ci>
	  <m:ci><m:msub>
	      <m:mi>x</m:mi>
	      <m:mn>4</m:mn>
	    </m:msub></m:ci> 
	</m:apply>
	<!-- e_3 = x_4 -->
      </m:math>

      We encode these three elongations in
      <m:math display="block">
	<m:apply><m:eq/>
	  <m:ci type="vector">e</m:ci>
	  <m:apply><m:times/>
	    <m:ci type="matrix">A</m:ci>
	    <m:ci type="vector">x</m:ci>
	  </m:apply>
	</m:apply>
	<!-- e = Ax -->

	<m:mrow>
	  <m:mi> </m:mi><m:mi> </m:mi>
	  <m:mi> </m:mi><m:mi> </m:mi>
	  <m:mtext>where</m:mtext>
	  <m:mi> </m:mi><m:mi> </m:mi>
	  <m:mi> </m:mi><m:mi> </m:mi>
	</m:mrow>

	<m:apply><m:eq/>
	  <m:ci type="matrix">A</m:ci>
	  <m:matrix>
	    <m:matrixrow><m:cn>0</m:cn><m:cn>1</m:cn><m:cn>0</m:cn><m:cn>0</m:cn>
	    </m:matrixrow>
	    <m:matrixrow><m:cn>-1</m:cn><m:cn>0</m:cn><m:cn>1</m:cn><m:cn>0</m:cn>
	    </m:matrixrow>
	    <m:matrixrow><m:cn>0</m:cn><m:cn>0</m:cn><m:cn>0</m:cn><m:cn>1</m:cn>
	    </m:matrixrow>
	  </m:matrix>
	</m:apply>
	<!-- A = [  0  1  0  0 
	-1  0  1  0
	0  0  0  1  ] -->
      </m:math>

      <cnxn target="hookes_law" document="m10146" strength="7">Hooke's
      law </cnxn> is an elemental piece of physics and is not
      perturbed by our leap from uniaxial to biaxial structures. The
      upshot is that the restoring force in each spring is still
      proportional to its elongation, <foreign>i.e.</foreign>,

      <m:math display="inline">
	<m:apply><m:eq/>
	  <m:ci><m:msub>
	      <m:mi>y</m:mi>
	      <m:mi>j</m:mi>
	    </m:msub></m:ci>
	  <m:apply><m:times/>
	    <m:ci><m:msub>
		<m:mi>k</m:mi>
		<m:mi>j</m:mi>
	      </m:msub></m:ci>
	    <m:ci><m:msub>
		<m:mi>e</m:mi>
		<m:mi>j</m:mi>
	      </m:msub></m:ci>
	  </m:apply>
	</m:apply>
      </m:math>
      <!-- y_j = k_j * e_j -->
      
      where 
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>k</m:mi>
	    <m:mi>j</m:mi>
	  </m:msub></m:ci>
      </m:math>
      <!-- k_j -->

      is the stiffness of the <m:math display="inline"><m:ci>j</m:ci></m:math>th spring. In matrix
      terms,
      <m:math display="block">
	<m:apply><m:eq/>
	  <m:ci type="vector">y</m:ci>
	  <m:apply><m:times/>
	    <m:ci type="matrix">K</m:ci>
	    <m:ci type="vector">e</m:ci>
	  </m:apply>
	</m:apply>
	<!-- y = Ke -->
	
	<m:mrow>
	  <m:mi> </m:mi><m:mi> </m:mi>
	  <m:mi> </m:mi><m:mi> </m:mi>
	  <m:mtext>where</m:mtext>
	  <m:mi> </m:mi><m:mi> </m:mi>
	  <m:mi> </m:mi><m:mi> </m:mi>
	</m:mrow>
	
	<m:apply><m:eq/>
	  <m:ci type="matrix">K</m:ci>
	  <m:matrix>
	    <m:matrixrow>
	      <m:ci><m:msub>
		  <m:mi>k</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci>
	      <m:cn>0</m:cn><m:cn>0</m:cn>
	    </m:matrixrow>
	    <m:matrixrow><m:cn>0</m:cn>
	      <m:ci><m:msub>
		  <m:mi>k</m:mi>
		  <m:mn>2</m:mn>
		</m:msub></m:ci>
	      <m:cn>0</m:cn>
	    </m:matrixrow>
	    <m:matrixrow><m:cn>0</m:cn><m:cn>0</m:cn>
	      <m:ci><m:msub>
		  <m:mi>k</m:mi>
		  <m:mn>3</m:mn>
		</m:msub></m:ci>
	    </m:matrixrow>
	  </m:matrix>
	</m:apply>
	<!-- K = [ k_1  0  0 
	0  k_2 0
	0   0 k_3 ] -->
      </m:math>

      Balancing horizontal and vertical forces at
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>m</m:mi>
	    <m:mn>1</m:mn>
	  </m:msub></m:ci>
      </m:math>
      <!-- m_1 -->

      brings
      <m:math display="block">
	<m:apply><m:eq/>
	  <m:apply><m:minus/>
	    <m:apply><m:minus/>
	      <m:ci><m:msub>
		  <m:mi>y</m:mi>
		  <m:mn>2</m:mn>
		</m:msub></m:ci>
	    </m:apply>
	    <m:ci><m:msub>
		<m:mi>f</m:mi>
		<m:mn>1</m:mn>
	      </m:msub></m:ci>
	  </m:apply>
	  <m:cn>0</m:cn>
	</m:apply>
      </m:math>
      <!-- -y_2 - f_1 = 0 -->
      and
      <m:math display="block">
	<m:apply><m:eq/>
	  <m:apply><m:minus/>
	    <m:ci><m:msub>
		<m:mi>y</m:mi>
		<m:mn>1</m:mn>
	      </m:msub></m:ci>
	    <m:ci><m:msub>
		<m:mi>f</m:mi>
		<m:mn>2</m:mn>
	      </m:msub></m:ci>
	  </m:apply>
	  <m:cn>0</m:cn>
	</m:apply>
	<!-- y_1 - f_2 = 0 -->
      </m:math>

      while balancing horizontal and vertical forces at 
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>m</m:mi>
	    <m:mn>2</m:mn>
	  </m:msub></m:ci>
      </m:math>
      <!-- m_2 -->

      brings
      <m:math display="block">
	<m:apply><m:eq/>
	  <m:apply><m:minus/>
	    <m:ci><m:msub>
		<m:mi>y</m:mi>
		<m:mn>2</m:mn>
	      </m:msub></m:ci>
	    <m:ci><m:msub>
		<m:mi>f</m:mi>
		<m:mn>3</m:mn>
	      </m:msub></m:ci>
	  </m:apply>
	  <m:cn>0</m:cn>
	</m:apply>
	<!-- y_2 - f_3 = 0 -->
      </m:math> and

      <m:math display="block">
	<m:apply><m:eq/>
	  <m:apply><m:minus/>
	    <m:ci><m:msub>
		<m:mi>y</m:mi>
		<m:mn>3</m:mn>
	      </m:msub></m:ci>
	    <m:ci><m:msub>
		<m:mi>f</m:mi>
		<m:mn>4</m:mn>
	      </m:msub></m:ci>
	  </m:apply>
	  <m:cn>0</m:cn>
	</m:apply>
	<!-- y_3 - f_4 = 0 -->
      </m:math>

      We assemble these into 
      <m:math display="block">
	<m:apply><m:eq/>
	  <m:apply><m:times/>
	    <m:ci type="matrix">B</m:ci>
	    <m:ci type="vector">y</m:ci>
	  </m:apply>
	  <m:ci type="vector">f</m:ci>
	</m:apply>
	<!-- By = f -->
	
	<m:mrow>
	  <m:mi> </m:mi><m:mi> </m:mi>
	  <m:mi> </m:mi><m:mi> </m:mi>
	  <m:mtext>where</m:mtext>
	  <m:mi> </m:mi><m:mi> </m:mi>
	  <m:mi> </m:mi><m:mi> </m:mi>
	</m:mrow>

	<m:apply><m:eq/>
	  <m:ci type="matrix">B</m:ci>
	  <m:matrix>
	    <m:matrixrow><m:cn>0</m:cn><m:cn>-1</m:cn><m:cn>0</m:cn></m:matrixrow>
	    <m:matrixrow><m:cn>1</m:cn><m:cn>0</m:cn><m:cn>0</m:cn></m:matrixrow>
	    <m:matrixrow><m:cn>0</m:cn><m:cn>1</m:cn><m:cn>0</m:cn></m:matrixrow>
	    <m:matrixrow><m:cn>0</m:cn><m:cn>0</m:cn><m:cn>1</m:cn></m:matrixrow>
	  </m:matrix>
	</m:apply>
	<m:mtext>,</m:mtext>
	<!-- B = [  0 -1  0 
	1  0  0
	0  1  0
	0  0  1  ]  -->
      </m:math>

      and recognize, as expected, that <m:math><m:ci type="matrix">B</m:ci></m:math> is nothing more than

      <m:math display="inline">
	<m:apply><m:transpose/>
	  <m:ci type="matrix">A</m:ci>
	</m:apply>
      </m:math>.  Putting the pieces together, we find that
      <m:math><m:ci type="vector">x</m:ci></m:math> must satisfy

      <m:math display="inline">
	<m:apply><m:eq/>
	  <m:apply><m:times/>
	    <m:ci type="matrix">S</m:ci>
	    <m:ci type="vector">x</m:ci>
	  </m:apply>
	  <m:ci type="vector">f</m:ci>
	</m:apply>
	<!-- Sx = f -->
      </m:math>

      where 
      <m:math display="block">
	<m:apply><m:eq/>
	  <m:ci type="matrix">S</m:ci>
	  <m:apply><m:times/>
	    <m:apply><m:transpose/>
	      <m:ci type="matrix">A</m:ci>
	    </m:apply>
	    <m:ci type="matrix">K</m:ci>
	    <m:ci type="matrix">A</m:ci>
	  </m:apply>
	  <m:matrix>
	    <m:matrixrow>
	      <m:ci><m:msub>
		  <m:mi>k</m:mi>
		  <m:mn>2</m:mn>
		</m:msub></m:ci>
	      <m:cn>0</m:cn>
	      <m:apply><m:minus/>
		<m:ci><m:msub>
		    <m:mi>k</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub></m:ci>
	      </m:apply>
	      <m:cn>0</m:cn>
	    </m:matrixrow>
	    <m:matrixrow>
	      <m:cn>0</m:cn>
	      <m:ci><m:msub>
		  <m:mi>k</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci>
	      <m:cn>0</m:cn><m:cn>0</m:cn>
	    </m:matrixrow>
	    <m:matrixrow>
	      <m:apply><m:minus/>
		<m:ci><m:msub>
		    <m:mi>k</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub></m:ci>
	      </m:apply>
	      <m:cn>0</m:cn>
	      <m:ci><m:msub>
		  <m:mi>k</m:mi>
		  <m:mn>2</m:mn>
		</m:msub></m:ci>
	      <m:cn>0</m:cn>
	    </m:matrixrow>
	    <m:matrixrow>
	      <m:cn>0</m:cn><m:cn>0</m:cn><m:cn>0</m:cn>
	      <m:ci><m:msub>
		  <m:mi>k</m:mi>
		  <m:mn>3</m:mn>
		</m:msub></m:ci>
	    </m:matrixrow>
	  </m:matrix>
	</m:apply>
      </m:math>
      <!-- S = A'KA = [  k_2  0  -k_2  0  
      0  k_1   0   0
      -k_2  0   k_2  0
      0   0    0  k_3 ]  -->
    </para>

    <para id="p7">
      Applying one step of <cnxn target="gaussian_elimination" document="m10146" strength="6">Gaussian Elimination
      </cnxn> brings
      
      <m:math display="block">
	<m:apply><m:eq/>
	  <m:apply><m:times/>
	    <m:matrix>
	      <m:matrixrow>
		<m:ci><m:msub>
		    <m:mi>k</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub></m:ci>
		<m:cn>0</m:cn>
		<m:apply><m:minus/>
		  <m:ci><m:msub>
		      <m:mi>k</m:mi>
		      <m:mn>2</m:mn>
		    </m:msub></m:ci>
		</m:apply>
		<m:cn>0</m:cn>
	      </m:matrixrow>
	      <m:matrixrow>
		<m:cn>0</m:cn>
		<m:ci><m:msub>
		    <m:mi>k</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub></m:ci>
		<m:cn>0</m:cn><m:cn>0</m:cn>
	      </m:matrixrow>
	      <m:matrixrow>
		<m:cn>0</m:cn><m:cn>0</m:cn><m:cn>0</m:cn><m:cn>0</m:cn>
	      </m:matrixrow>
	      <m:matrixrow>
		<m:cn>0</m:cn><m:cn>0</m:cn><m:cn>0</m:cn>
		<m:ci><m:msub>
		    <m:mi>k</m:mi>
		    <m:mn>3</m:mn>
		  </m:msub></m:ci>
	      </m:matrixrow>
	    </m:matrix>
	    <m:vector>
	      <m:ci><m:msub>
		  <m:mi>x</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci>
	      <m:ci><m:msub>
		  <m:mi>x</m:mi>
		  <m:mn>2</m:mn>
		</m:msub></m:ci>
	      <m:ci><m:msub>
		  <m:mi>x</m:mi>
		  <m:mn>3</m:mn>
		</m:msub></m:ci>
	      <m:ci><m:msub>
		  <m:mi>x</m:mi>
		  <m:mn>4</m:mn>
		</m:msub></m:ci>
	    </m:vector>
	  </m:apply>
	  <m:vector>
	    <m:ci><m:msub>
		<m:mi>f</m:mi>
		<m:mn>1</m:mn>
	      </m:msub></m:ci>
	    <m:ci><m:msub>
		<m:mi>f</m:mi>
		<m:mn>2</m:mn>
	      </m:msub></m:ci>
	    <m:apply><m:plus/>
	      <m:ci><m:msub>
		  <m:mi>f</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci>
	      <m:ci><m:msub>
		  <m:mi>f</m:mi>
		  <m:mn>3</m:mn>
		</m:msub></m:ci>
	    </m:apply>
	    <m:ci><m:msub>
		<m:mi>f</m:mi>
		<m:mn>4</m:mn>
	      </m:msub></m:ci>
	  </m:vector>
	</m:apply>
	<!-- [  k_2  0 -k_2  0  
	0  k_1  0   0
	0   0   0   0
	0   0   0  k_3  ] * [ x_1; x_2; x_3; x_4 ] 
	= [ f_1; f_2; f_1 + f_3; f_4 ]   -->
      </m:math>

      and back substitution delivers
      <m:math display="block">
	<m:apply><m:eq/>
	  <m:ci><m:msub>
	      <m:mi>x</m:mi>
	      <m:mn>4</m:mn>
	    </m:msub></m:ci> 
	  <m:apply><m:divide/>
	    <m:ci><m:msub>
		<m:mi>f</m:mi>
		<m:mn>4</m:mn>
	      </m:msub></m:ci>
	    <m:ci><m:msub>
		<m:mi>k</m:mi>
		<m:mn>3</m:mn>
	      </m:msub></m:ci>
	  </m:apply>
	</m:apply>
	<!-- x_4 = f_4 / k_3 -->
      </m:math>

      <m:math display="block">
	<m:apply><m:eq/>
	  <m:cn>0</m:cn>
	  <m:apply><m:plus/>
	    <m:ci><m:msub>
		<m:mi>f</m:mi>
		<m:mn>1</m:mn>
	      </m:msub></m:ci>
	    <m:ci><m:msub>
		<m:mi>f</m:mi>
		<m:mn>3</m:mn>
	      </m:msub></m:ci>
	  </m:apply>
	</m:apply>
	<!-- 0 = f_1 + f_3 -->
      </m:math>

      <m:math display="block">
	<m:apply><m:eq/>
	  <m:ci><m:msub>
	      <m:mi>x</m:mi>
	      <m:mn>2</m:mn>
	    </m:msub></m:ci> 
	  <m:apply><m:divide/>
	    <m:ci><m:msub>
		<m:mi>f</m:mi>
		<m:mn>2</m:mn>
	      </m:msub></m:ci> 
	    <m:ci><m:msub>
		<m:mi>k</m:mi>
		<m:mn>1</m:mn>
	      </m:msub></m:ci> 
	  </m:apply>
	</m:apply>
	<!-- x_2 = f_2 / k_1 -->
      </m:math>
      
      <m:math display="block">
	<m:apply><m:eq/>
	  <m:apply><m:minus/>
	    <m:ci><m:msub>
		<m:mi>x</m:mi>
		<m:mn>1</m:mn>
	      </m:msub></m:ci> 
	    <m:ci><m:msub>
		<m:mi>x</m:mi>
		<m:mn>3</m:mn>
	      </m:msub></m:ci>
	  </m:apply>
	  <m:apply><m:divide/>
	    <m:ci><m:msub>
		<m:mi>f</m:mi>
		<m:mn>1</m:mn>
	      </m:msub></m:ci> 
	    <m:ci><m:msub>
		<m:mi>k</m:mi>
		<m:mn>2</m:mn>
	      </m:msub></m:ci>
	  </m:apply>
	</m:apply>
	<!-- x_1 - x_3 = f_1 / k_2 -->
      </m:math>
    </para>

    <para id="p8">
      The second of these is remarkable in that it contains no
      components of <m:math><m:ci type="vector">x</m:ci></m:math>.
      Instead, it provides a condition on <m:math><m:ci type="vector">f</m:ci></m:math>.  In mechanical terms, it states
      that there can be no equilibrium unless the horizontal forces on
      the two masses are equal and opposite. Of course one could have
      observed this directly from the layout of the truss. In modern,
      three--dimensional structures with thousands of members meant to
      shelter or convey humans one should not however be satisfied
      with the `visual' integrity of the structure.  In particular,
      one desires a detailed description of all loads that can, and,
      especially, all loads that can not, be equilibrated by the
      proposed truss. In algebraic terms, given a matrix <m:math display="inline"><m:ci type="matrix">S</m:ci></m:math>, one
      desires a characterization of

      <list id="matrix_desires" type="enumerated">
	<item>
	  all those <m:math><m:ci type="vector">f</m:ci></m:math> for
	  which

	  <m:math display="inline">
	    <m:apply><m:eq/>
	      <m:apply><m:times/>
		<m:ci type="matrix">S</m:ci>
		<m:ci type="vector">x</m:ci>
	      </m:apply>
	      <m:ci type="vector">f</m:ci>
	    </m:apply>
	    <!-- Sx = f -->
	  </m:math>
	  
	  <emphasis>possesses</emphasis> a solution
	</item>

	<item>
	  all those <m:math><m:ci type="vector">f</m:ci></m:math> for
	  which

	  <m:math display="inline">
	    <m:apply><m:eq/>
	      <m:apply><m:times/>
		<m:ci type="matrix">S</m:ci>
		<m:ci type="vector">x</m:ci>
	      </m:apply>
	      <m:ci type="vector">f</m:ci>
	    </m:apply>
	    <!-- Sx = f -->
	  </m:math>
	  
	  <emphasis>does not</emphasis> possess a solution
	</item>
      </list>

      We will eventually provide such a characterization in our later
      discussion of the <cnxn document="m10266" strength="4">column
      space </cnxn> of a matrix.
    </para>

    <para id="p9">
      Supposing now that 
    <m:math display="inline">
      <m:apply><m:eq/>
	<m:apply><m:plus/>
	  <m:ci><m:msub>
	      <m:mi>f</m:mi>
	      <m:mn>1</m:mn>
	    </m:msub></m:ci> 
	  <m:ci><m:msub>
	      <m:mi>f</m:mi>
	      <m:mn>3</m:mn>
	    </m:msub></m:ci>
	</m:apply>
	<m:cn>0</m:cn>
      </m:apply>
    </m:math>
    <!-- f_1 + f_3 = 0 -->

      we note that although the system above is consistent it still
      fails to uniquely determine the four components of <m:math display="inline"><m:ci type="vector">x</m:ci></m:math>.  In
      particular, it specifies only the difference between
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>x</m:mi>
	    <m:mn>1</m:mn>
	  </m:msub></m:ci> 
      </m:math>
      <!-- x_1 -->

      and
      <m:math display="inline">
	<m:ci><m:msub>
	    <m:mi>x</m:mi>
	    <m:mn>3</m:mn>
	  </m:msub></m:ci> 
      </m:math>.
      <!-- x_3 -->

      As a result both 
      <m:math display="block">
	<m:apply><m:eq/>
	  <m:ci type="vector">x</m:ci>
	  <m:vector>
	    <m:apply><m:divide/>
	      <m:ci><m:msub>
		  <m:mi>f</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci> 
	      <m:ci><m:msub>
		  <m:mi>k</m:mi>
		  <m:mn>2</m:mn>
		</m:msub></m:ci>
	    </m:apply>
	    <m:apply><m:divide/>
	      <m:ci><m:msub>
		  <m:mi>f</m:mi>
		  <m:mn>2</m:mn>
		</m:msub></m:ci> 
	      <m:ci><m:msub>
		  <m:mi>k</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci>
	    </m:apply>
	    <m:cn>0</m:cn>
	    <m:apply><m:divide/>
	      <m:ci><m:msub>
		  <m:mi>f</m:mi>
		  <m:mn>4</m:mn>
		</m:msub></m:ci> 
	      <m:ci><m:msub>
		  <m:mi>k</m:mi>
		  <m:mn>3</m:mn>
		</m:msub></m:ci>
	    </m:apply>
	  </m:vector>
	</m:apply>
	<!-- x = [ f_1 / k_2; f_2 / k_1 ; 0 ; f_4 / k_3 ] -->

	<m:mtext>  and  </m:mtext>

	<m:apply><m:eq/>
	  <m:ci type="vector">x</m:ci>
	  <m:vector>
	    <m:cn>0</m:cn>
	    <m:apply><m:divide/>
	      <m:ci><m:msub>
		  <m:mi>f</m:mi>
		  <m:mn>2</m:mn>
		</m:msub></m:ci> 
	      <m:ci><m:msub>
		  <m:mi>k</m:mi>
		  <m:mn>1</m:mn>
		</m:msub></m:ci>
	    </m:apply>
	    <m:apply><m:minus/>
	      <m:apply><m:divide/>
		<m:ci><m:msub>
		    <m:mi>f</m:mi>
		    <m:mn>1</m:mn>
		  </m:msub></m:ci> 
		<m:ci><m:msub>
		    <m:mi>k</m:mi>
		    <m:mn>2</m:mn>
		  </m:msub></m:ci>
	      </m:apply>
	    </m:apply>
	    <m:apply><m:divide/>
	      <m:ci><m:msub>
		  <m:mi>f</m:mi>
		  <m:mn>4</m:mn>
		</m:msub></m:ci> 
	      <m:ci><m:msub>
		  <m:mi>k</m:mi>
		  <m:mn>3</m:mn>
		</m:msub></m:ci>
	    </m:apply>
	  </m:vector>
	</m:apply>
	<!-- x = [ 0; f_2 / k_1; -f_1 / k_2; f_4 / k_3 ] -->
      </m:math>

      satisfy 
      <m:math display="inline">
	<m:apply><m:eq/>
	  <m:apply><m:times/>
	    <m:ci type="matrix">S</m:ci>
	    <m:ci type="vector">x</m:ci>
	  </m:apply>
	  <m:ci type="vector">f</m:ci>
	</m:apply>
	<!-- Sx = f -->
      </m:math>.

      In fact, one may add to either an arbitrary multiple of
      <equation id="eqn2_8">
	<m:math display="block">
	  <m:apply><m:equivalent/>
	    <m:ci type="vector">z</m:ci>
	    <m:vector>
	      <m:cn>1</m:cn><m:cn>0</m:cn><m:cn>1</m:cn><m:cn>0</m:cn>
	    </m:vector>
	  </m:apply>
	</m:math>
      </equation>
      <!-- z == [1; 0; 1; 0] -->

      and still have a solution of 
      <m:math display="inline">
	<m:apply><m:eq/>
	  <m:apply><m:times/>
	    <m:ci type="matrix">S</m:ci>
	    <m:ci type="vector">x</m:ci>
	  </m:apply>
	  <m:ci type="vector">f</m:ci>
	</m:apply>
	<!-- Sx = f -->
      </m:math>.

      Searching for the source of this lack of uniqueness we observe
      some redundancies in the columns of <m:math><m:ci type="matrix">S</m:ci></m:math>. In particular, the third is
      simply the opposite of the first. As <m:math display="inline"><m:ci type="matrix">S</m:ci></m:math> is simply

      <m:math display="inline">
	<m:apply><m:times/>
	  <m:apply><m:transpose/>
	    <m:ci type="matrix">A</m:ci>
	  </m:apply>
	  <m:ci type="matrix">K</m:ci>
	  <m:ci type="matrix">A</m:ci>
	</m:apply>
      </m:math>
      <!-- A'KA -->

      we recognize that the original fault lies with <m:math><m:ci type="matrix">A</m:ci></m:math>, where again, the first and
      third columns are opposites. These redundancies are encoded in
      <m:math><m:ci type="vector">z</m:ci></m:math> in the sense that

      <m:math display="block">
	<m:apply><m:eq/>
	  <m:apply><m:times/>
	    <m:ci type="matrix">A</m:ci>
	    <m:ci type="vector">z</m:ci>
	  </m:apply>
	  <m:ci type="vector">0</m:ci>
	</m:apply>
      </m:math>
      <!-- Az = 0 -->

      Interpreting this in mechanical terms, we view <m:math><m:ci type="vector">z</m:ci></m:math> as a displacement and

      <m:math display="inline">
	<m:apply><m:times/>
	  <m:ci type="matrix">A</m:ci>
	  <m:ci type="vector">z</m:ci>
	</m:apply>
      </m:math>
      <!-- Az -->
      as the resulting elongation. In 

      <m:math display="block">
	<m:apply><m:eq/>
	  <m:apply><m:times/>
	    <m:ci type="matrix">A</m:ci>
	    <m:ci type="vector">z</m:ci>
	  </m:apply>
	  <m:ci type="vector">0</m:ci>
	</m:apply>
      </m:math>
      <!-- Az = 0 -->
      
      we see a nonzero displacement producing zero elongation. One
      says in this case that the truss deforms without doing any work
      and speaks of <m:math><m:ci type="vector">z</m:ci></m:math> as
      an <term>unstable mode</term>.  Again, this mode could have been
      observed by a simple glance at <cnxn target="simple_swing" strength="8"/>.  Such is not the case for more complex
      structures and so the engineer seeks a systematic means by which
      <emphasis>all</emphasis> unstable modes may be identified. We
      shall see later that all these modes are captured by the <cnxn document="m10293" strength="5">null space</cnxn> of <m:math display="inline"><m:ci type="matrix">A</m:ci></m:math>.
    </para>

    <para id="p10">
      From
      <m:math display="block">
	<m:apply><m:eq/>
	  <m:apply><m:times/>
	    <m:ci type="matrix">S</m:ci>
	    <m:ci type="vector">z</m:ci>
	  </m:apply>
	  <m:ci type="vector">0</m:ci>
	</m:apply>
      </m:math>
      <!-- Sz = 0 -->

      one easily deduces that <m:math display="inline"><m:ci type="matrix">S</m:ci></m:math> is <cnxn target="singular" document="m10146" strength="7">singular</cnxn>.  More precisely,
      if

      <m:math display="inline">
	<m:apply><m:inverse/>
	  <m:ci type="matrix">S</m:ci>
	</m:apply>
      </m:math>
      <!-- S^(-1) -->

      were to exist then
      <m:math display="inline">
	<m:apply><m:times/>
	  <m:apply><m:inverse/>
	    <m:ci type="matrix">S</m:ci>
	  </m:apply>
	  <m:ci type="matrix">S</m:ci>
	  <m:ci type="vector">z</m:ci>
	</m:apply>
      </m:math>
      <!-- S^(-1) * S * z -->

      would equal
      <m:math display="inline">
	<m:apply><m:times/>
	  <m:apply><m:inverse/>
	    <m:ci type="matrix">S</m:ci>
	  </m:apply>
	  <m:ci type="vector">0</m:ci>
	</m:apply>
      </m:math>, <foreign>i.e.</foreign>,

      <m:math display="inline">
	<m:apply><m:eq/>
	  <m:ci type="vector">z</m:ci>
	  <m:ci type="vector">0</m:ci>
	</m:apply>
      </m:math>, contrary to <cnxn target="eqn2_8" strength="9"/>. As
      a result, Matlab will fail to solve

      <m:math display="inline">
	<m:apply><m:eq/>
	  <m:apply><m:times/>
	    <m:ci type="matrix">S</m:ci>
	    <m:ci type="vector">x</m:ci>
	  </m:apply>
	  <m:ci type="vector">f</m:ci>
	</m:apply>
	<!-- Sx = f -->
      </m:math>
      
      even when <m:math display="inline"><m:ci type="vector">f</m:ci></m:math> is a force that the truss can
      equilibrate.  One way out is to use the
      <term>pseudo-inverse</term>, as we shall see in the <cnxn document="m10148" strength="8">General Planar Truss</cnxn> module.
    </para>
  </content>
</document>
