类 RegulaFalsiSolver

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

public class RegulaFalsiSolver extends BaseSecantSolver
实现了用于寻找根(近似计算一元实函数的零点)的Regula FalsiFalse position方法。这是一种修改过的Secant方法。

Regula Falsi方法包含在内是为了完整性、测试目的、教育目的、与其他算法比较等。然而,它打算用于实际问题,因为其中一个边界通常保持不变,导致收敛非常缓慢。相反,可以使用两种著名的修改过的Regula Falsi算法(IllinoisPegasus)。这两种算法解决了原始Regula Falsi算法的基本问题,并且在大多数(实际)函数中表现出色,如果不是全部的话。

Secant方法不同,Regula Falsi通过保持一个有界解来保证收敛。然而,请注意,由于此实现中使用的Java的double类型具有有限/有限精度,算法可能会陷入不再取得任何进展的情况。这些情况会被检测到,并导致抛出MathIllegalStateException异常。换句话说,算法在理论上保证收敛,但实现不保证。

Regula Falsi方法假定函数是连续的,但不一定是光滑的。

基于以下文章的实现:M. Dowell和P. Jarratt,用于计算方程根的修改过的regula falsi方法,BIT数值数学,卷11,号2,页168-174,Springer,1971年。

  • 构造器详细资料

    • RegulaFalsiSolver

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

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

      public RegulaFalsiSolver(double relativeAccuracy, double absoluteAccuracy)
      构造求解器。
      参数:
      relativeAccuracy - 相对精度。
      absoluteAccuracy - 绝对精度。
    • RegulaFalsiSolver

      public RegulaFalsiSolver(double relativeAccuracy, double absoluteAccuracy, double functionValueAccuracy)
      构造求解器。
      参数:
      relativeAccuracy - 相对精度。
      absoluteAccuracy - 绝对精度。
      functionValueAccuracy - 最大函数值误差。