类 BrentOptimizer
java.lang.Object
org.hipparchus.optim.BaseOptimizer<UnivariatePointValuePair>
org.hipparchus.optim.univariate.UnivariateOptimizer
org.hipparchus.optim.univariate.BrentOptimizer
对于定义在某个区间
这段代码是一个改编,部分基于SciPy的Python代码(模块"optimize.py" v0.5);原始算法也经过修改
(lo, hi)
上的函数,此类找到一个近似值x
,使得函数达到最小值的点。它实现了Richard Brent的算法(来源于他的书籍《无导数最小化算法》,第79页)用于查找实值一元函数的最小值。
这段代码是一个改编,部分基于SciPy的Python代码(模块"optimize.py" v0.5);原始算法也经过修改
- 使用用户提供的初始猜测值,
- 确保遇到的最佳点是返回的点。
-
字段概要
从类继承的字段 org.hipparchus.optim.BaseOptimizer
evaluations, iterations
-
构造器概要
构造器说明BrentOptimizer
(double rel, double abs) 这些参数用于实现Brent算法的原始停止准则。BrentOptimizer
(double rel, double abs, ConvergenceChecker<UnivariatePointValuePair> checker) 这些参数用于实现Brent算法的原始停止准则。 -
方法概要
从类继承的方法 org.hipparchus.optim.univariate.UnivariateOptimizer
computeObjectiveValue, getGoalType, getMax, getMin, getStartValue, optimize, parseOptimizationData
从类继承的方法 org.hipparchus.optim.BaseOptimizer
getConvergenceChecker, getEvaluations, getIterations, getMaxEvaluations, getMaxIterations, incrementEvaluationCount, incrementIterationCount, optimize
-
构造器详细资料
-
BrentOptimizer
这些参数用于实现Brent算法的原始停止准则。abs
和rel
定义了一个容差tol = rel |x| + abs
。rel
不应小于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算法的原始停止准则。abs
和rel
定义了一个容差tol = rel |x| + abs
。rel
不应小于2 macheps,最好不要远小于sqrt(macheps),其中macheps是相对机器精度。abs
必须是正数。- 参数:
-
rel
- 相对阈值。 -
abs
- 绝对阈值。 - 抛出:
-
MathIllegalArgumentException
- 如果abs <= 0
。 -
MathIllegalArgumentException
- 如果rel < 2 * Math.ulp(1d)
。
-
-
方法详细资料
-
doOptimize
执行优化算法的大部分工作。- 指定者:
-
doOptimize
在类中BaseOptimizer<UnivariatePointValuePair>
- 返回:
- 给出目标函数最优值的点/值对。
-