public override MinimizationMethodResult Minimize(Func <NDarray, double> function, NDarray x0) { NDarray x = np.copy(x0); bool success = Execute(() => { x -= beta * Gradient.CalculateGradientNum(function, x, 0.00001); return(function(x)); }, desiredValue); var result = new MinimizationMethodResult { XStar = x, JofXStar = function(x), Timeout = !success, }; return(result); }
public override MinimizationMethodResult Minimize(Func <NDarray, double> function, NDarray x0) { NDarray x = np.copy(x0); bool success = Execute(() => { x -= np.dot(Gradient.GradientTask(userInput, x), (NDarray)beta); return(function(x)); }, userInput.DesiredJOfX); var result = new MinimizationMethodResult { XStar = x, JofXStar = function(x), Timeout = !success, }; return(result); }