FractionalCalculus.jl

FractionalCalculus.jl: A Julia package for high performance, comprehensive and high precision numerical fractional calculus computing.
Author SciFracX
Popularity
23 Stars
Updated Last
1 Year Ago
Started In
June 2021

FractionalCalculus.jl

building codecov license license DOI

GitHub issues GitHub stars GitHub forks

FractionalCalculus.jl provides support for fractional calculus computing.

πŸŽ‡ Installation

If you have already install Julia, you can install FractionalCalculus.jl in REPL using Julia package manager:

pkg> add FractionalCalculus

🦸 Quick start

Derivative

To compute the fractional derivative in a specific point, for example, compute $\alpha = 0.2$ derivative of $f(x) = x$ in $x = 1$ with step size $h = 0.0001$ using Riemann Liouville sense:

julia> fracdiff(x->x, 0.2, 1, 0.0001, RLDiffL1())
1.0736712740308347

This will return the estimated value with high precision.

Integral

To compute the fractional integral in a specific point, for example, compute the semi integral of $f(x) = x$ in $x = 1$ with step size $h = 0.0001$ using Riemann-Liouville sense:

julia> fracint(x->x, 0.5, 1, 0.0001, RLIntApprox())
0.7522525439593486

This will return the estimated value with high precision.

πŸ’» All algorithms

Current Algorithms
β”œβ”€β”€ FracDiffAlg
β”‚   β”œβ”€β”€ Caputo
|   |   β”œβ”€β”€ CaputoDirect
|   |   β”œβ”€β”€ CaputoTrap
|   |   β”œβ”€β”€ CaputoDiethelm
|   |   β”œβ”€β”€ CaputoHighPrecision
|   |   └── CaputoHighOrder
|   |
β”‚   β”œβ”€β”€ GrΓΌnwald Letnikov
|   |   β”œβ”€β”€ GLDirect
|   |   β”œβ”€β”€ GLMultiplicativeAdditive
|   |   β”œβ”€β”€ GLLagrangeThreePointInterp
|   |   └── GLHighPrecision
|   |
|   β”œβ”€β”€ Riemann Liouville
|   |    β”œβ”€β”€ RLDiffL1
|   |    β”œβ”€β”€ RLLinearSplineInterp
|   |    β”œβ”€β”€ RLDiffMatrix
|   |    β”œβ”€β”€ RLG1
|   |    └── RLD
|   | 
|   β”œβ”€β”€ Hadamard
|   |    β”œβ”€β”€ HadamardLRect
|   |    β”œβ”€β”€ HadamardRRect
|   |    └── HadamardTrap
|   |
|   β”œβ”€β”€ Riesz
|   |    β”œβ”€β”€ RieszSymmetric
|   |    └── RieszOrtigueira
|   |
|   β”œβ”€β”€ Caputo-Fabrizio
|   |    └── CaputoFabrizioAS
|   |
|   └── Atanagana Baleanu
|        └── AtanganaSeda
|
└── FracIntAlg
    β”œβ”€β”€ Riemann Liouville
    |   β”œβ”€β”€ RLDirect
    |   β”œβ”€β”€ RLPiecewise
    |   β”œβ”€β”€ RLLinearInterp
    |   β”œβ”€β”€ RLIntApprox
    |   β”œβ”€β”€ RLIntMatrix
    |   β”œβ”€β”€ RLIntSimpson
    |   β”œβ”€β”€ RLIntTrapezoidal
    |   β”œβ”€β”€ RLIntRectangular
    |   └── RLIntCubicSplineInterp
    |
    └── Hadamard
        └── HadamardMat

For detailed usage, please refer to our manual.

πŸ–ΌοΈ Example

Let's see examples here:

Compute the semi-derivative of $f(x) = x$ in the interval $\left[0, 1\right]$:

Plot

We can see the computing retains high precision⬆️.

Compute different order derivative of $f(x) = x$:

Different Order

Also different order derivative of $f(x) = \sin(x)$:

Different Order of sin

And also different order integral of $f(x) = x$:

Different Order Of x

πŸ§™ Symbolic Fractional Differentiation and Integration

Thanks to SymbolicUtils.jl, FractionalCalculus.jl can do symbolic fractional differentiation and integration now!!

julia> using FractionalCalculus, SymbolicUtils
julia> @syms x
julia> semidiff(log(x))
log(4x) / sqrt(Ο€x)
julia> semiint(x^4)
0.45851597901024005(x^4.5)

πŸ“’ Status

Right now, FractionalCalculus.jl has only supports for little algorithms:

Fractional Derivative:

  • Caputo fractional derivative
  • Grunwald-Letnikov fractional derivative
  • Riemann-Liouville fractional derivative
  • Riesz fractional derivative
  • Hadamard fractional derivative
  • Caputo-Fabrizio fractional derivative
  • Atangana-Baleanu fractional derivative
  • Marchaud fractional derivative
  • Weyl fractional derivative
  • ......

Fractional Integral:

  • Riemann-Liouville fractional integral
  • Hadamard fractional integral
  • Atangana-Baleanu fractional integral
  • ......

πŸ“š Reference

FractionalCalculus.jl is built upon the hard work of many scientific researchers, I sincerely appreciate what they have done to help the development of science and technology.

πŸ₯‚ Contributing

If you are interested in Fractional Calculus and Julia, welcome to raise an issue or file a Pull Request!!

Used By Packages

No packages found.