diff --git a/README.md b/README.md index 142021ec9..c4b70d413 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ solver = solve(probN, NewtonRaphson(), abstol = 1e-9) f(u, p) = u .* u .- 2.0 u0 = (1.0, 2.0) # brackets probB = IntervalNonlinearProblem(f, u0) -sol = solve(probB, Falsi()) +sol = solve(probB, ITP()) ``` ## v1.0 Breaking Release Highlights! diff --git a/docs/src/solvers/BracketingSolvers.md b/docs/src/solvers/BracketingSolvers.md index 5d15b29c1..0aeae323b 100644 --- a/docs/src/solvers/BracketingSolvers.md +++ b/docs/src/solvers/BracketingSolvers.md @@ -7,8 +7,7 @@ Solves for ``f(t)=0`` in the problem defined by `prob` using the algorithm ## Recommended Methods -`Falsi()` can have a faster convergence and is discretely differentiable, but is -less stable than `Bisection`. +`ITP()` is the recommended method for the scalar interval root-finding problems. It is particularly well-suited for cases where the function is smooth and well-behaved; and achieved superlinear convergence while retaining the optimal worst-case performance of the Bisection method. For more details, consult the detailed solver API docs. `Ridder` is a hybrid method that uses the value of function at the midpoint of the interval to perform an exponential interpolation to the root. This gives a fast convergence with a guaranteed convergence of at most twice the number of iterations as the bisection method. `Brent` is a combination of the bisection method, the secant method and inverse quadratic interpolation. At every iteration, Brent's method decides which method out of these three is likely to do best, and proceeds by doing a step according to that method. This gives a robust and fast method, which therefore enjoys considerable popularity. @@ -19,6 +18,7 @@ less stable than `Bisection`. These methods are automatically included as part of NonlinearSolve.jl. Though, one can use SimpleNonlinearSolve.jl directly to decrease the dependencies and improve load time. + - `ITP`: A non-allocating ITP (Interpolate, Truncate & Project) method - `Falsi`: A non-allocating regula falsi method - `Bisection`: A common bisection method - `Ridder`: A non-allocating Ridder method diff --git a/src/trustRegion.jl b/src/trustRegion.jl index 828eeb9b1..f6e86a678 100644 --- a/src/trustRegion.jl +++ b/src/trustRegion.jl @@ -11,6 +11,7 @@ end TrustRegion(; chunk_size = Val{0}(), autodiff = Val{true}(), standardtag = Val{true}(), concrete_jac = nothing, diff_type = Val{:forward}, linsolve = nothing, precs = DEFAULT_PRECS, + radius_update_scheme = RadiusUpdateSchemes.Simple, max_trust_radius::Real = 0 // 1, initial_trust_radius::Real = 0 // 1, step_threshold::Real = 1 // 10,