# Why MMA is not able to solve this problem? [closed]

I am running these following code in Mathematica. But, MMA does not output anything. It is giving me an message as "The integrand .... has evaluated to non-numerical values for all sampling points in the \ region with boundaries {{[Infinity],1.}}".

$$\mathcal{L}_{I_{\text{M}}}[s]=\exp\left(-\pi p_b\lambda_{\text{M}}\mathbb{E}_H\left(\int_r^\infty\left(1-\exp\left(-sP_{\text{M}}Hr^{-1/\delta}\right)\right){\rm{d}}r\right)\right)$$

Note that when I put $K=0$, it works fine and gives me the expected result. But, for other values of $K$, It gives me the error.

• Your LI which is equal to your M and then your B is not a number.... When your code doesn't run you should try to track back and find where the error is occuring. – Quantum_Oli May 12 '16 at 9:00
• @Quantum_Oli, Yes, it is true. $B$ is a function of $r$. Note that this MMA code works fine for $K=0$. – Srestha Narayanan May 12 '16 at 9:02
• In this case Expectation[int, h \[Distributed] ProbabilityDistribution[f[h], {h, 0, Infinity}]] is not returning a numerical value. (Even if it has a numerical r). – Quantum_Oli May 12 '16 at 9:03
• @Quantum_Oli, is there anything that I can do? – Srestha Narayanan May 12 '16 at 9:31
• Can you break your problem down and achieve intermediate steps? For example, what is the desired behaviour of LI? Is it a variable or a function? You'll likely have to attack the implementation of LI numerically with either NExpectation or just use NIntegrate. – Quantum_Oli May 12 '16 at 11:14

The problem is that Expectation does not evaluate to a numeric result in all cases. It's also quite slow. You could replace it by NExpectation in the final integrand. I threw in an extra N for just to be sure. It takes so long to evaluate, I didn't have time to experiment.

AverageProbSuccess[B_, λ_] := Block[{n = 0, i, Expectation},
i[r0_?NumericQ] :=
Block[{r = r0},
B*2*Gamma[λ*π + 1]/Gamma[λ*π]*
r*(1 - r^2)^(-1 + λ*π) /.
Expectation -> NExpectation // N];
NIntegrate[i[r], {r, 0, Infinity},
PrecisionGoal -> 4, AccuracyGoal -> 4, MaxRecursion -> 1,
EvaluationMonitor :> If[Mod[++n, 10] == 0, Print[n]]]
] // AbsoluteTiming

Print["Starting AverageProbSuccess"]

AverageProbSuccess[B, λ]


Not too surprising maybe, that it doesn't converge, since the following is so big:

Block[{r = 10.^12, Expectation = NExpectation},
B*2*Gamma[λ*π + 1]/Gamma[λ*π]*
r*(1 - r^2)^(-1 + λ*π)
]
(*  5.5*10^9232413018186 + 1.42*10^9232413018186 I  *)

Block[{r = 10.^15, Expectation = NExpectation},
B*2*Gamma[λ*π + 1]/Gamma[λ*π]*
r*(1 - r^2)^(-1 + λ*π)
]


General::ovfl: Overflow occurred in computation. >>

(*  Overflow[]  *)