A fast and memoryless numerical method for solving
fractional differential equations
Nicola Guglielmi and Ernst Hairer
Abstract. The numerical solution of implicit and stiff differential equations by implicit numerical
integrators has been largely investigated and there exist many excellent efficient
codes available in the scientific community, as RADAU5 (based on a Runge-Kutta
collocation method at Radau points) and DASSL, based on backward differentiation formulas,
among the others.
When solving fractional ordinary differential equations (ODEs),
the derivative operator is replaced by
a non-local one and the fractional ODE is reformulated as a Volterra integral equation,
to which these codes cannot be directly applied.
This article is a follow-up of the article by the authors \cite{guglielmi25asi} for differential
equations with distributed delays.
The main idea is to approximate the fractional kernel $t^{\alpha -1}/
\Gamma (\alpha )$
($\alpha >0$)
by a sum of exponential functions or by a sum of exponential functions multiplied by
a monomial, and then to transform the fractional integral (of convolution type)
into a set of ordinary differential equations.
The augmented system is typically stiff and thus
requires the use of an implicit method.
It can have a very large dimension and requires a special treatment of the
arising linear systems.
The present work presents an algorithm for the construction of
an approximation of the fractional kernel by a sum of exponential functions,
and it shows how the arising linear systems in a stiff time integrator
can be solved efficiently.
It is explained how the code RADAU5 can be used
for solving fractional differential
equations.
Numerical experiments illustrate the accuracy and the
efficiency of the proposed method.
Driver examples
are publicly available from the homepages of the authors.
Key Words. Fractional differential equations,
differential-algebraic equations, Volterra
integral equations, integro-differential equations, Runge-Kutta methods,
approximation by sum of exponentials, code RADAU5,
fast solvers for structured
linear systems.