Feeds:
Posts

## Generalized Mittag-Leffler functions: do they go past Mandelbrot?

Mandelbrot was a great genius and he did bring the world’s understanding of nature a step past Gauss, Riemann, and Laplace.  He did so by fighting a deeply medieval scientific establishment into accepting the fact that nature has power law tails in many places where we sometimes use Gaussians and I do not wish to enter this old debate at the moment because it’s a stale debate with Nassim Taleb doing a good job fighting for Mandelbrot’s view of nature.  But was he right in a deeper sense of a positive achievement by a new religion of power law which is of course not his baby per se.  Are power laws exactly right?  Right now, I don’t believe that the correction term is a power law per se although I will admit that the $EN(t)$ of log integrated up to time $t$ total number of volatility shocks in a dataset with 1900 stocks definitely is pretty good fit statistically to power law:  the p-value was far below 0.01 and the least-square $R^2=0.99+$.  But the residual looks significant and not noisy.  So power law is not the end but an approximation in the case of volatility and I suggest in many other more classical hard science applications beyond finance such as anomalous diffusions and so on.

## rationale for next step

### Zulfikar Ahmed<wile.e.coyote.006@gmail.com>

7:25 PM (0 minutes ago)

 to David, bcc: aimee
Dear Professor Donoho,

The decision to spend effort next on computational aspects of families of Mittag-Leffler functions is primarily motivated by exact models for waiting time distributions for empirical collective volatility integrated shocks from time 0 to t, i.e. EN(t).  There are some standard descriptions of how the various generalizations arose in terms of fractional differential equations but the mathematical concepts involved are telling us something about nature itself and not to be too mystical about it but history has shown that there is always deeper mathematics when some concepts have an interplay with physics.  Higher Transcendental functions had always been for me the second part of Whittaker/Watson no one ever read except for specialists but this is clearly home to some beautiful and deep theory that I cannot spend much time on in this pass at all.  The waiting time distribution of fractional Poisson process is what requires these Mittag-Leffler functions.
So what are these things mathematically?  I intend to gain some intuition here since I have no background on higher transcental functions except of course the Gamma and the zeta.  Why would there be a correction to a paradigm being built up carefully for forty years?  Perhaps these already have answers I am not educated on.
HERE is the MATLAB code for computations.  I’m checking it on octave.  The goal is to understand some parametric generalization of ML and fit some parameters for the residual which is not directly ML so I need to understand the connection a bit better before returning to empirical data.
function [e]=mlf(alf,bet,c,fi)
%
% MLF — Mittag-Leffler function.
%           MLF (alpha,beta,Z,P) is the Mittag-Leffler function E_{alpha,beta}(Z)
%           evaluated with accuracy 10^(-P) for each element of Z.
%           alpha and beta are scalars, P is integer, Z can be a vector or
%           a two-dimensional array. The output is of the same size as Z.
% (C) 2001-2012 Igor Podlubny, Martin Kacenak
% Last update: 2012-09-07
[cRows, cCols] = size(c);
c=m2v(c);
if nargin<4 , fi=6; end
if nargin<3 || alf<=0 || fi<=0
else
[r,s]=size(c); [r1,s1]=size(alf); [r2,s2]=size(bet);
mx=max([r,s]); mx1=max([r1,s1]); mx2=max([r2,s2]);
if (r>1 && s>1) || (r1>1 && s1>1) || (r2>1 && s2>1) || (mx1>1 && mx2>1)
sprintf(‘wrong number of input parameters’)
else
if mx1>mx2 , mxx=mx1; e=zeros(mx,mx1);
else mxx=mx2; e=zeros(mx,mx2);end;
for i1= 1:mx
for i2=1:mxx
if r>s , z=c(i1,1); else z=c(1,i1); end
if mx1>mx2 , if r1>s1 , alfa=alf(i2,1); else alfa=alf(1,i2);end, beta=bet;
else if r2>s2 ,beta=bet(i2,1); else beta=bet(1,i2); end, alfa=alf; end
if beta<0 , rc=(-2*log(10^(-fi)*pi/(6*(abs(beta)+2)*(2*abs(beta))^(abs(beta)))))^alfa;
else  rc=(-2*log(10^(-fi)*pi/6))^alfa; end
r0=max([1,2*abs(z),rc]);
if (alfa==1 && beta==1)
e(i1,i2)=exp(z);
else
if (alfa<1 && abs(z)<=1) || ( (1<=alfa && alfa <2) && abs(z)<=floor(20/(2.1-alfa)^(5.5-2*alfa))) || (alfa>=2 && abs(z)<=50)
oldsum=0;
k=0;
while (alfa*k+beta)<=0
k=k+1;
end
newsum=z^k/gamma(alfa*k+beta);
while newsum~=oldsum
oldsum=newsum;
k=k+1;
term=z^k/gamma(alfa*k+beta);
newsum=newsum+term;
k=k+1;
term=z^k/gamma(alfa*k+beta);
newsum=newsum+term;
end
e(i1,i2)=newsum;
else
if (alfa<=1 && abs(z)<=fix(5*alfa+10))
if ((abs(angle(z))>pi*alfa) && (abs(abs(angle(z))-(pi*alfa))>10^(-fi)))
if beta<=1
e(i1,i2)=rombint(‘K’,0,r0,fi,alfa,beta,z);
else
eps=1;
e(i1,i2)=rombint(‘K’,eps,r0,fi,alfa,beta,z)+ …
rombint(‘P’,-pi*alfa,pi*alfa,fi,alfa,beta,z,eps);
end
elseif (abs(angle(z))<pi*alfa && abs(abs(angle(z))-(pi*alfa))>10^(-fi))
if beta<=1
e(i1,i2)=rombint(‘K’,0,r0,fi,alfa,beta,z)+ …
(z^((1-beta)/alfa))*(exp(z^(1/alfa))/alfa);
else
eps=abs(z)/2;
e(i1,i2)=rombint(‘K’,eps,r0,fi,alfa,beta,z)+ …
rombint(‘P’,-pi*alfa,pi*alfa,fi,alfa,beta,z,eps)+ …
(z^((1-beta)/alfa))*(exp(z^(1/alfa))/alfa);
end
else
eps=abs(z)+0.5;
e(i1,i2)=rombint(‘K’,eps,r0,fi,alfa,beta,z)+ …
rombint(‘P’,-pi*alfa,pi*alfa,fi,alfa,beta,z,eps);
end
else
if alfa<=1
if (abs(angle(z))<(pi*alfa/2+min(pi,pi*alfa))/2)
% alfa
newsum=(z^((1-beta)/alfa))*exp(z^(1/alfa))/alfa;
for k=1:floor(fi/log10(abs(z)))
newsum=newsum-((z^(-k))/gamma(beta-alfa*k));
% k
end
e(i1,i2)=newsum;
else
newsum=0;
for k=1:floor(fi/log10(abs(z)))
newsum=newsum-((z^-k)/gamma(beta-alfa*k));
end
e(i1,i2)=newsum;
end
else
if alfa>=2
m=floor(alfa/2);
sum=0;
for h=0:m
zn=(z^(1/(m+1)))*exp((2*pi*1i*h)/(m+1));
sum=sum+mlf(alfa/(m+1),beta,zn,fi);
end
e(i1,i2)=(1/(m+1))*sum;
else
e(i1,i2)=(mlf(alfa/2,beta,z^(1/2),fi)+mlf(alfa/2,beta,-z^(1/2),fi))/2;
end
end
end
end
end
end
end
end
end
if isreal(c)
e = real(e);
end
e = v2m(e,cRows,cCols);
function [res]=rombint(funfcn,a,b,order,varargin)
if nargin<4 ,order=6; end
if nargin<3
Warning (‘Error in input format’)
else
rom=zeros(2,order);
h=b-a;
rom(1,1)=h*(feval(funfcn,a,varargin{:})+feval(funfcn,b,varargin{:}))/2;
ipower=1;
for i= 2:order
sum=0;
for j=1:ipower
sum=sum+feval(funfcn,(a+h*(j-0.5)),varargin{:});
end
rom(2,1)=(rom(1,1)+h*sum)/2;
for k=1:i-1
rom(2,k+1)=((4^k)*rom(2,k)-rom(1,k))/((4^k)-1);
end
for j=0:i-1
rom(1,j+1)=rom(2,j+1);
end
ipower=ipower*2;
h=h/2;
end
res=rom(1,order);
end
function res=K(r,alfa,beta,z)
res=r.^((1-beta)/alfa).*exp(-r.^(1/alfa)).*(r*sin(pi*(1-beta))-…
z*sin(pi*(1-beta+alfa)))/(pi*alfa*(r.^2-2*r*z*cos(pi*alfa)+z.^2));
function res=P(r,alfa,beta,z,eps)
w=(eps^(1/alfa))*sin(r/alfa)+r*(1+(1-beta)/alfa);
res=((eps^(1+(1-beta)/alfa))/(2*pi*alfa))*((exp((eps^(1/alfa))*cos(r/alfa)).*…
(cos(w)+1i*sin(w))))/(eps*exp(1i*r)-z);
function A = v2m(V, M, N)
if numel(V)==M*N,
A = reshape(V, [N, M]);
A = A’ ;
else
warning(‘Wrong dimensions of the output in V2M.’)
end
function V = m2v(A)
M = A’; V = M(:);
5 Attachments

Preview attachment 2015-paper-mittag-leffler-fractional.pdf

2015-paper-mittag-leffler-fractional.pdf

Preview attachment graphical-interpretation-mittag-leffler.pdf

graphical-interpretation-mittag-leffler.pdf

Preview attachment fractional-modeling-mittag-leffler.pdf

fractional-modeling-mittag-leffler.pdf

Preview attachment mittag-leffler-type-functions-zeros-and-growth.pdf

mittag-leffler-type-functions-zeros-and-growth.pdf

Preview attachment computation-mittag-leffler-functions.PDF

computation-mittag-leffler-functions.PDF