Skip to content

Commit 66919e4

Browse files
DAE based solvers
1 parent 1cd41ca commit 66919e4

File tree

1 file changed

+12
-4
lines changed
  • docs/src/optimization_packages

1 file changed

+12
-4
lines changed

docs/src/optimization_packages/ode.md

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ p = []
2828
f_manual = OptimizationFunction(f, SciMLBase.NoAD(); grad = g!)
2929
prob_manual = OptimizationProblem(f_manual, x0)
3030

31-
opt = ODEGradientDescent(dt=0.01)
32-
sol = solve(prob_manual, opt; maxiters=50_000)
31+
opt = ODEGradientDescent()
32+
sol = solve(prob_manual, opt; dt=0.01, maxiters=50_000)
3333

3434
@show sol.u
3535
@show sol.objective
@@ -39,15 +39,23 @@ sol = solve(prob_manual, opt; maxiters=50_000)
3939

4040
All provided optimizers are **gradient-based local optimizers** that solve optimization problems by integrating gradient-based ODEs to convergence:
4141

42-
* `ODEGradientDescent(dt=...)` — performs basic gradient descent using the explicit Euler method. This is a simple and efficient method suitable for small-scale or well-conditioned problems.
42+
* `ODEGradientDescent()` — performs basic gradient descent using the explicit Euler method. This is a simple and efficient method suitable for small-scale or well-conditioned problems.
4343

4444
* `RKChebyshevDescent()` — uses the ROCK2 solver, a stabilized explicit Runge-Kutta method suitable for stiff problems. It allows larger step sizes while maintaining stability.
4545

4646
* `RKAccelerated()` — leverages the Tsit5 method, a 5th-order Runge-Kutta solver that achieves faster convergence for smooth problems by improving integration accuracy.
4747

4848
* `HighOrderDescent()` — applies Vern7, a high-order (7th-order) explicit Runge-Kutta method for even more accurate integration. This can be beneficial for problems requiring high precision.
4949

50-
You can also define a custom optimizer using the generic `ODEOptimizer(solver; dt=nothing)` constructor by supplying any ODE solver supported by [OrdinaryDiffEq.jl](https://docs.sciml.ai/DiffEqDocs/stable/solvers/ode_solve/).
50+
## DAE-based Optimizers
51+
52+
In addition to ODE-based optimizers, OptimizationODE.jl provides optimizers for differential-algebraic equation (DAE) constrained problems:
53+
54+
* `DAEMassMatrix()` — uses the Rodas5 solver (from OrdinaryDiffEq.jl) for DAE problems with a mass matrix formulation.
55+
56+
* `DAEIndexing()` — uses the IDA solver (from Sundials.jl) for DAE problems with index variable support.
57+
58+
You can also define a custom optimizer using the generic `ODEOptimizer(solver)` or `DAEOptimizer(solver)` constructor by supplying any ODE or DAE solver supported by [OrdinaryDiffEq.jl](https://docs.sciml.ai/DiffEqDocs/stable/solvers/ode_solve/) or [Sundials.jl](https://github.com/SciML/Sundials.jl).
5159

5260
## Interface Details
5361

0 commit comments

Comments
 (0)