フィルターのクリア

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 Center および File ExchangeSpecial Functions についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by