SciFracX organization — Fractional Order Computing and Modeling

Hello guys! Happy Chinese new year🐯!!

I am very excited to announce a new community—SciFracX, focus on making fractional order computing and modeling easier with Julia!

There are some packages related to fractional order computing in this organization: FractionalCalculus.jl: provides high-performance algorithms for computing fractional derivatives and fractional integrals. FractionalTransforms.jl computes fractional order transforms, such as fractional Fourier transform, fractional sine transform and fractional cosine transform, etc. FractionalDiffEq.jl focus on fractional differential equations, provides robust algorithms for fractional ordinary differential equations, partial differential equations, delay differential equations and systems of fractional differential equations. FractionalSystems.jl is built upon ControlSystems.jl, provides an easy way to fractional modeling and analysis.

It is a great honor for me to announce the SciFracX community. As the generalization of integer order, fractional order can better describe some natural processes and get better modeling results. Currently, there are not many packages or toolboxes that support fractional modeling, especially there are no such tools in Python or R, this is also a big reason why SciFracX is here, to implement outstanding algorithms and with the help of Julia, the high-performance features and the friendly community, to build powerful toolboxes and promote scientific researches! It has been several months I used Julia to explore scientific computing in fractional order area, and it turns out Julia is quite suitable for fractional order computing.

Comparison

There are many improvements by using Julia no matter in usability or performance, what excited me the most must be the performance of the nonlinear system of FDE solver

http://scifracx.org/FractionalDiffEq.jl/dev/system_of_FDE/

While it costs Matlab almost 25 minutes to solve this problem, in FractionalDiffEq.jl, we only use about 9 minutes to solve the same problem🤯(Didn’t use any parallel computing or multi-threads computing techniques)

Next step

For now, since the FractionalCalculus.jl has the longest history, it is now “production-ready”, other packages are still in heavy development.

Our tasks in the future is clear:

• Keep adding more high-performance algorithms.
• Make the usage of API more simple and elegant.
• Write more illustrative documents for usability.
• More interesting ideas~

Call for contributions

I have to admit the design or the API are not that perfect right row, but I am working hard to make them easier to use and achieve higher performance. I believe that one may go fast but can’t go very far, so I am here, calling for developers who are interested in fractional order computing and modeling to make these packages faster, performant, and feature-rich. Feel free to suggest improvements, also, do not hesitate to open issues or pull requests if there are some problems.

7 Likes

Wow, this is wonderful!

I have written my own FrFT implementation (adapted from Ozaktas’ algorithm in Matlab found from here) which I believe is supposed to run in logarithmic time, although I haven’t tested or validated that. I’m excited to see this package and will definitely be using it soon!

It’s exciting to see your work, I will definitely be following along!

I feel that fractional order transformations hook into an intuition that one can really apply to many natural processes.

Would something like the Linear Canonical Transform fit within the scope of these projects?

1 Like

Thanks a lot! It’s very nice to hear that😄

Since the linear canonical transform is the generalization of Fourier, Laplace and Fresnel transform, I would like to see this package grow big and add more features😆

1 Like