FractionalCalculus.jl provides support for fractional calculus computing.
If you have already installed Julia, you can install FractionalCalculus.jl in REPL using Julia package manager:
pkg> add FractionalCalculus
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.
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.
Current Algorithms
βββ FracDiffAlg
β βββ Caputo
| | βββ CaputoDirect
| | βββ CaputoTrap
| | βββ CaputoDiethelm
| | βββ CaputoHighPrecision
| | βββ CaputoL1
| | βββ CaputoL2
| | βββ CaputoHighOrder
| |
β βββ GrΓΌnwald Letnikov
| | βββ GLDirect
| | βββ GLMultiplicativeAdditive
| | βββ GLLagrangeThreePointInterp
| | βββ GLHighPrecision
| |
| βββ Riemann Liouville
| | βββ RLDiffL1
| | βββ RLDiffL2
| | βββ RLDiffL2C
| | βββ 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.
Let's see examples here:
Compute the semi-derivative of $f(x) = x$ in the interval $\left[0, 1\right]$:
We can see that computing retains high precisionβ¬οΈ.
Compute different order derivative of $f(x) = x$:
Also different order derivative of $f(x) = \sin(x)$:
And also different order integral of $f(x) = x$:
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)
Right now, FractionalCalculus.jl has only supports for little algorithms:
Fractional Derivative:
Fractional Integral:
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.
If you are interested in Fractional Calculus and Julia, welcome to raise an issue or file a Pull Request!!