필터 지우기
필터 지우기

Negative parameters of Mejier G function

조회 수: 7 (최근 30일)
Ali Akber
Ali Akber 2017년 3월 17일
댓글: Walter Roberson 2017년 3월 18일
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
Walter Roberson
Walter Roberson 2017년 3월 17일
Is that K0 the BesselK function?
Ali Akber
Ali Akber 2017년 3월 17일
Yes, it is modified Bessel function of the second kind

댓글을 달려면 로그인하십시오.

채택된 답변

Walter Roberson
Walter Roberson 2017년 3월 17일
편집: Walter Roberson 2017년 3월 17일
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
Ali Akber
Ali Akber 2017년 3월 18일
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 2017년 3월 18일
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;

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Special Functions에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by