Juliacon 2024

Solve Fractional Differential Equation with FractionalDiffEq.jl
07-10, 17:00–17:30 (Europe/Amsterdam), If (1.1)

Julia's ecosystem excels in Differential equation solving but lacks tools for fractional differential equations where FractionalDiffEq.jl, a package for solving these equations, can bridge this gap. At JuliaCon 2024, we'll discuss its architecture and use in solving complex fractional differential equations, and outline its future development within the SciML ecosystem. Recent advances in BVP solving will also be presented, mainly focusing on new solvers and future plans.


Fractional-order differential equations have increasingly gained attention as a compelling subject, particularly in recent decades, offering more nuanced representations in natural models from a fractional-order perspective. Tracing back to the origins of 'non-integer' calculus, a concept first contemplated by Leibniz and L'Hôpital, numerous scientific luminaries have contributed tirelessly to the advancement of fractional calculus. This field has proven particularly instrumental in accurately describing phenomena in diverse areas such as viscoelasticity, acoustics, rheology, and polymeric chemistry. Additionally, the application of fractional derivatives has emerged as an exceptionally fitting approach for characterizing the memory and hereditary properties inherent in a variety of materials and processes.

The SciML organization has achieved remarkable success in developing numerical solvers for differential equations. However, there are certain types of differential equations that SciML has not yet supported. Since the 20th century, fractional calculus and fractional differential equations have emerged as significant areas of interest in science and engineering, extending the principles of integer-order differential equations. Historically, most numerical software for these equations has been developed in MATLAB and suffered from a lack of consistent maintenance, leaving a gap for unified, user-friendly tools.

Addressing this need, FractionalDiffEq.jl is an innovative package within the SciML ecosystem, integrating efficient algorithms specifically designed for fractional differential equations (FDEs). Leveraging the common interface of SciML, FractionalDiffEq.jl not only simplifies user interaction but also ensures seamless integration with other SciML packages. Currently, FractionalDiffEq.jl adeptly handles fractional order ordinary differential equations and delayed differential equations, representing a significant stride forward in computational science and engineering tools.

The FractionalDiffEq.jl package follows the design pattern of DifferentialEquations.jl. To solve a fractional differential equation problem, we first define a FDEProblem according to our model, use FODEProblem for common fractional ordinary differential equations, use FDDEProblem for delay fractional differential equations etc. Then pass the defined problem to solve function and choose an algorithm to solve our problem.

prob = FDEProblem(fun, order, u0, tspan)
sol = solve(prob, alg(), dt)
prob = FDDEProblem(fun, phi, order, u0, constant_lags=[tau], tspan)
sol = solve(prob, alg(), dt)

There is still a long way to go for FractionalDiffEq.jl to become a mature package. We are working hard to improve the performance of the package and add more algorithms. The future plans included but not limited to:

  • Keep adding more high performance algorithms.
  • Make the usage of API more simple and elegant.
  • Write more illustrative documents for usability.
  • Integrate with the SciML ecosystem to provide users more useful features.

I am a master's student in machine learning and industrial control systems at Zhejiang University. My research interest focuses on the intersection of machine learning and dynamical systems. I participated in GSoC 2023 with SciML under the NUMFOCUS umbrella.