MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Mathematica results different on different computers !

  • To: mathgroup at smc.vnet.net
  • Subject: [mg125534] Mathematica results different on different computers !
  • From: Nabeel Butt <nabeel.butt at gmail.com>
  • Date: Sun, 18 Mar 2012 02:40:03 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

Hi Guys ...
     I run a piece of code on two different computers (different hardwares)
and I get different results.I think its something to do with overflow or
different precision on systems ? Personally I think my laptop with an
inferior hardware is giving me correct results. The code does involve some
simulation but running the simulation gives the same result on one
particular computer but different for different computers ! You can run and
tell me what answers you are getting ....Thanks in advance....and my code
is below :
\[Lambda] = 0.05;
\[Mu] = 0.05;
T = 1;
nn = 4;
\[CapitalDelta]T = T/nn;
m1 = 0.08;
\[Sigma]1 = 0.2;
m2 = 0.14;
\[Sigma]2 = 0.8;
\[Rho] = 0.1;
mean1 = (m1 - (\[Sigma]1^2)/2)*\[CapitalDelta]T;
var1 = (\[Sigma]1^2)*\[CapitalDelta]T;
rmean1 = E^(mean1 + 1/2 var1);
rvar1 = ((E^var1 - 1) E^(2*mean1 + var1));
mean2 = (m2 - (\[Sigma]2^2)/2)*\[CapitalDelta]T;
var2 = (\[Sigma]2^2)*\[CapitalDelta]T;
rmean2 = E^(mean2 + 1/2 var2);
rvar2 = ((E^var2 - 1) E^(2*mean2 + var2));
b1 = {rk1l = 0.001, rk1u = (rmean1 + 5*Sqrt[rvar1])};
b2 = {rk2l = 0.001, rk2u = (rmean2 + 5*Sqrt[rvar2])};

dl = (rk1u - rk1l)/Num;
dk = (rk2u - rk2l)/Num;
\[ScriptCapitalD] =
  TransformedDistribution[
   Exp[ {u, v}], {u, v} \[Distributed]
    MultinormalDistribution[{(m1 - (\[Sigma]1^2)/
          2)*\[CapitalDelta]T, (m2 - (\[Sigma]2^2)/
          2)*\[CapitalDelta]T}, {{\[Sigma]1^2*\[CapitalDelta]T, \
\[Rho]*\[Sigma]1*\[Sigma]2*\[CapitalDelta]T}, {\[Rho]*\[Sigma]1*\
\[Sigma]2*\[CapitalDelta]T, \[Sigma]2^2*\[CapitalDelta]T}}]];
data = Parallelize[RandomVariate[\[ScriptCapitalD], 10^5]];
ParallelEvaluate[data];


bndry3[Num_, data_] :=
  Module[{UU, M, \[Lambda], \[Mu], \[CapitalDelta]T, s, m, \[Sigma],
    mean, var, rmean, rvar, rkl, rku, dr, ddist, rvals, pvals, amin,
    amax, da, tlist, JN, some, blist, tlist1, tlist2, sol1, sol2,
    templist, l, points, pu, pl, dp, a, b, c, zi, Nm, Nz, Na, zW,
    m1, \[Sigma]1, m2, \[Sigma]2, \[Rho], mean1, var1, rmean1, rvar1,
    mean2, var2, rmean2, rvar2, b1, b2, dl, dk, xvals, yvals, rk1l,
    rk1u, rk2l, rk2u, \[ScriptCapitalD]1, dist, \[ScriptCapitalD],
    prob, JJ},

   Off[InterpolatingFunction::dmval];
   sll[ll_, elem_] := ll[[Ordering[ll[[All, elem]]]]];
   M = 0.5;
   \[Lambda] = 0.05;
   \[Mu] = 0.05;
   \[CapitalDelta]T = T/nn;
   s = E^(0.05*\[CapitalDelta]T);
   m1 = 0.08;
   \[Sigma]1 = 0.2;
   m2 = 0.14;
   \[Sigma]2 = 0.8;
   \[Rho] = 0.1;
   UU = 7;
   mean1 = (m1 - (\[Sigma]1^2)/2)*\[CapitalDelta]T;
   var1 = (\[Sigma]1^2)*\[CapitalDelta]T;
   rmean1 = E^(mean1 + 1/2 var1);
   rvar1 = ((E^var1 - 1) E^(2*mean1 + var1));
   mean2 = (m2 - (\[Sigma]2^2)/2)*\[CapitalDelta]T;
   var2 = (\[Sigma]2^2)*\[CapitalDelta]T;
   rmean2 = E^(mean2 + 1/2 var2);
   rvar2 = ((E^var2 - 1) E^(2*mean2 + var2));
   b1 = {rk1l = 0.001, rk1u = (rmean1 + 5*Sqrt[rvar1])};
   b2 = {rk2l = 0.001, rk2u = (rmean2 + 5*Sqrt[rvar2])};

   dl = (rk1u - rk1l)/Num;
   dk = (rk2u - rk2l)/Num;
   \[ScriptCapitalD] =
    TransformedDistribution[
     Exp[ {u, v}], {u, v} \[Distributed]
      MultinormalDistribution[{(m1 - (\[Sigma]1^2)/
            2)*\[CapitalDelta]T, (m2 - (\[Sigma]2^2)/
            2)*\[CapitalDelta]T}, {{\[Sigma]1^2*\[CapitalDelta]T, \
\[Rho]*\[Sigma]1*\[Sigma]2*\[CapitalDelta]T}, {\[Rho]*\[Sigma]1*\
\[Sigma]2*\[CapitalDelta]T, \[Sigma]2^2*\[CapitalDelta]T}}]];

   \[ScriptCapitalD]1 = SmoothKernelDistribution[data];

   g[x_, y_] := Evaluate[CDF[\[ScriptCapitalD]1, {x, y}]];


   fx1[r_] := PDF[LogNormalDistribution[mean1, Sqrt[var1]], r];
   fx2[r_] := CDF[LogNormalDistribution[mean1, Sqrt[var1]], r];
   pu = 1;
   pl = 0;
   dp = (pu - pl)/Num;
   gx1[p_] := InverseCDF[LogNormalDistribution[mean1, Sqrt[var1]], p];
   xvals =
    Flatten[{rk1l, Table[gx1[i + dp], {i, pl, pu - 2*dp, dp}], rk1u}];

   fy1[r_] := PDF[LogNormalDistribution[mean2, Sqrt[var2]], r];
   fy2[r_] := CDF[LogNormalDistribution[mean2, Sqrt[var2]], r];
   pu = 1;
   pl = 0;
   dp = (pu - pl)/Num;
   gy1[p_] := InverseCDF[LogNormalDistribution[mean2, Sqrt[var2]], p];
   yvals =
    Flatten[{rk2l, Table[gy1[i + dp], {i, pl, pu - 2*dp, dp}], rk2u}];




   f[x_, y_] := Evaluate[PDF[\[ScriptCapitalD]1, {x, y}]];

   dist =
    Flatten[Table[{prob = (NIntegrate[

          f[x, y], {x, xvals[[i]], xvals[[i + 1]]}, {y, yvals[[j]],
           yvals[[j + 1]]}, AccuracyGoal -> 4]); {NIntegrate[
         x*(f[x, y])/prob
         , {x, xvals[[i]], xvals[[i + 1]]}, {y, yvals[[j]],
          yvals[[j + 1]]}, AccuracyGoal -> 4],
        NIntegrate[
         y*(f[x, y])/(prob), {x, xvals[[i]], xvals[[i + 1]]}, {y,
          yvals[[j]], yvals[[j + 1]]}, AccuracyGoal -> 4]},

       prob}, {i, 1, Num}, {j, 1, Num}], 1];


   amin = N[0.001];
   amax = N[0.999];
   da = 0.01;

   (*dist/.{{x_Real,y_Real},z_Real}->x+y+z*)
   tlist1 = Parallelize[ParallelEvaluate[
      Off[FindMinimum::reged]];
     ParallelEvaluate[Off[FindMaximum::lstol]]; Table[{a,
       {l =
         Max[templist = {(sol1 = Flatten[Last[NestList[{{#[[1, 1]]/2},

                    Reverse[
                    Last[sll[
                    Flatten[
                    Table[{{\[Xi]}, (Total[(dist /. {{r_Real, S_Real},
                     p_Real} -> (Log[(S + \[Xi] (r -
                    S) + \[Mu] (\[Xi] - a) S)]*p))])}, {\[Xi],
                    If[(#[[2, 2, 1]] - 2*#[[1, 1]]) >=
                    0, (#[[2, 2, 1]] - 2*#[[1, 1]]), 0],
                    If[(#[[2, 2, 1]] + 2*#[[1, 1]]) <=
                    a, (#[[2, 2, 1]] + 2*#[[1, 1]]), a], #[[1, 1]]}],
                    0], 2]]]} & ,
                   {{a/4}, {-100, {a/2}}}, UU]][[2]]])[[1]], (sol2 =
               Flatten[Last[NestList[{{#[[1, 1]]/2},

                    Reverse[
                    Last[sll[
                    Flatten[
                    Table[{{\[Xi]}, (Total[
                    dist /. {{r_Real, S_Real},
                    p_Real} -> (Log[(S + \[Xi] (r -
                    S) - \[Lambda] (\[Xi] - a) S)]*p)])}, {\[Xi],
                    If[(#[[2, 2, 1]] - 2*#[[1, 1]]) >=
                    a, (#[[2, 2, 1]] - 2*#[[1, 1]]), a],
                    If[(#[[2, 2, 1]] + 2*#[[1, 1]]) <= (
                    1 + a*\[Lambda])/(
                    1 + \[Lambda]), (#[[2, 2, 1]] + 2*#[[1, 1]]), (
                    1 + a*\[Lambda])/(1 + \[Lambda])], #[[1, 1]]}],
                    0], 2]]]} & ,
                   {{0.25*((1 + a*\[Lambda])/(1 + \[Lambda]) -
                    a)}, {-100, {0.5*(a + (1 + a*\[Lambda])/(
                    1 + \[Lambda]))}}}, UU]][[2]]])[[1]],
            Total[dist /. {{r_Real, S_Real}, p_Real} ->
               Log[(S + a (r - S))]*p]}],
        If[templist[[3]] == l, 3,
         Flatten[Position[templist, l]][[1]]],
        Piecewise[{{0, templist[[3]] == l}, {sol1[[2]],
           templist[[1]] == l}, {sol2[[2]],
           templist[[2]] == l}}]}}, {a, amin, amax, da}]];
   (*points=Select[tlist,#[[2,2]]==3&]/.{a_,{J_,
   I_,\[CapitalDelta]_}}->a
   Graphics[Point[points],Axes->True]*)
   (*points=Select[Flatten[templist/.{{x_,y_},{z_,w_}}->{{x,y},{w}},
   1],#[[2]][[1]]==3&]/.{{x_,y_},{w_}}->{x,y};*)
   (*points=Select[tlist,#[[2,2]]==3&]/.{x_,{z_,w_}}->x;
   points*)
   JN = Interpolation[tlist1 /. {x_, {z_, w_, y_}} -> {x, z}];
   (*PN=Interpolation[tlist/.{x_,{z_,w_,y_}}->{x,y}];*)
   (*Off[InterpolatingFunction::dmval];*)
   (*Plot[JN[x],{x,0,1}]*)
   some = NestList[(JJ = #[[2]]; {tlist = Parallelize[ParallelEvaluate[
           Off[FindMinimum::reged]];
          ParallelEvaluate[Off[FindMaximum::lstol]];
          ParallelEvaluate[Off[InterpolatingFunction::dmval]];
          Table[(*nlist=(#[[1]]/.{x_,{z_,w_,y_}}->y);*){a,
            {l =
              Max[templist = {(sol1 =
                    Flatten[Last[NestList[{{#[[1, 1]]/2},

                    Reverse[
                    Last[sll[
                    Flatten[
                    Table[{{\[Xi]}, (Total[
                    dist /. {{r_Real, S_Real},
                    p_Real} -> (((Log[(S + \[Xi] (r -
                    S) + \[Mu] (\[Xi] - a) S)] +
                    JJ[(\[Xi]*
                    r)/(S + \[Xi] (r - S) + \[Mu] (\[Xi] - a) S)])*
                    p))])}, {\[Xi],
                    If[(#[[2, 2, 1]] - 2*#[[1, 1]]) >=
                    0, (#[[2, 2, 1]] - 2*#[[1, 1]]), 0],
                    If[(#[[2, 2, 1]] + 2*#[[1, 1]]) <=
                    a, (#[[2, 2, 1]] + 2*#[[1, 1]]), a], #[[1, 1]]}],
                    0], 2]]]} & ,
                    {{a/4}, {-100, {a/2}}}, UU]][[2]]])[[1]], (sol2 =
                    Flatten[Last[NestList[{{#[[1, 1]]/2},

                    Reverse[
                    Last[sll[
                    Flatten[
                    Table[{{\[Xi]}, (Total[
                    dist /. {{r_Real, S_Real},
                    p_Real} -> ((Log[(S + \[Xi] (r -
                    S) - \[Lambda] (\[Xi] - a) S)] +
                    JJ[(\[Xi]*
                    r)/(S + \[Xi] (r - S) - \[Lambda] (\[Xi] -
                    a) S)])*p)])}, {\[Xi],
                    If[(#[[2, 2, 1]] - 2*#[[1, 1]]) >=
                    a, (#[[2, 2, 1]] - 2*#[[1, 1]]), a],
                    If[(#[[2, 2, 1]] + 2*#[[1, 1]]) <= (
                    1 + a*\[Lambda])/(
                    1 + \[Lambda]), (#[[2, 2, 1]] + 2*#[[1, 1]]), (
                    1 + a*\[Lambda])/(1 + \[Lambda])], #[[1, 1]]}],
                    0], 2]]]} & ,
                    {{0.25*((1 + a*\[Lambda])/(1 + \[Lambda]) -
                    a)}, {-100, {0.5*(a + (1 + a*\[Lambda])/(
                    1 + \[Lambda]))}}}, UU]][[2]]])[[1]],

                 Total[dist /. {{r_Real, S_Real},
                    p_Real} -> (Log[(S + a (r - S))] +
                    JJ[(a*r)/(a*r + (1 - a) S)])*p]}],
             If[templist[[3]] == l, 3,
              Flatten[Position[templist, l]][[1]]],
             Piecewise[{{0, templist[[3]] == l}, {sol1[[2]],
                templist[[1]] == l}, {sol2[[2]],
                templist[[2]] == l}}]}}, {a, amin, amax, da}]],
        Interpolation[
         tlist /. {x_, {z_, w_, y_}} -> {x, z}]}) &, {tlist1, JN},
     nn - 1]];
stuff = Table[{1/NN, bndry3[NN, data]}, {NN, 4, 7}];
listn[a_] := {#[[1]], #[[2]][[4, 2]][a]} & /@ stuff;
a = 0.5;
g1 = ListPlot[listn[a], PlotStyle -> {Red, PointSize[Large]}]
________________________________________________________________________________
<http://t2.gstatic.com/images?q=tbn:ANd9GcRd4WJa3qO12skxxSAppQ9HimoQsMP5o--uCIe7yxZahJqlkN4z>
"We have not succeeded in answering all our problems.The answers we have
found only serve to raise a whole set of new questions.In some ways we feel
that we are as confused as ever,but we believe we are confused on a higher
level and about more important things!! Haha"
"One day we  definitely get to see all the beauty present in this world
!!!"
"Life can only be understood going backwards but it must be lived going
forwards!"
________________________________________________________________________________
THIS MESSAGE IS ONLY INTENDED FOR THE USE OF THE INTENDED
RECIPIENT(S) AND MAY CONTAIN INFORMATION THAT IS PRIVILEGED,
PROPRIETARY AND/OR CONFIDENTIAL. If you are not the intended
recipient, you are hereby notified that any review, retransmission,
dissemination, distribution, copying, conversion to hard copy or
other use of this communication is strictly prohibited. If you are
not the intended recipient and have received this message in error,
please notify me by return e-mail and delete this message from your
system. Nabeel Butt Inc.





Nabeel Butt
UWO,London
Ontario, Canada


  • Prev by Date: Re: Export Data and Decimal Separator
  • Next by Date: Re: Creating List
  • Previous by thread: Re: html posts
  • Next by thread: Re: Mathematica results different on different computers !