类 MullerSolver
java.lang.Object
org.hipparchus.analysis.solvers.BaseAbstractUnivariateSolver<UnivariateFunction>
org.hipparchus.analysis.solvers.AbstractUnivariateSolver
org.hipparchus.analysis.solvers.MullerSolver
- 所有已实现的接口:
-
BaseUnivariateSolver<UnivariateFunction>
,UnivariateSolver
该类实现了用于实数一元函数根查找的 Muller's Method。参考资料:Elementary Numerical Analysis,ISBN 0070124477,第3章。
Muller's方法适用于实数和复数函数,但这里我们限制在实数函数上。该类与MullerSolver
的区别在于它避免了复杂的操作。
Muller的原始方法会在复数点进行函数评估。由于我们的f(x)是实数,我们必须找到避免这种情况的方法。括号条件是一种方法:通过要求每次迭代中都进行括号处理,新计算的近似值保证是实数。
通常情况下,Muller's方法在零点附近二次收敛,但在远离零点的区域可能非常缓慢。例如,f(x) = exp(x) - 1,min = -50,max = 100。在这种情况下,如果性能非常差,我们将使用二分法作为安全备用。
这里的公式直接使用了分裂差分。
- 另请参阅:
-
构造器概要
构造器说明使用默认精度(1e-6)构造一个求解器。MullerSolver
(double absoluteAccuracy) 构造一个求解器。MullerSolver
(double relativeAccuracy, double absoluteAccuracy) 构造一个求解器。 -
方法概要
从类继承的方法 org.hipparchus.analysis.solvers.BaseAbstractUnivariateSolver
computeObjectiveValue, getAbsoluteAccuracy, getEvaluations, getFunctionValueAccuracy, getMax, getMin, getRelativeAccuracy, getStartValue, incrementEvaluationCount, isBracketing, isSequence, setup, solve, solve, solve, verifyBracketing, verifyInterval, verifySequence
从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
从接口继承的方法 org.hipparchus.analysis.solvers.BaseUnivariateSolver
getAbsoluteAccuracy, getEvaluations, getFunctionValueAccuracy, getRelativeAccuracy, solve, solve, solve
-
构造器详细资料
-
MullerSolver
public MullerSolver()使用默认精度(1e-6)构造一个求解器。 -
MullerSolver
public MullerSolver(double absoluteAccuracy) 构造一个求解器。- 参数:
-
absoluteAccuracy
- 绝对精度。
-
MullerSolver
public MullerSolver(double relativeAccuracy, double absoluteAccuracy) 构造一个求解器。- 参数:
-
relativeAccuracy
- 相对精度。 -
absoluteAccuracy
- 绝对精度。
-
-
方法详细资料
-
doSolve
在派生类中实现实际优化算法的方法。- 指定者:
-
doSolve
在类中BaseAbstractUnivariateSolver<UnivariateFunction>
- 返回:
- 根。
- 抛出:
-
MathIllegalArgumentException
- 如果初始搜索区间不包含根并且求解器需要。 -
MathIllegalStateException
- 如果超过最大评估次数。
-