[Date Index]
[Thread Index]
[Author Index]
Re: Can it be done - easily?
*To*: mathgroup at smc.vnet.net
*Subject*: [mg13236] Re: Can it be done - easily?
*From*: Daniel Lichtblau <danl>
*Date*: Fri, 17 Jul 1998 03:17:35 -0400
*Organization*: Wolfram Research, Inc.
*References*: <6od25q$hn9@smc.vnet.net>
*Sender*: owner-wri-mathgroup at wolfram.com
Barry Culhane wrote:
>
> Myself and two workmates are software developers. One guy wanted a
> formula to calculate a result for the following equation...
> Z = sum of X/Y where X is a fixed number, and Y ranges from A-B in
> fixed steps...
> i.e... X=10000 ; Y=100,200,300...1000
> i.e... Z= 10000/100 + 10000/200 + ... 10000/1000 = 292.896
>
> He and I tried to figure out a simple formula to calculate it, but
> couldn't. The third guy said it was *not* *possible* to derive a
> formula - we think he's wrong, but can't prove it. MathCad can solve
> it in the blink of an eye, even if the value of Y ranges from 1 to 1e6
> in steps of 1 !!!
>
> Can anyone come up with a simple formula to give a reasonably accurate
> result? It is too slow to actually divide X by Y for each value of Y
> as there may be 1000 or even 100,000 values of Y.
>
> Thanks in advance...
> > Barry Culhane
> > Schaffner Ltd, Limerick, IRELAND
One method:
In[20]:= Timing[InputForm[ee = Sum[1/y, {y,a,b,c}]]]
Out[20]= {0.32 Second, -(PolyGamma[0, a/c]/c) +
> PolyGamma[0, 1 + a/c + Floor[(-a + b)/c]]/c}
In[21]:= InputForm[ff = x*ee /. {x->10000, a->100, b->1000, c->100}]
Out[21]//InputForm= 10000*((7381/2520 - EulerGamma)/100 +
EulerGamma/100)
In[22]:= N[ff]
Out[22]= 292.897
You may need to use high precision rather than machine arithmetic in the
last step. Depends on the magnitudes of the numbers in the exact
result.
Daniel Lichtblau
Wolfram Research
Prev by Date:
**Re: Problem with sums differentiation**
Next by Date:
**Re: advection eq. + sine-Gordon eq.**
Previous by thread:
**Re: Can it be done - easily?**
Next by thread:
**Re: Can it be done - easily?**
| |