类 MullerSolver

所有已实现的接口:
BaseUnivariateSolver<UnivariateFunction>, UnivariateSolver

public class MullerSolver extends AbstractUnivariateSolver
该类实现了用于实数一元函数根查找的 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。在这种情况下,如果性能非常差,我们将使用二分法作为安全备用。

这里的公式直接使用了分裂差分。

另请参阅:
  • 构造器详细资料

    • MullerSolver

      public MullerSolver()
      使用默认精度(1e-6)构造一个求解器。
    • MullerSolver

      public MullerSolver(double absoluteAccuracy)
      构造一个求解器。
      参数:
      absoluteAccuracy - 绝对精度。
    • MullerSolver

      public MullerSolver(double relativeAccuracy, double absoluteAccuracy)
      构造一个求解器。
      参数:
      relativeAccuracy - 相对精度。
      absoluteAccuracy - 绝对精度。
  • 方法详细资料