Clear Filters
Clear Filters

Negative parameters of Mejier G function

7 views (last 30 days)
Dear Users
Is it possible that meijerG function contain a negative value (i.e. is {-1,0,0})? I tried both Mathematica and Matlab to compute this meijerG function but they generate error that this "meijerG is not defined for the given parameters" Any help will be helpful. Here is my code
D = (0.6);
lg1 = lg2 = 1;
G = evalin(symengine, sprintf('meijerG([[0], []], [[-1,0,0], []],%f)',(D/(lg1*lg2))));
CD = -((2*D)/(lg1*lg2*(log(4))))*G;
Regards
  2 Comments
Walter Roberson
Walter Roberson on 17 Mar 2017
Is that K0 the BesselK function?
Ali Akber
Ali Akber on 17 Mar 2017
Yes, it is modified Bessel function of the second kind

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 17 Mar 2017
Edited: Walter Roberson on 17 Mar 2017
As I indicated before, 0 from the first argument, minus negative 1 from the second argument, gives +1,a positive integer. MeijerG is not defined when one of those differences is a positive integer. There is no way to make such a calculation. You should look up the definition of meijerg and you will see this described.
It is not a limitation of MATLAB or Mathematica or Maple, not a case where "it is just really tough to calculate so we have not bothered": it is fundamental to MeijerG's definition.
Note that it is not a difficulty with negative parameters themselves. You would have the same problem if you for example had 4 in the first parameter and 2 in the second parameter: the difference would be a positive integer and that is not permitted for the function to have meaning. If the first parameter was, for example, 1/2 then -1 would be fine in the second parameter.
  6 Comments
Ali Akber
Ali Akber on 18 Mar 2017
Ohh wawo.. Can you elaborate this a little more? Which function you exactly evaluated? If possible please share the Maple code. I would be very thankful.
Regards
Walter Roberson
Walter Roberson on 18 Mar 2017
The Maple code was:
T := 2*b*BesselK(0, sqrt(4*b*Gamma/(lambda__g*lambda__h)))*log[2](1+Gamma)/(lambda__g*lambda__h);
U := solve(x = sqrt(4*b*Gamma/(lambda__g*lambda__h)), Gamma);
simplify(eval(T,Gamma=U)) assuming x >= 0;
int(%,x=0..infinity);
simplify(%) assuming nonnegative;

Sign in to comment.

More Answers (0)

Categories

Find more on Special Functions 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!