Beispiel #1
0
 public void MinGold2()
 {
     double xmin=0;
     //local minimum
     double realXmin = 4.057968;
     double eps = 1e-5;
     int counterMax = 50;
     LineSearch ls = new LineSearch();
     TestFunction1 f = new TestFunction1();
     int counter = ls.FindMinimumViaGoldenSection(f,1,4,5,counterMax,eps,ref xmin);
     Assert.IsTrue(counter<counterMax);
     Assert.IsTrue (System.Math.Abs(xmin-realXmin)<eps);
 }
Beispiel #2
0
        public void MinGold2()
        {
            double xmin = 0;
            //local minimum
            double        realXmin   = 4.057968;
            double        eps        = 1e-5;
            int           counterMax = 50;
            LineSearch    ls         = new LineSearch();
            TestFunction1 f          = new TestFunction1();
            int           counter    = ls.FindMinimumViaGoldenSection(f, 1, 4, 5, counterMax, eps, ref xmin);

            Assert.IsTrue(counter < counterMax);
            Assert.IsTrue(System.Math.Abs(xmin - realXmin) < eps);
        }
Beispiel #3
0
 public void MinGold3()
 {
     double xmin=0;
     double eps = 1e-5;
     double realXmin = -0.75;
     int counterMax = 50;
     LineSearch ls = new LineSearch();
     TestFunction2 f = new TestFunction2();
     double [] res = new double[3];
     int counter1 = ls.FindMinInterval(f,-10,1,30,ref res);
     int counter2 = ls.FindMinimumViaGoldenSection(f,res[0],res[1],res[2],counterMax,eps, ref xmin);
     Assert.IsTrue(counter2<counterMax);
     Assert.IsTrue (System.Math.Abs(xmin-realXmin)<eps);
 }
Beispiel #4
0
        public void MinGold4()
        {
            double        xmin       = 0;
            double        eps        = 1e-5;
            double        realXmin   = -0.75;
            int           counterMax = 50;
            LineSearch    ls         = new LineSearch();
            TestFunction2 f          = new TestFunction2();

            double[] res      = new double[3];
            int      counter1 = ls.FindMinInterval(f, 1000, 1, 30, ref res);
            int      counter2 = ls.FindMinimumViaGoldenSection(f, res[0], res[1], res[2], counterMax, eps, ref xmin);

            Assert.IsTrue(counter2 < counterMax);
            Assert.IsTrue(System.Math.Abs(xmin - realXmin) < eps);
        }