       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.
> 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:= NProduct[1/(1 - Prime[k]^-2), {k, Infinity},
Method -> Fit,
NProductFactors -> 10^4, NProductExtraFactors -> 10^5] -
Zeta

Out= -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:= Developer`ClearCache[];
NProduct[1/(1 - Prime[k]^-2), {k, Infinity},
Method -> Fit] // Timing

Out= {0.141*Second, 1.6435712}

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

Out= {8.546*Second, 1.6435712}

Sometimes this 'numericizing' can be an issue, particularly if expressions
of the form k 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, 0, 1}, {x, 0, x}]

This doesn't work (in Mathematica 5.2) because x 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:= Block[{x}, Attributes[x] = NHoldAll;
NIntegrate[1, {x, 0, 1}, {x, 0, x}]]

Out= 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