Skip to content

Latest commit

 

History

History
197 lines (152 loc) · 5.97 KB

README.md

File metadata and controls

197 lines (152 loc) · 5.97 KB

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 installed 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
|   |   ├── 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.

🖼️ 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 that 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!!