Math: NExpectation vs Expectation - inconsistent results

The following code returns different values ​​for NExpectationand Expectation. If I try the same for NormalDistribution[], I get convergence for NExpectation(but the end result is the same 0for all of them). What causes the problem?

U[x_] := If[x >= 0, Sqrt[x], -Sqrt[-x]]

N[Expectation[U[x], x \[Distributed] NormalDistribution[1, 1]]]

NExpectation[U[x], x \[Distributed] NormalDistribution[1, 1]]

Conclusion:

    -0.104154
     0.796449
+5
source share
2 answers

I think this may be a mistake Integrate.

Define your

U[x_] := If[x >= 0, Sqrt[x], -Sqrt[-x]]

and equivalent

V[x_] := Piecewise[{{Sqrt[x], x >= 0}, {-Sqrt[-x], x < 0}}]

which are equivalent in actions

FullSimplify[U[x] - V[x], x \[Element] Reals] (* Returns 0 *)

For Uand the Vanalytical team Expectationuses the parameter Method "Integrate", this can be seen by running

Table[Expectation[U[x], x \[Distributed] NormalDistribution[1, 1], 
  Method -> m], {m, {"Integrate", "Moment", "Sum", "Quantile"}}]

So what he really does is an integral

Integrate[U[x] PDF[NormalDistribution[1, 1], x], {x, -Infinity, Infinity}]

which returns

(Sqrt[Pi] (BesselI[-(1/4), 1/4] - 3 BesselI[1/4, 1/4] + 
   BesselI[3/4, 1/4] - BesselI[5/4, 1/4]))/(4 Sqrt[2] E^(1/4))

Integral for V

Integrate[V[x] PDF[NormalDistribution[1, 1], x], {x, -Infinity, Infinity}]

, 1 + I. .

U V 0,796449:

NIntegrate[U[x] PDF[NormalDistribution[1, 1], x], {x, -Infinity, Infinity}]

, -, .


: , answerul answer , , u[x_?NumericQ] Expectation NExpectation .


2: ,

In[1]:= N@Integrate[E^(-(1/2) (-1 + x)^2) Sqrt[x] , {x, 0, Infinity}]
         NIntegrate[E^(-(1/2) (-1 + x)^2) Sqrt[x] , {x, 0, Infinity}]

Out[1]= 0. - 0.261075 I   
Out[2]= 2.25748

In[3]:= N@Integrate[Sqrt[-x] E^(-(1/2) (-1 + x)^2) , {x, -Infinity, 0}]
         NIntegrate[Sqrt[-x] E^(-(1/2) (-1 + x)^2) , {x, -Infinity, 0}]

Out[3]= 0.261075    
Out[4]= 0.261075

, . / .

, , Mathematica 8.0.3. 7 1F1, . , ( Wolfram | Alpha) .

+6

u, , :

u[x_?NumericQ] := If[x >= 0, Sqrt[x], -Sqrt[-x]] ;
Expectation[u[x], x \[Distributed] NormalDistribution[1, 1]] // N;
N[Expectation[u[x], x \[Distributed] NormalDistribution[1, 1]]] ;
NExpectation[u[x], x \[Distributed] NormalDistribution[1, 1]];
{% === %% === %%%, %}

  {True, 0.796449}

+2

All Articles