Discrete Solvers

Discrete Solvers

DiscreteProblems

solve(prob::DiscreteProblem,alg;kwargs)

Solves the discrete function map defined by prob using the algorithm alg. If no algorithm is given, a default algorithm will be chosen.

Recommended Methods

The implementation for solving discrete equations is the FunctionMap algorithm in OrdinaryDiffEq.jl. It allows the full common interface (including events/callbacks) to solve function maps, along with everything else like plot recipes, while completely ignoring the ODE functionality related to continuous equations (except for a tiny bit of initialization). However, the SimpleFunctionMap from SimpleDiffEq.jl can be more efficient if the mapping function is sufficiently cheap, but it doesn't have all of the extras like callbacks and saving support (but does have an integrator interface).

Full List of Methods

OrdinaryDiffEq.jl

OrdinaryDiffEq.jl also contains the FunctionMap algorithm which lets you It has a piecewise constant interpolation and allows for all of the callback/event handling capabilities (of course, with rootfind=false. If a ContinuousCallback is given, it's always assumed rootfind=false).

The constructor is:

FunctionMap(;scale_by_time=false)

Every step is the update

\[u_{n+1} = f(t_{n+1},u_n).\]

If in addition scale_by_time=true, then every step is the update

\[u_{n+1} = u_n + dtf(t_{n+1},u_n).\]

Notice that this is the same as updates from the Euler method, except in this case we assume that its a discrete change and thus the interpolation is piecewise constant.

SimpleDiffEq.jl