Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/SciFracX/FractionalCalculus.jl
FractionalCalculus.jl: A Julia package for high performance, comprehensive and high precision numerical fractional calculus computing.
https://github.com/SciFracX/FractionalCalculus.jl
algorithms caputo differentiation differintegral fractional-calculus grunwald-letnikov integration julia matrix-discrete numerical riemann-liouville
Last synced: 3 months ago
JSON representation
FractionalCalculus.jl: A Julia package for high performance, comprehensive and high precision numerical fractional calculus computing.
- Host: GitHub
- URL: https://github.com/SciFracX/FractionalCalculus.jl
- Owner: SciFracX
- License: mit
- Created: 2021-06-29T16:25:04.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-04-07T16:39:59.000Z (7 months ago)
- Last Synced: 2024-07-09T05:08:15.657Z (4 months ago)
- Topics: algorithms, caputo, differentiation, differintegral, fractional-calculus, grunwald-letnikov, integration, julia, matrix-discrete, numerical, riemann-liouville
- Language: Julia
- Homepage: http://scifracx.org/FractionalCalculus.jl/dev/
- Size: 4.69 MB
- Stars: 31
- Watchers: 2
- Forks: 6
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-sciml - SciFracX/FractionalCalculus.jl: FractionalCalculus.jl: A Julia package for high performance, fast convergence and high precision numerical fractional calculus computing.
README
# FractionalCalculus.jl
FractionalCalculus.jl provides support for fractional calculus computing.
## π Installation
If you have already installed Julia, you can install FractionalCalculus.jl in REPL using Julia package manager:
```julia
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
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
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
| | βββ 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](https://scifracx.org/FractionalCalculus.jl/dev/Derivative/derivativeapi/).
## πΌοΈ Example
Let's see examples here:
Compute the semi-derivative of $f(x) = x$ in the interval $\left[0, 1\right]$:
![Plot](/docs/src/assets/semiderivativeplot.png)
We can see that computing retains high precisionβ¬οΈ.
Compute different order derivative of $f(x) = x$:
![Different Order](/docs/src/assets/different_order_x_derivative.png)
Also different order derivative of $f(x) = \sin(x)$:
![Different Order of sin](/docs/src/assets/different_order_sin_derivative.png)
And also different order integral of $f(x) = x$:
![Different Order Of x](/docs/src/assets/different_order_x_integral.png)
## π§ Symbolic Fractional Differentiation and Integration
Thanks to SymbolicUtils.jl, FractionalCalculus.jl can do symbolic fractional differentiation and integration now!!
```julia
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:
- [x] Caputo fractional derivative
- [x] Grunwald-Letnikov fractional derivative
- [x] Riemann-Liouville fractional derivative
- [x] Riesz fractional derivative
- [x] Hadamard fractional derivative
- [x] Caputo-Fabrizio fractional derivative
- [x] Atangana-Baleanu fractional derivative
- [ ] Marchaud fractional derivative
- [ ] Weyl fractional derivative
- [ ] ......Fractional Integral:
- [x] Riemann-Liouville fractional integral
- [x] 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!!