MathGroup Archive 2001

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

Search the Archive

Slow mathematica program help

  • To: mathgroup at smc.vnet.net
  • Subject: [mg31023] Slow mathematica program help
  • From: Ben Ridenhour <bridenho at bio.indiana.edu>
  • Date: Wed, 3 Oct 2001 02:49:10 -0400 (EDT)
  • Organization: Indiana University
  • Sender: owner-wri-mathgroup at wolfram.com

Hi,
I'm running the simulation that I have below, but it takes an extremely 
long time to do only 100 loops.  First of all, I notice with each 
progressive loop the time Mathematica takes to process the loop gets 
exceedingly longer.  How can I cure this?  Also, I tried doing NIntegrate 
with the default method (MultiDimensional), but this seemed to produce 
erroneous results.  I therefore switched to Method->DoubleExponential, 
which seems to produce the expected results but is much slower.  Is there 
anything to do about this?  Any help speeding this up would be greatly 
appreciated-- I've tried compiling functions etc... and nothing has seemed 
to help, but perhaps I am doing it in the wrong way.
Ben Ridenhour

<<Statistics`DataManipulation`
data={};
vardata={};
Meanx=0;
Meany=1;
Varx=5;
Vary=5;
For[gen=0,gen<100,gen++,
    Gaussx=(2 Pi Varx)^(-0.5) Exp[-(x-Meanx)^2/(2 Varx)];
    Gaussy=(2 Pi Vary)^(-0.5) Exp[-(y-Meany)^2/(2 Vary)];
    Wx=1/(1+Exp[.2(y-x)]);
    Wy=1/(1+Exp[-.2(y-x)]);
    Wbarx=NIntegrate[Gaussx Gaussy Wx,
        {x,-Infinity,Infinity},
        {y,-Infinity,Infinity},
        Method->DoubleExponential];
    Wbary=NIntegrate[Gaussx Gaussy Wy,
        {x,-Infinity,Infinity},
        {y,-Infinity,Infinity},
        Method->DoubleExponential];
    data=Append[data,{Meanx,Meany}];
    vardata=Append[vardata,{Varx,Vary}];
    Meanx=1/Wbarx NIntegrate[x Gaussx Gaussy Wx,
        {x,-Infinity,Infinity},
        {y,-Infinity,Infinity},
        Method->DoubleExponential];
    Meany=1/Wbary NIntegrate[y Gaussx Gaussy Wy,
        {x,-Infinity,Infinity},
        {y,-Infinity,Infinity},
        Method->DoubleExponential];
    Varx=1/Wbarx NIntegrate[(x-Meanx)^2 Gaussx Gaussy Wx,
        {x,-Infinity,Infinity},
        {y,-Infinity,Infinity},
        Method->DoubleExponential];
    Vary=1/Wbary NIntegrate[(y-Meany)^2 Gaussx Gaussy Wy,
        {x,-Infinity,Infinity},
        {y,-Infinity,Infinity},
        Method->DoubleExponential];
];
data=Append[data,{Meanx,Meany}];
vardata=Append[vardata,{Varx,Vary}];
data >> 100genmeandata;
vardata >> 100genvardata;



  • Prev by Date: Re: Urgent but simple problem III
  • Next by Date: Labeled TreePlot
  • Previous by thread: Specifying significant figures in FindMinimum
  • Next by thread: Labeled TreePlot