1
$\begingroup$

I would like to implement fractional derivative in my simulation model. Most of the literature I find, discuss techniques of evaluating the fractional derivative using constant time-steps. Are there any methods which consider unequal time-steps and evaluate the fractional derivative because the solver of my simulation software does not guarantee a constant time-step.

I understand what a fractional derivative does basically. I am in search of a discrete approximation or any other numerical method to evaluate the fractional derivative of a function (say $x$) with respect to the simulation time. As far as I know, I shall consider the values of $x$ at various time steps (till the current simulation time is reached) and then evaluate the fractional derivative. The problem I have is that there are methods (like Grunwald Coefficients, etc.) which consider equal time step increments. But my solver does not have equal timesteps; instead, it selects the timestep based on the convergence of the solution. Let us assume a simulation time of 5 seconds with 500 number of timesteps. The methods I went through so far assume a time step of (5/500), i.e. 0.01s. So there the simulation time is as follows 0.01, 0.02, 0.03...., 4.99, 5.00. But what if my solver simulation time is as follows 0.01, 0.015, 0.024,..., 4.50, 5.00 where the increment is not a constant value? I want to know if there are any methods to solve such a case.

The fractional derivative is defined as follows. Please click here to see the definition

$\endgroup$
  • $\begingroup$ I'm not quite sure what you want. Could you try to elaborate? $\endgroup$ – Simply Beautiful Art Jan 24 '17 at 15:49
  • $\begingroup$ @gkhandavalli : What fractional derivative do you mean ? Is it this : mathworld.wolfram.com/FractionalDerivative.html $\endgroup$ – JJacquelin Jan 24 '17 at 16:29
  • $\begingroup$ Approach it from a differintegral perspective. You can integrate with unequal step sizes, then do a regular derivative on top of that. $\endgroup$ – Cameron Williams Jan 24 '17 at 17:02
  • $\begingroup$ @CameronWilliams Can you please elaborate? $\endgroup$ – gkhandavalli Jan 26 '17 at 9:21
  • $\begingroup$ @JJacquelin Yeah. But I need a discrete approximation $\endgroup$ – gkhandavalli Jan 27 '17 at 10:00
0
$\begingroup$

This isn't the expected answer, this is a response to a comment, but too long to be posted in the comments section.

If we consider the fractional derivative on non-integer degree $\nu$ of $f(t)$, in the sens of the Riemann-Liouville transform : $$\frac{d^\nu}{dt^\nu}f(t)=\frac{1}{\Gamma(-\nu)}\int_0^t \frac{f(\tau)}{(t-\tau)^{\nu+1}}d\tau$$ a possible way to numerical calculus could be as follows.

Since it is generally less problematic in numerical process to traite fractional integrals than fractional derivatives, we make first a partial integration of degree $(\mu+1)$, so that

$$\mu=n-\nu-1 \quad \text{with}\quad \begin{cases} 0<\mu<1 \\ n \quad \text{integer}\quad\to\quad n=\lceil \nu \rceil+1 \end{cases}$$

$$\frac{d^\nu}{dt^\nu}f(t)=\frac{d^n}{dt^n}\left(\frac{d^{-(\mu+1)}}{dt^{-(\mu+1)}}f(t)\right)=\frac{d^n}{dt^n}\left(\frac{1}{\Gamma(\mu+1)}\int_0^t \frac{f(\tau)}{(t-\tau)^{-\mu}}d\tau\right)$$ So, the integral to be numerically computed is: $$F(t)=\int_0^t f(\tau)(t-\tau)^{\mu}d\tau$$ Since $\mu>0$ there is no particular problem for the numerical integration (with constant time-steps if the time data is on this form).

Finally, $n$ successive derivations have to be done with classical means for numerical computation of derivatives. $$\frac{d^\nu}{dt^\nu}f(t)=\frac{1}{\Gamma(\mu+1)}\frac{d^n}{dt^n}F(t)$$ Note that it is supposed that the initial value of time is $t=0$. If not, a generalized form of Riemann-Liouville transform has to be considered allowing a no-null value for the low boundary of the integral.

Of course, one can think up to many variants around this process.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.