类 BrentOptimizer


public class BrentOptimizer extends UnivariateOptimizer
对于定义在某个区间(lo, hi)上的函数,此类找到一个近似值x,使得函数达到最小值的点。它实现了Richard Brent的算法(来源于他的书籍《无导数最小化算法》,第79页)用于查找实值一元函数的最小值。
这段代码是一个改编,部分基于SciPy的Python代码(模块"optimize.py" v0.5);原始算法也经过修改
  • 使用用户提供的初始猜测值,
  • 确保遇到的最佳点是返回的点。
  • 构造器详细资料

    • BrentOptimizer

      public BrentOptimizer(double rel, double abs, ConvergenceChecker<UnivariatePointValuePair> checker)
      这些参数用于实现Brent算法的原始停止准则。 absrel定义了一个容差tol = rel |x| + absrel不应小于2 macheps,最好不要远小于sqrt(macheps),其中macheps是相对机器精度。 abs必须是正数。
      参数:
      rel - 相对阈值。
      abs - 绝对阈值。
      checker - 额外的、用户定义的收敛检查过程。
      抛出:
      MathIllegalArgumentException - 如果abs <= 0
      MathIllegalArgumentException - 如果rel < 2 * Math.ulp(1d)
    • BrentOptimizer

      public BrentOptimizer(double rel, double abs)
      这些参数用于实现Brent算法的原始停止准则。 absrel定义了一个容差tol = rel |x| + absrel不应小于2 macheps,最好不要远小于sqrt(macheps),其中macheps是相对机器精度。 abs必须是正数。
      参数:
      rel - 相对阈值。
      abs - 绝对阈值。
      抛出:
      MathIllegalArgumentException - 如果abs <= 0
      MathIllegalArgumentException - 如果rel < 2 * Math.ulp(1d)
  • 方法详细资料