Diffusive representations of time memory¶
A Caputo derivative depends on the whole history of \(u\). Diffusive methods replace that history by a fixed number of first-order memory modes,
with positive rates \(\lambda_j\) and weights \(w_j\) obtained by quadrature of
Storage becomes \(O(m)\) per fractional term instead of growing with the number of time steps. The methods below differ only in how that improper integral is discretized.
Representation |
Quadrature |
Status |
Source |
|---|---|---|---|
|
Gauss-Jacobi after a squared Cayley map |
Default |
|
|
Gauss-Jacobi after a Cayley map |
Supported alternative |
|
|
Truncated log-rate integral, trapezoidal/Simpson/Gauss-Legendre |
Comparison only |
|
|
Original Gauss-Laguerre rule |
Comparison only |
Prefer BirkSong or Diethelm. See use the defaults.
Refining a representation¶
The mode count and rate_scale are quadrature parameters of the memory
integral. They are independent of the time grid. Halving dt does not
improve a badly resolved spectrum, and adding modes does not fix a coarse
timestep. Refine one at a time, as in Separating error sources.
Equal mode counts across representations do not imply equal accuracy.
Comparisons are only meaningful against a shared analytic or high-accuracy
reference. python -m benchmarks.diffusive_representations produces exactly
that comparison and preserves its numerical results.