﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?application progid="SMath Studio Desktop" version="0.97.5346.24640"?>
<regions>
  <settings>
    <identity>
      <id>5e818d2f-2866-4b3a-a599-b96219c80f73</id>
      <revision>14</revision>
    </identity>
    <calculation>
      <precision>4</precision>
      <exponentialThreshold>5</exponentialThreshold>
      <fractions>decimal</fractions>
    </calculation>
    <pageModel active="true" printAreas="true" simpleEqualsOnly="false" printBackgroundImages="true">
      <paper id="9" orientation="Portrait" width="827" height="1169" />
      <margins left="39" right="39" top="39" bottom="39" />
      <header alignment="Center" color="#a9a9a9">&amp;[DATE] &amp;[TIME] - &amp;[FILENAME]</header>
      <footer alignment="Center" color="#a9a9a9">&amp;[PAGENUM] / &amp;[COUNT]</footer>
      <backgrounds />
    </pageModel>
    <dependences>
      <assembly name="SMath Studio Desktop" version="0.97.5346.24640" guid="a37cba83-b69c-4c71-9992-55ff666763bd" />
      <assembly name="Text Region" version="1.10.5346.31409" guid="485d28c5-349a-48b6-93be-12a35a1c1e39" />
      <assembly name="Special Functions" version="1.11.5346.31403" guid="2814e667-4e12-48b1-8d51-194e480eabc5" />
      <assembly name="Math Region" version="0.97.5346.24640" guid="02f1ab51-215b-466e-a74d-5d8b1cf85e8d" />
      <assembly name="Nonlinear Solvers" version="1.1.5976.11383" guid="618b7e96-330a-406a-b055-9e577672f0b8" />
    </dependences>
  </settings>
  <region id="0" left="0" top="9" width="103" height="24" color="#000000" bgColor="#ffff80" fontSize="10">
    <text lang="eng">
      <p>References:</p>
    </text>
  </region>
  <region id="1" left="9" top="36" width="539" height="24" color="#000000" bgColor="#ffff80" fontSize="10">
    <text lang="eng">
      <p>http://en.wikipedia.org/wiki/Nonlinear_conjugate_gradient_method</p>
    </text>
  </region>
  <region id="2" left="567" top="36" width="136" height="24" color="#000000" bgColor="#ffff80" fontSize="10">
    <text lang="eng">
      <p>β:Polak–Ribière</p>
    </text>
  </region>
  <region id="3" left="0" top="81" width="789" height="609" color="#000000" bgColor="#ffffff" fontSize="10">
    <math optimize="2">
      <description active="true" position="Top" lang="eng">
        <p>Nonlinear conjugate gradient method.</p>
      </description>
      <input>
        <e type="operand">1</e>
        <e type="function" args="1">f</e>
        <e type="operand">x.0</e>
        <e type="operand">ε</e>
        <e type="operand">maxIters</e>
        <e type="function" args="4">NCGM.ref</e>
        <e type="operand">m</e>
        <e type="operand">x.0</e>
        <e type="function" args="1">f</e>
        <e type="function" preserve="true" args="1">rows</e>
        <e type="function" preserve="true" args="1">eval</e>
        <e type="operator" args="2">:</e>
        <e type="operand">x#</e>
        <e type="function" args="1">F</e>
        <e type="operand">1</e>
        <e type="operand">2</e>
        <e type="operator" args="2">/</e>
        <e type="operand">x#</e>
        <e type="function" args="1">f</e>
        <e type="operand">i</e>
        <e type="function" preserve="true" args="2">el</e>
        <e type="bracket">(</e>
        <e type="operand">2</e>
        <e type="operator" args="2">^</e>
        <e type="bracket">(</e>
        <e type="operand">i</e>
        <e type="operand">1</e>
        <e type="operand">m</e>
        <e type="function" preserve="true" args="4">sum</e>
        <e type="operator" args="2">*</e>
        <e type="operator" args="2">:</e>
        <e type="operand">k</e>
        <e type="operand">0</e>
        <e type="operator" args="2">:</e>
        <e type="operand">x</e>
        <e type="operand">x.0</e>
        <e type="operator" args="2">:</e>
        <e type="operand">h.SD</e>
        <e type="operand">x#</e>
        <e type="function" args="1">F</e>
        <e type="operand">x</e>
        <e type="function" preserve="true" args="2">Gradient</e>
        <e type="operator" args="1">-</e>
        <e type="function" preserve="true" args="1">eval</e>
        <e type="operator" args="2">:</e>
        <e type="operand">α</e>
        <e type="operand">x</e>
        <e type="operand">α#</e>
        <e type="operand">h.SD</e>
        <e type="operator" args="2">*</e>
        <e type="operator" args="2">+</e>
        <e type="function" args="1">F</e>
        <e type="operand">0</e>
        <e type="operand">10</e>
        <e type="operand">10</e>
        <e type="operand">2</e>
        <e type="operator" args="1">-</e>
        <e type="operator" args="2">^</e>
        <e type="function" preserve="true" args="4">GoldenSectionSearch.min</e>
        <e type="function" preserve="true" args="1">eval</e>
        <e type="operator" args="2">:</e>
        <e type="operand">x</e>
        <e type="operand">x</e>
        <e type="operand">α</e>
        <e type="operand">h.SD</e>
        <e type="operator" args="2">*</e>
        <e type="operator" args="2">+</e>
        <e type="function" preserve="true" args="1">eval</e>
        <e type="operator" args="2">:</e>
        <e type="operand">Δx</e>
        <e type="operand">h.SD</e>
        <e type="operator" args="2">:</e>
        <e type="operand">k</e>
        <e type="operand">1</e>
        <e type="operator" args="2">:</e>
        <e type="operand">k</e>
        <e type="operand">maxIters</e>
        <e type="operator" args="2">&lt;</e>
        <e type="operand">h.SD</e>
        <e type="operand">x#</e>
        <e type="function" args="1">F</e>
        <e type="operand">x</e>
        <e type="function" preserve="true" args="2">Gradient</e>
        <e type="operator" args="1">-</e>
        <e type="function" preserve="true" args="1">eval</e>
        <e type="operator" args="2">:</e>
        <e type="operand">h.SD</e>
        <e type="operand">2</e>
        <e type="operator" args="2">^</e>
        <e type="function" preserve="true" args="1">sqrt</e>
        <e type="operand">ε</e>
        <e type="operator" args="2">≤</e>
        <e type="operand">break</e>
        <e type="operand">β.PR</e>
        <e type="operand">h.SD</e>
        <e type="function" preserve="true" args="1">transpose</e>
        <e type="operand">h.SD</e>
        <e type="operand">Δx</e>
        <e type="operator" args="2">-</e>
        <e type="bracket">(</e>
        <e type="operator" args="2">*</e>
        <e type="operand">Δx</e>
        <e type="function" preserve="true" args="1">transpose</e>
        <e type="operand">Δx</e>
        <e type="operator" args="2">*</e>
        <e type="operator" args="2">/</e>
        <e type="function" preserve="true" args="1">eval</e>
        <e type="operator" args="2">:</e>
        <e type="operand">Δx</e>
        <e type="operand">h.SD</e>
        <e type="operand">β.PR</e>
        <e type="operand">Δx</e>
        <e type="operator" args="2">*</e>
        <e type="operator" args="2">+</e>
        <e type="function" preserve="true" args="1">eval</e>
        <e type="operator" args="2">:</e>
        <e type="operand">α</e>
        <e type="operand">x</e>
        <e type="operand">α#</e>
        <e type="operand">h.SD</e>
        <e type="operator" args="2">*</e>
        <e type="operator" args="2">+</e>
        <e type="function" args="1">F</e>
        <e type="operand">0</e>
        <e type="operand">10</e>
        <e type="operand">10</e>
        <e type="operand">2</e>
        <e type="operator" args="1">-</e>
        <e type="operator" args="2">^</e>
        <e type="function" preserve="true" args="4">GoldenSectionSearch.min</e>
        <e type="function" preserve="true" args="1">eval</e>
        <e type="operator" args="2">:</e>
        <e type="operand">x</e>
        <e type="operand">x</e>
        <e type="operand">α</e>
        <e type="operand">Δx</e>
        <e type="operator" args="2">*</e>
        <e type="operator" args="2">+</e>
        <e type="function" preserve="true" args="1">eval</e>
        <e type="operator" args="2">:</e>
        <e type="operand">k</e>
        <e type="operand">k</e>
        <e type="operand">1</e>
        <e type="operator" args="2">+</e>
        <e type="operator" args="2">:</e>
        <e type="operand">5</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="7">line</e>
        <e type="function" preserve="true" args="3">if</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">line</e>
        <e type="function" preserve="true" args="2">while</e>
        <e type="operand">x</e>
        <e type="operand">k</e>
        <e type="operand">1</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="3">mat</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
        <e type="operand">11</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="13">line</e>
        <e type="operator" args="2">:</e>
      </input>
    </math>
  </region>
  <region id="4" left="0" top="720" width="51" height="24" color="#000000" bgColor="#ffff80" fontSize="10">
    <math>
      <input>
        <e type="operand">α</e>
        <e type="operand">10</e>
        <e type="operator" args="2">:</e>
      </input>
    </math>
  </region>
  <region id="5" left="0" top="747" width="253" height="73" color="#000000" bgColor="#ffff80" fontSize="10">
    <math>
      <input>
        <e type="operand">x</e>
        <e type="function" args="1">Rosenbrock</e>
        <e type="operand">1</e>
        <e type="operand">x</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="2">el</e>
        <e type="operator" args="2">-</e>
        <e type="operand">α</e>
        <e type="function" preserve="true" args="1">sqrt</e>
        <e type="operand">x</e>
        <e type="operand">2</e>
        <e type="function" preserve="true" args="2">el</e>
        <e type="operand">x</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="2">el</e>
        <e type="bracket">(</e>
        <e type="operand">2</e>
        <e type="operator" args="2">^</e>
        <e type="operator" args="2">-</e>
        <e type="bracket">(</e>
        <e type="operator" args="2">*</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
        <e type="operator" args="2">:</e>
      </input>
    </math>
  </region>
  <region id="6" left="360" top="756" width="167" height="46" color="#000000" bgColor="#80ff80" fontSize="10">
    <math>
      <input>
        <e type="operand">1</e>
        <e type="operand">1</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
        <e type="function" args="1">Rosenbrock</e>
      </input>
      <result action="numeric">
        <e type="operand">0</e>
        <e type="operand">0</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
      </result>
    </math>
  </region>
  <region id="7" left="18" top="828" width="366" height="46" color="#000000" bgColor="#ffffff" fontSize="10">
    <math error="43" decimalPlaces="5">
      <input>
        <e type="operand">x</e>
        <e type="function" args="1">Rosenbrock</e>
        <e type="operand">0.5</e>
        <e type="operator" args="1">-</e>
        <e type="operand">1.5</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
        <e type="operand">0.001</e>
        <e type="operand">50</e>
        <e type="function" args="4">NCGM.ref</e>
      </input>
      <result action="numeric">
        <e type="operand">#</e>
      </result>
    </math>
  </region>
  <region id="8" left="18" top="918" width="483" height="66" color="#000000" bgColor="#ffffff" fontSize="10">
    <math decimalPlaces="5">
      <input>
        <e type="operand">x</e>
        <e type="function" args="1">Rosenbrock</e>
        <e type="operand">0.5</e>
        <e type="operator" args="1">-</e>
        <e type="operand">1.5</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
        <e type="operand">0.001</e>
        <e type="operand">50</e>
        <e type="operand">1</e>
        <e type="operand">0</e>
        <e type="operand">0</e>
        <e type="function" preserve="true" args="7">NCGM</e>
      </input>
      <result action="numeric">
        <e type="operand">1.00014</e>
        <e type="operand">1.00027</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
        <e type="operand">10</e>
        <e type="operand">1</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="3">mat</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
      </result>
    </math>
  </region>
  <region id="9" left="18" top="1008" width="545" height="66" color="#000000" bgColor="#ffffff" fontSize="10">
    <math decimalPlaces="5">
      <input>
        <e type="operand">x</e>
        <e type="function" args="1">Rosenbrock</e>
        <e type="operand">0.5</e>
        <e type="operator" args="1">-</e>
        <e type="operand">1.5</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
        <e type="operand">10</e>
        <e type="operand">2</e>
        <e type="operator" args="1">-</e>
        <e type="operator" args="2">^</e>
        <e type="operand">0.01</e>
        <e type="operand">50</e>
        <e type="operand">1</e>
        <e type="operand">0</e>
        <e type="operand">0</e>
        <e type="function" preserve="true" args="8">NCGM.CD</e>
      </input>
      <result action="numeric">
        <e type="operand">0.99797</e>
        <e type="operand">0.99584</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
        <e type="operand">14</e>
        <e type="operand">1</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="3">mat</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
      </result>
    </math>
  </region>
  <region id="10" left="0" top="1098" width="244" height="55" color="#000000" bgColor="#ffff80" fontSize="10">
    <math>
      <input>
        <e type="operand">x</e>
        <e type="operand">y</e>
        <e type="function" args="2">Rosenbrock</e>
        <e type="operand">1</e>
        <e type="operand">x</e>
        <e type="operator" args="2">-</e>
        <e type="operand">α</e>
        <e type="function" preserve="true" args="1">sqrt</e>
        <e type="operand">y</e>
        <e type="operand">x</e>
        <e type="operand">2</e>
        <e type="operator" args="2">^</e>
        <e type="operator" args="2">-</e>
        <e type="bracket">(</e>
        <e type="operator" args="2">*</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">sys</e>
        <e type="operator" args="2">:</e>
      </input>
    </math>
  </region>
  <region id="11" left="360" top="1107" width="184" height="44" color="#000000" bgColor="#80ff80" fontSize="10">
    <math>
      <input>
        <e type="operand">1</e>
        <e type="operand">1</e>
        <e type="function" args="2">Rosenbrock</e>
      </input>
      <result action="numeric">
        <e type="operand">0</e>
        <e type="operand">0</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">sys</e>
      </result>
    </math>
  </region>
  <region id="12" left="18" top="1170" width="498" height="66" color="#000000" bgColor="#ffffff" fontSize="10">
    <math>
      <input>
        <e type="operand">x</e>
        <e type="operand">y</e>
        <e type="function" args="2">Rosenbrock</e>
        <e type="operand">0.5</e>
        <e type="operator" args="1">-</e>
        <e type="operand">1.5</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
        <e type="operand">0.001</e>
        <e type="operand">50</e>
        <e type="operand">1</e>
        <e type="operand">0</e>
        <e type="operand">0</e>
        <e type="function" preserve="true" args="7">NCGM</e>
      </input>
      <result action="numeric">
        <e type="operand">1.0001</e>
        <e type="operand">1.0003</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
        <e type="operand">10</e>
        <e type="operand">1</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="3">mat</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
      </result>
    </math>
  </region>
  <region id="13" left="765" top="1233" width="407" height="46" color="#000000" bgColor="#ffffff" fontSize="10">
    <math>
      <input>
        <e type="operand">x</e>
        <e type="operand">y</e>
        <e type="function" args="2">Rosenbrock</e>
        <e type="operand">0.5</e>
        <e type="operator" args="1">-</e>
        <e type="operand">1.5</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">sys</e>
        <e type="function" preserve="true" args="2">LevenbergMarquardt</e>
      </input>
      <result action="numeric">
        <e type="operand">1</e>
        <e type="operand">1</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">sys</e>
      </result>
    </math>
  </region>
  <region id="14" left="18" top="1242" width="569" height="66" color="#000000" bgColor="#ffffff" fontSize="10">
    <math decimalPlaces="5">
      <input>
        <e type="operand">x</e>
        <e type="operand">y</e>
        <e type="function" args="2">Rosenbrock</e>
        <e type="operand">0.5</e>
        <e type="operator" args="1">-</e>
        <e type="operand">1.5</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
        <e type="operand">10</e>
        <e type="operand">2</e>
        <e type="operator" args="1">-</e>
        <e type="operator" args="2">^</e>
        <e type="operand">0.01</e>
        <e type="operand">50</e>
        <e type="operand">1</e>
        <e type="operand">0</e>
        <e type="operand">0</e>
        <e type="function" preserve="true" args="8">NCGM.CD</e>
      </input>
      <result action="numeric">
        <e type="operand">0.99797</e>
        <e type="operand">0.99584</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
        <e type="operand">14</e>
        <e type="operand">1</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="3">mat</e>
        <e type="operand">2</e>
        <e type="operand">1</e>
        <e type="function" preserve="true" args="4">mat</e>
      </result>
    </math>
  </region>
</regions>