示例#1
0
 /// <summary>Creates a specific <see cref="OneDimOptimizer.IFunction"/> object.
 /// </summary>
 /// <param name="objectiveFunction">The differentiable objective function.</param>
 /// <returns>A specific <see cref="OneDimOptimizer.IFunction"/> object with respect to the specified optimization algorithm.</returns>
 public OneDimOptimizer.IFunction Create(OneDimOptimizer.DifferentiableObjectiveFunction objectiveFunction)
 {
     if (objectiveFunction == null)
     {
         throw new ArgumentNullException(nameof(objectiveFunction));
     }
     return(new OneDimOptimizerDifferentiableFunction(this, objectiveFunction));
 }
 /// <summary>Initializes a new instance of the <see cref="OneDimOptimizerDifferentiableFunction"/> class.
 /// </summary>
 /// <param name="functionDescriptor">The function descriptor, i.e. the <see cref="OneDimOptimizer.IFunctionFactory"/> object that served as factory for the current object.</param>
 /// <param name="objectiveFunction">The objective function.</param>
 internal OneDimOptimizerDifferentiableFunction(OneDimOptimizerFunctionFactory functionDescriptor, OneDimOptimizer.DifferentiableObjectiveFunction objectiveFunction)
     : base(functionDescriptor, x => objectiveFunction(x, out _))
 {
     m_DifferentiableObjectiveFunction = objectiveFunction;
 }
示例#3
0
        /// <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;
        }