APMR
Acoustical Porous Material Recipes

A note about fractional derivatives

Fractional derivatives (a derivative with order $\alpha$ such as $d^{\alpha}/dt^{\alpha}$ where $\alpha$ is a real or complex value) are used in many fields of science and in particular in modeling the behavior of visco-elastic materials i.e defining stress ($\sigma$) - strain ($\varepsilon$) relations. Indeed, a fractional derivative provides an additional degree of freedom without adding a new element to simple conventional visco-elastic models like e.g. the ones by Maxwell, Kelvin & Voigt or Zener.


Hooke model makes use of a single elastic spring element.
$\sigma = E \varepsilon$


Stokes model makes use of a single dashpot element.
$\sigma = \eta d\varepsilon/dt$


Maxwell model cannot describe creep or recovery.
$1/E \times d\sigma/dt + \sigma/\eta = d\varepsilon/dt$


Kelvin–Voigt model cannot describe stress relaxation.
$\sigma = E\varepsilon + \eta d\varepsilon/dt$


Zener model is the simplest model which can describe both phenomena.
$\sigma + \eta/E_2 \times d\sigma/dt$
$= E_1\varepsilon + \eta(E_1+E_2)/E_2 \times d\varepsilon/dt$

In a thread following a tweet by Gabriel Peyré, I discovered an original way of using (and further familiarize oneself with) fractional derivatives, illlustrated by Dillon Berger (and further explained by Gen Kuroki - in Japanese) : to smooth the animation between powers of the Taylor series of a function.
Compare the two graphs on this page to see the effect.

The Taylor series of an infinitely differentiable function $f$ around the real (or complex) value $a$ is : \[ f(x) = f(a) + \displaystyle\frac{f'(a)}{1!}(x-a) + \displaystyle\frac{f''(a)}{2!}(x-a)^2 + \displaystyle\frac{f'''(a)}{3!}(x-a)^3 + O(x^4) \]

As an example, the Taylor series expansion of $\sin(x)$, around $x=0$ (a.k.a. the MacLaurin series), is :

\[ \sin(x) = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \frac{x^7}{7!} + O(x^9) \] or \[ \sin(x) = x - \frac{x^3}{\Gamma(3+1)} + \frac{x^5}{\Gamma(5+1)} - \frac{x^7}{\Gamma(7+1)} + O(x^9) \] where $\Gamma$ denotes the Gamma function i.e., in short, an extension of the factorial function ($!$) to real (and even to complex) numbers.

Below, use the + and - buttons to increase or decrease the power expansion for $\sin(x)$ Taylor series. Note that the terms with even numbers for the powers of $x$ are not used in the equation above and thus they change nothing to the approximation of $\sin(x)$ :
$\sin(x)$
$\simeq$
$x$
-15 -10 -5 0 5 10 15 -2 -1 0 1 2 To animate the transition between powers with fractional derivatives, the trick is to use the Taylor series expansion of exponential and its relation with $\sin$ : \[ e^x = \frac{x^0}{0!} + \frac{x^1}{1!} + \frac{x^2}{2!} + \frac{x^3}{3!} + O(x^4) \] and \[ \sin(x) = \textrm{Imag}(e^{ix}) \] The Taylor series for $e$ can be written as : \[ \sum_{k=0}^n \frac{(ix)^k}{k!} = e^{ix} - \sum_{k=n+1}^\infty \frac{(ix)^k}{k!} \] or \[ \sum_{k=0}^n \frac{(it)^k}{k!} = e^{ix} - \sum_{\nu=0}^\infty \frac{(ix)^{n+\nu}}{\Gamma(n+\nu+1)} \] where $\nu$ can take any real values (not just integer values) and $\sin$ is recovered as the imaginary part of $e$.
Below is the animation for $\sin(x)$ with a step of 0.2 for $\nu$ between two plots. The value of the maximum power is
-15 -10 -5 0 5 10 15 -2 -1 0 1 2

About the numerical implementation :
The Gamma function implemented in this page is an approximation proposed by Gergo Nemes (see the wikipedia page on Stirling's approximation). It was reported as a simpler and faster but not as much accurate as Lanczos approximation by Peter Olson in his answer to a stackoverflow question on the Gamma function implementation in Javascript.



The content of this page is copyleft under :
the creative commons license Attribution 3.0 Unported (CC BY 3.0).
Luc Jaouen (@ljaouen), ISSN 2606-4138.
Site hosted by Matelys.