Message Boards Message Boards

0
|
11469 Views
|
2 Replies
|
0 Total Likes
View groups...
Share
Share this post:

Avoid "has evaluated to non-numerical values for all sampling points in"?

Posted 6 years ago

I have the following code which gives an error message "NIntegrate::inumr: The integrand (E^(-(([Pi] r^2)/1000000)-1.58489*10^-10 r^2.09) [Pi] r laplaceTBLAB[r] laplaceTBNAB[r] laplaceTBTB[r])/500000 has evaluated to non-numerical values for all sampling points in the region with boundaries {{0,10000}}."

parmtrTB[r_] := sinr/zetaTB*r^alfaTB;
funTBNAB[z_, 
   r_] := (1 - 
     1/(1 + parmtrTB[r]*zetaNAB*(z^2 + height^2)^(-alfaNAB/2)))*
   funNLoS[z];
      funTBLAB[z_, 
   r_] := (1 - (mparameter/(mparameter + 
          parmtrTB[r]*zetaLAB*(z^2 + height^2)^(-alfaLAB/2)))^
      mparameter)*funLoS[z];
      funTBTB[z_, r_] := 
  z*(1 - 1/(1 + parmtrTB[r]*zetaTB*z^(-alfaTB)));



distnceTBLAB = (zetaTB/zetaLAB)^(1/alfaTB)*height^(alfaLAB/alfaTB);
distnceTBNAB = (zetaTB/zetaNAB)^(1/alfaTB)*height^(alfaNAB/alfaTB);

NearstInterfcTBLAB[r_] := 
 Piecewise[{{height, 
    r <= distnceTBLAB}, {(zetaLAB/zetaTB)^(1/alfaLAB)*
     r^(alfaTB/alfaLAB), r > distnceTBLAB}}]; 
NearstInterfcTBNAB[r_] := 
 Piecewise[{{height, 
    r <= distnceTBNAB}, {(zetaNAB/zetaTB)^(1/alfaNAB)*
     r^(alfaTB/alfaNAB), r > distnceTBNAB}}];
NearstInterfcTBTB[r_] := r;

       lowerlimitTBNAB[r_] := Sqrt[NearstInterfcTBNAB[r]^2 - height^2];
lowerlimitTBLAB[r_] := Sqrt[NearstInterfcTBLAB[r]^2 - height^2];
       lowerlimitTBTB[r_] := NearstInterfcTBTB[r];


InteglaplaceTBNAB[r_?NumericQ] := 
  NIntegrate[
   funTBNAB[z, r], {z, lowerlimitTBNAB[r], lowerlimitTBLAB[Rmax]}];
InteglaplaceTBLAB[r_?NumericQ] := 
  NIntegrate[
   funTBLAB[z, r], {z, lowerlimitTBLAB[r], lowerlimitTBLAB[Rmax]}];
InteglaplaceTBTB[r_?NumericQ] := 
  NIntegrate[funTBTB[z, r], {z, lowerlimitTBTB[r], Rmax}];

laplaceTBNAB[r_] := Exp[-2*Pi*ABdensity*laplaceTBNAB[r]];
laplaceTBLAB[r_] := Exp[-2*Pi*ABdensity*laplaceTBLAB[r]];
laplaceTBTB[r_] := Exp[-2*Pi*TBdensity*laplaceTBTB[r]];
laplaceTB[r_] := laplaceTBNAB[r]*laplaceTBLAB[r]*laplaceTBTB[r];
xxTB1[r_] := Exp[-parmtrTB[r]*noisepow]*laplaceTB[r]*funPdfTB[r];

xxTB2 := NIntegrate[xxTB1[r], {r, 0, Rmax}];
POSTED BY: mohamed alzenad
2 Replies

I see many errors here. When using Mathematica, you should test each function before using it as a building block. For example, try typing laplaceTBNAB[1].

You've done an excellent job of factoring the problem, so this approach to debugging should be very effective.

POSTED BY: John Doty

Parameters are not defined. Can you publish the code with all the data for the parameters?

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