# Series expansion of a certain infinite product

I wanted to find Series[Product[Cos[t/n], {n, 1, Infinity}], {t, 0, 5}] but failed.

Then, I tried Product[Series[Cos[t/n],{t,0,5}],{n,1,Infinity}] and still failed.

Looks that Product can't calculate the infinite expression with O[x].

But, it can be calculated as follows:

$$\cos \left(\frac{t}{n}\right)=1-\frac{t^2}{2 n^2}+\frac{t^4}{24 n^4}+O\left(t^6\right)$$

a0=1;
a2=Sum[-(t^2/(2 n^2)),{n,1,Infinity}];
a4=Sum[t^4/(24 n^4),{n,1,Infinity}]+Sum[-(t^2/(2 p^2))Sum[-(t^2/(2 n^2)),{n,p+1,Infinity+1}],{p,1,Infinity}];


So

\begin{align}\prod _{n=1}^{\infty } \cos \left(\frac{t}{n}\right)&=a_0+a_2 t^2+a_4 t^4 +O(t^6)\\&=1-\frac{\pi ^2}{12} t^2+\frac{11 \pi^4 }{4320}t^4+O(t^6) \end{align}

But how about the general case ?

How to simplify Series[Product[f[n, x], {n, 1, Infinity}], {x, 0, t}] ?

One idea is to convert the product to a sum by using Log, then convert to a series, and then convert back using Exp, although Mathematica will need lots of help. Here is your product:

prod = Product[Cos[t/n], {n, Infinity}];
prod //TeXForm


$\prod _n^{\infty } \cos \left(\frac{t}{n}\right)$

Take the log and then simplify using a rule:

log = Log[prod] /. Log[Verbatim[Product][f_, iter_]] :> Sum[Log[f], iter];
log //TeXForm


$\sum _n^{\infty } \log \left(\cos \left(\frac{t}{n}\right)\right)$

Now, manually apply Series to the summand:

lser = log /. Verbatim[Sum][f_, iter_] :> Sum[f+O[t]^10, iter];
lser //TeXForm


$\sum _n^{\infty } \left(-\frac{t^2}{2 n^2}-\frac{t^4}{12 n^4}-\frac{t^6}{45 n^6}-\frac{17 t^8}{2520 n^8}+O\left(t^{10}\right)\right)$

Now, manually distribute the Sum:

dist = lser /. Sum[Verbatim[SeriesData][a__, b_List, c__], iter_] :> SeriesData[a, Sum[b, iter], c];
dist //TeXForm


$-\frac{\pi ^2 t^2}{12}-\frac{\pi ^4 t^4}{1080}-\frac{\pi ^6 t^6}{42525}-\frac{17 \pi ^8 t^8}{23814000}+O\left(t^{10}\right)$

Finally, exponentiate the result:

Exp[dist] //TeXForm


$1-\frac{\pi ^2 t^2}{12}+\frac{11 \pi ^4 t^4}{4320}-\frac{233 \pi ^6 t^6}{5443200}+\frac{1429 \pi ^8 t^8}{3048192000}+O\left(t^{10}\right)$

Update

If you don't mind mucking about with protected System symbols, you could package up the above procedure:

Unprotect[Series];

Series[Product[a_, b_], pt_] := Exp[
MapAt[
Sum[#, b]&,
Series[Log[a], pt],
3
]
]
Series[Inactive[Product][a_, b_], pt_] := Series[Unevaluated[Product[a, b]], pt]

Protect[Series];


Then, your example works as expected:

Series[Product[Cos[t/n], {n, Infinity}], {t, 0, 10}] //TeXForm


$1-\frac{\pi ^2 t^2}{12}+\frac{11 \pi ^4 t^4}{4320}-\frac{233 \pi ^6 t^6}{5443200}+\frac{1429 \pi ^8 t^8}{3048192000}-\frac{39881 \pi ^{10} t^{10}}{10863756288000}+O\left(t^{11}\right)$

Mma does not know the value of Product[Cos[t/n], {n, 1, Infinity}] which is clear, since it returns this expression unevaluated. The series cannot be evaluated for this same reason.

However, if approximate values of the coefficients are OK with you, you may try this:

lst = Table[
expr = (Series[Product[Cos[t/n], {n, 1, m}], {t, 0, 5}] // Normal //
N // Chop); {m, expr[[2, 1]], expr[[3, 1]]}, {m,
Join[Range[9], Table[10^i, {i, 1, 4}]]}]

(*  {{1, -0.5, 0.0417}, {2, -0.625, 0.107}, {3, -0.681,
0.142}, {4, -0.712, 0.163}, {5, -0.732, 0.178}, {6, -0.746,
0.188}, {7, -0.756, 0.196}, {8, -0.764, 0.201}, {9, -0.77,
0.206}, {10, -0.775, 0.21}, {100, -0.817, 0.244}, {1000, -0.822,
0.248}, {10000, -0.822, 0.248}}  *)


which returns the list with the element {m,coeff2, coeff4}, where m is the length of the product, coeff2 is the factor in front of t^2 and coeff4 is that in front of t^4 in your expansion. One can make sure that the list of these coefficients converge to -0.822 and 0.248. This is visualized below:

    Show[{
ListLinePlot[{Abs[lst /. {x_, y_, z_} -> {Log[10, x], y}],
lst /. {x_, y_, z_} -> {Log[10, x], z}}, PlotRange -> All,
PlotStyle -> {Blue, Red}, Frame -> True, GridLines -> Automatic,
FrameLabel -> {Style["\!$$\*SubscriptBox[\(Log$$, $$10$$]\)m", 16,
Italic, Black],
Row[{Style["|coeff2|", 16, Italic, Blue],
Style["  and  ", 16, Italic, Black],
Style["coeff4", 16, Italic, Red]}]}],

ListPlot[{Abs[lst /. {x_, y_, z_} -> {Log[10, x], y}],
lst /. {x_, y_, z_} -> {Log[10, x], z}} , PlotStyle -> {Blue, Red}]
}]
`

Have fun!