Re: Another Out of Memory Problem
- To: mathgroup at smc.vnet.net
- Subject: [mg91323] Re: Another Out of Memory Problem
- From: "Kevin J. McCann" <Kevin.McCann at umbc.edu>
- Date: Fri, 15 Aug 2008 06:54:46 -0400 (EDT)
- References: <g8137j$19$1@smc.vnet.net> <48A42D4D.7060504@gmail.com> <48A42E5D.2060407@umbc.edu> <22d35c5a0808140905r7b7483bdi89c0485a0f0f95cd@mail.gmail.com>
Jean-Marc, Thanks for the detailed analysis. I am not sure what I will do about it. I guess I can rationalize the coefficients. Kevin Jean-Marc Gulliet wrote: > On Thu, Aug 14, 2008 at 3:08 PM, Kevin J. McCann wrote: > > >> Thanks, Jean-Marc. I still find it strange that it runs out of memory and so >> fast. The error message comes up within less than 1 second. >> > > [... Cross-posted on MathGroup ...] > > Kevin, > > I have just tried to do the integration with approximate coefficient > on my system (64-bit Intel Core 2 Duo 4 GB RAM Mac OS X Leopard 1.5.4 > Mathematica 6.0.3). > > . On this 64-bit platform, the kernel does not crash: the expression > returns unevaluated after about four minutes elapsed-time (or about > two minutes cpu-time) > > . However, the computation takes up to about 2.2 GB of memory, which > is fine on a 64-bit system but is too much on a standard 32-bit > platform > > . Also, I have observed thanks to the command Top (UNIX/Mac OS X shell > command) that the memory consumption varies/oscillates quickly from > nearly nothing (few dozens of MB) to one or two GB in a fraction of > second > > . OTOH, with exact coeffiecients, the integration consumes about 200 > MB of memory (steady increase from the beginning to the end, no wild > variations, as far as I can tell), though the process is seven time > slower > > So it seems that the algorithm goes wild when used with approximate > numbers, for reasons I am clueless about. > > (* Timing and memory consumption with *floating-point* coefficients *) > > In[1]:= Integrate[Cos[2.5*x]*Exp[I*z*Cos[x]], {x, -Pi, Pi}] // Timing > > Out[1]= > I z Cos[x] > {112.795, Integrate[E Cos[2.5 x], {x, -Pi, Pi}]} > > In[2]:= MaxMemoryUsed[]/2.^30 GB > > Out[2]= 2.19748 GB > > In[3]:= $Version > > Out[3]= "6.0 for Mac OS X x86 (64-bit) (May 21, 2008)" > > (* Timing and memory consumption with *exact* coefficients *) > > In[1]:= Integrate[Cos[5/2*x]*Exp[I*z*Cos[x]], {x, -Pi, Pi}] // Timing > > Out[1]= > I z Cos[x] 5 x > {705.092, Integrate[E Cos[---], {x, -Pi, Pi}]} > 2 > > In[2]:= MaxMemoryUsed[]/2.^30 GB > > Out[2]= 0.191426 GB > > In[3]:= $Version > > Out[3]= "6.0 for Mac OS X x86 (64-bit) (May 21, 2008)" > > Best regards, > -- Jean-Marc > > >> Kevin >> >> Jean-Marc Gulliet wrote: >> >>> Kevin J. McCann wrote: >>> >>> >>>> I can do the following: >>>> >>>> Integrate[Cos[2*x]* >>>> Exp[I*z*Cos[x]], >>>> {x, -Pi, Pi}] >>>> >>>> >>>> which produces a Bessel function answer; however if I change the >>>> argument in the cosine to 2.5 as in: >>>> >>>> Integrate[Cos[2.5*x]* >>>> Exp[I*z*Cos[x]], >>>> {x, -Pi, Pi}] >>>> >>>> I almost immediately get this: >>>> >>>> No more memory available. >>>> Mathematica kernel has shut down. >>>> Try quitting other applications and then retry. >>>> >>>> Any ideas why? I am running XP with 2Gb of memory. >>>> >>> When using symbolic function (i.e. Integrate rather than NIntegrate, Solve >>> rather than NSolve, etc.) it is always a good idea to feed the function with >>> *exact* (infinite precision) numbers, thus 5/2 rather 2.5 in your case. >>> (Mathematica does not find any closed form for your integrand. Note that it >>> take a while to compute but memory consumption is under control.) >>> >>> In[1]:= Integrate[Cos[5/2*x]*Exp[I*z*Cos[x]], {x, -Pi, Pi}] >>> >>> Out[1]= >>> >>> I z Cos[x] 5 x >>> Integrate[E Cos[---], {x, -Pi, Pi}] >>> 2 >>> > > > -- Kevin J. McCann Research Associate Professor JCET/Physics University of Maryland, Baltimore County (UMBC) 1000 Hilltop Circle Baltimore, MD 21250