示例#1
0
        public void FindMinimum_SinX_ReturnsNegativePiOverTwo()
        {
            OneDimensionalFunction       derivative    = x => Math.Cos(x);
            GradientDescentExtremaFinder extremaFinder = new GradientDescentExtremaFinder(derivative);

            double initialGuess      = 0;
            var    calculatedMinimum = extremaFinder.FindMinimum(initialGuess);

            double expectedMinimum = -Math.PI / 2;

            Assert.AreEqual(expectedMinimum, calculatedMinimum, Tolerance);
        }
示例#2
0
        public void FindMinimum_XSquared_ReturnsZero()
        {
            OneDimensionalFunction       derivative    = x => 2 * x;
            GradientDescentExtremaFinder extremaFinder = new GradientDescentExtremaFinder(derivative);

            double initialGuess      = 3;
            var    calculatedMinimum = extremaFinder.FindMinimum(initialGuess);

            double expectedMinimum = 0;

            Assert.AreEqual(expectedMinimum, calculatedMinimum, Tolerance);
        }