Equation Evaluation Problem in Mathematica


by S_David
Tags: equation, evaluation, mathematica
S_David
S_David is offline
#1
Jul14-09, 04:00 PM
P: 590
Hello,

I have the following line in Mathematica:

Print[Pout = (2^-Q*E^(A/2))/SNR \!\(
\*UnderoverscriptBox[\(\[Sum]\), \(q = 0\), \(Q\)]Binomial[Q, q] \(
\*UnderoverscriptBox[\(\[Sum]\), \(n = 0\), \(Ne + q\)]
FractionBox[
SuperscriptBox[\((\(-1\))\), \(n\)], \(a[n]\)] Re[
\*FractionBox[\(Meq[\(-
\*FractionBox[\(A + \((2*Pi*I*n)\)\), \(2*SNR\)]\)]\), 
FractionBox[\(A + \((2*Pi*I*n)\)\), \(2*SNR\)]]]\)\)]
But the problem is that for different values of SNR, the result will be the same all the time. Why is that happening? A, Q, and Ne are all constants.

Thanks in advance
Phys.Org News Partner Science news on Phys.org
Going nuts? Turkey looks to pistachios to heat new eco-city
Space-tested fluid flow concept advances infectious disease diagnoses
SpaceX launches supplies to space station (Update)
Hepth
Hepth is offline
#2
Jul14-09, 11:16 PM
PF Gold
Hepth's Avatar
P: 444
What are some examples of what A Q and Ne are so i can try it?
and what is meq?
S_David
S_David is offline
#3
Jul14-09, 11:22 PM
P: 590
Quote Quote by Hepth View Post
What are some examples of what A Q and Ne are so i can try it?
and what is meq?
Try these expressions:
A=23
Q=15
Ne=21
Meq[s_]:=1/(1-s)
Regards

Hepth
Hepth is offline
#4
Jul15-09, 12:07 AM
PF Gold
Hepth's Avatar
P: 444

Equation Evaluation Problem in Mathematica


and also, the a[n] function or array?

but before that make sure youre clearing any variables youre reusing.
restarting the kernel does that.
S_David
S_David is offline
#5
Jul15-09, 12:14 AM
P: 590
Quote Quote by Hepth View Post
and also, the a[n] function or array?

but before that make sure youre clearing any variables youre reusing.
restarting the kernel does that.
Assume
a[n]=1
How clear all variables? I have many of them.

Regards
S_David
S_David is offline
#6
Jul15-09, 10:49 AM
P: 590
I have the same problem again in the following code:

gA = 10;
M = 1;
Ne = 1;
If[M >= 1, m = M, m = 0];
For[SNRdB = 0, SNRdB <= 10, SNRdB++,
 SNR = 10^(SNRdB/10);
 Print[F1 = \!\(
\*UnderoverscriptBox[\(\[Sum]\), \(r = m\), \(M\)]\(
\*UnderoverscriptBox[\(\[Sum]\), \(i = 0\), \(M - r\)]\(
\*UnderoverscriptBox[\(\[Sum]\), \(j = 0\), \(r + i\)]\(
\*UnderoverscriptBox[\(\[Sum]\), \(k = 0\), \(j*\((Ne - 1)\)\)]
\*SuperscriptBox[\((\(-1\))\), \(i + j\)]*Binomial[M, r]*
        Binomial[M - r, i]*Binomial[r + i, j]*
\*SuperscriptBox[\(E\), 
FractionBox[\(\(-j\)*SNR\), \(gA\)]]*
\*SuperscriptBox[\((
\*FractionBox[\(SNR\), \(g\)])\), \(k\)]\)\)\)\)]]
For[SNRdB = 0, SNRdB <= 10, SNRdB++,
 SNR = 10^(SNRdB/10);
 Print[F2 = 1 - \!\(
\*UnderoverscriptBox[\(\[Sum]\), \(r1 = m\), \(M - 1\)]\(
\*UnderoverscriptBox[\(\[Sum]\), \(i1 = 1\), \(M - r1\)]\(
\*UnderoverscriptBox[\(\[Sum]\), \(j1 = 1\), \(r1 + i1\)]\(
\*UnderoverscriptBox[\(\[Sum]\), \(k1 = 0\), \(j1*\((Ne - 1)\)\)]
\*SuperscriptBox[\((\(-1\))\), \(i1 + j1\)]*Binomial[M, r1]*
         Binomial[M - r1, i1]*Binomial[r1 + i1, j1]*
\*SuperscriptBox[\(E\), 
FractionBox[\(\(-j1\)*SNR\), \(gA\)]]*
\*SuperscriptBox[\((
\*FractionBox[\(SNR\), \(g\)])\), \(k1\)]\)\)\)\)]]

1-1/\[ExponentialE]^(1/10)

1-\[ExponentialE]^-1/10^(9/10)

1-\[ExponentialE]^-1/10^(4/5)

1-\[ExponentialE]^-1/10^(7/10)

1-\[ExponentialE]^-1/10^(3/5)

1-\[ExponentialE]^-1/Sqrt[10]

1-\[ExponentialE]^-1/10^(2/5)

1-\[ExponentialE]^-1/10^(3/10)

1-\[ExponentialE]^-1/10^(1/5)

1-\[ExponentialE]^-1/10^(1/10)

1-1/\[ExponentialE]

1

1

1

1

1

1

1

1

1

1

1
Why is the second part constant, even though it is a dependent on SNR?

Regards
Hepth
Hepth is offline
#7
Jul15-09, 11:21 AM
PF Gold
Hepth's Avatar
P: 444
Because of your sums and their indices. To fix this, add:

If[M > 1, m = M, m = 0];

before the second For loop. It changes the greater than equal to to just a greater than. That way the second sum in the second for loop doesn't go from 1 to 0 (1 to M-r1 == M-m==0)
Hepth
Hepth is offline
#8
Jul15-09, 11:34 AM
PF Gold
Hepth's Avatar
P: 444
As for your first question, I DO get something different each time I change SNR.
S_David
S_David is offline
#9
Jul15-09, 11:42 AM
P: 590
Quote Quote by Hepth View Post
As for your first question, I DO get something different each time I change SNR.
Really? How is that? Try to put the SNR in a For[] loop, and tell me what will happen. Because I am using a For[] loop actually.

Regarding your previous post, I have doubts that I have something wrong in the mathematical equations. So, I will double check them and see what happen then.

Thank you
Hepth
Hepth is offline
#10
Jul15-09, 04:23 PM
PF Gold
Hepth's Avatar
P: 444
FOR:
A = 23;
Q = 15;
Ne = 21;
Meq[s_] := 1/(1 - s)
a[n_] = 1;
For[SNRdB = 0, SNRdB <= 10, SNRdB++,
  SNR = 10^(SNRdB/10);
Print[
   Pout =
          Refine[(1.0) (2^-Q*E^(A/2))/SNR
[tex]
\left.\left.\left.\sum _{q=0}^Q \text{Binomial}[Q,q]\sum _{n=0}^{\text{Ne}+q} \frac{(-1)^n}{a[n]}\text{Re}\left[\frac{\text{Meq}\left[-\frac{A+(2*\text{Pi}*I*n)}{2*\text{SNR}}\right]}{\frac{A+(2*\text{Pi}*I*n)}{2*\text{SNR}}}\right]\right]\right]\right]
[/tex]

The changes I made were adding the Refine to simplify the complex stuff, and multiplying by 1.0 to give me a real value.
I also added the SNR changing in the for loop. Looks like it changes when SNR does. Or did I do something wrong?

EDIT: oops, heres my output:
343.991

424.207

520.658

635.431

770.336

926.63

1104.7

1303.75

1521.56

1754.43

1997.27
Hepth
Hepth is offline
#11
Jul15-09, 04:28 PM
PF Gold
Hepth's Avatar
P: 444
Quote Quote by S_David View Post
Regarding your previous post, I have doubts that I have something wrong in the mathematical equations. So, I will double check them and see what happen then.

Thank you
What I mean is that for your given values, you have a sum over
[tex]
\sum _{\text{r1}=m}^{M-1} \sum _{\text{i1}=1}^{M-\text{r1}} \sum _{\text{j1}=1}^{\text{r1}+\text{i1}} \sum _{\text{k1}=0}^{\text{j1}*(\text{Ne}-1)}
[/tex]
but you have defined :
If[M >= 1, m = M, m = 0];
and M IS 1, so m=M=1;
Then in your sum
[tex]
\sum _{\text{r1}=m}^{M-1} \sum _{\text{i1}=1}^{M-\text{r1}}
[/tex]
you have:
r1 from {m to M-1} which is r1 from {1 to (1-1)} or {1 to 0}
then you have i1 from {1 to M-r1} which is {1 to (1-1)} or {1 to 0}

So it doesnt sum anything.
see :
[tex]
M=1;m=1;\sum _{\text{r1}=m}^{M-1} \sum _{\text{i1}=1}^{M-\text{r1}} 1==0
[/tex]
S_David
S_David is offline
#12
Jul16-09, 02:42 AM
P: 590
Yes, now the fake code is working. I said fake because I gave you fake parameters, so the values you got are not the expected one, because there are not in the range between 0 and 1 as it must be by definition. When I did a slight change toward the real parameters I got the expected results as following:

A = 23;
Q = 15;
Ne = 21;
Meq[s_] := 1/(1 - 0.5 s)^4 ;
a[n_] = If[n == 0, 2, 1];
For[SNRdB = 0, SNRdB <= 10, SNRdB++,
 SNR = 10^(SNRdB/10);
 Print[Pout = Refine[(1.0) (2^-Q*E^(A/2))/SNR \!\(
\*UnderoverscriptBox[\(\[Sum]\), \(q = 0\), \(Q\)]Binomial[Q, q] \(
\*UnderoverscriptBox[\(\[Sum]\), \(n = 0\), \(Ne + q\)]
FractionBox[
SuperscriptBox[\((\(-1\))\), \(n\)], \(a[n]\)] Re[
\*FractionBox[\(Meq[\(-
\*FractionBox[\(A + \((2*Pi*I*n)\)\), \(2*SNR\)]\)]\), 
FractionBox[\(A + \((2*Pi*I*n)\)\), \(2*SNR\)]]]\)\)]]]

0.142877

0.246246

0.390748

0.564677

0.738295

0.875494

0.956523

0.989842

0.998584

0.999898

0.999997
But when I turn my attention to my real, relatively long code, I faced with the same problem again, although I used the same procedure as you described. I don't know why.

Best Regards


Register to reply

Related Discussions
Write this Equation using Mathematica Math & Science Software 9
Maple 12 problem: long evaluation General Math 0
Evaluation of Strike and the 3 point problem.... Biology, Chemistry & Other Homework 1
Differential Equation and Mathematica Math & Science Software 4
Mathematica Evaluation Time Math & Science Software 4