FdeSolver.jl

FdeSolver.jl: A Julia package for the numerical solution of fractional differential equations (FDEs) as well as systems of equations.
Author JuliaTurkuDataScience
Popularity
10 Stars
Updated Last
1 Year Ago
Started In
September 2021

FdeSolver.jl: Solving fractional differential equations

Stable CI codecov DOI

This is a Julia package for fractional differential equations and ODEs. It provides numerical solutions for nonlinear fractional ordinary differential equations (in the sense of Caputo).

Related work includes the independent FractionalDiffEq Julia Package that provides solutions of differential equations with different fractional operators, and earlier tools that are available in Matlab.

Publications

The package development is linked with the following publications/preprints:

  • Three-species Lotka-Volterra model with respect to Caputo and Caputo-Fabrizio fractional operators. M Khalighi, L Eftekhari, S Hosseinpour, L Lahti. Symmetry 13 (3):368, 2021. doi:10.3390/sym13030368

  • Quantifying the impact of ecological memory on the dynamics of interacting communities. M Khalighi, G Sommeria-Klein, D Gonze, K Faust, L Lahti. bioRxiv 2021.09.01.458486 doi:10.1101/2021.09.01.458486

Method

We implement the predictor-corrector algorithms with a sufficient convergence and accuracy, including fast Fourier transform technique that gives us high computation speed. Interested readers can also find the stability of the methods and see how to implement the methods for solving multi-term fractional differential equations.

Let us suppose the following initial value problem with the Caputo fractional derivative for $\beta>0$:

$${}_{C}\!D_{t_0}^{\beta}y(t)=f(t,y(t))$$

with the initial condition:

$$y(t_0)=y_0,y^{(1)}(t_0)=y^{(1)}_0,...,y^{(m-1)}(t_0)=y^{(m-1)}_0$$

where m is the smallest integer or equal to the order of derivative.

We solve the problem by using predictor corrector and Newton Raphson method.

Installation

If Julia is installed correctly, you can import FdeSolver.jl as:

import Pkg; Pkg.add("FdeSolver")

A few methods on its usage are explained in Examples.

Used By Packages