<?xml version="1.0" encoding="iso-8859-1"?>
<!-- tenseg/book/chap7_2.xml  A Practical Guide to Tensegrity Design
     Copyright 2004-2008 Robert William Burkhardt, Jr. -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" 
          "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd"
          [<!ENTITY mathml "http://www.w3.org/1998/Math/MathML">]>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=iso-8859-1"/>
<meta name="keywords"
      content="tensegrity, treatise, how-to, primer, thesis, mathematics,
               stress, force, endogenous, Envelope Theorem,
               Principle of Minimum Potential Energy, economics"/>
<meta name="description"
      content="Analyzing endogenous member forces in tensegrities."/>
<title>A Practical Guide to Tensegrity Design:
7.2&nbsp;Endogenous Member Forces</title>
<link rel="stylesheet" type="text/css" href="tenseg.css"/>
</head>

<body>
<p class="link">
A Practical Guide to Tensegrity Design<br/>
<a href="index.html#chap7_2">Table of Contents</a><br/>
7.1&nbsp;<a href="chap7_1.html">Force Analysis:  Introduction</a>
</p>

<p class="section-header-level1" id="stress_internal">
7.2&nbsp;Endogenous Member Forces
</p>

<p class="section-header-level2" id="stress_internal_method">
7.2.1&nbsp;Endogenous Force Analysis:  Method
</p>

<p>
The analysis of endogenous forces falls in
large measure out of the mathematical programming procedures
which were used to design the structure.  This is due to the fact that the
distribution of forces in the structure can be viewed as the solution to
an extremal problem very similar to the one which is solved to design
the structure.
In this new problem, potential energy is being minimized instead of
tendon lengths.  For members appearing as constraints,
the relative force the member is subject to is obtained merely
by differentiating the objective function with respect to the
constraint value and multiplying the result by minus the member
length (the second root of the constraint value).  For members
appearing in the objective function, the relative force is just
the member length multiplied by its weight in the objective function.
These results can be scaled up or down
according to how hard the structure is to be tensioned.
</p>

<p>
The analysis of endogenous forces, also called prestress forces, assumes the
structure is floating in space and not subject to external loads.
The analysis comes back to Earth when the response of members to
external loads is examined in <a href="chap7_3.xml">Section&nbsp;7.3</a>.
</p>

<p class="section-header-level2" id="stress_internal_justification1">
7.2.2&nbsp;Endogenous Force Analysis:  A Justification for the Method
</p>

<p>
The Principle of Minimum Potential Energy says that any
system in stable equilibrium is at a local minimum in its
potential energy.
Theodore Tauchert<sup><a href="#tx3" id="rf3">3</a></sup>
gives the following formal statement of this principle:
</p>

<blockquote><p>
  Of all displacement fields which satisfy the prescribed
  constraint conditions, the correct state is that which makes
  the total potential energy of the structure a minimum.
</p></blockquote>

<p>
In a tensegrity system, the potential energy is the energy bound
up in the tendons and struts.  When a member changes length, its
potential energy changes according to how much work is done on
it:<sup><a href="#tx4" id="rf4">4</a></sup>
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<mo>d</mo><msub><mi>e</mi><msub><mi>i</mi><mo>m</mo></msub></msub>
<mo>=</mo><msub><mi>f</mi><msub><mi>i</mi><mo>m</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><msub><mi>l</mi><msub><mi>i</mi><mo>m</mo></msub></msub>
</mrow></math>
</p>

<p>
where
<math xmlns="&mathml;">
<mrow><mo>d</mo><msub><mi>e</mi><msub><mi>i</mi><mo>m</mo></msub></msub></mrow>
</math>
is the change in potential energy of the
<math xmlns="&mathml;">
<mrow><msub><mi>i</mi><mo>m</mo></msub><mtext>th</mtext></mrow>
</math>
member,
<math xmlns="&mathml;">
<msub><mi>f</mi><msub><mi>i</mi><mo>m</mo></msub></msub>
</math>
is the signed magnitude of the force on the member and
<math xmlns="&mathml;">
<mrow><mo>d</mo><msub><mi>l</mi><msub><mi>i</mi><mo>m</mo></msub></msub>
</mrow></math> is the change in
length of the member.  The usual convention that
<math xmlns="&mathml;">
<msub><mi>f</mi><msub><mi>i</mi><mo>m</mo></msub></msub></math> is
negative when the force is compressive and positive when the
force is tensile applies here.  If the system is in equilibrium, a small
feasible<sup><a href="#tx5" id="rf5">5</a></sup>
change in the lengths of all the members should
result in a zero change in the aggregate potential energy of the
system since that potential energy must be at a
minimum.<sup><a href="#tx6" id="rf6">6</a></sup>
The condition for zero aggregate energy change can be summarized as:
</p>

<p class="center">
<math xmlns="&mathml;"><mrow><mn>0</mn><mo>=</mo>
<mo>d</mo><msub><mi>e</mi><mn>1</mn></msub><mo>+</mo>
<mo>d</mo><msub><mi>e</mi><mn>2</mn></msub><mo>+</mo>
<mi>&sdot;&sdot;&sdot;</mi><mo>+</mo>
<mo>d</mo><msub><mi>e</mi><msub><mi>n</mi><mo>m</mo></msub></msub>
</mrow></math>
</p>

<p>
where, as in <a href="chap3.xml">Chapter&nbsp;3</a>,
<math xmlns="&mathml;"><msub><mi>n</mi><mo>m</mo></msub></math>
is the number of members.
</p>

<p>
Using the other formula, this can be rewritten as:
</p>

<p class="center">
<math xmlns="&mathml;"><mrow><mn>0</mn><mo>=</mo>
<msub><mi>f</mi><mn>1</mn></msub><mo>&InvisibleTimes;</mo>
<mo>d</mo><msub><mi>l</mi><mn>1</mn></msub><mo>+</mo>
<msub><mi>f</mi><mn>2</mn></msub><mo>&InvisibleTimes;</mo>
<mo>d</mo><msub><mi>l</mi><mn>2</mn></msub><mo>+</mo>
<mi>&sdot;&sdot;&sdot;</mi><mo>+</mo>
<msub><mi>f</mi><msub><mi>n</mi><mo>m</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><msub><mi>l</mi><msub><mi>n</mi><mo>m</mo></msub></msub>
</mrow></math>
</p>

<p>
How does this relate to the mathematical
programming problem of <a href="chap3.xml">Chapter&nbsp;3</a>?
Since members 1 through
<math xmlns="&mathml;"><msub><mi>n</mi><mo>o</mo></msub></math>
appear in the objective function and members
<math xmlns="&mathml;">
<mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow>
</math>
through <math xmlns="&mathml;"><msub><mi>n</mi><mo>m</mo></msub></math> appear
as constraints, and using
<math xmlns="&mathml;"><mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub>
<mn>2</mn></msubsup></mfenced></mrow>
</mfrac></math>
to denote the amount the objective function
changes in response to a change in the <b>second power</b> of the length of the
<math xmlns="&mathml;"><mrow>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mtext>th</mtext>
</mrow></math>
constrained member, it must be that
the response of the objective function to an arbitrary
change in the lengths of the constrained members is:
</p>

<table class="center"><tr><td>
<math xmlns="&mathml;"><mrow>
<mo>d</mo><mi>o</mi><mo>=</mo>
<mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow>
<mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac><mo>&InvisibleTimes;</mo>
<mo>d</mo><mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow>
<mn>2</mn></msubsup>
</mfenced>
<mo>+</mo><mi>&sdot;&sdot;&sdot;</mi><mo>+</mo>
<mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>m</mo></msub><mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac><mo>&InvisibleTimes;</mo>
<mo>d</mo><mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>m</mo></msub><mn>2</mn></msubsup>
</mfenced>
</mrow></math>
<br/>
<math xmlns="&mathml;"><mrow>
<mphantom>
<mo>d</mo><mi>o</mi>
</mphantom>
<mo>=</mo>
<mn>2</mn><mo>&InvisibleTimes;</mo>
<mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow>
<mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac><mo>&InvisibleTimes;</mo>
<msub><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow></msub>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><msub><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow></msub>
<mo>+</mo><mi>&sdot;&sdot;&sdot;</mi><mo>+</mo>
<mn>2</mn><mo>&InvisibleTimes;</mo>
<mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>m</mo></msub><mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac><mo>&InvisibleTimes;</mo>
<msub><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>m</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><mfenced><msub><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>m</mo></msub></msub>
</mfenced>
</mrow></math>
</td></tr></table>

<p>
The formula for <math xmlns="&mathml;"><mi>o</mi></math>&nbsp;says,
for the objective members, it is also true that:
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<mo>d</mo><mi>o</mi><mo>=</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><mfenced>
<msubsup><mi>l</mi><mn>1</mn><mrow><mo>*</mo><mn>2</mn></mrow></msubsup>
</mfenced>
<mo>+</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover><mn>2</mn></msub>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><mfenced>
<msubsup><mi>l</mi><mn>2</mn><mrow><mo>*</mo><mn>2</mn></mrow></msubsup>
</mfenced>
<mo>+</mo><mi>&sdot;&sdot;&sdot;</mi><mo>+</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>o</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><mfenced>
<msubsup><mi>l</mi><msub><mi>n</mi><mo>o</mo></msub><mrow>
<mo>*</mo><mn>2</mn></mrow></msubsup>
</mfenced>
</mrow></math>
</p>

<p>
which reduces to:
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<mo>d</mo><mi>o</mi><mo>=</mo>
<mn>2</mn><mo>&InvisibleTimes;</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
<mo>&InvisibleTimes;</mo>
<msubsup><mi>l</mi><mn>1</mn><mo>*</mo></msubsup>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><msubsup><mi>l</mi><mn>1</mn><mo>*</mo></msubsup>
<mo>+</mo>
<mn>2</mn><mo>&InvisibleTimes;</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover><mn>2</mn></msub>
<mo>&InvisibleTimes;</mo>
<msubsup><mi>l</mi><mn>2</mn><mo>*</mo></msubsup>
<mo>d</mo><msubsup><mi>l</mi><mn>2</mn><mo>*</mo></msubsup>
<mo>+</mo><mi>&sdot;&sdot;&sdot;</mi><mo>+</mo>
<mn>2</mn><mo>&InvisibleTimes;</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>o</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<msubsup><mi>l</mi><msub><mi>n</mi><mo>o</mo></msub><mo>*</mo></msubsup>
<mo>d</mo><msubsup><mi>l</mi><msub><mi>n</mi><mo>o</mo></msub>
<mo>*</mo></msubsup>
</mrow></math>
</p>

<p>
where
<math
xmlns="&mathml;"><msubsup><mi>l</mi><msub><mi>i</mi><mo>o</mo></msub>
<mo>*</mo></msubsup></math>
is the <b>minimizing</b> length of the
<math xmlns="&mathml;"><mrow>
<msub><mi>i</mi><mo>o</mo></msub><mtext>th</mtext>
</mrow></math>
unconstrained member.
</p>

<p>
If all the constraints are changed by an arbitrary amount, then it must
be true that:
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<mn>2</mn><mo>&InvisibleTimes;</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
<mo>&InvisibleTimes;</mo>
<msubsup><mi>l</mi><mn>1</mn><mo>*</mo></msubsup>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><msubsup><mi>l</mi><mn>1</mn><mo>*</mo></msubsup>
<mo>+</mo><mi>&sdot;&sdot;&sdot;</mi><mo>+</mo>
<mn>2</mn><mo>&InvisibleTimes;</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>o</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<msubsup><mi>l</mi><msub><mi>n</mi><mo>o</mo></msub><mo>*</mo></msubsup>
<mo>d</mo><msubsup><mi>l</mi><msub><mi>n</mi><mo>o</mo></msub>
<mo>*</mo></msubsup>
<mo>=</mo>
<mn>2</mn><mo>&InvisibleTimes;</mo>
<mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow>
<mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac><mo>&InvisibleTimes;</mo>
<msub><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow></msub>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><msub><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow></msub>
<mo>+</mo><mi>&sdot;&sdot;&sdot;</mi><mo>+</mo>
<mn>2</mn><mo>&InvisibleTimes;</mo>
<mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>m</mo></msub><mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac><mo>&InvisibleTimes;</mo>
<msub><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>m</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><msub><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>m</mo></msub></msub>
</mrow></math>
</p>

<p>
or (using the fact that the constraints are met with equality,
canceling the common factor of two and collecting terms):
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<mn>0</mn><mo>=</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
<mo>&InvisibleTimes;</mo>
<msubsup><mi>l</mi><mn>1</mn><mo>*</mo></msubsup>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><msubsup><mi>l</mi><mn>1</mn><mo>*</mo></msubsup>
<mo>+</mo><mi>&sdot;&sdot;&sdot;</mi><mo>+</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>o</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<msubsup><mi>l</mi><msub><mi>n</mi><mo>o</mo></msub><mo>*</mo></msubsup>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><msubsup><mi>l</mi><msub><mi>n</mi><mo>o</mo></msub>
<mo>*</mo></msubsup>
<mo>+</mo>
<mo>-</mo>
<mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow>
<mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>l</mi>
<mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow></msub>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><msub><mi>l</mi><mrow><msub><mi>n</mi><mo>o</mo></msub>
<mo>+</mo><mn>1</mn></mrow></msub>
<mo>+</mo><mi>&sdot;&sdot;&sdot;</mi><mo>+</mo>
<mo>-</mo>
<mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>m</mo></msub><mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>l</mi><msub><mi>n</mi><mo>m</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><msub><mi>l</mi><msub><mi>n</mi><mo>m</mo></msub></msub>
</mrow></math>
</p>

<p>
The similarity of this formula to the formula for potential
energy minimization indicates a conclusion is almost at hand.  The only
complication is that in this latter formula, although the changes
in the lengths of the constrained members may be considered
arbitrary, the changes in the lengths of members included in the
objective function must be regarded as changes in the minimizing
tendon lengths and are not arbitrary feasible changes.  This
complication can be disposed of by noticing that it is assumed
feasible displacements from a minimizing
solution are being examined.  Since the objective function is at a minimum,
any feasible displacement of the objective members' lengths away from their
minimizing values will have no effect on the objective function value.
</p>

<p>
Thus, a feasible displacement of the member lengths is broken
into two parts.  First, the lengths of the
constrained members are displaced.  That displacement will result in a
corresponding minimizing displacement of the unconstrained member
lengths such that the equation just set forth is satisfied.  Then
an additional displacement is added to the lengths of the
unconstrained members so that the total displacement is equal to
the initial arbitrary feasible displacement.  The additional
effect of this displacement on the objective function value must be
zero since it is a feasible displacement from a minimum with no
change in the constraints.  Therefore, the change in the
objective function resulting from the arbitrary displacement is
the same as the result obtained when the unconstrained members
change in a minimizing manner.
</p>

<p>
So it is verified that for an feasible arbitrary deviation
from a minimizing solution:
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
<mo>&InvisibleTimes;</mo>
<msub><mi>l</mi><mn>1</mn></msub>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><msub><mi>l</mi><mn>1</mn></msub>
<mo>+</mo><mi>&sdot;&sdot;&sdot;</mi><mo>+</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>o</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<msub><mi>l</mi><msub><mi>n</mi><mo>o</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><msub><mi>l</mi><msub><mi>n</mi><mo>o</mo></msub></msub>
<mo>=</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
<mo>&InvisibleTimes;</mo>
<msubsup><mi>l</mi><mn>1</mn><mo>*</mo></msubsup>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><msubsup><mi>l</mi><mn>1</mn><mo>*</mo></msubsup>
<mo>+</mo><mi>&sdot;&sdot;&sdot;</mi><mo>+</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>o</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<msubsup><mi>l</mi><msub><mi>n</mi><mo>o</mo></msub><mo>*</mo></msubsup>
<mo>d</mo><msubsup><mi>l</mi><msub><mi>n</mi><mo>o</mo></msub>
<mo>*</mo></msubsup>
</mrow></math>
</p>

<p>
Thus:
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<mn>0</mn><mo>=</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
<mo>&InvisibleTimes;</mo>
<msub><mi>l</mi><mn>1</mn></msub><mo>&InvisibleTimes;</mo>
<mo>d</mo><msub><mi>l</mi><mn>1</mn></msub>
<mo>+</mo><mi>&sdot;&sdot;&sdot;</mi><mo>+</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>o</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<msub><mi>l</mi><msub><mi>n</mi><mo>o</mo></msub></msub><mo>&InvisibleTimes;</mo>
<mo>d</mo><msub><mi>l</mi><msub><mi>n</mi><mo>o</mo></msub></msub>
<mo>+</mo>
<mo>-</mo>
<mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow>
<mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>l</mi><mrow><msub><mi>n</mi><mo>o</mo></msub>
<mo>+</mo><mn>1</mn></mrow></msub>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><msub><mi>l</mi>
<mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow></msub>
<mo>+</mo><mi>&sdot;&sdot;&sdot;</mi><mo>+</mo>
<mo>-</mo>
<mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>m</mo></msub><mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>l</mi><msub><mi>n</mi><mo>m</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<mo>d</mo><msub><mi>l</mi><msub><mi>n</mi><mo>m</mo></msub></msub>
</mrow></math>
</p>

<p>
So, if
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<msub><mi>f</mi><mn>1</mn></msub><mo>=</mo>
<mi>&lambda;</mi><mo>&InvisibleTimes;</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
<mo>&InvisibleTimes;</mo>
<msub><mi>l</mi><mn>1</mn></msub>
</mrow></math><br/>
<math xmlns="&mathml;">
<mi>&sdot;&sdot;&sdot;</mi>
</math><br/>
<math xmlns="&mathml;"><mrow>
<msub><mi>f</mi><msub><mi>n</mi><mo>o</mo></msub></msub><mo>=</mo>
<mi>&lambda;</mi><mo>&InvisibleTimes;</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>o</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<msub><mi>l</mi><msub><mi>n</mi><mo>o</mo></msub></msub>
</mrow></math><br/>
<math xmlns="&mathml;"><mrow>
<msub><mi>f</mi><mrow><msub><mi>n</mi><mo>o</mo></msub>
<mo>+</mo><mn>1</mn></mrow></msub>
<mo>=</mo>
<mo>-</mo>
<mi>&lambda;</mi><mo>&InvisibleTimes;</mo><mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow>
<mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>l</mi><mrow><msub><mi>n</mi><mo>o</mo></msub>
<mo>+</mo><mn>1</mn></mrow></msub>
</mrow></math><br/>
<math xmlns="&mathml;">
<mi>&sdot;&sdot;&sdot;</mi>
</math><br/>
<math xmlns="&mathml;"><mrow>
<msub><mi>f</mi><msub><mi>n</mi><mo>m</mo></msub></msub>
<mo>=</mo>
<mo>-</mo>
<mi>&lambda;</mi><mo>&InvisibleTimes;</mo><mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>m</mo></msub><mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>l</mi><msub><mi>n</mi><mo>m</mo></msub></msub>
</mrow></math>
</p>

<p>
where <math xmlns="&mathml;"><mi>&lambda;</mi></math>
is some positive constant, the system will be in stable equilibrium.
These are precisely
the formulas described in
 <a href="#stress_internal_method">Section&nbsp;7.2.1</a>.
Notice that since for a strut
<math xmlns="&mathml;"><mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac></math>
is positive,
<math xmlns="&mathml;">
<msub><mi>f</mi><msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover>
</msub></msub>
</math>
will be negative, a compressive force.  And since
<math xmlns="&mathml;"><mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac></math>
is negative for a tendon,
<math xmlns="&mathml;">
<msub><mi>f</mi><msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover>
</msub></msub></math>
is positive, a tensile force.
</p>

<p>
This manner of computing the member forces is very convenient since it
derives from the method for computing member lengths.
These force computations can be used to check proposed solutions
of the mathematical programming problem which characterizes a
given tensegrity.  If tendons are not in tension, or struts are
not in compression, the solution is not valid.  This would happen when some
constraints which have been assumed to hold with equality are
actually not effective.  In more complex structures, such a
check is almost obligatory since some
adjustments may need to be made for a valid solution to be
attained.  Thus, the processes of length computation and endogenous
force computation are highly interdependent.
</p>

<p class="section-header-level2" id="stress_internal_justification2">
7.2.3&nbsp;Endogenous Force Analysis:  Another Justification for the Method
</p>

<p>
Another justification for the method can be found by correlating the
following two facts:
</p>

<ol>
<li>A solution to the member-force problem
must necessarily exhibit an equilibrium of forces for any particular
coordinate value.</li>
<li>The necessary first-order
conditions for a solution to the tensegrity optimization problem
require a set of terms to sum to zero.</li>
</ol>

<p>
Correlating these two facts will provide
a solution to the member-force problem
which also generalizes to non-member constraints like those pertaining
to vectors.
</p>

<p>
The necessary equilibrium of forces in all coordinate directions for
a solution to the member-force problem is an implication of Newton's
second law of motion:  if a body is to be at rest, the net sum of forces
on that body must be zero.  For a tensegrity, this means that,
for a given hub to be at rest, the forces due to
all the members and point constraints that impact
that hub must sum to zero in all the three coordinate directions
for the basic point corresponding to that hub.
</p>

<p>
The necessary first-order conditions for a solution to the tensegrity
optimization problem can be obtained using the method of Lagrange
which is used in <a href="chap2_3.xml">Section&nbsp;2.3</a>.
In contrast with that section, here
the method of Lagrange is not useful for reaching a solution; but once a
solution is obtained, it is useful in interpreting and applying it.
For the general tensegrity programming problem, the adjoined
objective function appears as:
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
 <msub><mover><mi>w</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
 <mo>&InvisibleTimes;</mo>
 <msubsup><mi>l</mi><mn>1</mn><mn>2</mn></msubsup>
 <mo>+</mo><mo>&sdot;&sdot;&sdot;</mo><mo>+</mo>
 <msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>o</mo></msub></msub>
 <mo>&InvisibleTimes;</mo>
 <msubsup><mi>l</mi><msub><mi>n</mi><mo>o</mo></msub><mn>2</mn></msubsup>
 <mo>+</mo>
</mrow></math><br/>
<math xmlns="&mathml;"><mrow>
 <msub><mi>&mu;</mi><mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo>
 <mn>1</mn></mrow></msub><mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
 <mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow>
 <mn>2</mn></msubsup>
 <mo>-</mo>
 <msubsup><mi>l</mi>
 <mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow>
 <mn>2</mn></msubsup>
 </mrow></mfenced>
 <mo>+</mo><mo>&sdot;&sdot;&sdot;</mo><mo>+</mo>
 <msub><mi>&mu;</mi><msub><mi>n</mi><mo>m</mo></msub></msub>
 <mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>m</mo></msub>
 <mn>2</mn></msubsup>
 <mo>-</mo>
 <msubsup><mi>l</mi>
 <msub><mi>n</mi><mo>m</mo></msub>
 <mn>2</mn></msubsup>
 </mrow></mfenced>
 <mo>+</mo>
</mrow></math><br/>
<math xmlns="&mathml;"><mrow>
 <msub><mi>&sigma;</mi><mn>1</mn></msub><mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msub><mover><mo>s</mo><mo>&OverBar;</mo></mover><mn>1</mn></msub>
 <mo>-</mo>
 <msub><mo>s</mo><mn>1</mn></msub>
 <mfenced><mo>&sdot;&sdot;&sdot;</mo></mfenced>
 </mrow></mfenced>
 <mo>+</mo><mo>&sdot;&sdot;&sdot;</mo><mo>+</mo>
 <msub><mi>&sigma;</mi><msub><mi>n</mi><mo>s</mo></msub></msub>
 <mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msub><mover><mo>s</mo><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>s</mo></msub></msub>
 <mo>-</mo>
 <msub><mo>s</mo><msub><mi>n</mi><mo>s</mo></msub></msub>
 <mfenced><mo>&sdot;&sdot;&sdot;</mo></mfenced>
 </mrow></mfenced>
 <mo>+</mo>
</mrow></math><br/>
<math xmlns="&mathml;"><mrow>
 <msub><mi>&delta;</mi><mn>1</mn></msub><mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msub><mover><mo>d</mo><mo>&OverBar;</mo></mover><mn>1</mn></msub>
 <mo>-</mo>
 <mfenced><mrow>
 <msub><mover><mi>W</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
 <mo>&sdot;</mo><msub><mi>P</mi><msub><mi>d</mi><mn>1</mn></msub></msub>
 </mrow></mfenced>
 </mrow></mfenced>
 <mo>+</mo><mo>&sdot;&sdot;&sdot;</mo><mo>+</mo>
 <msub><mi>&delta;</mi><msub><mi>n</mi><mo>d</mo></msub></msub>
 <mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msub><mover><mo>d</mo><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>d</mo></msub></msub>
 <mo>-</mo>
 <mfenced><mrow>
 <msub><mover><mi>W</mi><mo>&OverBar;</mo></mover><msub><mi>n</mi><mo>d</mo>
 </msub></msub>
 <mo>&sdot;</mo>
 <msub><mi>P</mi><msub><mo>d</mo><msub><mi>n</mi><mo>d</mo>
 </msub></msub></msub>
 </mrow></mfenced>
 </mrow></mfenced>
 <mo>+</mo>
</mrow></math><br/>
<math xmlns="&mathml;"><mrow>
 <msub><mi>&gamma;</mi><mn>1</mn></msub><mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msub><mover><mo>c</mo><mo>&OverBar;</mo></mover><mn>1</mn></msub>
 <mo>-</mo>
 <msub><mo>c</mo><mn>1</mn></msub>
 <mfenced><mo>&sdot;&sdot;&sdot;</mo></mfenced>
 </mrow></mfenced>
 <mo>+</mo><mo>&sdot;&sdot;&sdot;</mo><mo>+</mo>
 <msub><mi>&gamma;</mi><msub><mi>n</mi><mo>c</mo></msub></msub>
 <mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msub><mover><mo>c</mo><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>c</mo></msub></msub>
 <mo>-</mo>
 <msub><mo>c</mo><msub><mi>n</mi><mo>c</mo></msub></msub>
 <mfenced><mo>&sdot;&sdot;&sdot;</mo></mfenced>
 </mrow></mfenced>
</mrow></math>
</p>

<p>
where
<math xmlns="&mathml;">
<msub><mi>&mu;</mi>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub></msub></math>,
<math xmlns="&mathml;">
<msub><mi>&sigma;</mi><msub><mi>i</mi><mo>c</mo></msub></msub></math>,
<math xmlns="&mathml;">
<msub><mi>&delta;</mi><msub><mi>i</mi><mo>s</mo></msub></msub></math> and
<math xmlns="&mathml;">
<msub><mi>&gamma;</mi><msub><mi>i</mi><mo>d</mo></msub></msub></math>
are the Lagrange multipliers for the member, symmetry, point
and vector constraints respectively.
Using a result from advanced
calculus<sup><a href="#tx7" id="rf7">7</a></sup>
which states that the
value of the Lagrange multiplier at a solution point is just the derivative
of the objective function value with respect to the constraint
parameter, the adjoined objective function can be rewritten as:
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
 <msub><mover><mi>w</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
 <mo>&InvisibleTimes;</mo>
 <msubsup><mi>l</mi><mn>1</mn><mn>2</mn></msubsup>
 <mo>+</mo><mo>&sdot;&sdot;&sdot;</mo><mo>+</mo>
 <msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>o</mo></msub></msub>
 <mo>&InvisibleTimes;</mo>
 <msubsup><mi>l</mi><msub><mi>n</mi><mo>o</mo></msub><mn>2</mn></msubsup>
 <mo>+</mo>
</mrow></math><br/>
<math xmlns="&mathml;"><mrow>
 <mfrac>
 <mrow><mo>&part;</mo><mi>o</mi></mrow>
 <mrow><mo>&part;</mo>
 <mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
 <mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo>
 <mn>1</mn></mrow><mn>2</mn></msubsup>
 </mfenced></mrow>
 </mfrac>
 <mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
 <mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow>
 <mn>2</mn></msubsup>
 <mo>-</mo>
 <msubsup><mi>l</mi>
 <mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow>
 <mn>2</mn></msubsup>
 </mrow></mfenced>
 <mo>+</mo><mo>&sdot;&sdot;&sdot;</mo><mo>+</mo>
 <mfrac>
 <mrow><mo>&part;</mo><mi>o</mi></mrow>
 <mrow><mo>&part;</mo>
 <mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>m</mo></msub><mn>2</mn></msubsup>
 </mfenced></mrow>
 </mfrac>
 <mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>m</mo></msub>
 <mn>2</mn></msubsup>
 <mo>-</mo>
 <msubsup><mi>l</mi>
 <msub><mi>n</mi><mo>m</mo></msub>
 <mn>2</mn></msubsup>
 </mrow></mfenced>
 <mo>+</mo>
</mrow></math><br/>
<math xmlns="&mathml;"><mrow>
 <mfrac>
 <mrow><mo>&part;</mo><mi>o</mi></mrow>
 <mrow><mo>&part;</mo>
 <msub><mover><mi>s</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
 </mrow>
 </mfrac>
 <mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msub><mover><mo>s</mo><mo>&OverBar;</mo></mover><mn>1</mn></msub>
 <mo>-</mo>
 <msub><mo>s</mo><mn>1</mn></msub>
 <mfenced><mo>&sdot;&sdot;&sdot;</mo></mfenced>
 </mrow></mfenced>
 <mo>+</mo><mo>&sdot;&sdot;&sdot;</mo><mo>+</mo>
 <mfrac>
 <mrow><mo>&part;</mo><mi>o</mi></mrow>
 <mrow><mo>&part;</mo>
 <msub><mover><mi>s</mi><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>s</mo></msub></msub>
 </mrow>
 </mfrac>
 <mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msub><mover><mo>s</mo><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>s</mo></msub></msub>
 <mo>-</mo>
 <msub><mo>s</mo><msub><mi>n</mi><mo>s</mo></msub></msub>
 <mfenced><mo>&sdot;&sdot;&sdot;</mo></mfenced>
 </mrow></mfenced>
 <mo>+</mo>
</mrow></math><br/>
<math xmlns="&mathml;"><mrow>
 <mfrac>
 <mrow><mo>&part;</mo><mi>o</mi></mrow>
 <mrow><mo>&part;</mo>
 <msub><mover><mi>d</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
 </mrow>
 </mfrac>
 <mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msub><mover><mo>d</mo><mo>&OverBar;</mo></mover><mn>1</mn></msub>
 <mo>-</mo>
 <mfenced><mrow>
 <msub><mover><mi>W</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
 <mo>&sdot;</mo><msub><mi>P</mi><msub><mi>d</mi><mn>1</mn></msub></msub>
 </mrow></mfenced>
 </mrow></mfenced>
 <mo>+</mo><mo>&sdot;&sdot;&sdot;</mo><mo>+</mo>
 <mfrac>
 <mrow><mo>&part;</mo><mi>o</mi></mrow>
 <mrow><mo>&part;</mo>
 <msub><mover><mi>d</mi><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>d</mo></msub></msub>
 </mrow>
 </mfrac>
 <mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msub><mover><mo>d</mo><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>d</mo></msub></msub>
 <mo>-</mo>
 <mfenced><mrow>
 <msub><mover><mi>W</mi><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>d</mo>
 </msub></msub>
 <mo>&sdot;</mo>
 <msub><mi>P</mi><msub><mo>d</mo><msub><mi>n</mi><mo>d</mo>
 </msub></msub></msub>
 </mrow></mfenced>
 </mrow></mfenced>
 <mo>+</mo>
</mrow></math><br/>
<math xmlns="&mathml;"><mrow>
 <mfrac>
 <mrow><mo>&part;</mo><mi>o</mi></mrow>
 <mrow><mo>&part;</mo>
 <msub><mover><mi>c</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
 </mrow>
 </mfrac>
 <mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msub><mover><mo>c</mo><mo>&OverBar;</mo></mover><mn>1</mn></msub>
 <mo>-</mo>
 <msub><mo>c</mo><mn>1</mn></msub>
 <mfenced><mo>&sdot;&sdot;&sdot;</mo></mfenced>
 </mrow></mfenced>
 <mo>+</mo><mo>&sdot;&sdot;&sdot;</mo><mo>+</mo>
 <mfrac>
 <mrow><mo>&part;</mo><mi>o</mi></mrow>
 <mrow><mo>&part;</mo>
 <msub><mover><mi>c</mi><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>c</mo></msub></msub>
 </mrow>
 </mfrac>
 <mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msub><mover><mo>c</mo><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>c</mo></msub></msub>
 <mo>-</mo>
 <msub><mo>c</mo><msub><mi>n</mi><mo>c</mo></msub></msub>
 <mfenced><mo>&sdot;&sdot;&sdot;</mo></mfenced>
 </mrow></mfenced>
</mrow></math>
</p>

<p>
The necessary first-order conditions require that the derivative
of this equation with respect to any coordinate value be zero.  So, if
<math xmlns="&mathml;">
<mrow><mo>-</mo><mfrac><mi>&lambda;</mi><mn>2</mn></mfrac></mrow>
</math>
times the derivative of a term in the adjoined objective function
with respect to a coordinate value is used as the force corresponding
to that coordinate direction for the object the term corresponds to,
those force values for that particular coordinate value will sum
to zero as required for the hub corresponding to that coordinate
to be at rest according to Newton's second law of motion.  The
<math xmlns="&mathml;">
<mrow><mo>-</mo><mfrac><mi>&lambda;</mi><mn>2</mn></mfrac></mrow>
</math>
is introduced to cancel a ubiquitous two which would otherwise appear
due to all the second powers and so the direction of the
forces is correct.  As in
<a href="#stress_internal_justification1">Section&nbsp;7.2.2</a>,
<math xmlns="&mathml;"><mi>&lambda;</mi></math>
is an arbitrary positive scaling value.
</p>

<p>
As an example, consider the member constraints.  The force vectors
corresponding to the two end points, call them
<math xmlns="&mathml;"><msub><mi>P</mi><mi>a</mi></msub></math> and
<math xmlns="&mathml;"><msub><mi>P</mi><mi>b</mi></msub></math>,
of the constrained
<math xmlns="&mathml;"><mrow>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mtext>th</mtext>
</mrow></math>
member will be
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<mi>&lambda;</mi>
<mo>&InvisibleTimes;</mo><mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub>
<mn>2</mn></msubsup></mfenced></mrow>
</mfrac><mo>&InvisibleTimes;</mo>
<mfenced><mrow>
<msub><mi>P</mi><mi>a</mi></msub><mo>-</mo>
<msub><mi>P</mi><mi>b</mi></msub>
</mrow></mfenced>
</mrow></math>

and

<math xmlns="&mathml;"><mrow>
<mi>&lambda;</mi>
<mo>&InvisibleTimes;</mo><mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub>
<mn>2</mn></msubsup></mfenced></mrow>
</mfrac><mo>&InvisibleTimes;</mo>
<mfenced><mrow>
<msub><mi>P</mi><mi>b</mi></msub><mo>-</mo>
<msub><mi>P</mi><mi>a</mi></msub>
</mrow></mfenced>
</mrow></math>
respectively.
</p>

<p>
Notice that since, for a strut,
<math xmlns="&mathml;">
<mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub>
<mn>2</mn></msubsup></mfenced></mrow>
</mfrac></math>
is positive, if this constrained member is a strut, the end-point forces
are in an outward direction which would be expected.
The magnitude of this force is
<math xmlns="&mathml;"><mrow>
<mi>&lambda;</mi>
<mo>&InvisibleTimes;</mo><mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub>
<mn>2</mn></msubsup></mfenced></mrow>
</mfrac>
<mo>&InvisibleTimes;</mo>
<msub><mi>l</mi><msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover>
</msub></msub>
</mrow></math>
which is the result which is obtained in
<a href="#stress_internal_justification1">Section&nbsp;7.2.2</a>.
For the
<math xmlns="&mathml;"><mrow>
<msub><mi>i</mi><mo>o</mo></msub><mtext>th</mtext>
</mrow></math>
member in the objective function,
the force vectors
corresponding to the two end points will be
</p>

<p class="center">
<math xmlns="&mathml;"><mrow><mo>-</mo><mi>&lambda;</mi>
<mo>&InvisibleTimes;</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mo>o</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<mfenced><mrow>
<msub><mi>P</mi><mi>a</mi></msub><mo>-</mo>
<msub><mi>P</mi><mi>b</mi></msub>
</mrow></mfenced>
</mrow></math>

and

<math xmlns="&mathml;"><mrow>
<mo>-</mo><mi>&lambda;</mi>
<mo>&InvisibleTimes;</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mo>o</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<mfenced><mrow>
<msub><mi>P</mi><mi>b</mi></msub><mo>-</mo>
<msub><mi>P</mi><mi>a</mi></msub>
</mrow></mfenced>
</mrow></math>
respectively.
</p>

<p>
Since, for a strut,
<math xmlns="&mathml;">
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mo>o</mo></msub></msub>
</math>
is negative and therefore
<math xmlns="&mathml;"><mrow>
<mo>-</mo><mi>&lambda;</mi>
<mo>&InvisibleTimes;</mo>
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mo>o</mo></msub></msub>
</mrow></math>
is positive, if this objective member is a strut,
the end-point forces
are in an outward direction which would be expected.
The magnitude of this force is
<math xmlns="&mathml;"><mrow>
<mi>&lambda;</mi><msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mo>o</mo></msub></msub>
<mo>&InvisibleTimes;</mo>
<msub><mi>l</mi><msub><mi>i</mi><mo>o</mo></msub></msub>
</mrow></math>
which again is the result which is obtained in
<a href="#stress_internal_justification1">Section&nbsp;7.2.2</a>.
</p>

<p>
As another example, consider the case of the
<math xmlns="&mathml;"><msub><mi>i</mi><mi>d</mi></msub></math>th
point constraint.  In this case, differentiating the expression
<math xmlns="&mathml;"><mrow>
 <mfrac>
 <mrow><mo>&part;</mo><mi>o</mi></mrow>
 <mrow><mo>&part;</mo>
 <msub><mover><mi>d</mi><mo>&OverBar;</mo></mover>
 <msub><mi>i</mi><mo>d</mo></msub></msub>
 </mrow>
 </mfrac>
 <mo>&InvisibleTimes;</mo>
 <mfenced><mrow>
 <msub><mover><mo>d</mo><mo>&OverBar;</mo></mover>
 <msub><mi>i</mi><mo>d</mo></msub></msub>
 <mo>-</mo>
 <mfenced><mrow>
 <msub><mover><mi>W</mi><mo>&OverBar;</mo></mover><msub><mi>i</mi><mo>d</mo>
 </msub></msub>
 <mo>&sdot;</mo>
 <msub><mi>P</mi><msub><mo>d</mo><msub><mi>i</mi><mo>d</mo>
 </msub></msub></msub>
 </mrow></mfenced>
 </mrow></mfenced>
</mrow></math>
with respect to the three coordinates of
<math xmlns="&mathml;">
 <msub><mi>P</mi><msub><mo>d</mo><msub><mi>i</mi><mo>d</mo>
 </msub></msub></msub>
</math>
and multiplying by
<math xmlns="&mathml;">
<mrow><mo>-</mo><mfrac><mi>&lambda;</mi><mn>2</mn></mfrac></mrow>
</math>
yields
<math xmlns="&mathml;">
<mrow>
 <mfrac><mi>&lambda;</mi><mn>2</mn></mfrac>
<mo>&InvisibleTimes;</mo>
 <mfrac><mrow>
 <mo>&part;</mo><mi>o</mi></mrow>
 <mrow><mo>&part;</mo>
 <msub><mover><mi>d</mi><mo>&OverBar;</mo></mover>
 <msub><mi>i</mi><mo>d</mo></msub></msub>
 </mrow></mfrac>
<mo>&InvisibleTimes;</mo>
 <msub><mover><mi>W</mi><mo>&OverBar;</mo></mover><msub><mi>i</mi><mo>d</mo>
 </msub></msub>
</mrow></math>.
An increase in
<math xmlns="&mathml;">
 <msub><mover><mi>d</mi><mo>&OverBar;</mo></mover>
 <msub><mi>i</mi><mo>d</mo></msub></msub>
</math>
implies the constraint plane is moving in the direction of
<math xmlns="&mathml;">
 <msub><mover><mi>W</mi><mo>&OverBar;</mo></mover><msub><mi>i</mi><mo>d</mo>
 </msub></msub>
</math>.  If
<math xmlns="&mathml;">
 <mfrac><mrow>
 <mo>&part;</mo><mi>o</mi></mrow>
 <mrow><mo>&part;</mo>
 <msub><mover><mi>d</mi><mo>&OverBar;</mo></mover>
 <msub><mi>i</mi><mo>d</mo></msub></msub>
 </mrow></mfrac>
</math> is positive, this means an increase in
<math xmlns="&mathml;">
 <msub><mover><mi>d</mi><mo>&OverBar;</mo></mover>
 <msub><mi>i</mi><mo>d</mo></msub></msub>
</math>
represents more constraint; hence, it makes sense that
the reaction force from the
constraint is pushing (or pulling) in the direction of
<math xmlns="&mathml;">
 <msub><mover><mi>W</mi><mo>&OverBar;</mo></mover><msub><mi>i</mi><mo>d</mo>
 </msub></msub>
</math>.
</p>

<p>
Again it is seen that for tensegrities the solution of the optimization
problem also provides useful information about the distribution of
forces in the structure.
The main advantage of this way of looking at the problem of computing
forces in tensegrities is that it provides a way of computing the
forces corresponding to non-member constraints which the previous
approach had nothing to say about.  The previous approach is valuable
for the additional perspective it provides on the problem.
</p>

<p class="section-header-level2" id="stress_internal_exact">
7.2.4&nbsp;Endogenous Force Analysis:
A Sample Calculation for the Exact Formulation
</p>

<p>
The analysis of the solution to the mathematical programming problem
for the 4&nu; diamond tensegrity tetrahedron in
<a href="chap4_2.xml#diamond_solution">Section&nbsp;4.2.3</a>
mentioned that the analysis of endogenous forces indicated that the
initial solution which satisfied the first-order conditions is
not valid since member-force calculations indicate one of the tendons
is acting as a strut.  In this section, the
details of those calculations are presented.
</p>

<p>
The formulas for the relative forces on the members included in
the objective function pose no problem since they are just the weighted
lengths of the members.  To calculate the relative force for the constrained
<math xmlns="&mathml;"><mrow>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mtext>th</mtext>
</mrow></math>
member, the value of
<math xmlns="&mathml;"><mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac></math>, the total
derivative of the objective function with respect to the
second power of the length of the
<math xmlns="&mathml;"><mrow>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mtext>th</mtext>
</mrow></math>
member, is necessary.
The method used to calculate
<math xmlns="&mathml;"><mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac></math>
depends on whether the penalty or exact formulation
(see <a href="chap3.xml#solve">Section&nbsp;3.2</a>)
is being used.
</p>

<p>
For the 4&nu; diamond tensegrity tetrahedron, the final computations were
made using the exact formulation.
For this formulation, computing
<math xmlns="&mathml;"><mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac></math>
is a straight forward exercise in linear algebra.
By the Envelope Theorem of
economics<sup><a href="#tx8" id="rf8">8</a></sup>,
the total derivative of
the objective function with respect to a change in a constraint
parameter (in this case
<math xmlns="&mathml;">
<msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mn>2</mn></msubsup>
</math>)
is equal to the partial effect on the objective function due to changes
in the dependent coordinates (which must change since the equations
determining them have changed).  Due to the minimization, the
effects on the objective function due to changes in the independent
coordinates do not need to be taken into account.
So, to find
<math xmlns="&mathml;"><mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac></math>,
first
<math xmlns="&mathml;"><mfrac>
<mrow><mo>d</mo><msub><mi>x</mi><mo>d</mo></msub></mrow>
<mrow><mo>d</mo><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mn>2</mn></msubsup>
</mrow>
</mfrac></math>,
the response of the dependent coordinates to a change in
<math xmlns="&mathml;"><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mn>2</mn></msubsup>
</math>,
is computed; then, using the
partial derivatives of the objective function with respect to the
dependent coordinates, the corresponding response of the
objective function is computed.
</p>

<p>
To calculate the response of the dependent coordinates,
the following linear system is solved:
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<mfenced open="[" close="]"><msup><mi>&Psi;</mi>
<mrow><mo>c</mo><mo>&cap;</mo><mo>d</mo></mrow></msup></mfenced>
<mo>&InvisibleTimes;</mo>
<mfrac>
<mrow><mo>d</mo><msub><mi>x</mi><mo>d</mo></msub></mrow>
<mrow><mo>d</mo><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mn>2</mn></msubsup>
</mrow>
</mfrac>
<mo>=</mo>
<mfrac>
<mrow><mo>d</mo><mi>b</mi></mrow>
<mrow><mo>d</mo><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mn>2</mn></msubsup>
</mrow>
</mfrac>
</mrow></math>
</p>

<p>
where
<math xmlns="&mathml;"><msup><mi>&Psi;</mi>
<mrow><mo>c</mo><mo>&cap;</mo><mo>d</mo></mrow></msup></math>
is a
<math xmlns="&mathml;"><mrow>
<msub><mi>n</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mo>+</mo>
<msub><mi>n</mi><mo>c</mo></msub><mo>+</mo>
<msub><mi>n</mi><mo>s</mo></msub><mo>+</mo>
<msub><mi>n</mi><mo>d</mo></msub>
</mrow></math>
by
<math xmlns="&mathml;"><mrow>
<msub><mi>n</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mo>+</mo>
<msub><mi>n</mi><mo>c</mo></msub><mo>+</mo>
<msub><mi>n</mi><mo>s</mo></msub><mo>+</mo>
<msub><mi>n</mi><mo>d</mo></msub>
</mrow></math>
square submatrix and
<math xmlns="&mathml;"><msub><mi>x</mi><mo>d</mo></msub></math> and
<math xmlns="&mathml;"><mi>b</mi></math> are
<math xmlns="&mathml;"><mrow>
<msub><mi>n</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mo>+</mo>
<msub><mi>n</mi><mo>c</mo></msub><mo>+</mo>
<msub><mi>n</mi><mo>s</mo></msub><mo>+</mo>
<msub><mi>n</mi><mo>d</mo></msub>
</mrow></math>
column vectors.
The submatrix
<math xmlns="&mathml;"><msup><mi>&Psi;</mi>
<mrow><mo>c</mo><mo>&cap;</mo><mo>d</mo></mrow></msup></math>
and the column vector
<math xmlns="&mathml;"><msub><mi>x</mi><mo>d</mo></msub></math>
are described in <a href="chap3.xml#solve">Section&nbsp;3.2</a>.
The column vector
<math xmlns="&mathml;"><mi>b</mi></math> is a shorthand notation
for referring to all the constraint parameters,
<math xmlns="&mathml;">
<msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow>
<mn>2</mn></msubsup></math>, ...,
<math xmlns="&mathml;">
<msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>n</mi><mo>m</mo></msub><mn>2</mn></msubsup></math>,
<math xmlns="&mathml;">
<msub><mover><mo>s</mo><mo>&OverBar;</mo></mover><mn>1</mn></msub></math>, ...,
<math xmlns="&mathml;">
<msub><mover><mo>s</mo><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>s</mo></msub></msub></math>,
<math xmlns="&mathml;">
<msub><mover><mo>d</mo><mo>&OverBar;</mo></mover><mn>1</mn></msub></math>, ...,
<math xmlns="&mathml;">
<msub><mover><mo>d</mo><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>d</mo></msub></msub></math>,
<math xmlns="&mathml;">
<msub><mover><mo>c</mo><mo>&OverBar;</mo></mover><mn>1</mn></msub></math>, ...,
<math xmlns="&mathml;">
<msub><mover><mo>c</mo><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>c</mo></msub></msub></math>,
with a single vector.
</p>

<p>
<math xmlns="&mathml;"><mfrac>
<mrow><mo>d</mo><mi>b</mi></mrow>
<mrow><mo>d</mo><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mn>2</mn>
</msubsup>
</mrow>
</mfrac></math>
is a column vector with zeros everywhere except for a 1 in the
row corresponding to the
<math xmlns="&mathml;"><mrow>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mtext>th</mtext>
</mrow></math>
member and represents the change in the constraint parameters.
</p>

<p>
Having obtained a value for
<math xmlns="&mathml;"><mfrac>
<mrow><mo>d</mo><msub><mi>x</mi><mo>d</mo></msub></mrow>
<mrow><mo>d</mo><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mn>2</mn>
</msubsup></mrow></mfrac></math>,
its inner product (also called dot product)
is taken with the row vector
<math xmlns="&mathml;"><mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo><msubsup><mi>x</mi><mo>d</mo><mo>'</mo></msubsup></mrow>
</mfrac></math>
whose
<math xmlns="&mathml;"><mrow><mi>i</mi><mtext>th</mtext></mrow></math>
component is the partial
derivative of the objective function with respect to the
<math xmlns="&mathml;"><mrow><mi>i</mi><mtext>th</mtext></mrow></math>
dependent coordinate.
(<math xmlns="&mathml;">
<msubsup><mi>x</mi><mo>d</mo><mo>'</mo></msubsup></math>
is the column vector
<math xmlns="&mathml;"><msub><mi>x</mi><mo>d</mo></msub></math>
converted into a row vector.)
The result is the sought after value of
<math xmlns="&mathml;"><mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac></math>
which is multiplied by
<math xmlns="&mathml;"><msub><mi>l</mi>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub></msub></math>
(the length of the member) to
get the relative endogenous force for this constrained member.
</p>

<p>
Application of these operations to the first solution to the
4&nu; diamond tensegrity tetrahedron problem yielded the values
in <a href="#tab_dttstress">Table&nbsp;7.1</a>.
</p>

<table id="tab_dttstress" class="center"><tr><td align="center">
<table rules="groups" border="1">
<colgroup></colgroup>
<colgroup></colgroup>
<thead>
<tr valign="bottom"><td align="center">&nbsp;Member&nbsp;<br/>#</td>
<td align="center">&nbsp;Member&nbsp;<br/>ID</td>
<td align="center">&nbsp;Relative&nbsp;<br/>Force</td>
</tr>
</thead>

<tbody>
<tr><td align="center">1</td>
<td align="center"><math xmlns="&mathml;">
<msub><mi>t</mi><mrow><mn>1</mn><mn>2</mn></mrow></msub></math></td>
<td align="right">&nbsp;-0.075081&nbsp;</td></tr>
<tr><td align="center">2</td>
<td align="center"><math xmlns="&mathml;">
<msub><mi>t</mi><mrow><mn>1</mn><mn>3</mn></mrow></msub></math></td>
<td align="right">&nbsp;1.193570&nbsp;</td></tr>
<tr><td align="center">3</td>
<td align="center"><math xmlns="&mathml;">
<msub><mi>t</mi><mrow><mn>2</mn><mn>3</mn></mrow></msub></math></td>
<td align="right">&nbsp;0.647498&nbsp;</td></tr>
<tr><td align="center">4</td>
<td align="center"><math xmlns="&mathml;">
<msub><mi>t</mi><mrow><mn>4</mn><mn>7</mn></mrow></msub></math></td>
<td align="right">&nbsp;0.492239&nbsp;</td></tr>
</tbody>

<tbody>
<tr><td align="center">5</td>
<td align="center"><math xmlns="&mathml;">
<msub><mi>s</mi><mrow><mi>a</mi><mi>b</mi></mrow></msub></math></td>
<td align="right">&nbsp;-1.452650&nbsp;</td></tr>
<tr><td align="center">6</td>
<td align="center"><math xmlns="&mathml;">
<msub><mi>s</mi><mrow><mi>b</mi><mi>b</mi></mrow></msub></math></td>
<td align="right">&nbsp;-1.089917&nbsp;</td></tr>
</tbody>

<tbody>
<tr><td align="center">7</td>
<td align="center"><math xmlns="&mathml;">
<msub><msub><mi>t</mi><mrow><mi>a</mi><mi>b</mi></mrow></msub><mn>1</mn></msub>
</math></td>
<td align="right">&nbsp;0.940409&nbsp;</td></tr>
<tr><td align="center">8</td>
<td align="center"><math xmlns="&mathml;">
<msub><msub><mi>t</mi><mrow><mi>a</mi><mi>b</mi></mrow></msub><mn>2</mn></msub>
</math></td>
<td align="right">&nbsp;0.448489&nbsp;</td></tr>
<tr><td align="center">9</td>
<td align="center"><math xmlns="&mathml;">
<msub><msub><mi>t</mi><mrow><mi>b</mi><mi>b</mi></mrow></msub><mn>1</mn></msub>
</math></td>
<td align="right">&nbsp;0.455651&nbsp;</td></tr>
<tr><td align="center">10</td>
<td align="center"><math xmlns="&mathml;">
<msub><msub><mi>t</mi><mrow><mi>b</mi><mi>b</mi></mrow></msub><mn>2</mn></msub>
</math></td>
<td align="right">&nbsp;0.601166&nbsp;</td></tr>
</tbody>

</table>
</td></tr><tr><td align="center">
&nbsp;<br/>Table&nbsp;7.1:  4&nu; Diamond T-Tetrahedron:
Preliminary Relative Forces
</td></tr></table>

<p>
The tendon
<math xmlns="&mathml;">
<msub><mi>t</mi><mrow><mn>1</mn><mn>2</mn></mrow></msub></math>
is slightly in compression which is not an
appropriate force for a tendon.  Excluding that tendon constraint
results in a new model in which the relative forces
are correct (the relative force for the excluded
tendon being zero).  As expected, the resultant length of the excluded
tendon is less than its permitted maximum value; so, all
constraints are satisfied.
</p>

<p>
Eliminating a tendon is not the best way to deal with an inappropriate force
since it tends to make the structure less rigid.
</p>

<p class="section-header-level2" id="stress_internal_penalty">
7.2.5&nbsp;Endogenous Force Analysis:
Calculations for the Penalty Formulation
</p>
<!-- Ref:  Notes 2/7/91 -->

<p>
Calculating endogenous forces is simpler when the penalty formulation
is being used.  In this case, Luenberger's proposition
regarding Lagrange multipliers<sup><a href="#tx9" id="rf9">9</a></sup>
provides a simple formula for calculating
<math xmlns="&mathml;"><mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac></math>.
Since in the penalty formulation used here
(see <a href="chap3.xml#solve">Section&nbsp;3.2</a>)
<math xmlns="&mathml;"><mrow>
<mover><mi>&mu;</mi><mo>&OverBar;</mo></mover><mo>&InvisibleTimes;</mo>
<msup><mfenced><mrow><msubsup><mi>l</mi>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub>
<mn>2</mn></msubsup><mo>-</mo>
<msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub>
<mn>2</mn></msubsup></mrow></mfenced>
<mn>2</mn></msup>
</mrow></math> appears in the penalty function,
that proposition yields:
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<mfrac>
<mrow><mo>&part;</mo><mi>o</mi></mrow>
<mrow><mo>&part;</mo>
<mfenced><msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mn>2</mn></msubsup>
</mfenced></mrow>
</mfrac>
<mo>=</mo>
<mo>-</mo><mn>2</mn><mo>&InvisibleTimes;</mo>
<mover><mi>&mu;</mi><mo>&OverBar;</mo></mover><mo>&InvisibleTimes;</mo>
<mfenced>
<mrow><msubsup><mi>l</mi>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub>
<mn>2</mn></msubsup><mo>-</mo>
<msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub>
<mn>2</mn></msubsup></mrow></mfenced>
</mrow></math>
</p>

<p>
where
<math xmlns="&mathml;"><mover><mi>&mu;</mi><mo>&OverBar;</mo></mover></math>
is the penalty value.
As with the exact formulation, multiplying this value by the length of the
<math xmlns="&mathml;"><mrow>
<msub><mi>i</mi><mover><mo>o</mo><mo>~</mo></mover></msub><mtext>th</mtext>
</mrow></math>
constrained member yields the relative force for that member.
</p>

<p class="section-header-level2" id="subsec_wtgen">
7.2.6&nbsp;Generality of Weighted Models
</p>

<p>
These results on endogenous forces can be used to illustrate the generality
of weighted models in tensegrity design.  Namely, it can be demonstrated
that,  with an appropriate selection of weights, any valid tensegrity
structure can be obtained as the solution of a weighted model.
</p>

<p>
Let
<math xmlns="&mathml;"><msubsup>
<mi>l</mi><mn>1</mn><mo>*</mo></msubsup>
</math>, ...,
<math xmlns="&mathml;"><msubsup>
<mi>l</mi><msub><mi>i</mi><mo>m</mo></msub><mo>*</mo></msubsup>
</math>
be the member lengths for an arbitrary tensegrity structure
of the sort considered in this book.
If this is a valid tensegrity, any
tension member must be at the minimum length given the lengths of all
the other members and any compression member must be at its maximum length
given the lengths of all the other members; otherwise, the
structure would be loose.  Therefore,
<math xmlns="&mathml;"><mrow>
<msubsup><mi>l</mi><mi>j</mi><mn>2</mn></msubsup>
<mo>=</mo>
<msup><msubsup><mi>l</mi><mi>j</mi><mo>*</mo></msubsup><mn>2</mn></msup>
</mrow></math>
must be a solution to the problem:
</p>

<p class="center">
<math xmlns="&mathml;"><mtable>
<mtr><mtd><mtext>minimize</mtext></mtd>
<mtd>
 <mrow><msub><mi>o</mi><mi>j</mi></msub><mo>&equiv;</mo>
 <mover><mo>-</mo><mo>+</mo></mover>
 <msubsup><mi>l</mi><mi>j</mi><mn>2</mn></msubsup>
 </mrow>
 </mtd></mtr>

 <mtr><mtd><mrow><msub><mi>P</mi><mn>1</mn></msub><mo>,</mo>
 <mo>&hellip;</mo><mo>,</mo><msub><mi>P</mi>
 <msub><mi>n</mi><mo>h</mo></msub></msub><mo>,</mo>
 <msub><mi>V</mi><mn>1</mn></msub><mo>,</mo>
 <mo>&hellip;</mo><mo>,</mo><msub><mi>V</mi>
 <msub><mi>n</mi><mo>v</mo></msub></msub>
 </mrow></mtd></mtr>

 <mtr><mtd></mtd></mtr>

 <mtr><mtd><mtext>subject to</mtext></mtd>
 <mtd><mtext>Member constraints:</mtext></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow><mover><mo>-</mo><mo>+</mo></mover>
 <msup><msubsup><mi>l</mi><mn>1</mn><mo>*</mo></msubsup><mn>2</mn></msup>
 <mo>&ge;</mo>
 <mover><mo>-</mo><mo>+</mo></mover>
 <msubsup><mi>l</mi><mn>1</mn><mn>2</mn></msubsup>
 </mrow></mtd></mtr>
 <mtr><mtd></mtd><mtd><mo>&sdot;&sdot;&sdot;</mo></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow><mover><mo>-</mo><mo>+</mo></mover>
 <msup><msubsup><mi>l</mi>
 <mrow><mi>j</mi><mo>-</mo><mn>1</mn></mrow>
 <mo>*</mo></msubsup><mn>2</mn></msup>
 <mo>&ge;</mo>
 <mover><mo>-</mo><mo>+</mo></mover>
 <msubsup><mi>l</mi><mrow><mi>j</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn>
 </msubsup>
 </mrow></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow><mover><mo>-</mo><mo>+</mo></mover>
 <msup><msubsup><mi>l</mi>
 <mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow>
 <mo>*</mo></msubsup><mn>2</mn></msup>
 <mo>&ge;</mo>
 <mover><mo>-</mo><mo>+</mo></mover>
 <msubsup><mi>l</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mn>2</mn>
 </msubsup>
 </mrow></mtd></mtr>
 <mtr><mtd></mtd><mtd><mo>&sdot;&sdot;&sdot;</mo></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow><mover><mo>-</mo><mo>+</mo></mover>
 <msup><msubsup><mi>l</mi>
 <msub><mi>n</mi><mo>m</mo></msub><mo>*</mo></msubsup><mn>2</mn></msup>
 <mo>&ge;</mo>
 <mover><mo>-</mo><mo>+</mo></mover>
 <msubsup><mi>l</mi><msub><mi>n</mi><mo>m</mo></msub><mn>2</mn></msubsup>
 </mrow></mtd></mtr>

 <mtr><mtd></mtd><mtd><mtext>Symmetry constraints:</mtext></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow>
 <msub><mover><mo>s</mo><mo>&OverBar;</mo></mover><mn>1</mn></msub><mo>=</mo>
 <msub><mo>s</mo><mn>1</mn></msub>
 <mfenced><mo>&sdot;&sdot;&sdot;</mo></mfenced></mrow></mtd></mtr>
 <mtr><mtd></mtd><mtd><mo>&sdot;&sdot;&sdot;</mo></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow>
 <msub><mover><mo>s</mo><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>s</mo></msub></msub><mo>=</mo>
 <msub><mo>s</mo><msub><mi>n</mi><mo>s</mo></msub></msub>
 <mfenced><mo>&sdot;&sdot;&sdot;</mo></mfenced></mrow></mtd></mtr>

 <mtr><mtd></mtd><mtd><mtext>Point constraints:</mtext></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow>
 <msub><mover><mo>d</mo><mo>&OverBar;</mo></mover><mn>1</mn></msub><mo>=</mo>
 <msub><mover><mi>W</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
 <mo>&sdot;</mo><msub><mi>P</mi><msub><mi>d</mi><mn>1</mn></msub></msub>
 </mrow></mtd></mtr>
 <mtr><mtd></mtd><mtd><mo>&sdot;&sdot;&sdot;</mo></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow>
 <msub><mover><mo>d</mo><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>d</mo></msub></msub><mo>=</mo>
 <msub><mover><mi>W</mi><mo>&OverBar;</mo></mover><msub><mi>n</mi><mo>d</mo>
 </msub></msub>
 <mo>&sdot;</mo>
 <msub><mi>P</mi><msub><mo>d</mo><msub><mi>n</mi><mo>d</mo>
 </msub></msub></msub>
 </mrow></mtd></mtr>

 <mtr><mtd></mtd><mtd><mtext>Vector constraints:</mtext></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow>
 <msub><mover><mo>c</mo><mo>&OverBar;</mo></mover><mn>1</mn></msub><mo>=</mo>
 <msub><mo>c</mo><mn>1</mn></msub>
 <mfenced><mo>&sdot;&sdot;&sdot;</mo></mfenced></mrow></mtd></mtr>
 <mtr><mtd></mtd><mtd><mo>&sdot;&sdot;&sdot;</mo></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow>
 <msub><mover><mo>c</mo><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>c</mo></msub></msub><mo>=</mo>
 <msub><mo>c</mo><msub><mi>n</mi><mo>c</mo></msub></msub>
 <mfenced><mo>&sdot;&sdot;&sdot;</mo></mfenced></mrow></mtd></mtr>
</mtable>
</math>
</p>

<p>
where a plus sign precedes
<math xmlns="&mathml;">
<msubsup><mi>l</mi><mi>j</mi><mn>2</mn></msubsup></math>
if the
<math xmlns="&mathml;">
<mi>j</mi><mtext>th</mtext></math>
member is a tendon and a negative sign if it is a strut.
The choice of signs in the constraints follows the
conventions described in
<a href="chap3.xml#general_intro">Section&nbsp;3.1.1</a>.
Let
<math xmlns="&mathml;">
<msubsup><mi>&mu;</mi><mn>1</mn><mo>*</mo></msubsup>
</math>, &hellip;,
<math xmlns="&mathml;">
<msubsup><mi>&mu;</mi><mrow><mi>j</mi><mo>-</mo><mn>1</mn></mrow>
<mo>*</mo></msubsup>
</math>,
<math xmlns="&mathml;">
<msubsup><mi>&mu;</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow>
<mo>*</mo></msubsup>
</math>,
&hellip;,
<math xmlns="&mathml;">
<msubsup><mi>&mu;</mi><msub><mi>n</mi><mo>m</mo></msub><mn>*</mn></msubsup>
</math>
be the values for
<math xmlns="&mathml;"><mfrac>
<mrow><mo>&part;</mo><msub><mi>o</mi><mi>j</mi></msub></mrow>
<mrow><mo>&part;</mo>
<mfenced><msup><msubsup><mi>l</mi>
<mn>1</mn><mo>*</mo></msubsup><mn>2</mn></msup>
</mfenced></mrow>
</mfrac></math>, &hellip;,
<math xmlns="&mathml;"><mfrac>
<mrow><mo>&part;</mo><msub><mi>o</mi><mi>j</mi></msub></mrow>
<mrow><mo>&part;</mo>
<mfenced><msup><msubsup><mi>l</mi>
<mrow><mi>j</mi><mo>-</mo><mn>1</mn></mrow><mo>*</mo></msubsup>
<mn>2</mn></msup>
</mfenced></mrow>
</mfrac></math>,
<math xmlns="&mathml;"><mfrac>
<mrow><mo>&part;</mo><msub><mi>o</mi><mi>j</mi></msub></mrow>
<mrow><mo>&part;</mo>
<mfenced><msup><msubsup><mi>l</mi>
<mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mo>*</mo></msubsup>
<mn>2</mn></msup>
</mfenced></mrow>
</mfrac></math>,
&hellip;,
<math xmlns="&mathml;"><mfrac>
<mrow><mo>&part;</mo><msub><mi>o</mi><mi>j</mi></msub></mrow>
<mrow><mo>&part;</mo>
<mfenced><msup><msubsup><mi>l</mi><msub><mi>n</mi><mo>m</mo></msub>
<mo>*</mo></msubsup><mn>2</mn></msup>
</mfenced></mrow>
</mfrac></math>
for this solution.
<math xmlns="&mathml;">
<msubsup><mi>&mu;</mi><msub><mi>i</mi><mo>m</mo></msub><mn>*</mn></msubsup>
</math>
is negative for tendons and positive for struts.
</p>

<p>
Now look at the problem:
</p>

<p class="center">
<math xmlns="&mathml;"><mtable>
<mtr><mtd><mtext>minimize</mtext></mtd>
<mtd>
 <mrow><msub><mi>o</mi><mover><mi>j</mi><mo>~</mo></mover></msub>
 <mo>&equiv;</mo>
 <msub><mover><mi>w</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
 <mo>&InvisibleTimes;</mo>
 <msubsup><mi>l</mi><mn>1</mn><mn>2</mn></msubsup><mo>+</mo>
 <msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
 <mrow><mi>j</mi><mo>-</mo><mn>1</mn></mrow></msub>
 <mo>&InvisibleTimes;</mo>
 <msubsup><mi>l</mi><mrow><mi>j</mi><mo>-</mo><mn>1</mn></mrow>
 <mn>2</mn></msubsup><mo>+</mo>
 <msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
 <mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msub>
 <mo>&InvisibleTimes;</mo>
 <msubsup><mi>l</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow>
 <mn>2</mn></msubsup><mo>+</mo>
 <mo>&sdot;&sdot;&sdot;</mo><mo>+</mo>
 <msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>m</mo></msub></msub>
 <mo>&InvisibleTimes;</mo>
 <msubsup><mi>l</mi><msub><mi>n</mi><mo>m</mo></msub><mn>2</mn></msubsup>
 </mrow></mtd></mtr>

 <mtr><mtd><mrow><msub><mi>P</mi><mn>1</mn></msub><mo>,</mo>
 <mo>&hellip;</mo><mo>,</mo><msub><mi>P</mi>
 <msub><mi>n</mi><mo>h</mo></msub></msub><mo>,</mo>
 <msub><mi>V</mi><mn>1</mn></msub><mo>,</mo>
 <mo>&hellip;</mo><mo>,</mo><msub><mi>V</mi>
 <msub><mi>n</mi><mo>v</mo></msub></msub>
 </mrow></mtd></mtr>

 <mtr><mtd></mtd></mtr>

 <mtr><mtd><mtext>subject to</mtext></mtd>
 <mtd><mtext>Member constraint:</mtext></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow><mover><mo>-</mo><mo>+</mo></mover>
 <msup><msubsup><mi>l</mi><mi>j</mi><mo>*</mo></msubsup><mn>2</mn></msup>
 <mo>&ge;</mo>
 <mover><mo>-</mo><mo>+</mo></mover>
 <msubsup><mi>l</mi><mi>j</mi><mn>2</mn></msubsup>
 </mrow></mtd></mtr>
 <mtr><mtd></mtd><mtd><mtext>Symmetry constraints:</mtext></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow>
 <msub><mover><mo>s</mo><mo>&OverBar;</mo></mover><mn>1</mn></msub><mo>=</mo>
 <msub><mo>s</mo><mn>1</mn></msub>
 <mfenced><mo>&sdot;&sdot;&sdot;</mo></mfenced></mrow></mtd></mtr>
 <mtr><mtd></mtd><mtd><mo>&sdot;&sdot;&sdot;</mo></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow>
 <msub><mover><mo>s</mo><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>s</mo></msub></msub><mo>=</mo>
 <msub><mo>s</mo><msub><mi>n</mi><mo>s</mo></msub></msub>
 <mfenced><mo>&sdot;&sdot;&sdot;</mo></mfenced></mrow></mtd></mtr>

 <mtr><mtd></mtd><mtd><mtext>Point constraints:</mtext></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow>
 <msub><mover><mo>d</mo><mo>&OverBar;</mo></mover><mn>1</mn></msub><mo>=</mo>
 <msub><mover><mi>W</mi><mo>&OverBar;</mo></mover><mn>1</mn></msub>
 <mo>&sdot;</mo><msub><mi>P</mi><msub><mi>d</mi><mn>1</mn></msub></msub>
 </mrow></mtd></mtr>
 <mtr><mtd></mtd><mtd><mo>&sdot;&sdot;&sdot;</mo></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow>
 <msub><mover><mo>d</mo><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>d</mo></msub></msub><mo>=</mo>
 <msub><mover><mi>W</mi><mo>&OverBar;</mo></mover><msub><mi>n</mi><mo>d</mo>
 </msub></msub>
 <mo>&sdot;</mo>
 <msub><mi>P</mi><msub><mo>d</mo><msub><mi>n</mi><mo>d</mo>
 </msub></msub></msub>
 </mrow></mtd></mtr>

 <mtr><mtd></mtd><mtd><mtext>Vector constraints:</mtext></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow>
 <msub><mover><mo>c</mo><mo>&OverBar;</mo></mover><mn>1</mn></msub><mo>=</mo>
 <msub><mo>c</mo><mn>1</mn></msub>
 <mfenced><mo>&sdot;&sdot;&sdot;</mo></mfenced></mrow></mtd></mtr>
 <mtr><mtd></mtd><mtd><mo>&sdot;&sdot;&sdot;</mo></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow>
 <msub><mover><mo>c</mo><mo>&OverBar;</mo></mover>
 <msub><mi>n</mi><mo>c</mo></msub></msub><mo>=</mo>
 <msub><mo>c</mo><msub><mi>n</mi><mo>c</mo></msub></msub>
 <mfenced><mo>&sdot;&sdot;&sdot;</mo></mfenced></mrow></mtd></mtr>

</mtable>
</math>
</p>

<p>
Set
<math xmlns="&mathml;">
<msub><mover><mi>w</mi><mo>&OverBar;</mo></mover>
<msub><mi>i</mi><mo>m</mo></msub></msub></math>
equal to
<math xmlns="&mathml;"><mrow><mo>-</mo>
<msubsup><mi>&mu;</mi><msub><mi>i</mi><mi>m</mi></msub><mo>*</mo>
</msubsup>
</mrow></math>
for
<math xmlns="&mathml;"><mrow><msub><mi>i</mi><mo>m</mo></msub><mo>&ne;</mo>
<mi>j</mi></mrow></math>.
This setting for the weights
obeys the necessary sign convention set forth in
<a href="chap3.xml#general_intro">Section&nbsp;3.1.1</a>:
the weights are positive for tendons and negative for struts.
<math xmlns="&mathml;">
<msubsup><mi>l</mi><mn>1</mn><mo>*</mo></msubsup></math>,
&hellip;,
<math xmlns="&mathml;">
<msubsup><mi>l</mi><mrow><mi>j</mi><mo>-</mo><mn>1</mn></mrow>
<mo>*</mo></msubsup></math>,
<math xmlns="&mathml;">
<msubsup><mi>l</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow>
<mo>*</mo></msubsup></math>,
&hellip;,
<math xmlns="&mathml;">
<msubsup><mi>l</mi><msub><mi>n</mi><mo>m</mo></msub><mo>*</mo></msubsup>
</math>
must be a solution to this problem.  If there
were a feasible deviation from this solution which decreased
<math xmlns="&mathml;">
<msub><mi>o</mi><mover><mi>j</mi><mo>~</mo></mover></msub>
</math>,
this change applied to the previous problem would
mean the solution for
<math xmlns="&mathml;"><msub><mi>o</mi><mi>j</mi></msub></math>
would increase by that amount.
This in turn means the minimum value of
<math xmlns="&mathml;"><mover><mo>-</mo><mo>+</mo></mover>
<msubsup><mi>l</mi><mi>j</mi><mn>2</mn></msubsup>
</math>
compatible with that feasible change is greater than
<math xmlns="&mathml;"><mover><mo>-</mo><mo>+</mo></mover>
<msup><msubsup><mi>l</mi><mi>j</mi><mo>*</mo></msubsup><mn>2</mn></msup>
</math>
which contradicts the member constraint
of this problem.
</p>

<p>
So, a weighted model has been found such that the values for the
given tensegrity are a solution, and the original
proposition is proven.  This is not to say that a given weighted model
has only one tensegrity structure as a solution.  Some models have
more than one solution, each of which is a valid tensegrity structure.
In some situations, it may be of interest to probe a given weighted
model with different initial values to find alternative solutions.
</p>

<div id="footnotes">
<hr class="footmark"/>
<p class="note">
<sup><a href="#rf3" id="tx3">3</a></sup>
  <a href="refs.html#Tauchert74"><i>Tauchert74</i></a>, p.&nbsp;74.
  </p>

<p class="note">
<sup><a href="#rf4" id="tx4">4</a></sup>
  The members are assumed to be linearly elastic.
  </p>

<p class="note">
<sup><a href="#rf5" id="tx5">5</a></sup>
  Feasible here means that all constraint equations continue to be
  satisfied.  In contrast to the situation in
  <a href="chap3.xml">Chapter&nbsp;3</a> however, all member lengths may
  change.  This means
  <math xmlns="&mathml;"><mrow>
  <msub><mover><mi>l</mi><mo>&OverBar;</mo></mover>
  <mrow><msub><mi>n</mi><mo>o</mo></msub><mo>+</mo><mn>1</mn></mrow></msub>
  <mo>,</mo><mi>&hellip;</mi><mo>,</mo>
  <msub><mover><mi>l</mi><mo>&OverBar;</mo></mover>
  <msub><mi>n</mi><mo>m</mo></msub></msub>
  </mrow></math> may change.  In addition the constraints are met with
  equality.
  </p>

<p class="note">
<sup><a href="#rf6" id="tx6">6</a></sup>
  A negative change directly violates the assumption that
  the original configuration is a minimum.  A positive change indirectly
  violates the assumption since a point displacement which results in
  the change can be negated resulting in a negative
  change from the original configuration.
  </p>

<p class="note">
<sup><a href="#rf7" id="tx7">7</a></sup>
  See the "Sensitivity Theorem" in
  <a href="refs.html#Luenberger73"><i>Luenberger73</i></a>,
  p.&nbsp;231.
  </p>

<p class="note">
<sup><a href="#rf8" id="tx8">8</a></sup>
  <a href="refs.html#Varian78"><i>Varian78</i></a>, p.&nbsp;267.
  </p>

<p class="note">
<sup><a href="#rf9" id="tx9">9</a></sup>
  <a href="refs.html#Luenberger73"><i>Luenberger73</i></a>, pp.&nbsp;284-285.
  </p>
</div>

<p class="link">
<a href="index.html#chap7_2">Table of Contents</a><br/>
7.3&nbsp;<a href="chap7_3.xml">Exogenous Member Forces</a>
</p>

</body>
</html>
