Introduction to Fractional Calculus

Tigran Ishkhanyan
 Wolfram Research, Inc.

(RowDefault[, (Spacer1), , (Spacer1), ])  #WolframTechConf

Plan of my talk

What is Fractional Calculus?

Historical overview

Definitions of fractional differintegrals

Wolfram Language 13.1 FractionalD/CaputoD functions

Numerical fractional differintegration in WL 13.2

Applications

Tutorial and Wolfram U course

References and Useful Links

What is Fractional Calculus

Differentiation and integration are two fundamental operations of mathematical analysis.

The first derivative of a function f(x)=((x^2)/2) is x, while the result of integration if  ((x^3)/6)+c. The  (n^th)-order derivative of this function is well known:

Putting negative n in this formula, one might easily get the n(^th)-order antiderivative of this function. Here we assume that the order n is integer (either positive or negative).

What if the ideas of differentiation/integration could be extended to noninteger or even complex orders?
Let’s take the above formula and put n=1/2 into that:

Formally this is the half-order derivative of the square function!
Now, let’s repeat this. Take the formula for the n(^th)-order derivative of ((4 (x^(3/2)))/(3 (Sqrt[π]))) and put n=1/2:

We just got the first derivative of the initial square function via two “half-order” differentiations.

These examples illustrate the basic idea of Fractional Calculus, which generalizes the classical operations defining real/complex number orders of differentiation/integration.

Historical overview

A nice historical overview is given in the Wikipedia article:

Fractional calculus was introduced in one of Niels Henrik Abel’s early papers, where all the elements can be found: the idea of fractional-order integration and differentiation, the mutually inverse relationship between them, the understanding that fractional-order differentiation and integration can be considered as the same generalized operation, and even the unified notation for differentiation and integration of arbitrary real order.

Abel’s Mechanical Problem (1823/1826)

Determine the equation for the curve KCA along the slope from the prescribed transit time T(a=AB).

Abel obtained the following equation ψ(a)=(∫_0^a)((ds)/(Sqrt[a-AP])) (or more complex form of it ψ(a)=(∫_0^a)((ds)/(((a-AP))^n))).

After several algebraic manipulations might be rewritten in the form of ψ(t)=(∫_0^t)((s'(x)ds)/(((t-x))^n)).

This is nothing else than the modern Caputo fractional derivative.

Details are in the following article: https://link.springer.com/article/10.1515/fca-2017-0057.

Definitions of Fractional Differintegrals

In Fractional Calculus we’re working with a unified differentiation/integration operator called fractional differintegral.

The fractional differintegral is written as (Subscript[, 0])(Subscript[D, x]^α)f(x), where α is the order of differentiation/integration (generally speaking, real or complex) and 0 is the lower bound of differintegral (might be anything).

The starting point is that for integer orders fractional differintegrals should coincide with the ordinary derivatives/integrals.

Three well-known differintegrals

The Grünwald-Letnikov definition gives the extension of the classical derivatives/integrals:

(^GL)(Subscript[, 0])(Subscript[D, x]^α)f(x)= (lim_(h->0))(h^(-α))(∑_(r=0)^∞)(((-1))^r)(({{α}, {r}}))f(x-r*h)

The Riemann-Liouville definition via integral:

(^RL)(Subscript[, 0])(Subscript[D, x]^α)f(x)=(1/(Γ(n-α)))((d^n)/(d(x^n)))(∫_0^x)(((x-τ))^(n-α-1))f(τ)dτ, where n=max(0,(Ceiling[α]))

The Caputo definition is:

(^C)(Subscript[, 0])(Subscript[D, x]^α)f(x)=(1/(Γ(n-α)))(∫_0^x)(((x-τ))^(n-α-1))(f^((n)))(τ)dτ, where n=max(0,(Ceiling[α]))

It is connected with the Riemann-Liouville one as:

(^C)(Subscript[, 0])(Subscript[D, x]^α)f(x)=(^RL)(Subscript[, 0])(Subscript[D, x]^α)f(x)-(∑_(k=0)^((Ceiling[α])-1))((x^(k-α))/(Γ(k-α+1)))(f^((k)))(0)

And coincides with the Riemann-Liouville one for negative α’s.

This animation shows the behavior of ordinary and Riemann–Liouville fractional derivatives of a square function:

The fractional-order derivatives “interpolate” between the derivatives of integer orders.

FractionalD in WL 13.1

Wolfram Language 13.1 has function FractionalD that computes the Riemann–Liouville fractional derivative (Subscript[, 0])(Subscript[D, x]^α)f(x). 
FractionalD itself does not have a lot of applications, but it plays an important role in the theory, as for example, the Caputo fractional derivative might be defined in terms of it.

Once more, the definition of Riemann-Liouville fractional differintegral is:

(^RL)(Subscript[, 0])(Subscript[D, x]^α)f(x)=(1/(Γ(n-α)))((d^n)/(d(x^n)))(∫_0^x)(((x-τ))^(n-α-1))f(τ)dτ, where n=max(0,(Ceiling[α]))

A toy example

Let’s generate the analytic formula for the fractional derivative of cubic function:

Repeating this once more we’ll get the ordinary derivative:

That’s it!
Of course this is a simplest possible example, but the theory is well developed. Prof. Oleg Marichev  derived more than 85000 formulas for fractional differentiation of different inputs.

FractionalD for power functions

Calculate the any-order fractional derivative of the quadratic function:

Plot this for different orders:

Recover the initial quadratic function via repeated fractional integration:

FractionalD for Exp, BesselJ, MeijerG and others

0.23-order fractional derivative of the Exp function with respect to x:

Fractional derivatives of the BesselJ function:

A very important case - MeijerG:

FractionalD of MeijerG is another MeijerG.

This table shows the α(^th) fractional and n(^th) ordinary derivatives of a few special functions:

CaputoD in WL 13.1

CaputoD gives the Caputo fractional derivative (^C)(Subscript[, 0])(Subscript[D, x]^α)f(x). 
CaputoD is based on FractionalD but also takes into account the initial values of the function/derivatives. 
It found wide applications for modeling systems using initial value problems for fractional differential equations from real-world applications.

The definition is:

(^C)(Subscript[, 0])(Subscript[D, x]^α)f(x)=(1/(Γ(n-α)))(∫_0^x)(((x-τ))^(n-α-1))(f^((n)))(τ)dτ, where n=max(0,(Ceiling[α]))

It is related to FractionalD as:

(^C)(Subscript[, 0])(Subscript[D, x]^α)f(x)=(^RL)(Subscript[, 0])(Subscript[D, x]^α)f(x)-(∑_(k=0)^((Ceiling[α])-1))((x^(k-α))/(Γ(k-α+1)))(f^((k)))(0)

A basic feature: the CaputoD of a constant is 0 while the FractionalD is not.

FractionalD[c,{x,α}]

CaputoD for different functions

CaputoD for Exp:

CaputoD[Exp[x],{x,(1/3)}]

CaputoD for BesselJ:

CaputoD[BesselJ[(1/3),x],{x,(1/2)}]

CaputoD for MittagLefflerE - it’s behaviour is similar to the D on Exp:

CaputoD[MittagLefflerE[α,λ (x^α)],{x,α}]

CaputoD of common mathematical functions:

Solving a fractional differential equation

All the fractional differential equations with constant coefficients are solved in terms of MittagLefflerE functions:

sol=DSolve[{CaputoD[y[x],{x,21/10}]+10y[x]==0,y[0]==1,y'[0]==0,y''[0]==0},y[x],x]

Plot this solution:

Plot[y[x]/.%,{x,0,10}]

Numerical fractional differintegration in WL 13.2

FractionalD and CaputoD are important and rather powerful functions but due to the complexity of their definitions (derivative of the integral or integral of the derivative of a function multiplied with other power function), calculations may be time consuming generating cumbersome outputs. 
Having numerical analogs of such symbolic functions is profitable: for Integrate there is NIntegrate, DSolve has NDSolve, and so on.

In WL 13.2 FractionalD and CaputoD have their numerical analogs called NFractionalD and NCaputoD. These numerical functions generate numerical outputs at the given point:

NFractionalD[(x^2),{x,(1/2)},0.25]

NCaputoD[MittagLefflerE[(5/4),(x^(5/4))],{x,(3/2)},0.25]

Using these functions, one can gain insights about the behavior of the fractional derivative (for example, plot it).

Plot[NFractionalD[Sin[x]Cos[x],{x,(6/5)},x0],{x0,0,(3/2)π}]

Here is another example involving the NCaputoD function:

Plot[{Sin[x0],NCaputoD[Sin[x],{x,(1/2)},x0],Cos[x0],NCaputoD[Sin[x],{x,(3/2)},x0]},{x0,0,2π},PlotLegends->]

Also, we’ve implemented the famous Grünwald-Letnikov approach of fractional differintegration into NFractionalD:

NFractionalD[(x^2),{x,(3/2)},(1/4),Method->"GrunwaldLetnikov"]

Due to definition and underlying algorithms the Grünwald-Letnikov approach is able to cover some cases not covered by the Riemann-Liouville differintegral:

NFractionalD[AngerJ[(10/3),x],{x,-(4/3)},(1/3),Method->"GrunwaldLetnikov"]

NFractionalD[AngerJ[(10/3),x],{x,-(4/3)},(1/3),Method->"RiemannLiouville"]

Applications

Fractional Calculus is gaining more and more applications in different areas of science.
This branch is becoming more and more popular in diffusion problems, fluid dynamics, control theory, signal processing and other areas. A lot of scientific phenomena are described with fractional differential, integral and mixed-type equations. 
Above I am giving only one example, while my colleague Aram Manaselyan will show a lot of others during his talk.

Fractional Wave Equation

Consider the following fractional wave equation:

a=19/10;
fweqn=CaputoD[y[t,x],{t,a}]==D[y[t,x],{x,2}];
ic={y[0,x]==Sin[Pi x],Derivative[1,0][y][0,x]==0,y[t,0]==0,y[t,1]==0};

DSolve it:

sol=DSolve[{fweqn,ic},y,{t,x}]

Plot this solution:

Plot3D[Evaluate[y[t,x]/.sol],{x,-5,5},{t,0,1},PlotPoints->25]

Tutorial and Wolfram U course

We have prepared a detailed tutorial on the Fractional Calculus for the upcoming Wolfram Language 13.2. It comprehensively covers the topics of this presentation and showcases few applications from real world problems:

Also a basic Wolfram U course called “Introduction to Fractional Calculus” is available via the link https://wolframu.wolfram.com/courses/mathematics/introduction-to-fractional-calculus-math930/

In this course we discuss in details what is Fractional Calculus, how the Laplace transform and inverse Laplace transform methods work and solve fractional differential equations and systems of fractional differential equations.

Summary

Nowadays, fractional calculus is gaining more and more interest as it is able to generalize the well-known integrodifferential equations to ones containing fractional-order derivatives or integrals of the target function.
Generalizing classical DEs to fractional ones we will be able to more precisely describe different real-world phenomena.

Understanding the potential of this topic we have implemented the FractionalD/CaputoD and NFractionalD/NCaputoD functions into Wolfram Language, added support for fractional DEs in DSolve and improved the LaplaceTransform/InverseLaplaceTransform functions.

References and useful links

Oldham, K. B. and J. Spanier. The Fractional Calculus: Theory and Applications of Differentiation and Integration to Arbitrary Order. Academic Press, 1974.

Samko S.G., Kilbas, A.A. and Marichev O.I., Fractional Integrals and Derivatives: Theory and Applications. Gordon and Breach, 1993.

Podlubny, I., Magin, R. and I. Trymorush. "Niels Henrik Abel and the Birth of Fractional Calculus." Fractional Calculus and Applied Analysis 20, no. 5 (2017): pp. 1068–1075.

Li, C. and M. Cai. Theory and Numerical Approximations of Fractional Integrals and Derivatives. SIAM, 2019.

Launching Version 13.1 of Wolfram Language & Mathematica: blog post by Stephen Wolfram.

Fractional Calculus in Wolfram Language 13.1: blog post by me.

FractionalOrderD packlet containing 85000 fractional derivative rules by Oleg Marichev and Paco Jain.

New in Wolfram Language 13.1 webinar series.

Reference pages of FractionalD/CaputoD and NFractionalD/NCaputoD functions.

The upcoming Fractional Calculus tutorial.

The Wolfram U Introduction to Fractional Calculus course.

Thank you!