package joptima.tests;

import joptima.fortran.*;

/**
*
*This class tests the Fmin class.
*
*@author Steve Verrill
*@version .5 --- March 25, 1998
*
*/


public class FminTest extends Object implements Fmin_methods {

   int id_f_to_min;
   double c,d,e;

   FminTest(int idtemp, double ctemp, double dtemp, double etemp) {

      id_f_to_min = idtemp;
      c = ctemp;
      d = dtemp;
      e = etemp;

   }

   public static void main (String args[]) {

      int another;
      int idtemp;
      double ctemp,dtemp,etemp;
      double a,b,tol,xmin;

      ctemp = dtemp = etemp = 0.0;

      another = 1;

      while (another == 1) { 

/*

   Console is a public domain class described in Cornell
   and Horstmann's Core Java (SunSoft Press, Prentice-Hall).

*/
   
         idtemp = Console.readInt("\nWhat function do you " +
         "want to minimize?\n\n" +
         "1 -- (x - c)(x - d)\n" +
         "2 -- (x - c)(x - d)(x - e)\n" +
         "3 -- sin(x)\n\n");

         if (idtemp == 1) {

            ctemp = Console.readDouble("\nWhat is the c value?  ");
            dtemp = Console.readDouble("\nWhat is the d value?  ");

         } else if (idtemp == 2) {

            ctemp = Console.readDouble("\nWhat is the c value?  ");
            dtemp = Console.readDouble("\nWhat is the d value?  ");
            etemp = Console.readDouble("\nWhat is the e value?  ");

         }

         FminTest fmintest = new FminTest(idtemp,ctemp,dtemp,etemp);

         a = Console.readDouble("\nWhat is the a value?  ");
         b = Console.readDouble("\nWhat is the b value?  ");
         tol = Console.readDouble("\nWhat is the tol value?  ");

         xmin = Fmin.fmin(a,b,fmintest,tol);

         System.out.print("\nThe xmin value is " + xmin + "\n");      

         another = Console.readInt("\nAnother test?" +
         "   0 - no   1 - yes\n\n");

      }

      System.out.print("\n");

   }


   public double f_to_minimize(double x) {

      double f;

      if (id_f_to_min == 1) {

         f = (x - c)*(x - d);

      } else if (id_f_to_min == 2) {

         f = (x - c)*(x - d)*(x - e);

      } else {

         f = Math.sin(x);

      }

      return f;         

   }


}

 

Ads help maintain this website.