类 FieldBracketingNthOrderBrentSolver<T extends CalculusFieldElement<T>>
java.lang.Object
org.hipparchus.analysis.solvers.FieldBracketingNthOrderBrentSolver<T>
- 类型参数:
-
T
- 字段元素的类型
- 所有已实现的接口:
-
BracketedRealFieldUnivariateSolver<T>
public class FieldBracketingNthOrderBrentSolver<T extends CalculusFieldElement<T>> extends Object implements BracketedRealFieldUnivariateSolver<T>
该类实现了对 Brent算法的修改。
相对于原始的Brent算法,修改如下:
- 根据用户指定的
AllowedSolution
在当前区间中选择返回值 - 反转多项式根搜索的最大阶数是用户指定的,而不仅仅是反转二次方程
给定区间必须包围根。
-
嵌套类概要
从接口继承的嵌套类/接口 org.hipparchus.analysis.solvers.BracketedRealFieldUnivariateSolver
BracketedRealFieldUnivariateSolver.Interval<T extends CalculusFieldElement<T>>
-
构造器概要
构造器说明FieldBracketingNthOrderBrentSolver
(T relativeAccuracy, T absoluteAccuracy, T functionValueAccuracy, int maximalOrder) 构造一个求解器。 -
方法概要
修饰符和类型方法说明获取绝对精度。int
获取目标函数的评估次数。获取函数精度。int
获取最大函数评估次数。int
获取最大阶数。获取相对精度。solve
(int maxEval, CalculusFieldUnivariateFunction<T> f, T min, T max, AllowedSolution allowedSolution) 在给定区间内求解零点。solve
(int maxEval, CalculusFieldUnivariateFunction<T> f, T min, T max, T startValue, AllowedSolution allowedSolution) 在给定区间内求解零点,从startValue
开始。solveInterval
(int maxEval, CalculusFieldUnivariateFunction<T> f, T min, T max, T startValue) 在给定区间内求解零点,并返回围绕根的容差区间。从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
从接口继承的方法 org.hipparchus.analysis.solvers.BracketedRealFieldUnivariateSolver
solveInterval
-
构造器详细资料
-
FieldBracketingNthOrderBrentSolver
public FieldBracketingNthOrderBrentSolver(T relativeAccuracy, T absoluteAccuracy, T functionValueAccuracy, int maximalOrder) throws MathIllegalArgumentException 构造一个求解器。- 参数:
-
relativeAccuracy
- 相对精度。 -
absoluteAccuracy
- 绝对精度。 -
functionValueAccuracy
- 函数值精度。 -
maximalOrder
- 最大阶数。 - 抛出:
-
MathIllegalArgumentException
- 如果最大阶数低于2
-
-
方法详细资料
-
getMaximalOrder
public int getMaximalOrder()获取最大阶数。- 返回:
- 最大阶数
-
getMaxEvaluations
public int getMaxEvaluations()获取最大函数评估次数。- 指定者:
-
getMaxEvaluations
在接口中BracketedRealFieldUnivariateSolver<T extends CalculusFieldElement<T>>
- 返回:
- 最大函数评估次数。
-
getEvaluations
public int getEvaluations()获取目标函数的评估次数。评估次数对应于对optimize
方法的最后一次调用。如果尚未调用该方法,则为0。- 指定者:
-
getEvaluations
在接口中BracketedRealFieldUnivariateSolver<T extends CalculusFieldElement<T>>
- 返回:
- 目标函数的评估次数。
-
getAbsoluteAccuracy
获取绝对精度。- 指定者:
-
getAbsoluteAccuracy
在接口中BracketedRealFieldUnivariateSolver<T extends CalculusFieldElement<T>>
- 返回:
- 绝对精度
-
getRelativeAccuracy
获取相对精度。- 指定者:
-
getRelativeAccuracy
在接口中BracketedRealFieldUnivariateSolver<T extends CalculusFieldElement<T>>
- 返回:
- 相对精度
-
getFunctionValueAccuracy
获取函数精度。- 指定者:
-
getFunctionValueAccuracy
在接口中BracketedRealFieldUnivariateSolver<T extends CalculusFieldElement<T>>
- 返回:
- 函数精度
-
solve
public T solve(int maxEval, CalculusFieldUnivariateFunction<T> f, T min, T max, AllowedSolution allowedSolution) throws MathIllegalArgumentException, NullArgumentException 在给定区间内求解零点。求解器可能要求区间包围单个零点。需要进行区间定位的求解器应能处理一个端点本身就是根的情况。- 指定者:
-
solve
在接口中BracketedRealFieldUnivariateSolver<T extends CalculusFieldElement<T>>
- 参数:
-
maxEval
- 最大评估次数。 -
f
- 要解决的函数。 -
min
- 区间的下界。 -
max
- 区间的上界。 -
allowedSolution
- 根查找算法可能接受的解的类型。 - 返回:
- 使函数为零的值。
- 抛出:
-
NullArgumentException
- 如果f为null。 -
MathIllegalArgumentException
- 如果无法定位根
-
solve
public T solve(int maxEval, CalculusFieldUnivariateFunction<T> f, T min, T max, T startValue, AllowedSolution allowedSolution) throws MathIllegalArgumentException, NullArgumentException 在给定区间内求解零点,从startValue
开始。求解器可能要求区间包围单个零点。需要进行区间定位的求解器应能处理一个端点本身就是根的情况。- 指定者:
-
solve
在接口中BracketedRealFieldUnivariateSolver<T extends CalculusFieldElement<T>>
- 参数:
-
maxEval
- 最大评估次数。 -
f
- 要解决的函数。 -
min
- 区间的下界。 -
max
- 区间的上界。 -
startValue
- 要使用的起始值。 -
allowedSolution
- 根查找算法可能接受的解的类型。 - 返回:
- 函数为零的值。
- 抛出:
-
NullArgumentException
- 如果 f 为 null。 -
MathIllegalArgumentException
- 如果无法找到根
-
solveInterval
public BracketedRealFieldUnivariateSolver.Interval<T> solveInterval(int maxEval, CalculusFieldUnivariateFunction<T> f, T min, T max, T startValue) throws MathIllegalArgumentException, MathIllegalStateException 在给定区间内求解零点并返回围绕根的容差区间。要求起始区间包围一个根。
- 指定者:
-
solveInterval
在接口中BracketedRealFieldUnivariateSolver<T extends CalculusFieldElement<T>>
- 参数:
-
maxEval
- 最大评估次数。 -
f
- 要解决的函数。 -
min
- 区间的下界。f(min) != 0.0。 -
max
- 区间的上界。f(max) != 0.0。 -
startValue
- 要使用的起始值。 - 返回:
-
一个区间 [ta, tb],使得在 [ta, tb] 中的某个 t 满足 f(t) == 0.0 或具有跨越零点的阶梯不连续性。两个端点也满足收敛标准,因此任何一个都可以用作根。也就是说,该区间满足条件 (| tb - ta | <=
absolute
精度 + max(ta, tb) *relative
精度) 或 ( max(|f(ta)|, |f(tb)|) <=BracketedRealFieldUnivariateSolver.getFunctionValueAccuracy()
) 或 ta 和 tb 之间的字段中的数字。区间的宽度 (tb - ta) 可能为零。 - 抛出:
-
MathIllegalArgumentException
- 如果参数不满足求解器指定的要求。 -
MathIllegalStateException
- 如果超过允许的评估次数。
-