Generalized exponential integral with negative argument
Show older comments
Is there a way to compute the generalized exponential integral E[a,x]=int_1^infty e^(-x t) t^a dt with negative x? In particular, I need to compute the integral int_1^z Exp[-y^b/b] dy where b<0 and z>1. (I need to do this for 1000’s of z-values so numerical integration is not an option) Mathematica tells me this equals an expression involving ExpIntegralE[(-1 + b)/b, 1/b] (to be precise ExpIntegralE[(-1 + b)/b, 1/b] - z ExpIntegralE[(-1 + b)/b, z^b/b])/b. So since b<0, x=1/b is negative, and this causes a problem.
There seems to be a related thread but with no answer https://www.mathworks.com/matlabcentral/newsreader/view_thread/289192
Finally, there is an implementation of E[a,x] on file exchange https://www.mathworks.com/matlabcentral/fileexchange/52694-generalised-exponential-integral but it cannot handle negative x-values.
Accepted Answer
More Answers (1)
Walter Roberson
on 12 Sep 2016
Edited: Walter Roberson
on 12 Sep 2016
This formula appears to work. It requires the symbolic toolbox
(-z^(b+1)*hypergeom([(1/2)*(b+1)/b], [3/2, (1/2)*(3*b+1)/b], (1/4)*z^(2*b)/b^2)+b*z*(b+1)*hypergeom([(1/2)/b], [1/2, (1/2)*(2*b+1)/b], (1/4)*z^(2*b)/b^2)+hypergeom([(1/2)*(b+1)/b], [3/2, (1/2)*(3*b+1)/b], (1/4)/b^2)+(-b^2-b)*hypergeom([(1/2)/b], [1/2, (1/2)*(2*b+1)/b], (1/4)/b^2))/(b*(b+1))
Note: this might fail if 1/b is an integer
Reference: Maple
2 Comments
Benjamin Moll
on 13 Sep 2016
Walter Roberson
on 13 Sep 2016
Edited: Walter Roberson
on 15 Sep 2016
syms b z
G = (-z^(b+1)*hypergeom([(1/2)*(b+1)/b], [3/2, (1/2)*(3*b+1)/b], (1/4)*z^(2*b)/b^2)+b*z*(b+1)*hypergeom([(1/2)/b], [1/2, (1/2)*(2*b+1)/b], (1/4)*z^(2*b)/b^2)+hypergeom([(1/2)*(b+1)/b], [3/2, (1/2)*(3*b+1)/b], (1/4)/b^2)+(-b^2-b)*hypergeom([(1/2)/b], [1/2, (1/2)*(2*b+1)/b], (1/4)/b^2))/(b*(b+1));
GG = subs(G, {z, b}, {linspace(1,2,1000), -sqrt(pi)});
GGn = double(GG);
Categories
Find more on Calculus in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!