Go Back

<HTML>

<HEAD>
<TITLE>Iteration results</TITLE>
</HEAD>

<? include("header.html"); ?>

<CENTER>
<A HREF="#results">Iteration Results</A> |
<A HREF="#form">Try another function</A><BR>
View the php <A HREF="parabolacode.phtml">source code</A>!<BR>
View the form <A HREF="logistic.html#code">source code</A>!<BR>
<HR>
</CENTER>

<A name="results">
<CENTER>
<P>The function <B>x<sub>next</sub> = <? echo $function; ?></B> at
<I>k</I> = <? echo $kval; ?> and
<I>x<sub>0</sub></I> = <? echo $xval; ?>:</P>
</CENTER>

<?
  $xorig = $xval;

//
//  ERROR CHECKING
//

  $errors = 0;
  if ($function == "y = k*x*(1-x)")
  {
// CHECK BOUNDARIES FOR K, X IN LOGISTIC EQUATION
   if ($kval < 1 || $kval > 4)
   {
     echo "Error: <B><I>k</I></B> must be in the range [1,4].<BR>";
     $errors++;
   }
   if ($xval <= 0 || $xval >= 1)
   {
     echo "Error: <B><I>x<sub>0</sub></I></B> must be in the range (0,1).<BR>";
     $errors++;
   }
  }
// CHECK FOR VALID NUMBER OF ITERATIONS
  if ($nIter < 1)
  {
    echo "Error: there must be a positive number of iterations.<BR>";
    $errors++;
  }
  if ($nIter >= 1000)
  {
    echo "Error: too many iterations.";
    echo "Please choose a number less than 1000.<BR>";
    $errors++;
  }
  if ($nIter != floor($nIter))
  {
    echo "Error: there must be an integral number of iterations.<BR>";
    $errors++;
  }

//
// DO ITERATIONS!
//

  if ($errors == 0) for ($index=0, $xlast=$xval-1; $index<=$nIter; $index++)
  {
    echo "x<sub>";
    echo $index;
    echo "</sub>";
// CHECK FOR CONVERGENCE
    if (floor($xval*pow(10,14)) == floor($xlast*pow(10,14)))
    {
      echo "...x<sub>";
      echo $nIter;
      echo "</sub>";
    }
    echo ": ";
    echo $xval;
    echo "<br>\n";

// BREAK IF THE SEQUENCE HAS CONVERGED
    if (floor($xval*pow(10,14)) == floor($xlast*pow(10,14))) break;
    $xlast = $xval;

// FIND NEXT ITERATION
    switch ($function)
    {
      case "y = k*x*(1-x)":
        $xval = $kval * $xval * (1 - $xval);
        break;
      case "y = sin(k/x)":	
        $xval = sin($kval / $xval);
        break;
      case "y = k*e^(cos x)":
        $xval = $kval * exp(cos($xval));
        break;
      case "y = k*sqrt(x)":
        $xval = $kval * sqrt($xval);
        break;
      default:
        $xval = "Error: bad function";
    };
  }

?>

<HR>
<A name="form">

<?
//
// RECREATE FORM
//

 echo "<CENTER><P>\n";
 echo '<FORM name="data" ACTION="parabola.php3" METHOD=POST>'."\n";
 echo "The function:<BR>\n";
 echo '<SELECT name="function">'."\n";
 echo "<OPTION";
 if ($function == "y = k*x*(1-x)") echo " SELECTED";
 echo ">y = k*x*(1-x)\n";
 echo "<OPTION";
 if ($function == "y = sin(k/x)") echo " SELECTED";
 echo ">y = sin(k/x)\n";
 echo "<OPTION";
 if ($function == "y = k*e^(cos x)") echo " SELECTED";
 echo ">y = k*e^(cos x)\n";
 echo "<OPTION";
 if ($function == "y = k*sqrt(x)") echo " SELECTED";
 echo ">y = k*sqrt(x)";
 echo "</SELECT></P>\n";

 echo '<TABLE border=1 bgcolor="#CCCCCC"><TR><TD valign=center>'."\n";
 echo '<TABLE border=0 valign=center>'."\n";
 echo '<TR><TD align=right><FONT color="#000000">';
 echo '<B><I>k</I></B> value:</FONT></TD>';
 echo "\n".'<TD align=left><INPUT TYPE=text NAME="kval" value="';
 echo $kval.'"></TD></TR>'."\n";
 echo '<TR><TD align=right><FONT color="#000000"><B><I>x<sub>0</sub></I></B>';
 echo 'value:</FONT></TD>'."\n";
 echo '<TD align=left><INPUT TYPE=text NAME="xval" value="';
 echo $xorig.'"></TD></TR>'."\n";
 echo '<TR><TD align=right><FONT color="#000000">Iterations:</FONT></TD>';
 echo "\n".'<TD align=left><INPUT TYPE=text NAME="nIter" value="';
 echo $nIter.'"></TD></TR>'."\n";
 echo '<TR><TD colspan=2 align=center><INPUT type=submit value="Submit">';
 echo "</TD></TR>\n";
 echo "</TABLE>\n";
 echo "</FONT>\n";
 echo "</TD></TR></TABLE></FORM>\n";
 echo "</CENTER>\n";

?>

<? include("footer.html") ?>

</HTML>

My Supercomp front page.
This page was created by Gary Sivek for 7th Period Supercomp.