Skip to content

Commit

Permalink
Merge pull request #198 from yash2798/ys/itp_docs
Browse files Browse the repository at this point in the history
Updating docs and tutorials for ITP
  • Loading branch information
ChrisRackauckas authored Aug 14, 2023
2 parents c71184c + 34aa535 commit 37f92e3
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 3 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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!
Expand Down
4 changes: 2 additions & 2 deletions docs/src/solvers/BracketingSolvers.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand All @@ -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
Expand Down
1 change: 1 addition & 0 deletions src/trustRegion.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit 37f92e3

Please sign in to comment.