<?xml version="1.0" encoding="iso-8859-1"?>
<!-- tenseg/book/appendixB.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">
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=iso-8859-1"/>
<meta name="keywords"
      content="tensegrity, treatise, how-to, primer, thesis, mathematics,
               proof, convex"/>
<meta name="description"
      content="Mathematical proof that the constraint region for the tensegrity mathematical-programming problem is non-convex."/>
<title>A Practical Guide to Tensegrity Design:
B&nbsp;Proof that the Constraint Region is Non-convex</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#appendixB">Table of Contents</a>
</p>

<p class="chapter-header">
Appendix B
<br/><br/>

Proof that the Constraint Region is Non-convex
</p>

<p>
In <a href="chap3.xml#solve">Section&nbsp;3.2</a>, the claim is made
that the constraint region in the general tensegrity mathematical programming
problem is not convex.  A proof is given here.
</p>

<p>
The non-convexity is due to the strut constraints.  To demonstrate
this, let <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>
be one set of admissible end points
for a strut which meet its length constraint with equality, and let
<math xmlns="&mathml;"><msub><mi>P</mi>
<mrow><mi>a</mi><mo>'</mo></mrow></msub></math>
and <math xmlns="&mathml;"><msub><mi>P</mi>
<mrow><mi>b</mi><mo>'</mo></mrow></msub></math>
be another such set.  Let
<math xmlns="&mathml;"><msub><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mi>n</mi></msub></math> be the value of the
corresponding constraint constant.  By assumption:
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi><mn>a</mn></msub>
<mo>-</mo><msub><mi>P</mi><mn>b</mn></msub></mrow></mfenced><mn>2</mn></msup>
<mo>=</mo>
<msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mi>n</mi><mn>2</mn></msubsup>
</mrow></math><br/>
<math xmlns="&mathml;"><mrow>
<msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi>
<mrow><mi>a</mi><mo>'</mo></mrow></msub>
<mo>-</mo><msub><mi>P</mi><mrow><mi>b</mi><mo>'</mo>
</mrow></msub></mrow></mfenced><mn>2</mn></msup>
<mo>=</mo>
<msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mi>n</mi><mn>2</mn></msubsup>
</mrow></math><br/>
</p>

<p>
Let
<math xmlns="&mathml;"><msub><mi>P</mi>
<mrow><mi>a</mi><mo>''</mo></mrow></msub></math>
and <math xmlns="&mathml;"><msub><mi>P</mi>
<mrow><mi>b</mi><mo>''</mo></mrow></msub></math>
be a convex combination of these two
point sets.  This means:
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<msub><mi>P</mi>
<mrow><mi>a</mi><mo>''</mo></mrow></msub>
<mo>&equiv;</mo>
<mi>&lambda;</mi><mo>&InvisibleTimes;</mo>
<msub><mi>P</mi><mn>a</mn></msub><mo>+</mo>
<mfenced><mrow><mn>1</mn><mo>-</mo><mi>&lambda;</mi></mrow></mfenced>
<mo>&InvisibleTimes;</mo>
<msub><mi>P</mi><mrow><mi>a</mi><mo>'</mo></mrow></msub></mrow></math><br/>
<math xmlns="&mathml;"><mrow>
<msub><mi>P</mi>
<mrow><mi>b</mi><mo>''</mo></mrow></msub>
<mo>&equiv;</mo>
<mi>&lambda;</mi><mo>&InvisibleTimes;</mo>
<msub><mi>P</mi><mn>b</mn></msub><mo>+</mo>
<mfenced><mrow><mn>1</mn><mo>-</mo><mi>&lambda;</mi></mrow></mfenced>
<mo>&InvisibleTimes;</mo>
<msub><mi>P</mi><mrow><mi>b</mi><mo>'</mo></mrow></msub></mrow></math><br/>
</p>

<p>
where <math xmlns="&mathml;"><mrow><mi>&lambda;</mi><mo>&isin;</mo>
<mfenced><mn>0</mn><mn>1</mn></mfenced></mrow></math>.
Therefore:
</p>

<table class="center"><tr><td>
<math xmlns="&mathml;"><mrow>
<msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi>
<mrow><mi>a</mi><mo>''</mo></mrow></msub>
<mo>-</mo><msub><mi>P</mi><mrow><mi>b</mi><mo>''</mo>
</mrow></msub></mrow></mfenced><mn>2</mn></msup>
<mo>=</mo>
<msup><mfenced open="|" close="|"><mrow>
<mi>&lambda;</mi><mo>&InvisibleTimes;</mo>
<mfenced><mrow><msub><mi>P</mi><mn>a</mn></msub>
<mo>-</mo>
<msub><mi>P</mi><mn>b</mn></msub></mrow></mfenced>
<mo>+</mo>
<mfenced><mrow><mn>1</mn><mo>-</mo><mi>&lambda;</mi></mrow></mfenced>
<mo>&InvisibleTimes;</mo>
<mfenced><mrow><msub><mi>P</mi><mrow><mi>a</mi><mo>'</mo></mrow></msub>
<mo>-</mo>
<msub><mi>P</mi><mrow><mi>b</mi><mo>'</mo></mrow></msub></mrow></mfenced>
</mrow></mfenced><mn>2</mn></msup></mrow></math><br/>
<math xmlns="&mathml;"><mrow>
<mphantom>
<msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi>
<mrow><mi>a</mi><mo>''</mo></mrow></msub>
<mo>-</mo><msub><mi>P</mi><mrow><mi>b</mi><mo>''</mo>
</mrow></msub></mrow></mfenced><mn>2</mn></msup>
</mphantom>
<mo>=</mo>
<msup><mi>&lambda;</mi><mn>2</mn></msup><mo>&InvisibleTimes;</mo>
<msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi><mn>a</mn></msub>
<mo>-</mo><msub><mi>P</mi><mn>b</mn></msub></mrow></mfenced><mn>2</mn></msup>
<mo>+</mo><mn>2</mn><mo>&InvisibleTimes;</mo><mi>&lambda;</mi>
<mo>&InvisibleTimes;</mo>
<mfenced><mrow><mn>1</mn><mo>-</mo><mi>&lambda;</mi></mrow></mfenced>
<mo>&InvisibleTimes;</mo>
<mfenced><mrow><msub><mi>P</mi><mn>a</mn></msub>
<mo>-</mo><msub><mi>P</mi><mn>b</mn></msub></mrow></mfenced>
<mo>&sdot;</mo>
<mfenced><mrow><msub><mi>P</mi><mrow><mi>a</mi><mo>'</mo></mrow></msub>
<mo>-</mo>
<msub><mi>P</mi><mrow><mi>b</mi><mo>'</mo></mrow></msub></mrow></mfenced>
<mo>+</mo>
<msup><mfenced><mrow><mn>1</mn><mo>-</mo><mi>&lambda;</mi></mrow></mfenced>
<mn>2</mn></msup><mo>&InvisibleTimes;</mo>
<msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi>
<mrow><mi>a</mi><mo>'</mo></mrow></msub>
<mo>-</mo><msub><mi>P</mi><mrow><mi>b</mi><mo>'</mo>
</mrow></msub></mrow></mfenced><mn>2</mn></msup>
</mrow></math><br/>
</td></tr></table>

<p>
By the Schwarz inequality:<sup><a href="#tx1" id="rf1">1</a></sup>
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<mfenced><mrow><msub><mi>P</mi><mn>a</mn></msub>
<mo>-</mo><msub><mi>P</mi><mn>b</mn></msub></mrow></mfenced>
<mo>&sdot;</mo>
<mfenced><mrow><msub><mi>P</mi><mrow><mi>a</mi><mo>'</mo></mrow></msub>
<mo>-</mo>
<msub><mi>P</mi><mrow><mi>b</mi><mo>'</mo></mrow></msub></mrow></mfenced>
<mo>&lt;</mo>
<mfenced open="|" close="|"><mrow><msub><mi>P</mi><mn>a</mn></msub>
<mo>-</mo><msub><mi>P</mi><mn>b</mn></msub></mrow></mfenced>
<mo>&InvisibleTimes;</mo>
<mfenced open="|" close="|"><mrow><msub><mi>P</mi>
<mrow><mi>a</mi><mo>'</mo></mrow></msub>
<mo>-</mo><msub><mi>P</mi><mrow><mi>b</mi><mo>'</mo>
</mrow></msub></mrow></mfenced>
</mrow></math>
</p>

<p>
So:
</p>

<table class="center"><tr><td>
<math xmlns="&mathml;"><mrow>
<msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi>
<mrow><mi>a</mi><mo>''</mo></mrow></msub>
<mo>-</mo><msub><mi>P</mi><mrow><mi>b</mi><mo>''</mo>
</mrow></msub></mrow></mfenced><mn>2</mn></msup>
<mo>&lt;</mo>
<msup><mi>&lambda;</mi><mn>2</mn></msup><mo>&InvisibleTimes;</mo>
<msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi><mn>a</mn></msub>
<mo>-</mo><msub><mi>P</mi><mn>b</mn></msub></mrow></mfenced><mn>2</mn></msup>
<mo>+</mo><mn>2</mn><mo>&InvisibleTimes;</mo><mi>&lambda;</mi>
<mo>&InvisibleTimes;</mo>
<mfenced><mrow><mn>1</mn><mo>-</mo><mi>&lambda;</mi></mrow></mfenced>
<mo>&InvisibleTimes;</mo>
<mfenced open="|" close="|"><mrow><msub><mi>P</mi><mn>a</mn></msub>
<mo>-</mo><msub><mi>P</mi><mn>b</mn></msub></mrow></mfenced>
<mo>&InvisibleTimes;</mo>
<mfenced open="|" close="|">
<mrow><msub><mi>P</mi><mrow><mi>a</mi><mo>'</mo></mrow></msub>
<mo>-</mo>
<msub><mi>P</mi><mrow><mi>b</mi><mo>'</mo></mrow></msub></mrow></mfenced>
<mo>+</mo>
<msup><mfenced><mrow><mn>1</mn><mo>-</mo><mi>&lambda;</mi></mrow></mfenced>
<mn>2</mn></msup><mo>&InvisibleTimes;</mo>
<msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi>
<mrow><mi>a</mi><mo>'</mo></mrow></msub>
<mo>-</mo><msub><mi>P</mi><mrow><mi>b</mi><mo>'</mo>
</mrow></msub></mrow></mfenced><mn>2</mn></msup>
</mrow></math><br/>
<math xmlns="&mathml;"><mrow>
<mphantom>
<msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi>
<mrow><mi>a</mi><mo>''</mo></mrow></msub>
<mo>-</mo><msub><mi>P</mi><mrow><mi>b</mi><mo>''</mo>
</mrow></msub></mrow></mfenced><mn>2</mn></msup>
</mphantom>
<mo>=</mo>
<msup><mfenced><mrow>
<mi>&lambda;</mi><mo>&InvisibleTimes;</mo>
<mfenced open="|" close="|"><mrow><msub><mi>P</mi><mn>a</mn></msub>
<mo>-</mo>
<msub><mi>P</mi><mn>b</mn></msub></mrow></mfenced>
<mo>+</mo>
<mfenced><mrow><mn>1</mn><mo>-</mo><mi>&lambda;</mi></mrow></mfenced>
<mo>&InvisibleTimes;</mo>
<mfenced open="|" close="|">
<mrow><msub><mi>P</mi><mrow><mi>a</mi><mo>'</mo></mrow></msub>
<mo>-</mo>
<msub><mi>P</mi><mrow><mi>b</mi><mo>'</mo></mrow></msub></mrow></mfenced>
</mrow></mfenced><mn>2</mn></msup></mrow></math><br/>
<math xmlns="&mathml;"><mrow>
<mphantom>
<msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi>
<mrow><mi>a</mi><mo>''</mo></mrow></msub>
<mo>-</mo><msub><mi>P</mi><mrow><mi>b</mi><mo>''</mo>
</mrow></msub></mrow></mfenced><mn>2</mn></msup>
</mphantom>
<mo>=</mo>
<msup><mfenced><mrow>
<mi>&lambda;</mi><mo>&InvisibleTimes;</mo>
<msub><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mi>n</mi></msub>
<mo>+</mo>
<mfenced><mrow><mn>1</mn><mo>-</mo><mi>&lambda;</mi></mrow></mfenced>
<mo>&InvisibleTimes;</mo>
<msub><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mi>n</mi></msub>
</mrow></mfenced><mn>2</mn></msup></mrow></math><br/>
<math xmlns="&mathml;"><mrow>
<mphantom>
<msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi>
<mrow><mi>a</mi><mo>''</mo></mrow></msub>
<mo>-</mo><msub><mi>P</mi><mrow><mi>b</mi><mo>''</mo>
</mrow></msub></mrow></mfenced><mn>2</mn></msup>
</mphantom>
<mo>=</mo>
<msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mi>n</mi><mn>2</mn></msubsup>
</mrow></math><br/>
</td></tr></table>

<p>
In summary:
</p>

<p class="center">
<math xmlns="&mathml;"><mrow>
<msubsup><mover><mi>l</mi><mo>&OverBar;</mo></mover>
<mi>n</mi><mn>2</mn></msubsup>
<mo>&gt;</mo>
<msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi>
<mrow><mi>a</mi><mo>''</mo></mrow></msub>
<mo>-</mo><msub><mi>P</mi><mrow><mi>b</mi><mo>''</mo>
</mrow></msub></mrow></mfenced><mn>2</mn></msup>
</mrow></math>
</p>

<p>
This means the constraint is violated; hence, the constraint
region is not convex.
</p>

<div id="footnotes">
<hr class="footmark"/>
<p class="note">
<sup><a href="#rf1" id="tx1">1</a></sup>
  See <a href="refs.html#Lang71"><i>Lang71</i></a>, p.&nbsp;22.  This is also
  known as the Cauchy-Schwarz inequality or the
  Cauchy-Buniakovskii-Schwarz inequality.
  </p>
</div>

<p class="link">
<a href="index.html#appendixB">Table of Contents</a>
</p>
</body>
</html>

