Skip to content

Commit b366170

Browse files
committed
Missing docs
1 parent dad316c commit b366170

File tree

4 files changed

+34
-3
lines changed

4 files changed

+34
-3
lines changed

docs/pages.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Put in a separate page so it can be used by SciMLDocs.jl
22

3-
pages = ["index.md",
3+
pages = [
4+
"index.md",
45
"Getting Started with Nonlinear Rootfinding in Julia" => "tutorials/getting_started.md",
56
"Tutorials" => Any["tutorials/code_optimization.md",
67
"tutorials/large_systems.md",

docs/src/basics/nonlinear_solution.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# [Nonlinear Solutions](@id solution)
22

33
```@docs
4+
SciMLBase.AbstractNonlinearSolution
45
SciMLBase.NonlinearSolution
56
```
67

src/algorithms/lbroyden.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ and line search.
1414
to `Val(10)`.
1515
"""
1616
function LimitedMemoryBroyden(; max_resets::Int = 3, linesearch = NoLineSearch(),
17-
threshold::Val = Val(10), reset_tolerance = nothing)
17+
threshold::Union{Val, Int} = Val(10), reset_tolerance = nothing)
18+
threshold isa Int && (threshold = Val(threshold))
1819
return ApproximateJacobianSolveAlgorithm{false, :LimitedMemoryBroyden}(; linesearch,
1920
descent = NewtonDescent(), update_rule = GoodBroydenUpdateRule(), max_resets,
2021
initialization = BroydenLowRankInitialization{_unwrap_val(threshold)}(threshold),

src/globalization/line_search.jl

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,10 +157,38 @@ function SciMLBase.solve!(cache::LineSearchesJLCache, u, du; kwargs...)
157157
end
158158

159159
"""
160-
RobustNonMonotoneLineSearch(; gamma = 1 // 10000, sigma_0 = 1)
160+
RobustNonMonotoneLineSearch(; gamma = 1 // 10000, sigma_0 = 1, M::Int = 10,
161+
tau_min = 1 // 10, tau_max = 1 // 2, n_exp::Int = 2, maxiters::Int = 100,
162+
η_strategy = (fn₁, n, uₙ, fₙ) -> fn₁ / n^2)
161163
162164
Robust NonMonotone Line Search is a derivative free line search method from DF Sane
163165
[la2006spectral](@cite).
166+
167+
### Keyword Arguments
168+
169+
- `M`: The monotonicity of the algorithm is determined by a this positive integer.
170+
A value of 1 for `M` would result in strict monotonicity in the decrease of the L2-norm
171+
of the function `f`. However, higher values allow for more flexibility in this reduction.
172+
Despite this, the algorithm still ensures global convergence through the use of a
173+
non-monotone line-search algorithm that adheres to the Grippo-Lampariello-Lucidi
174+
condition. Values in the range of 5 to 20 are usually sufficient, but some cases may
175+
call for a higher value of `M`. The default setting is 10.
176+
- `gamma`: a parameter that influences if a proposed step will be accepted. Higher value
177+
of `gamma` will make the algorithm more restrictive in accepting steps. Defaults to
178+
`1e-4`.
179+
- `tau_min`: if a step is rejected the new step size will get multiplied by factor, and
180+
this parameter is the minimum value of that factor. Defaults to `0.1`.
181+
- `tau_max`: if a step is rejected the new step size will get multiplied by factor, and
182+
this parameter is the maximum value of that factor. Defaults to `0.5`.
183+
- `n_exp`: the exponent of the loss, i.e. ``f_n=||F(x_n)||^{n\\_exp}``. The paper uses
184+
`n_exp ∈ {1, 2}`. Defaults to `2`.
185+
- `η_strategy`: function to determine the parameter `η`, which enables growth
186+
of ``||f_n||^2``. Called as `η = η_strategy(fn_1, n, x_n, f_n)` with `fn_1` initialized
187+
as ``fn_1=||f(x_1)||^{n\\_exp}``, `n` is the iteration number, `x_n` is the current
188+
`x`-value and `f_n` the current residual. Should satisfy ``η > 0`` and ``∑ₖ ηₖ < ∞``.
189+
Defaults to ``fn_1 / n^2``.
190+
- `maxiters`: the maximum number of iterations allowed for the inner loop of the
191+
algorithm. Defaults to `100`.
164192
"""
165193
@kwdef @concrete struct RobustNonMonotoneLineSearch <:
166194
AbstractNonlinearSolveLineSearchAlgorithm

0 commit comments

Comments
 (0)