[Date Index]
[Thread Index]
[Author Index]
Speeding up simple Mathematica expressions?
*To*: mathgroup at smc.vnet.net
*Subject*: [mg63232] Speeding up simple Mathematica expressions?
*From*: AES <siegman at stanford.edu>
*Date*: Tue, 20 Dec 2005 04:19:29 -0500 (EST)
*Organization*: Stanford University
*Sender*: owner-wri-mathgroup at wolfram.com
I'd appreciate some practical advice on speeding up some simple function
evaluations.
I'm evaluating a series of functions of which a typical example is
f[a_, x_] := Sum[
Exp[-(Pi a)^2 n^2 -
((x - n Sqrt[1 - (Pi^2 a^4)])/a)^2],
{n, -Infinity, Infinity}];
(The function is essentially a set of narrow gaussian peaks located at x
? n Sqrt[1 - (Pi a^2)^2] ? n , with the peak amplitudes dropping off
rapidly with increasing x.)
Despite being a fairly simple function, this evaluates very slowly on my
iBook G4 -- takes a long time to make a plot of say f[0.1, x] for 0 <
x < 3. What can or should I do to speed this up?
a) If this were back in early FORTRAN days, I'd surely pull the square
root outside the sum -- do something like
f[a_, x_] := Module[{b},
b=Sqrt[1 - (Pi a^2)^2];
Sum[Exp[-(Pi a n)^2 - ((x - n b)/a)^2];
Is Mathematica smart enough to do that automatically, without the
Module[] coding? Is the added overhead of the Module[] small enough
that it's worthwhile for me to do it? Is there some other way to
"compile" the function for a given value of a?
b) Since I mostly want just plots of the first two or three peaks, and
1% accuracy should be fine, maybe I can cut the accuracy options in
Plot[ ]. If so, how best to do this? (I've not played with those
somewhat confusing options before.)
c) Since the individual peaks have very little overlap for a < 0.2,
maybe I can truncate the series to a small range of n?
Obviously I can experiment with these and other approaches, but it's
tedious. If any gurus have suggestions on a good quick approach, I'll
be glad to hear them.
Prev by Date:
**Re: Re: Cross results?**
Next by Date:
**Re: Packages with Cyclic Dependencies**
Previous by thread:
**Visualization site updates - string theory and photons**
Next by thread:
**Re: Speeding up simple Mathematica expressions?**
| |