首页 > 其他分享 >浅谈伯努利数

浅谈伯努利数

时间:2023-08-07 14:13:49浏览次数:37  
标签:geq frac 浅谈 text sum 2n 2k 伯努利

O. 前言

在翻洛谷日报的时候居然没看到伯努利数的讲解,于是有了这篇文章。

想要看懂本文,你需要提前知道以下内容:

  • 二项式系数;
  • 幂级数;
  • 艾弗森括号;
  • 下降幂;
  • 第二类斯特林数。

部分内容在文中给了对应的公式,故不放在前言内。

I. 伯努利数的定义:万恶之源 \(m\) 次幂的求和公式

1. 伯努利数的递归定义

伯努利在研究 \(m\) 次幂的求和公式的时候,发现了伯努利数。我们记

\[S_m(n)=\sum_{k=0}^{n-1}k^m \]

动手带入不同的值,伯努利发现了以下一系列公式:

\[\begin{aligned} S_0(n) &= n\\ S_1(n) &= \frac12 n^2 &- \frac12 n \\ S_2(n) &= \frac13 n^3 &- \frac12 n^2 &+ \frac16 n \\ S_3(n) &= \frac14 n^4 &- \frac12 n^3 &+ \frac14 n^2 \\ S_4(n) &= \frac15 n^5 &- \frac12 n^4 &+ \frac13 n^3 &- \frac{1}{30} n \\ S_5(n) &= \frac16 n^6 &- \frac12 n^5 &+ \frac{5}{12} n^4 &- \frac{1}{12} n^2 \\ ... \end{aligned} \]

观察这些系数,伯努利发现(是的,伟大的数学家不屑于证明这些显然的结论)在 \(S_m(n)\) 中:

  • \(n^{m + 1}\) 的系数总是 \(\frac{1}{m + 1}\) ;
  • \(n^{m}\) 的系数总是 \(-\frac{1}2\) ;
  • \(n^{m - 1}\) 的系数总是 \(\frac{m}{12}\) ;
  • \(n^{m - 2}\) 的系数总是 \(0\) ;
  • \(n^{m - 3}\) 的系数总是 \(-\frac{m(m-1)(m-2)}{720}\)
  • ……
  • \(n^{m - k}\) 的系数总是 \(C \cdot m^{\underline{k}}\) ,其中 \(C\) 是一个常数。

用现代记号,我们把系数写为如下形式:

\[S_m(n) = \frac{1}{m+1}\sum_{k=0}^{m}\binom{m+1}{k}B_kn^{m+1-k} \]

在此用递归定义伯努利数

\[\forall m \geq 0,\ \sum^{m}_{k = 0}\binom{m+1}{k}B_k = [m = 0] \]

考虑证明。在《具体数学》上给出了一种较为复杂的证明方法。这里,我们直接使用生成函数来证明。

考虑如下式子

\[\sum^{m}_{k = 0}\binom{m+1}{k}B_k = [m = 0] \]

两边加上\(B_{m+1}\),则有:

\[\sum^{m + 1}_{k = 0}\binom{m+1}{k}B_k = [m = 0] + B_{m + 1} \]

美美展开二项式系数,则有:

\[\sum^{m + 1}_{k = 0}\frac{B_k}{k!}\cdot \frac{1}{(m - k)!} = [m = 1] + \frac{B_{m}}{m!} \]

为了书写方便,设 \(B(z) = \sum_{i\geq 0}\frac{B_i}{i!}z^i\) 。注意到等号左边是个卷积,则有:

\[B(z)\text{e}^z = z + B(z) \\ B(z) = \frac{z}{\text{e}^z - 1} \]

设 \(F_n(z) = \sum_{m\geq 0}\frac{S_m(n)}{m!}z^m\) ,则有:

\[\begin{aligned} F_n(z) &= \sum_{m\geq 0}\frac{S_m(n)}{m!}z^m \\ &= \sum_{m\geq 0}\sum_{i=0}^{n-1}\frac{i^m z^m}{m!} \\ &= \sum_{i=0}^{n-1}\textcolor{red}{\sum_{m\geq 0}\frac{i^m z^m}{m!}} \\ &= \sum_{i=0}^{n-1} \textcolor{red}{\text{e}^{iz}} \\ &= \frac{\text{e}^{nz}-1}{\text{e}^z-1} \\ &= \textcolor{red}{\frac{z}{\text{e}^z-1}}\cdot \ \frac{\text{e}^{nz}-1}{z}\\ &= B(z)\cdot \ \frac{\text{e}^{nz}-1}{z} \\ &= (\sum_{i\geq 0}\frac{B_i}{i!})(\sum_{i\geq 0}\frac{n^{i+1}z^i}{(i+1)!}) \end{aligned} \]

把 \(F_n(z)\) 带入,则有:

\[\begin{aligned} S_m(n) &= m![z^m]F_n(z) \\ &= \frac{1}{m+1}\sum_{i = 0}^m\binom{m+1}{i}B_in^{m-i+1} \end{aligned} \]

这正是我们熟悉的形式,证毕!

2. 伯努利数的生成函数定义

伯努利数的生成函数定义如下(也是现代应用最广的定义法):

\[\frac{x}{\text{e}^x - 1} = \sum_{n \geq 0}\frac{B_n x^n}{n!} \]

这样子计算伯努利数会更快一些。具体的做法是考虑泰勒展开,我们熟知:

\[\frac{x}{\text{e}^x - 1} = 1 - \frac{x}{2} + \frac{x^2}{12} +\cdot\cdot\cdot \]

直接对比系数,你会发现:

\[B_n = \frac{\text{d}^n}{\text{d}x^n} (\frac{x}{\text{e}^x - 1})_{x=0} \]

不难发现:

\[\begin{aligned} \frac{x}{\text{e}^x - 1}&=\frac{\ln{1-(1-\text{e}^x)}}{e^x-1}\\ &= \sum_{k \geq 0} \frac{(1-\text{e}^x)^k}{k+1} \end{aligned} \]

带入,则有(我们需要使用第二类斯特林数):

\[\begin{aligned} B_n &= \frac{\text{d}^n}{\text{d}x^n} (\frac{x}{\text{e}^x - 1})_{x=0} \\ &= \sum_{k \geq 0} \frac {1}{k+1}\frac{\text{d}^n}{\text{d}x^n} (1-\text{e}^x)^k\bigg|_{x=0} \\ &= \sum_{k \geq 0} \frac {1}{k+1} \textcolor{red}{\sum_{i = 0}^{k}\binom{k}{i}(-1)^ii^n} \\ &= \sum_{k = 1}^{n} \frac{(-1)^kk!}{k+1} {n\brace k} \end{aligned} \]

至此,你就得出了伯努利数的两种定义。复习一下:

  • 递归定义:

\[\forall m \geq 0,\ \sum^{m}_{n = 0}\binom{m+1}{n}B_n = [m = 0] \]

  • 生成定义:

\[\frac{x}{\text{e}^x - 1} = \sum_{n \geq 0}\frac{B_n x^n}{n!} \]

\[B_n = \sum_{k = 1}^{n} \frac{(-1)^kk!}{k+1} {n\brace m} \]


II. 伯努利数的性质:伯 努 0 数

1. 第一个性质

伯努利数的三个比较重要的性质与 \(0\) 有关所以锰1应该会特别喜欢(赞赏),计算能力强大的你应该可以轻松计算出伯努利数的前几项:

\[\begin{aligned} B_0&= 1\\ B_1&= -\frac 12\\ B_2&= \frac 16\\ B_3&= 0\\ B_4&= -\frac{1}{30}\\ B_5&= 0\\ B_6&= \frac{1}{42}\\ B_7&= 0 \end{aligned} \]

你会看出,当 \(n\geq 1\) 时,似乎有 \(B_{2n+1}=0\) 。我们来尝试证明一下这个结论。

回到生成函数定义法:

\[\frac{x}{\text{e}^x - 1} = \sum_{n \geq 0}\frac{B_n x^n}{n!} \]

观察到 \(B_0=1,\ B_1=-\frac12\) ,代入则有:

\[\frac{x}{\text{e}^x - 1} \textcolor{red}{+\frac{x}{2}}= \sum_{n \geq \textcolor{red}{2}}\frac{B_n x^n}{n!}\textcolor{red}{+1} \]

左边通分,得到:

\[\text{LHS}=\frac{x}{2}\cdot \frac{e^x+1}{e^x-1} \]

一个成熟的竞赛选手此时应该很快意识到,这玩意是个偶函数,也就意味着,我们有:

\[\sum_{n \geq 2}\frac{B_n x^n}{n!}+1= \sum_{n \geq 2}\frac{B_n \textcolor{red}{(-x)}^n}{n!}+1 \]

两边对比系数,则可以得到:

\[B_n=(-1)^nB_n \]

把 \(n\) 换成一个大于 \(1\) 的奇数即可。

剩下两个个性质比较难以观察,我们直接给出。

2. 第二个性质

对于任意的整数 \(n>1\) ,我们有:

\[\sum_{k=0}^{n-1}\binom{n}{k}B_k=0 \]

证明如下。
先回顾一个知识点:两个无穷级数的柯西乘积:

\[(\sum_{i\geq 0}a_i)(\sum_{j\geq 0}b_j) = \sum_{n\geq 0}\sum_{k=0}^{n}a_kb_{n-k} \]

回到伯努利数的生成函数定义,只不过是这回我们把 \(x\) 单独整到一边:

\[\begin{aligned} x&=\textcolor{red}{(\text{e}^x-1)}\sum_{n \geq 0}\frac{B_nx^n}{n!} \\ &=\textcolor{red}{\sum_{i\geq 1}\frac{x^i}{i!}}\sum_{n \geq 0}\frac{B_nx^n}{n!} \\ &= {\sum_{i\geq 0}\frac{x^{i+1}}{i!}}\sum_{n \geq 0}\frac{B_nx^n}{n!}\\ &=\textcolor{red}{\sum_{p\geq 0}\sum_{q=0}^{p}\frac{x^{p+1-q}}{(p+1-q)!}\cdot \frac{B_qx^q}{q!}} \\ &= \sum_{p\geq 0}\sum_{q=0}^{p}\color{red}\frac{(p+1)!B_q}{(p+1-q)q!}\ \cdot\ \frac{x^{p+1}}{(p+1)!} \\ &= \sum_{p\geq 1}\sum_{q=0}^{p-1}\binom{p}{q}B_q\frac{x^p}{p!} \end{aligned} \]

对比系数,即可得证。

3. 第三个性质

考虑证明,对于整数 \(n>1\) :

\[B_n=-\frac{1}{n+1}\sum_{k=0}^{n-1}\binom{n+1}{k}B_k \]

这是显然的,用递归定义展开左侧就完了。引用资料里提到了他的一个简单记忆方法。


III. 伯努利数的应用:哪 里 都 是 你

伯努利数的应用相当广泛。然而部分应用涉及到了积分,这里就不做说明。然而,欧拉-麦克劳林公式应用十分广泛(当然,也相当吓人),这里不加证明的给出其广义版本:

\[\frac1n \sum_{k=1}^n f(\frac kn)=\\ \int_0^1f(x)\text{d}x+\frac{f(1)-f(0)}{2}+\sum_{k=1}^m\frac{B_{2k}}{(2k)!}(\frac 1n)^{2k}(f^{(2k-1)}(1)-f^{(2k-1)}(0))+\frac{nB_{2m+2}f^{(2m+2)(\zeta)}}{(2m+2)!}(\frac 1n)^{2m+3} \]

运用这个公式,你可以证明以下的应用。


应用1. 三角函数与黎曼函数\(\zeta\)

不难发现:

\[\begin{aligned} \sum_{n\geq 0} \frac{B_{2n}}{(2n)!}x^{2n} &= \frac{x}{\text{e}^x - 1}-B_!x \\ &= \frac{x}{2}\ \cdot\ \textcolor{red}{\frac{\text{e}^{\frac x2}+\text{e}^{-\frac x2}}{\text{e}^{\frac x2}-\text{e}^{-\frac x2}}} \\ &= \frac x2\ \color{red}\coth \frac x2 \end{aligned} \]

由此可以得出:

\[\coth x = \sum_{n \geq 0}\frac{4^nB_{2n}}{(2n)!}x^{2n-1}\\ \cot x = \sum_{m\geq 0}\frac{(-1)^n4^nB_{2n}}{(2n)!}x^{2n-1} \]

聪明的你发现了些不对劲的东西,因为你很清楚地记得:

\[\frac{\sin x}{x} = \prod_{n \geq 1}(1-(\frac{x}{n\pi})^2) \]

你尝试对其两边取对数再求导,得到了一个不得了的东西:

\[\cot x = \frac{1}{x} + \sum_{n\geq 1}(\frac{2x}{x^2-(n\pi)^2}) \]

似乎还是看不出什么有意思的地方。别急,我们再来看看黎曼函数。

我们知道,黎曼函数定义如下
在实数上( \(|k|\geq 1\) )定义为:

\[\zeta(k)=\sum_{n\geq 1}\frac{1}{n^k} \]

你又知道, \(\cot x\) 可以用含有 \(\zeta\) 的式子改写:

\[\begin{aligned} \cot x &= \frac{1}{x}+\sum_{n\geq 1}(\frac{1}{x+n\pi}+\frac{1}{x-n\pi}) \\ &= \frac1x + \sum_{n\geq 1}\textcolor{red}{\frac{1}{n\pi}}(\sum_{k\geq 0}(-1)^k(\frac{x}{n\pi})^k-\sum_{k\geq 0}(\frac{x}{n\pi})^k)\\ &= \frac1x+\sum_{n\geq 1}\frac{1}{n\pi}(2\sum_{k\geq 0}(\frac{x}{n\pi})^{2k+1}) \\ &= \frac1x + \sum_{n\geq 1}\sum_{k\geq 1}(\frac{2x^{2k-1}}{(n\pi)^2k}) \\ &= \frac{1x} + \sum_{k\geq 1}\sum_{n\geq 1}\frac{2x^{2k-1}}{\pi ^{2k}}\cdot\frac{1}{n^{2k}} \\ &= \frac{1}{x}+\sum_{k\geq 1}\frac{2x^{2k-1}}{\pi ^{2k}}\zeta(2n) \end{aligned} \]

联立,你会发现一个极其美妙的式子:对于任意整数 \(k>0\) 黎曼函数和伯努利数有这样一个关系:

\[\zeta(2k)=\frac{|B_{2k}|\ (2\pi)^{2k}}{2(2k)!} \]

由此,你还可以推出另一些三角函数的表达式。例如,你知道:

\[2\coth 2x - \coth x = \tanh x \]

你也可以轻松得到:

\[\tanh x = \sum_{n\geq 1} 4^n(4^n - 1) B_{2n} \frac{x^{2n-1}}{(2n)!} \]

应用2. 自然数的等幂求和

其实就是最开始给出的公式。

\[S_m(n) = \frac{1}{m+1}\sum_{k=0}^{m}\binom{m+1}{k}B_kn^{m+1-k} \]

应用3. 欧拉常数

我们都知道:

\[\sum_{k = 1}^{n}\frac 1k = \ln{n}+\gamma \]

更严谨的写法是:

\[\gamma = \lim_{n\rightarrow \infin}(\sum_{k=1}^n \frac 1k-\int_1^{\infin} \frac 1x) \]

其中, \(\gamma\) 即为欧拉常数。运用欧拉麦克劳林公式,你可以很容易得到:

\[\gamma = \frac 12+\sum_{k\geq 1}\frac{B_{2k}}{2k} \]

具体的做法是,令 \(f(x)=\frac 1x,\ a = 1,\ b=n\) 直接代入即可。

应用4. 斯特林近似

据说今年天津高考的最后一题有人用斯特林近似搞出来了?斯特林近似是这么一个东西:

\[n! \sim \sqrt{2\pi n}(\frac ne)^n \]

他其实也是欧拉麦克劳林公式的一个应用。应用到阶乘上,你可以得知:

\[\sum_{i=1}^n \ln i=\int_1^n \ln x \text{d}x+\frac 12 \ln n + R_1 \]

\(R_1\) 是一个余项。我们可以进一步推出:

\[n!=C\sqrt{n}(\frac {n}{\text{e}})^n \]

由勒让德倍元公式 \(\Gamma (2n)=\frac{2^{2m-1}}{\sqrt{\pi}}\Gamma(n)\Gamma(n)+\frac 12\) 得:

\[C\sqrt{2n}(\frac{2n}{\text{e}})^{2n}\sim \frac{2^{2n}}{\sqrt{\pi}}C\sqrt{n}(\frac{n}{\text{e}})^nC(n-\frac{1}{2})^n\text{e}^{\frac 12-n} \]

即可得到:

\[C \sim \frac{\sqrt{2\pi}}{\sqrt{\text{e}}(1-\frac{1}{2n})^n} \]

\(n\rightarrow \infin\) 时, \(C\rightarrow {\sqrt{2\pi}}\) ,代入即可得到。


IV. 总结

没啥好总结的,祝贺你又学会了一个考试不考的知识点(你小子?)。

标签:geq,frac,浅谈,text,sum,2n,2k,伯努利
From: https://www.cnblogs.com/sdltf/p/17611273.html

相关文章

  • 浅谈如何给.net程序加多层壳达到1+1>2的效果
    合集-.net代码混淆加密产权保护(3) 1.记一次.net加密神器Eazfuscator.NET2023.2最新版使用尝试06-272.将SmartAssembly与单文件可执行文件一起使用(.NETCore6)06-273.【干货】浅谈如何给.net程序加多层壳达到1+1>2的效果08-05收起 软件破解分白盒和......
  • 浅谈非栈上格式化字符串
    浅谈非栈上格式化字符串这里先浅分析修改返回地址的两种打法,分别是"诸葛连弩"和”四马分肥“修改返回地址本文例题以陕西省赛easy_printf为主简单看一看程序需要先过一个判断然后进入vuln进入后有一个13次的循环可以让我们操作第一步肯定要先leak出栈地址程序......
  • 极光笔记 | 浅谈企业级SaaS产品的客户成长旅程管理(上)—— 分析篇
    本文作者:陈伟(极光用户体验部高级总监)“企业级SaaS产品与C端互联网产品特征差异很大,有些甚至是截然相反,这些特征也会成为后续客户成长旅程的重要影响变量。本文就如何设计并服务好企业级SaaS产品客户成长旅程进行分析总结,希望对你有所启发。”大家肯定好奇,标题为什么不直接借用c端互......
  • 浅谈-HttpSession session = request.getSession(false)
    当使用request.getSession(false)方法时,如果当前请求没有关联的会话,则不会创建新的会话,而是返回null。这意味着,如果当前客户端没有携带有效的会话标识符(如JSESSIONID),或者会话已过期或被销毁,则request.getSession(false)方法将返回null。下面是一个示例来解释这个方法的用......
  • 浅谈 rxgo 在项目中的使用方式
    项目中使用到了RxGo,感觉现有的处理方式有一定的优势,当然也有一定的有劣势,遂记录下来,免得自己忘记。本文介绍的只是rxgo的一种方式而已,如果你有不错的使用方式,请不吝赐教,谢谢。对rxgo不清楚的同学可以看看我的另一篇文章,主要是介绍rxgo的基础使用。Go中响应式编程库Rx......
  • 前端性能优化的利器 ——— 浅谈JavaScript中的防抖和节流
    防抖和节流函数是工作中两种常用的前端性能优化函数,今天我就来总结一下什么是防抖和节流,并详细说明一下如何在工作中应用防抖和节流函数什么是防抖和节流?在JavaScript中,防抖(debounce)和节流(throttle)是用来限制函数执行频率的两种常见技术。防抖(debounce)是指在某个时间段内......
  • Java后端03(浅谈注解)
    注解功能一:提示信息功能二:存储信息​ 注解需要定义注解类,类对象需要有落实的实体,注解可以出现在类Class上,方法Method上,成员变量Field上以及构造方法Constructor上,注解对象需要被添加注解的实体所对应的反射对象进行获取,人话:要获得注解信息,首先要获得修饰的东西的反射......
  • 浅谈地产行业税务热点问题及解决方案
    地产行业作为我国国民经济的重要组成部分和国民经济支柱产业,对经济、金融和民生有着巨大的贡献。总体来说,房地产在我国经济社会发展中占据着关键性的地位,在经济增长、财政金融和民生等方面发挥着重要作用。中国约30%的GDP来自于房地产及其供应链的各类活动,包括使用钢铁、水泥、玻璃......
  • 浅谈-Servlet
    在JavaWeb中,Servlet是用于处理客户端请求和生成响应的Java类。它是JavaWeb开发的核心组件之一。Servlet运行在Web服务器中,可以接收来自客户端(通常是浏览器)的请求,进行处理,并生成响应返回给客户端。Servlet的主要功能包括:接收请求:Servlet可以接收客户端发送的HTTP......
  • 浅谈Map<String, String[]> p=req.getParameterMap();
    这行代码用于获取当前HTTP请求中的所有参数,并将它们存储在一个Map<String,String[]>类型的对象中。解释如下:req:这是一个HttpServletRequest对象,表示当前的HTTP请求。通过它可以获取请求中的参数信息。getParameterMap():这是HttpServletRequest接口的方法,用......