Beispiel #1
0
        public override MinimizationMethodResult Minimize(Func <NDarray, double> function, NDarray x0)
        {
            NDarray x = np.copy(x0);

            bool success = Execute(() =>
            {
                x -= Gradient.CalculateGradientNum(function, x, 0.00001) / Gradient.Calculate2ndOrderGradientNum(function, x, 0.00001);
                return(function(x));
            }, desiredValue);

            var result = new MinimizationMethodResult
            {
                XStar    = x,
                JofXStar = function(x),
                Timeout  = !success,
            };

            return(result);
        }