Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2006
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2006

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

Search the Archive

Re: Problem with Infinite products

  • To: mathgroup at smc.vnet.net
  • Subject: [mg65398] Re: Problem with Infinite products
  • From: Maxim <m.r at inbox.ru>
  • Date: Thu, 30 Mar 2006 05:29:50 -0500 (EST)
  • References: <dvrbsp$a3a$1@smc.vnet.net> <e035oq$2d8$1@smc.vnet.net> <e05re8$3r5$1@smc.vnet.net> <e08kk8$4b1$1@smc.vnet.net> <e0dp0n$q53$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

On Wed, 29 Mar 2006 10:54:15 +0000 (UTC), Roger Bagula  
<rlbagulatftn at yahoo.com> wrote:

> Maxim Rytin,
> Thank you very much for your help!
> On that you are probably right,
> I picked the default 1/2 to work at Zeta one,
> It doesn't work at Zeta[2].
> Thanks for pointing that out.
> It still should give a better answer.
> I arranged it so it missed a singularity each time.
> That got it: I used another "If" and it works:
>
> f[n_, 1] := If[Mod[Prime[n], 12] - 1 == 0, Prime[n], 0]
> f[n_, 2] := If[Mod[Prime[n], 12] - 5 == 0, Prime[n], 0]
> f[n_, 3] := If[Mod[Prime[n], 12] - 7 == 0, Prime[n], 0]
> f[n_, 4] := If[Mod[Prime[n], 12] - 11 == 0, Prime[n], 0]
> zeta[x_, m_] := Product[If[f[n, m] == 0, 1, f[n, m]^(x)/(-1 + f[n,
> m]^(x))], {n, 1, Infinity}]
>
> The results look like the results I got from the sums.
> Product values:
> baa={1.00734,1.04776,1.02578,1.01143}
> error is:
> (3/2)*Apply[Times, baa] - Pi^2/6
> -0.00238175
> Sum values at 1000000 terms assuming equal populations:
> ebb={1.02912,1.01745,1.0216,1.02518}
> (3/2)*Apply[Times, ebb] - Pi^2/6
> 0.0000108624
>
> In any case it has been demonstrated that such product function factors
> do exit. As far as I know this is a new unique approach to the Zeta
> function.

You've correctly reproduced the Euler product formula for the zeta  
function (only you split it into four separate products). Here's one way  
to improve the accuracy:

In[1]:= NProduct[1/(1 - Prime[k]^-2), {k, Infinity},
     Method -> Fit,
     NProductFactors -> 10^4, NProductExtraFactors -> 10^5] -
   Zeta[2]

Out[1]= -7.5461329*^-8

It's interesting to note that Mathematica complains that the argument of  
Prime isn't integer, but still gives a numerical answer. This means that  
at some points it first tries evaluating the function with numericized  
values of k and then reverts to using the exact value. If we add Round, we  
don't get warnings but the computation takes much longer:

In[2]:= Developer`ClearCache[];
   NProduct[1/(1 - Prime[k]^-2), {k, Infinity},
     Method -> Fit] // Timing

Out[3]= {0.141*Second, 1.6435712}

In[4]:= Developer`ClearCache[];
   NProduct[1/(1 - Prime[Round[k]]^-2), {k, Infinity},
     Method -> Fit] // Timing

Out[5]= {8.546*Second, 1.6435712}

Sometimes this 'numericizing' can be an issue, particularly if expressions  
of the form k[1] are used as variables and the index is left unchanged in  
one place and is converted to a machine number in another place:

NIntegrate[1, {x[1], 0, 1}, {x[2], 0, x[1]}]

This doesn't work (in Mathematica 5.2) because x[1] in the second iterator  
becomes x[1.], which is treated as a different variable. One way to make  
it work is to set the attribute NHoldAll:

In[6]:= Block[{x}, Attributes[x] = NHoldAll;
   NIntegrate[1, {x[1], 0, 1}, {x[2], 0, x[1]}]]

Out[6]= 0.5

Maxim Rytin
m.r at inbox.ru


  • Prev by Date: Re: Problem with Thread over Plus?
  • Next by Date: Re: Problem with Thread over Plus?
  • Previous by thread: Re: Problem with Infinite products
  • Next by thread: Listing the partitions of a set