Negative parameters of Mejier G function

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 comentarios

Walter Roberson
Walter Roberson el 17 de Mzo. de 2017
Is that K0 the BesselK function?
Ali Akber
Ali Akber el 17 de Mzo. de 2017
Yes, it is modified Bessel function of the second kind

Iniciar sesión para comentar.

 Respuesta aceptada

Walter Roberson
Walter Roberson el 17 de Mzo. de 2017
Editada: Walter Roberson el 17 de Mzo. de 2017

1 voto

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 comentarios

Thank you, Walter, for your explanation. It cleared a lot of confusions. So from your comment, I can presume that the original function is incorrect? Here I have also attached the image of the function from the text. My code for this function is also given below:
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;
Walter Roberson
Walter Roberson el 17 de Mzo. de 2017
I poked into this for a bit. I think that integral could be transformed to the general form A*int(BesselK(0,x)*log(1+B*x^2), x, 0,inf)
Unfortunately I was not able to resolve that form.
I did find an extensive table of integrals of bessel functions that discussed the form x^(2*n) * Z0(x) * log(x) where Z0 is a bessel function with parameter 0. Unfortunately it only showed BesselJ and BesselI. I do not recall whether BesselK can be rewritten in I and J.
The discussion was not trivial, showing asymptotes and chebychev approximations and sequences of coefficients. It did not especially look like there would be a Meijer function expression of it.
Ali Akber
Ali Akber el 17 de Mzo. de 2017
Editada: Ali Akber el 17 de Mzo. de 2017
Dear Walter, Thank You so much for your interest. I tried and I came up with this possible solution. We can first convert both Bessel and log functions into Meijer G-Functions according to the formulas given below and then we can integrate them. Below formula also shows that the integration of the product of two Meijer G-functions is again a Meijer G-Function. I did convert both the Bessel and Log function but I could not compute their integral manually. I tried Mathematica but of Meijer G-Function it gave me the answer in HyperGeometric Function. Any help in this regard will be very much appreciated.
Ah, in Maple, I am able to get
MeijerG([[-1/2], [1/2]], [[0, 0, -1/2, -1/2], []], b/(lambda__g*lambda__h))*b^(3/2)/(lambda__g^(3/2)*lambda__h^(3/2)*ln(2))
without needing to convert to MeijerG explicitly. The trick was to do the change of variables
Gamma = (1/4)*x^2*lambda__g*lambda__h/b
then simplify assuming x>0; integrate over x = 0..infinity then worked, and simplify() the result assuming nonnegative
Ali Akber
Ali Akber el 18 de Mzo. de 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
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;

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Special Functions en Centro de ayuda y File Exchange.

Preguntada:

el 17 de Mzo. de 2017

Comentada:

el 18 de Mzo. de 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by