<!DOCTYPE html
  PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<!--
Copyright (c) 2006 UGS Corp.

All Rights Reserved.

This software and related documentation are proprietary to UGS Corp.
-->
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Newton-Raphson Goal Seek</title>
      <script language="javaScript">
        abridged="false";
        displayConditions=new Array();
      </script>
      <link type="text/css" href="../css/main_styles.css" rel="stylesheet">
   </head>
   <body class="bodydocs" onload="top.pageLoader()" bgcolor="#FFFFFF">
      <div class="title_topic5" id="xps10_pagetitle">Newton-Raphson Goal Seek</div>
      <hr noshade="true">
      <p class="para_topic"> Standard Newton-Raphson Goal Seek starts with an initial guess for the solution then calculates the derivative (slope) of the function at that guess. The derivative (slope) is used to get a new guess for the solution of the function. Mathematically speaking, the program calculates the derivative by taking a small step away from the given point, and then dividing the difference between two function values by the step size:</p><pre class="indent"> derivative = ( f(p0) - f(p1) ) / ( p0 - p1) where:f() = function p0 = initial guess p1 = initial guess + small_delta.</pre><p class="para_topic"> With Options&rarr;Setup Goal Seek set to Regula Falsi Method, choosing Tools&rarr;Goal Seek displays the Regula Falsi Goal Seek dialog. Newton-Raphson requires the following information:</p>
      <table border="0" cellpadding="2" cellspacing="3" align="center">
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle" width="33%">
               <p class="para_td"> Variable Cell</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> The cell location to change.</p>
            </td>
         </tr>
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> Start Point</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> The optional initial guess.</p>
            </td>
         </tr>
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> Target Cell</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> The cell location for result.</p>
            </td>
         </tr>
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> Target Value</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> The desired result.</p>
            </td>
         </tr>
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> Tolerance</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> The desired accuracy of convergence.</p>
            </td>
         </tr>
         <tr>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> Max Iterations</p>
            </td>
            <td bgcolor="#f4f4f4" colspan="1" rowspan="1" valign="middle">
               <p class="para_td"> The number of iterations allowed.</p>
            </td>
         </tr>
      </table><br><p class="para_topic"></p>
      <p class="para_topic"> Newton-Raphson generally requires a decent start point for the function to converge. The start point is optional, and if left blank the program will use the current value of the variable cell as the initial guess.</p>
      <p class="para_topic"> Newton-Raphson has the standard error conditions plus the following error condition:</p>
      <ul>
         <li>
            <p class="para_item"> Floating point error - If the derivative (slope of the function is zero.</p>
         </li>
      </ul>
      <p class="para_topic"> As described earlier, the Perform NX Update button selects whether the Goal Seek will actually cause the expressions defined in the active range to be sent to the NX part.</p>
      <p class="para_topic"> In some cases, the function being evaluated does have a zero slope. In order to handle functions that have a zero slope, there is an option button near the bottom of the dialog labeled Zero Slope Function. Turning this option ON improves the ability of Newton-Raphson Goal Seek to converge on a target value.</p>
      <p class="para_topic"> An example of zero slope might be a case where the result of a function is a percentage value, and once the percentage gets to 100% it stops increasing. The slope of the curve when the function is clamped to 100% is zero. For example, consider the following function:</p>
      <p class="para_topic"> if (x &lt; 10) x*x else 100</p>
      <p class="para_topic"> The function returns x squared until the value is 10, and then it is clamped at 100 regardless of the input. This is an example of a zero slope function.</p>
      <p class="para_topic"> Using normal Newton-Raphson goal seek with a target value of 100, the program may make a guess of 12.4 for x. The function is evaluated, the result is 100, and since the target has been achieved the goal seek stops. Even though a value of 12.4 for x does match the target, it is not really the value we want. By turning on the Zero Slope Function option the Goal Seek finds the value 10 as the value for x.</p>
      <p class="para_topic"> The Zero Slope Function option does take more computational effort, and typically at least doubles the number of times the function is evaluated and the NX part is updated in order to find a solution.</p>
   </body>
</html>