MathGroup Archive 2008

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

Search the Archive

Re: For loop problem in mathematica

  • To: mathgroup at smc.vnet.net
  • Subject: [mg90205] Re: For loop problem in mathematica
  • From: Bob F <deepyogurt at gmail.com>
  • Date: Wed, 2 Jul 2008 05:30:30 -0400 (EDT)
  • References: <g4d2qf$emo$1@smc.vnet.net>

On Jul 1, 5:01 am, PhysNova <skhoshbin... at gmail.com> wrote:
> Hi,
> i wrote a simple program of evaluating Pi number in M6 to test cpu
> computation timing, to do this a simple for loop
>
> was used:
>
> x=0;For[i = 1, i < 10,000,000, i++, x = x + 1/(i^2)];N[Sqrt(6*x),25=
]//
> Timing
>
> the result was catastrophe! it take few minuates. but i first expect
> to do this very simple job in few
>
> seconds.computation time is just satisfactory up to 100000 cycle.
>
> could anyone interperet this falut?
> our get an idea to improve the result?
>
> Tanks

I think you have a couple of typo's. The Sqrt(6*x) should be
Sqrt[6*x], and the comma's in the 10,000,000 should not be there
(should be 10000000 instead) so it thinks you are adding more
arguments to the function than is allowed. Also the //Timing you have
will only be for the Sqrt[] function, not the loop. Is that what you
wanted? Try Timing[...] I am guessing that you were just typing
something in rather than pasting a Mathematica expression.

This is a little more than the built in way to compute Pi -- compare
this to N[Pi, 25]//Timing which only took about 0.000032 seconds on my
computer.

On my system doing it your way for 100000 (one-hundred thousand)
iterations took about 15.2 seconds and it's square root took an
additional about 2.2 seconds, for 1000000 (one million) the numbers
were about 1379.1 and 34.5 seconds -- I would guess the 10000000 (ten
million) would take about 100 times longe which was a bit longer than
I was willing to wait ;)  Am curious why this takes so long -- anyone
got any ideas?

Try using the Mathematica Benchmark program to get an idea of your
relative CPU speed - do a menu command of "Mathematica/About
Mathematica/System Information/Benchmark with MathematicaMark" on a
Mac or "Help/About Mathematica/System Information/Benchmark with
MathematicaMark" on a Windows system - this runs 15 different tests
and shows how your system compares with about 10 other different
systems (Windows, Linux and Mac systems with various CPU's).

A very efficient and fast converging algorithm for computing Pi is the
Chudnovsky algorithm (see Wikipedia article at
http://en.wikipedia.org/wiki/Chudnovsky_algorithm -- for more
details). Mathematica itself uses a Chudnovsky algorithm, but not sure
it it's the same as the Wikipedia or another one? I did this in
Mathematica and since it converges so fast only did 1 terms of the sum
and was within -3.08x10^-28 which took only .000303 seconds and 5
terms which took .000576 seconds and was within -3.6x10^-85, and 100
terms took 0.015829 seconds and was within 5.05x10^-1433 so you can
see how much faster converging and better this is ...

Here is the Chudnovsky algorithm in Mathematica:

Timing[\[Pi] -
  N[1/(12*Sum[((-1)^k *
          Factorial[6*k] * (13591409 + 545140134 * k)) / (Factorial[
           3 * k] * Factorial[k]^3 * 640320 ^(3*k + 3/2)), {k, 0,
        5}]), 1000]]

Have fun...

-Bob


  • Prev by Date: Re: For loop problem in mathematica
  • Next by Date: Re: Possible Bug in Mathematica 6
  • Previous by thread: Re: For loop problem in mathematica
  • Next by thread: Re: For loop problem in mathematica