Message Boards Message Boards

0
|
5633 Views
|
4 Replies
|
6 Total Likes
View groups...
Share
Share this post:

How to determine (m) in term of (n) of Nakagami function

Posted 11 years ago
(2*(m)^m)/Gamma[m]*(1/2)^((2 m - 1)/n)*E^(-m (1/2)^(2/n)) = 0.778

m>0, 
n: Natural Number {1,2,3,4,....}

How to determine (m) in term of (n) of Nakagami function as mentioned above..However, I have tried to use Reduce but unfortuantly I did not get result!!

Thanks,
Yahia
POSTED BY: John G
4 Replies
Posted 11 years ago
You are right and have got the point!!. Thanks 
POSTED BY: John G
@Yahia, 

You may want to simplify the equation first. Usually wrapping a Log function is a good idea here on the both sides of this equation. However, Mathematica will not convert Log [a b]  to Log + Log [ b] since the latter contains more leaf count. We can use a repeated replace function to expand the logrithm function:
In[6]:= Log[(2*(m)^m)/Gamma[m]*(1/2)^((2 m - 1)/n)*E^(-m (1/2)^(2/n))] //.
{Log[x_*y_] :> Log[x] + Log[y], Log[x_/y_] :> Log[x] - Log[y], Log[x_^y_] :> y*Log[x]}

Out[6]= -2^(-2/n) m + (1 - (-1 + 2 m)/n) Log[2] + m Log[m] - Log[Gamma[m]]
Then you can numerically solve the Out[6] with a given "n":
In[19]:= n = 1; FindRoot[-2^(-2/n) m + (1 - (-1 + 2 m)/n) Log[2] + m Log[m] - Log[Gamma[m]] == Log[0.778], {m, 1}]

Out[20]= {m -> 1.01603}
If you want to check the number of the real roots, you may plot this function. For some of values of "n" there are actually two real roots, which I found graphically. Finally, to test the behavior of the roots of this equation, you cannot find a better solution without using Manipulate function:
 Manipulate[
  sol = FindRoot[-2^(-2/n) m + (1 - (-1 + 2 m)/n) Log[2] + m Log[m] -
      Log[Gamma[m]] == Log[0.778], {m, 1}];
  sol2 = FindRoot[-2^(-2/n) m + (1 - (-1 + 2 m)/n) Log[2] + m Log[m] -
      Log[Gamma[m]] == Log[0.778], {m, 5}];
  Plot[-2^(-2/n) m + (1 - (-1 + 2 m)/n) Log[2] + m Log[m] -
    Log[Gamma[m]] - Log[0.778], {m, 0.5, 5},
   PlotRange -> {{0, 5}, {-0.5, 0.5}},
   Epilog -> {PointSize[0.02], Point[{m, 0} /. sol[[1]]],
    Point[{m, 0} /. sol2[[1]]]}]
, {n, 1.2, 1.72}]

 

POSTED BY: Shenghui Yang
Posted 11 years ago
Yes Mr. Yang, you are right but I have tried to approximate to the relationship between m and n by a simple equation e.g.  m=nX +Y, according to the following results:

m                n 
0.78           2
0.84           3
0.88           4
0.91           5
0.93           6
0.95           7
0.97           8
0.98           9
0.99          10

Is it possible to predict (X and Y)?...Thanks alot for your cooperation

Regards,
Yahia
POSTED BY: John G
@Yahia, 

I do not see a simple relation between m and n. 

Maybe you can let 2^(-2/n) be 1 and (-1 + 2 m)/n be zero for large n:
In[14]:= Limit[-2^(-2/n) m + (1 - (-1 + 2 m)/n) Log[2] + m Log[m] - Log[Gamma[m]], n -> Infinity]
Out[14]= -m + Log[2] + m Log[m] - Log[Gamma[m]]

There seems to exist a limit for m, which is  
In[15]:= FindRoot[-m + Log[2] + m Log[m] - Log[Gamma[m]] == Log[0.778], {m, 1}]
Out[15]= {m -> 1.10214}
Graphically you can see 
In[16]:= Table[{
                  n, 
                  m /. FindRoot[-2^(-2/n) m + (1 - (-1 + 2 m)/n) Log[2] + m Log[m] - Log[Gamma[m]] == Log[0.778], {m, 1}][[1]]
                },
                {n, 1, 80}];
In[17]:= ListPlot[%, PlotStyle -> {PointSize[0.02]}]

I am assuming that the X and Y you are talking about is simply from the first order Talyer expansion of the fitted model. This is not a prediction, but simply find the derivative of the above curve.  
POSTED BY: Shenghui Yang
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract