Skip to content

FractionalCalculus.jl: A Julia package for high performance, fast convergence and high precision numerical fractional calculus computing.

License

Notifications You must be signed in to change notification settings

pedromxavier/FractionalCalculus.jl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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, RLDiffApprox())
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
|   |   ├── CaputoPiecewise
|   |   ├── CaputoDiethelm
|   |   ├── CaputoHighPrecision
|   |   └── CaputoHighOrder
|   |
│   ├── Grünwald Letnikov
|   |   ├── GLDirect
|   |   ├── GLMultiplicativeAdditive
|   |   ├── GLLagrangeThreePointInterp
|   |   └── GLHighPrecision
|   |
|   ├── Riemann Liouville
|   |    ├── RLDiffApprox
|   |    ├── 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!!

About

FractionalCalculus.jl: A Julia package for high performance, fast convergence and high precision numerical fractional calculus computing.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Julia 100.0%