/// <summary>Initializes a new instance of the <see cref="Algorithm"/> class. /// </summary> /// <param name="optimizer">The <see cref="PowellOptimizer"/> object that serves as factory of the current object.</param> /// <param name="dimension">The dimension of the feasible region.</param> internal Algorithm(PowellOptimizer optimizer, int dimension) { m_Optimizer = optimizer; Dimension = dimension; m_DirectionMatrix = new double[dimension * dimension]; m_LineSearchOptimizer = optimizer.LineSearchOptimizer.Create(); }
/// <summary>Sets the objective function. /// </summary> /// <param name="optimizerAlgorithm">The <see cref="IOneDimOptimizerAlgorithm"/> object.</param> /// <param name="objectiveFunction">The objective function.</param> /// <exception cref="InvalidOperationException">Thrown, if <paramref name="objectiveFunction"/> is invalid.</exception> public static void SetFunction(this IOneDimOptimizerAlgorithm optimizerAlgorithm, Func <double, double> objectiveFunction) { var objFunction = optimizerAlgorithm.Factory.Function.Create(objectiveFunction); optimizerAlgorithm.Function = objFunction; }
/// <summary>Sets the objective function. /// </summary> /// <param name="optimizerAlgorithm">The <see cref="IOneDimOptimizerAlgorithm"/> object.</param> /// <param name="objectiveFunction">The differentiable objective function.</param> /// <exception cref="InvalidOperationException">Thrown, if <paramref name="objectiveFunction"/> is invalid.</exception> public static void SetFunction(this IOneDimOptimizerAlgorithm optimizerAlgorithm, OneDimOptimizer.DifferentiableObjectiveFunction objectiveFunction) { var objFunction = optimizerAlgorithm.Factory.Function.Create(objectiveFunction); optimizerAlgorithm.Function = objFunction; }