关于一类无穷乘积

· · 算法·理论

最近发现一个好玩的无穷乘积,它长这样

\prod^\infin_{n=2}\Big(1-\frac1{n^2}\Big)

据说欧拉当年求过这个式子,他用不严谨的因式分解,先从直觉上得到了这个三角函数的式子(我也只是道听途说)

\frac{\sin x}x=\prod^\infin_{n=1}\Big(1-\frac{x^2}{n^2\pi^2}\Big)

很明显,将乘积第一项除过来,然后取 x\to\pi 的极限再洛一下即可

\prod^\infin_{n=2}\Big(1-\frac1{n^2}\Big)=\lim\limits_{x\to\pi}\frac{\sin x}{x(1-\frac{x^2}{\pi^2})}=\frac12

既然已经求出了这个无穷乘积,我们就改思考一下如何求更大的 n 所对应的无穷乘积了,那么...

正片开始

由于我们的注意力没有欧拉那么强,所以就要找到其他方法无穷乘积的通解。

先简单介绍和推导一遍 Gamma 函数的无穷乘积展开,以及余元公式(过程粗糙不要嫌弃)。

Gamma函数

先回归阶乘,Gamma 函数的本质是这个递推关系

\Gamma(z+1)=z\Gamma(z)

不断利用这个递推公式,我们可以让自变量跑到很远的地方

\Gamma(z+n+1)=z(z+1)...(z+n)\Gamma(z)\\ \Gamma(z)=\frac{\Gamma(z+n+1)}{z(z+1)...(z+n)}

n 很大时,我们期望有

\Gamma(z+n+1)\sim1\times2...n(n+1)...(n+z)\\ \Gamma(z)\sim\frac{1\times2...n}{z(z+1)...(z+n)}(n+1)...(n+z)

如果 n 相比 z 很大,那么

n+1\approx n\\ n+2\approx n\\ ...\\ n+z\approx n\\ (n+1)(n+2)...(n+z)\approx n^z\\ \Gamma(z)\approx \frac{1\times2...n}{z(z+1)...(z+n)}n^z

更严谨地来说

\lim\limits_{n\to\infin}\frac{(n+1)(n+2)...(n+z)}{n^z}=1\\ \Gamma(z)=\lim\limits_{n\to\infin}\frac{1\times2...n}{z(z+1)...(z+n)}n^z

这样我们就绕开了 Gamma 函数那坨复杂的积分定义,这时再在式子上做些变形,就能得到 Gamma 函数常见的 Weierstrass 乘积展开

n^z=e^{z\ln n}=e^{\raisebox{1ex}{$z\big(\ln n-\sum\limits^n_{m=1}\frac1{m}\big)$}}e^{\raisebox{1ex}{ $\sum\limits^n_{m=1}\frac1{m}$}}\to e^{-\gamma z}\prod\limits^\infin_{n=1}e^{\raisebox{1ex}{$\frac z n$}}\\ \gamma=\lim\limits_{n\to\infin}\Big(\sum^n_{k=1}\frac1{k}-\ln n\Big)\approx0.577

(这个 gamma 是欧拉常数,在这里用于“正则化”无穷乘积)

\frac1{\Gamma(z)}=z e^{\gamma z}\prod^\infin_{n=1}\Big(\big(1+\frac zn\big)e^{\raisebox{1ex}{$-\frac zn$}}\Big)\\ \Gamma(z)=\frac{e^{-\gamma z}}z\prod^\infin_{n=1}\Big(\big(1+\frac zn\big)^{-1}e^{\raisebox{1ex}{$\frac zn$}}\Big)\\ \Gamma(-z)=-\frac{e^{\gamma z}}z\prod^\infin_{n=1}\Big(\big(1-\frac zn\big)^{-1}e^{\raisebox{1ex}{$-\frac zn$}}\Big)

然后有

\Gamma(z)\Gamma(1-z)=-z\Gamma(z)\Gamma(-z) =\frac1z\prod^\infin_{n=1}\Big(1-\frac{z^2}{n^2}\Big)^{-1}

后面那个无穷乘积是不是很眼熟?没错,现在只需要在分子和分母上同时乘以 \pi^2,它就是开头那个三角函数的式子的倒数

\prod^\infin_{n=1}\Big(1-\frac{z^2}{n^2}\Big)^{-1}=\prod^\infin_{n=1}\Big(1-\frac{z^2\pi^2}{n^2\pi^2}\Big)^{-1}=\frac{\pi z}{\sin\pi z}

所以

\Gamma(z)\Gamma(1-z)=\frac\pi{\sin\pi z}

这样我们就证明完了余元公式,接下来...

无穷乘积

之所以介绍 Gamma 函数,为的就是这一刻将它与无穷乘积结合起来,先将 Gamma 函数变形

\Gamma(1+z)=z\Gamma(z)=e^{-\gamma z}\prod^\infin_{n=1}\Big(\frac n{n+z}e^{\raisebox{1ex}{$\frac zn$}}\Big)

所以

\prod^\infin_{n=1}\Big(\frac n{n+z}e^{\raisebox{1ex}{$\frac zn$}}\Big)=\Gamma(1+z)e^{\gamma z}

现在有两个数列 \{a_k\}\{b_k\},将它俩代入 z 后把两个无穷乘积相除便有

\prod^\infin_{n=1}\Big(\frac {n+a_k}{n+b_k}e^{\raisebox{1ex}{$\frac {a_k-b_k}n$}}\Big)=\frac{\Gamma(1+b_k)}{\Gamma(1+a_k)}e^{\gamma(b_k-a_k)}

所以将数列的每项分别代入后相乘,就有

\prod^\infin_{n=1}\Big(\frac {(n+a_1)(n+a_2)...(n+a_k)}{(n+b_1)(n+b_2)...(n+b_k)}e^{\raisebox{1ex}{$\frac {a-b}n$}}\Big)=\frac{\Gamma(1+b_1)\Gamma(1+b_2)...\Gamma(1+b_k)}{\Gamma(1+a_1)\Gamma(1+a_2)...\Gamma(1+a_k)}e^{\gamma(b-a)}\\ a=\sum^k_{n=1}a_k\ ,\ b=\sum^k_{n=1}b_k

当满足 a=b 时,式子就变成了下面的样子

\prod^\infin_{n=1}\frac{(n+a_1)(n+a_2)...(n+a_k)}{(n+b_1)(n+b_2)...(n+b_k)}=\frac{\Gamma(1+b_1)\Gamma(1+b_2)...\Gamma(1+b_k)}{\Gamma(1+a_1)\Gamma(1+a_2)...\Gamma(1+a_k)}

这样我们就把求无穷乘积的问题转成了更好算的关于 Gamma 函数的问题,毕竟它在自变量为正整数时等于 (z-1)!

回收开头

有了上面的式子,我们便可以尝试再次求解开头那个式子

\prod^\infin_{n=2}\Big(1-\frac1{n^2}\Big)

为了对应式子,我们将下标改为从一开始,然后通分并因式分解,利用 Gamma 函数解决

\prod^\infin_{n=1}\Big(1-\frac1{(n+1)^2}\Big)=\prod^\infin_{n=1}\frac{(n+0)(n+2)}{(n+1)(n+1)}=\frac{\Gamma(1+1)\Gamma(1+1)}{\Gamma(1+0)\Gamma(1+2)}=\frac12

超级简单,是不是?或许有人会问,如果 a\ne b 那怎么办?

a=b 的必要性

众所周知,无穷乘积 \prod(1+s_i) 收敛的充要条件是 \sum\ln(1+s_i) 收敛,那么问题就变成了一个无穷求和是否收敛

\prod^\infin_{n=1}\prod^k_{i=1}\frac{n+a_i}{n+b_i}\iff\sum^\infin_{n=1}\sum^k_{i=1}\Big(\ln(1+\frac{a_i}n)-\ln(1+\frac{b_i}n)\Big)

n\to\infin 时,利用泰勒展开对对数函数进行线性近似

\ln(1+\frac{s_i}n)=\frac{s_i}n-\frac{s^2_i}{2n^2}+O(\frac1{n^3})

因此

\sum^k_{i=1}\Big(\ln(1+\frac{a_i}n)-\ln(1+\frac{b_i}n\Big)=\frac{a-b}n-\frac1{2n^2}\sum^k_{i=1}\Big(a^2_i-b^2_i\Big)+O(\frac1{n^3})

因为当 n\to\infin 时,高阶项 O(\frac1{n^2})\frac{a-b}n 更快趋近于 0,所以我们可以只保留主导项 \frac{a-b}n

\sum^k_{i=1}\Big(\ln(1+\frac{a_i}n)-\ln(1+\frac{b_i}n\Big)=\frac{a-b}n+O(\frac1{n^2})

此时求和变成了这样

\sum^\infin_{n=1}\Big(\frac{a-b}n+O(\frac1{n^2})\Big)

很明显,这不就是调和级数吗,主导项的级数是发散的,当 a>b 时,总和发散到 +\infin,无穷乘积也发散到 +\infin,而 a<b 时,总和发散到 -\infin,无穷乘积收敛到 0

所以,除非它在乘积里套了个 e^{\frac{a-b}n},否则当 a\ne b 时,这个无穷乘积没有什么意义,出题人肯定不会无聊到出这种题。

小练笔

那我们再来求一个无穷乘积

\prod^\infin_{n=1}\Big(1+\frac1{n^2}\Big)

先进行因式分解再套 Gamma 函数

\prod^\infin_{n=1}\Big(1+\frac1{n^2}\Big)=\prod^\infin_{n=1}\frac{(n+i)(n-i)}{(n+0)(n+0)}=\frac{\Gamma(1+0)\Gamma(1+0)}{\Gamma(1+i)\Gamma(1-i)}=\frac1{i\Gamma(i)\Gamma(1-i)}

由于 Gamma 函数可以解析延拓到除非正整数外的整个复平面,所以我们这么做是没问题的,接下来用上面得到的余元公式再进行转化

\prod^\infin_{n=1}\Big(1+\frac1{n^2}\Big)=\frac1{i\Gamma(i)\Gamma(1-i)}=\frac{\sin\pi i}{\pi i}=\frac{\sinh\pi}\pi

再看下一题

\prod^\infin_{n=1}\Big(1+\frac1{n^3}\Big)

利用单位根进行因式分解

\prod^\infin_{n=1}\Big(1+\frac1{n^3}\Big)=\prod^\infin_{n=1}\frac{(n+1)(n-\omega)(n-\omega^{-1})}{n^3}=\frac1{\Gamma(1-\omega)\Gamma(1-\omega^{-1})}\\ \omega=e^{\raisebox{}{$\frac{\pi i}3$}}=\frac12+\frac{i\sqrt3}2

我们先将余元公式变形

\Gamma(z)\Gamma(1-z)=\frac\pi{\sin\pi z}\implies \Gamma(\frac12+z)\Gamma(\frac12-z)=\frac\pi{sin(\frac\pi2+\pi z)}=\frac\pi{\cos\pi z}

这样我们就能更快的解决掉 Gamma 函数

\Gamma(1-\omega)\Gamma(1-\omega^{-1})=\Gamma(\frac12-\frac{i\sqrt3}2)\Gamma(\frac12+\frac{i\sqrt3}2)=\frac\pi{\cos(\pi\frac{i\sqrt3}2)}=\frac\pi{\cosh(\frac{\sqrt3}2\pi)}

所以

\prod^\infin_{n=1}\Big(1+\frac1{n^3}\Big)=\frac{\cosh(\frac{\sqrt3}2\pi)}\pi

现在练笔结束,开始推广一般形式。

通解

我们上面的无穷乘积的一般形式可以写成

\prod^\infin_{n=1}\Big(1-\frac x{n^k}\Big)

首先,利用单位根的性质,可以将括号内的式子分解

1-\frac x{n^k}=\prod^{k-1}_{m=0}\Big(1-\frac{\omega^mx^{\raisebox{}{$\frac1k$}}}n\Big)\\ \omega=e^{\raisebox{}{$\frac{2\pi i}k$}}=\cos(\frac{2\pi}k)+i\sin(\frac{2\pi}k)

那么原来的无穷乘积可以重新写为

\prod^\infin_{n=1}\Big(1-\frac x{n^k}\Big)=\prod^\infin_{n=1}\prod^{k-1}_{m=0}\Big(1-\frac{\omega^mx^{\raisebox{}{$\frac1k$}}}n\Big)

回看之前将 Gamma 函数和无穷乘积联系起来的式子,因为单位根之和等于 0,就有

\prod^\infin_{n=1}\prod^{k-1}_{m=0}\Big(1-\frac{\omega^mx^{\raisebox{}{$\frac1k$}}}n\Big)=\prod^{k-1}_{n=0}\Big(\Gamma(1-\omega^nx^{\raisebox{}{$\frac1k$}})\Big)^{-1}=\prod^{k-1}_{n=0}\Big(-\omega^nx^{\raisebox{}{$\frac1k$}}\Gamma(-\omega^nx^{\raisebox{}{$\frac1k$}})\Big)^{-1}=\prod^{k-1}_{n=0}(-\omega^nx^{\raisebox{}{$\frac1k$}})^{-1}\prod^{k-1}_{n=0}\Big(\Gamma(-\omega^nx^{\raisebox{}{$\frac1k$}})\Big)^{-1}

此时式子仍能化简,可以先计算出常数项

\prod^{k-1}_{n=0}-\omega^nx^{\raisebox{}{$\frac1k$}}=(-1)^k\omega^{\frac{k(k-1)}2}x=(-1)^k(-1)^{k-1}x=-x

所以,我们就得到了最终形式

\prod^\infin_{n=1}\Big(1-\frac x{n^k}\Big)=-\frac1x\prod^{k-1}_{n=0}\Big(\Gamma(-\omega^nx^{\raisebox{}{$\frac1k$}})\Big)^{-1}

小结

这篇文章小小 7k 字,主要带大家简单了解了这类无穷乘积的计算方法及其相关证明,我自认讲得很明白了,计算过程也十分详细,内容相比其他大佬的文章也简单的多,实际上非常容易理解。

本想用一些帅气的话来升华一下主题,想了想还是不献丑了吧。作为复习,就请你用上述内容华丽地证明开头欧拉的那个式子吧(虽然很明显是在循坏论证,但作为课后练习还是可以的吧)!

\frac{\sin x}x=\prod^\infin_{n=1}\Big(1-\frac{x^2}{n^2\pi^2}\Big)

补充

为了防止没来头地甩出欧拉地那个式子却不解释而被制裁,在这里先给出简单证明(也就是上文提到的因式分解),首先我们都知道,只要一个函数足够光滑,它就可以被多项式一致逼近,所以正弦函数能被因式分解,而且我们又知道正弦函数 \sin x 的零点为 x=n\pi,n\in\Z,所以是这样吗?

\sin x\stackrel{?}{=}x\prod^\infin_{n=1}\Big(x^2-n^2\pi^2\Big)

随便带个不是零点的值它就会炸掉,所以明显不是,那么我们就尝试在右式中乘上一个系数 k 使其收敛

\sin x=kx\prod^\infin_{n=1}\Big(x^2-n^2\pi^2\Big)

然后变形再取极限

\lim_{x\to0}\frac{\sin x}x=\lim_{x\to0}k\prod^\infin_{n=1}\Big(x^2-n^2\pi^2\Big)\implies k\prod^\infin_{n=1}\Big(-n^2\pi^2\Big)=1

所以

k=\prod^\infin_{n=1}\Big(-n^2\pi^2\Big)^{-1}

这样我们就证明了欧拉的这个等式

\frac{\sin x}x=\prod^\infin_{n=1}\Big(1-\frac{x^2}{n^2\pi^2}\Big)

现在是真的结束了。