Skip to content

Commit 27c1f52

Browse files
authored
Add documentation for Muller's method (#573)
1 parent b910dec commit 27c1f52

File tree

3 files changed

+18
-6
lines changed

3 files changed

+18
-6
lines changed

docs/src/native/bracketingnonlinearsolve.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ Bisection
1818
Falsi
1919
Ridder
2020
Brent
21+
Muller
2122
```

docs/src/solvers/bracketing_solvers.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,14 @@ This gives a robust and fast method, which therefore enjoys considerable popular
2626

2727
## Full List of Methods
2828

29-
### SimpleNonlinearSolve.jl
29+
### BracketingNonlinearSolve.jl
3030

3131
These methods are automatically included as part of NonlinearSolve.jl. Though, one can use
32-
SimpleNonlinearSolve.jl directly to decrease the dependencies and improve load time.
32+
BracketingNonlinearSolve.jl directly to decrease the dependencies and improve load time.
3333

3434
- [`ITP`](@ref): A non-allocating ITP (Interpolate, Truncate & Project) method
3535
- [`Falsi`](@ref): A non-allocating regula falsi method
3636
- [`Bisection`](@ref): A common bisection method
3737
- [`Ridder`](@ref): A non-allocating Ridder method
3838
- [`Brent`](@ref): A non-allocating Brent method
39+
- [`Muller`](@ref): A non-allocating Muller's method

lib/BracketingNonlinearSolve/src/muller.jl

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
"""
22
Muller(; middle = nothing)
33
4-
Muller's method for determining a root of a univariate, scalar function. The
5-
algorithm, described in Sec. 9.5.2 of
6-
[Press et al. (2007)](https://numerical.recipes/book.html), requires three
7-
initial guesses `(left, middle, right)` for the root.
4+
Muller's method for determining a root of a univariate, scalar function.
5+
6+
The algorithm, described in Sec. 9.5.2 of
7+
[Press et al. (2007)](https://numerical.recipes/book.html), is a generalization
8+
of the secant method, using quadratic interpolation of three points to find the
9+
next estimate for the root. Due to the quadratic interpolation, the method is
10+
well suited for obtaining complex roots.
11+
12+
This method requires three initial guesses `(left, middle, right)` for the
13+
solution. The guesses `(left, right) = tspan` are provided by the
14+
`IntervalNonlinearProblem`, while the `middle` guess may be specified as an
15+
optional keyword argument. In notable contrast to the other
16+
`BracketingNonlinearSolve.jl` solvers, the `Muller` algorithm does not need
17+
`(left, right)` to bracket the root.
818
919
### Keyword Arguments
1020

0 commit comments

Comments
 (0)