伯努利数和正切函数泰勒展开式
1.伯努利数
伯努利数是十八世纪瑞士数学家雅各布·伯努利引入的一个数。伯努利数是一个有理数数列。一般地有两种定义的方法:
生成函数定义方法
设伯努利数列为 B n B_{n} Bn,定义复变函数
f ( z ) = z e z − 1 = ∑ n = 0 ∞ B n z n n ! f(z)=\frac{z}{e^{z}-1}=\sum\limits_{n=0}^{\infty}B_{n}\frac{z^{n}}{n!} f(z)=ez−1z=n=0∑∞Bnn!zn
这里 z ∈ C z\in{\mathbb{C}} z∈C。
递归定义法
设伯努利数列为 B n B_{n} Bn, B 0 = 1 B_{0}=1 B0=1,那么定义此数列当 n ≥ 2 n\geq{2} n≥2时候,满足表达式 B n = ∑ k = 0 n C n k B k B_{n}=\sum\limits_{k=0}^{n}C_{n}^{k}B_{k} Bn=k=0∑nCnkBk。
他两个之间的定义是等价的,这就意味着由这两个定义可以互相推导。对于生成函数我们可以得到
e z = ∑ n = 0 n z n n ! e^{z}=\sum\limits_{n=0}^{n}\frac{z^{n}}{n!} ez=n=0∑nn!zn
这样就会有
( e z − 1 ) ⋅ z e z − 1 = ( ∑ n = 0 n z n n ! − 1 ) ( ∑ n = 0 ∞ B n z n n ! ) = z ( 1 1 ! + 1 2 ! z + ⋯ + 1 n ! z n − 1 + … ) ( B 0 + z B 1 + B 2 2 ! z 2 + ⋯ + B n n ! z n + … ) = z ⋅ 1 (e^{z}-1)\cdot{\frac{z}{e^{z}-1}}=\left(\sum\limits_{n=0}^{n}\frac{z^{n}}{n!}-1\right)\left(\sum\limits_{n=0}^{\infty}B_{n}\frac{z^{n}}{n!}\right)\\=z(\frac{1}{1!}+\frac{1}{2!}z+\dots+\frac{1}{n!}z^{n-1}+\dots)(B_{0}+zB_{1}+\frac{B_{2}}{2!}z^{2}+\dots+\frac{B_{n}}{n!}z^{n}+\dots)\\=z\cdot{1} (ez−1)⋅ez−1z=(n=0∑nn!zn−1)(n=0∑∞Bnn!zn)=z(1!1+2!1z+⋯+n!1zn−1+…)(B0+zB1+2!B2z2+⋯+n!Bnzn+…)=z⋅1
现在对照 n n n幂次的多项式系数为0可以得到
1 1 ! B 0 = 1 ⇒ B 0 = 1 \frac{1}{1!}B_{0}=1\Rightarrow{B_{0}=1} 1!1B0=1⇒B0=1
B 0 ⋅ 1 ( n + 1 ) ! + B 1 ⋅ 1 n ! + ⋯ + B k k ! ⋅ 1 ( n − k + 1 ) ! + ⋯ + 1 1 ! ⋅ B n n ! = 0 B_{0}\cdot{\frac{1}{(n+1)!}}+B_{1}\cdot{\frac{1}{n!}}+\dots+\frac{B_{k}}{k!}\cdot{\frac{1}{(n-k+1)!}}+\dots+\frac{1}{1!}\cdot{\frac{B_{n}}{n!}}=0 B0⋅(n+1)!1+B1⋅n!1+⋯+k!Bk⋅(n−k+1)!1+⋯+1!1⋅n!Bn=0
上述等式两边同乘以 ( n + 1 ) ! (n+1)! (n+1)!则可以得到
B 0 ⋅ ( n + 1 ) ! ( n + 1 ) ! + B 1 ⋅ ( n + 1 ) ! n ! + ⋯ + B k 1 k ! ⋅ ( n + 1 ) ! ( n − k + 1 ) ! + ⋯ + B n 1 1 ! ⋅ ( n + 1 ) ! n ! = 0 B_{0}\cdot{\frac{(n+1)!}{(n+1)!}}+B_{1}\cdot{\frac{(n+1)!}{n!}}+\dots+B_{k}\frac{1}{k!}\cdot{\frac{(n+1)!}{(n-k+1)!}}+\dots+B_{n}\frac{1}{1!}\cdot{\frac{(n+1)!}{n!}}=0 B0⋅(n+1)!(n+1)!+B1⋅n!(n+1)!+⋯+Bkk!1⋅(n−k+1)!(n+1)!+⋯+Bn1!1⋅n!(n+1)!=0
即
∑ k = 0 n + 1 C n + 1 k B k = B n + 1 \sum\limits_{k=0}^{n+1}C_{n+1}^{k}B_{k}=B_{n+1} k=0∑n+1Cn+1kBk=Bn+1
所以得到伯努利数的递推表达式:
{ B 0 = 1 B n + 1 = ∑ k = 0 n + 1 C n + 1 k B k \begin{cases} B_{0}=1\\ B_{n+1}=\sum\limits_{k=0}^{n+1}C_{n+1}^{k}B_{k} \end{cases} ⎩⎨⎧B0=1Bn+1=k=0∑n+1Cn+1kBk
或者表示为更为恰当的递推关系式
{ B 0 = 1 B n = − 1 n + 1 ∑ k = 0 n − 1 C n + 1 k B k \begin{cases} B_{0}=1\\ B_{n}=-\frac{1}{n+1}\sum\limits_{k=0}^{n-1}C_{n+1}^{k}B_{k}\\ \end{cases} ⎩⎨⎧B0=1Bn=−n+11k=0∑n−1Cn+1kBk
由递推表达式可以知道前几项的值 B 0 = 1 , B 1 = − 1 2 , B 2 = 1 6 , B 3 = 0 … B_{0}=1,B_{1}=-\frac{1}{2},B_{2}=\frac{1}{6},B_{3}=0\dots B0=1,B1=−21,B2=61,B3=0…,由表达式也可以知道 B 2 n + 1 = 0 B_{2n+1}=0 B2n+1=0,下面证明这一结果的正确性.
由于复变函数
f ( z ) = z e z − 1 = ∑ n = 0 ∞ B n z n n ! f(z)=\frac{z}{e^{z}-1}=\sum\limits_{n=0}^{\infty}B_{n}\frac{z^{n}}{n!} f(z)=ez−1z=n=0∑∞Bnn!zn
设圆周 ∣ z ∣ = 1 |z|=1 ∣z∣=1,可以知道 f ( z ) f(z) f(z)在 C C C内是解析的,所以对于以下复变函数的洛朗展开式为
f ( z ) z 2 n + 2 = B 0 0 ! z − 2 n − 2 + B 1 1 ! z − 2 n − 1 + ⋯ + B 2 n + 1 ( 2 n + 1 ) ! z − 1 + B 2 n + 2 ( 2 n + 2 ) ! + … \frac{f(z)}{z^{2n+2}}=\frac{B_{0}}{0!}z^{-2n-2}+\frac{B_{1}}{1!}z^{-2n-1}+\dots+\frac{B_{2n+1}}{(2n+1)!}z^{-1}+\frac{B_{2n+2}}{(2n+2)!}+\dots z2n+2f(z)=0!B0z−2n−2+1!B1z−2n−1+⋯+(2n+1)!B2n+1z−1+(2n+2)!B2n+2+…
在 C C C上使用由留数定理可得
∮ C f ( z ) z 2 n + 2 d z = 2 π i ⋅ B 2 n + 1 ( 2 n + 1 ) ! \oint_{C}\frac{f(z)}{z^{2n+2}}dz=2\pi{i}\cdot{\frac{B_{2n+1}}{(2n+1)!}} ∮Cz2n+2f(z)dz=2πi⋅(2n+1)!B2n+1
B 2 n + 1 = ( 2 n + 1 ) ! 2 π i ∮ C f ( z ) z 2 n + 2 d z B_{2n+1}=\frac{(2n+1)!}{2\pi{i}}\oint_{C}\frac{f(z)}{z^{2n+2}}dz B2n+1=2πi(2n+1)!∮Cz2n+2f(z)dz
进行复数代换 z = e i θ z=e^{i\theta} z=eiθ,则可以得到
B 2 n + 1 = ( 2 n + 1 ) ! 2 π i ∫ 0 2 π e i θ e e i θ − 1 e − 2 n i θ − 2 i θ i e i θ d θ = ( 2 n + 1 ) ! 2 π ∫ 0 2 π e − 2 n i θ e e i θ − 1 d θ = ( 2 n + 1 ) ! 2 π ∫ 0 π e − 2 n i θ e e i θ − 1 d θ + ( 2 n + 1 ) ! 2 π ∫ π 2 π e − 2 n i θ e e i θ − 1 d θ = ( 2 n + 1 ) ! 2 π ∫ 0 π e − 2 n i θ e e i θ − 1 d θ + ( 2 n + 1 ) ! 2 π ∫ 0 π e − 2 n i θ + 2 n π i e e i θ − 1 d θ = ( 2 n + 1 ) ! 2 π ∫ 0 π e − 2 n i θ e e i θ − 1 d θ + ( 2 n + 1 ) ! 2 π ∫ 0 π e − 2 n i θ e e − i θ − 1 d θ B_{2n+1}=\frac{(2n+1)!}{2\pi{i}}\int_{0}^{2\pi}\frac{e^{i\theta}}{e^{e^{i\theta}}-1}e^{-2ni\theta-2i\theta}ie^{i\theta}d\theta\\ =\frac{(2n+1)!}{2\pi}\int_{0}^{2\pi}\frac{e^{-2ni\theta}}{e^{e^{i\theta}}-1}d\theta\\ =\frac{(2n+1)!}{2\pi}\int_{0}^{\pi}\frac{e^{-2ni\theta}}{e^{e^{i\theta}}-1}d\theta+\frac{(2n+1)!}{2\pi}\int_{\pi}^{2\pi}\frac{e^{-2ni\theta}}{e^{e^{i\theta}}-1}d\theta\\ =\frac{(2n+1)!}{2\pi}\int_{0}^{\pi}\frac{e^{-2ni\theta}}{e^{e^{i\theta}}-1}d\theta+\frac{(2n+1)!}{2\pi}\int_{0}^{\pi}\frac{e^{-2ni\theta+2n\pi{i}}}{e^{e^{i\theta}}-1}d\theta\\ =\frac{(2n+1)!}{2\pi}\int_{0}^{\pi}\frac{e^{-2ni\theta}}{e^{e^{i\theta}}-1}d\theta+\frac{(2n+1)!}{2\pi}\int_{0}^{\pi}\frac{e^{-2ni\theta}}{e^{e^{-i\theta}}-1}d\theta B2n+1=2πi(2n+1)!∫02πeeiθ−1eiθe−2niθ−2iθieiθdθ=2π(2n+1)!∫02πeeiθ−1e−2niθdθ=2π(2n+1)!∫0πeeiθ−1e−2niθdθ+2π(2n+1)!∫π2πeeiθ−1e−2niθdθ=2π(2n+1)!∫0πeeiθ−1e−2niθdθ+2π(2n+1)!∫0πeeiθ−1e−2niθ+2nπidθ=2π(2n+1)!∫0πeeiθ−1e−2niθdθ+2π(2n+1)!∫0πee−iθ−1e−2niθdθ
所以得到
B 2 n + 1 = ( 2 n + 1 ) ! 2 π ∫ 0 π − e − 2 n i θ d θ = { 0 , n ≥ 1 − 1 2 , n = 0 B_{2n+1}=\frac{(2n+1)!}{2\pi}\int_{0}^{\pi}-e^{-2ni\theta}d\theta\\ =\begin{cases} 0,&n\geq{1}\\ -\frac{1}{2},&n=0 \end{cases} B2n+1=2π(2n+1)!∫0π−e−2niθdθ={
0,−21,n≥1n=0
为了便于编程处理,我们可以得到以下的递推表达式
{ B 0 = 1 B 1 = − 1 2 B 2 n = 1 2 − 1 2 n + 1 ∑ k = 0 n − 1 C 2 n + 1 2 k B 2 k B 2 n + 1 = 0 \begin{cases} B_{0}=1\\ B_{1}=-\frac{1}{2}\\ B_{2n}=\frac{1}{2}-\frac{1}{2n+1}\sum\limits_{k=0}^{n-1}C_{2n+1}^{2k}B_{2k}\\ B_{2n+1}=0 \end{cases} ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧B0=1B1=−21B2n=21−2n+11k=0∑n−1C2n+12kB2kB2n+1=0
2.欧拉数
对于函数 sech x \text{sech}{x} sechx,它的泰勒展开式是由欧拉数所定义.即
sech x = ∑ n = 0 ∞ ( − 1 ) n ( 2 n ) ! E n x 2 n \text{sech}{x}=\sum\limits_{n=0}^{\infty}\frac{(-1)^{n}}{(2n)!}E_{n}x^{2n} sechx=n=0∑∞(2n)!(−1)nEnx2n
由定义可以得到
cosh x ⋅ sech x = ( ∑ n = 0 ∞ 1 ( 2 n ) ! x 2 n ) ( ∑ n = 0 ∞ ( − 1 ) n E n ( 2 n ) ! x 2 n ) = [ 1 + 1 2 ! x 2 + ⋯ + 1 ( 2 n ) ! x 2 n + P n ( x ) ] [ E 0 − E 1 2 ! x 2 + ⋯ + ( − 1 ) n E n ( 2 n ) ! x 2 n + Q n ( x ) ] = 1 \cosh{x}\cdot{\text{sech}{x}}=\left(\sum\limits_{n=0}^{\infty}\frac{1}{(2n)!}x^{2n}\right)\left(\sum\limits_{n=0}^{\infty}\frac{(-1)^{n}E_{n}}{(2n)!}x^{2n}\right)\\ =\left[1+\frac{1}{2!}x^{2}+\dots+\frac{1}{(2n)!}x^{2n}+P_{n}(x)\right]\left[E_{0}-\frac{E_{1}}{2!}x^{2}+\dots+\frac{(-1)^{n}E_{n}}{(2n)!}x^{2n}+Q_{n}(x)\right]=1 coshx⋅sechx=(n=0∑∞(2n)!1x2n)(n=0∑∞(2n)!(−1)nEnx2n)=[1+2!1x2+⋯+(2n)!1x2n+Pn(x)][E0−2!E1x2+⋯+(2n)!(−1)nEnx2n+Qn(x)]=1
其中 P n ( x ) , Q n ( x ) P_{n}(x),Q_{n}(x) Pn(x),Qn(x)为余项.对照乘积中的 2 n 2n 2n次幂的系数,可以得到
1 0 ! ⋅ ( − 1 ) n E n ( 2 n ) ! + ⋯ + 1 ( 2 k ) ! ⋅ ( − 1 ) n − k E n − k [ 2 ( n − k ) ] ! + ⋯ + 1 ( 2 n ) ! ⋅ ( − 1 ) 0 E 0 ( 0 ) ! = 0 \frac{1}{0!}\cdot{\frac{(-1)^{n}E_{n}}{(2n)!}}+\dots+\frac{1}{(2k)!}\cdot{\frac{(-1)^{n-k}E_{n-k}}{[2(n-k)]!}}+\dots+\frac{1}{(2n)!}\cdot{\frac{(-1)^{0}E_{0}}{(0)!}}=0 0!1⋅(2n)!(−1)nEn+⋯+(2k)!1⋅[2(n−k)]!(−1)n−kEn−k+⋯+(2n)!1⋅(0)!(−1)0E0=0
这样就会有
∑ k = 0 n ( 2 n ) ! ⋅ 1 ( 2 k ) ! ⋅ ( − 1 ) n − k E n − k [ 2 ( n − k ) ] ! = ∑ k = 0 n ( 2 n ) ! ( 2 k ) ! ( 2 n − 2 k ) ! ⋅ ( − 1 ) n − k E n − k = ∑ k = 0 n ( − 1 ) n − k C 2 n 2 k E n − k = ∑ k = 0 n ( − 1 ) k C 2 n 2 n − 2 k E k = ∑ k = 0 n ( − 1 ) k C 2 n 2 k E k = 0 \sum\limits_{k=0}^{n}(2n)!\cdot\frac{1}{(2k)!}\cdot{\frac{(-1)^{n-k}E_{n-k}}{[2(n-k)]!}}\\ =\sum\limits_{k=0}^{n}\frac{(2n)!}{(2k)!(2n-2k)!}\cdot{(-1)^{n-k}E_{n-k}}\\ =\sum\limits_{k=0}^{n}(-1)^{n-k}C_{2n}^{2k}E_{n-k}\\ =\sum\limits_{k=0}^{n}(-1)^{k}C_{2n}^{2n-2k}E_{k}\\ =\sum\limits_{k=0}^{n}(-1)^{k}C_{2n}^{2k}E_{k}=0 k=0∑n(2n)!⋅(2k)!1⋅[2(n−k)]!(−1)n−kEn−k=k=0∑n(2k)!(2n−2k)!(2n)!⋅(−1)n−kEn−k=k=0∑n(−1)n−kC2n2kEn−k=k=0∑n(−1)kC2n2n−2kEk=k=0∑n(−1)kC2n2kEk=0
其中 n ≥ 1 , E 0 = 1 n\geq{1},E_{0}=1 n≥1,E0=1.所以我们就会得到欧拉数的一般递推公式
{ E 0 = 1 , n = 0 ∑ k = 0 n ( − 1 ) k C 2 n 2 k E k = 0 , n ≥ 1 \begin{cases} E_{0}=1&,n=0\\ \sum\limits_{k=0}^{n}(-1)^{k}C_{2n}^{2k}E_{k}=0&,n\geq{1} \end{cases} ⎩⎨⎧E0=1k=0∑n(−1)kC2n2kEk=0,n=0,n≥1
或者表示为
{ E 0 = 1 , n = 0 E n = ( − 1 ) n ∑ k = 0 n − 1 ( − 1 ) k C 2 n 2 k E k , n ≥ 1 \begin{cases} E_{0}=1&,n=0\\ E_{n}=(-1)^{n}\sum\limits_{k=0}^{n-1}(-1)^{k}C_{2n}^{2k}E_{k}&,n\geq{1} \end{cases} ⎩⎨⎧E0=1En=(−1)nk=0∑n−1(−1)kC2n2kEk,n=0,n≥1
特别地,可以得到 sec x = sech i x \sec{x}=\text{sech}ix secx=sechix。因而得到
sech x = ∑ n = 0 ∞ E n ( 2 n ) ! x 2 n \text{sech}{x}=\sum\limits_{n=0}^{\infty}\frac{E_{n}}{(2n)!}x^{2n} sechx=n=0∑∞(2n)!Enx2n
3.自然幂指数和
使用伯努利数的定义,我们可以得出一般的 p p p次方的前 n n n项和公式.设前 n n n项和公式为
S p ( n ) = ∑ k = 1 n k p , p , n ∈ N + S_{p}(n)=\sum\limits_{k=1}^{n}k^{p},p,n\in{N_{+}} Sp(n)=k=1∑nkp,p,n∈N+
构造函数
G ( z , n ) = ∑ p = 0 ∞ S p ( n ) p ! z p = ∑ p = 0 ∞ ∑ k = 1 n ( k z ) p p ! = ∑ k = 1 n e k z = 1 − e z n e − z − 1 G(z,n)=\sum\limits_{p=0}^{\infty}S_{p}(n)\frac{p!}{z^{p}} =\sum\limits_{p=0}^{\infty}\sum\limits_{k=1}^{n}\frac{(kz)^{p}}{p!} =\sum\limits_{k=1}^{n}e^{kz}=\frac{1-e^{zn}}{e^{-z}-1} G(z,n)=p=0∑∞Sp(n)zpp!=p=0∑∞k=1∑np!(kz)p=k=1∑nekz=e−z−11−ezn
由伯努利数所定义的函数,可以得到
1 − e z n e − z − 1 = − z e − z − 1 ⋅ e n z − 1 z = ∑ i = 0 ∞ ( − 1 ) i B i i ! ⋅ z i − 1 ⋅ ∑ j = 1 ∞ ( n z ) j j ! = ∑ i = 0 ∞ ∑ j = 1 ∞ ( − 1 ) i B i i ! ⋅ n j j ! z i + j − 1 \frac{1-e^{zn}}{e^{-z}-1}=\frac{-z}{e^{-z}-1}\cdot{\frac{e^{nz}-1}{z}}\\ =\sum\limits_{i=0}^{\infty}\frac{(-1)^{i}B_{i}}{i!}\cdot{z^{i-1}}\cdot{\sum\limits_{j=1}^{\infty}\frac{(nz)^{j}}{j!}}\\ =\sum\limits_{i=0}^{\infty}\sum\limits_{j=1}^{\infty}\frac{(-1)^{i}B_{i}}{i!}\cdot{\frac{n^{j}}{j!}}z^{i+j-1} e−z−11−ezn=e−z−1−z⋅zenz−1=i=0∑∞i!(−1)iBi⋅zi−1⋅j=1∑∞j!(nz)j=i=0∑∞j=1∑∞i!(−1)iBi⋅j!njzi+j−1
现在设 p = i + j − 1 p=i+j-1 p=i+j−1,那么得到
1 − e z n e − z − 1 = ∑ i = 0 ∞ ∑ j = 1 ∞ ( − 1 ) i B i i ! ⋅ n j j ! z i + j − 1 = ∑ p = 0 ∞ ∑ i = 0 p ( − 1 ) i B i i ! ⋅ n p − i + 1 ( p − i + 1 ) ! z p = ∑ p = 0 ∞ z p p ! ⋅ 1 p + 1 ∑ i = 0 p ( − 1 ) i B i ( p + 1 ) ! i ! ( p + 1 − i ) ! n p + 1 − i = ∑ p = 0 ∞ z p p ! ⋅ 1 p + 1 ∑ i = 0 p ( − 1 ) i B i C p + 1 i n p + 1 − i \frac{1-e^{zn}}{e^{-z}-1}=\sum\limits_{i=0}^{\infty}\sum\limits_{j=1}^{\infty}\frac{(-1)^{i}B_{i}}{i!}\cdot{\frac{n^{j}}{j!}}z^{i+j-1}\\ =\sum\limits_{p=0}^{\infty}\sum\limits_{i=0}^{p}\frac{(-1)^{i}B_{i}}{i!}\cdot{\frac{n^{p-i+1}}{(p-i+1)!}}z^{p}\\ =\sum\limits_{p=0}^{\infty}\frac{z^{p}}{p!}\cdot{\frac{1}{p+1}}\sum\limits_{i=0}^{p}(-1)^{i}B_{i}\frac{(p+1)!}{i!(p+1-i)!}n^{p+1-i}\\ =\sum\limits_{p=0}^{\infty}\frac{z^{p}}{p!}\cdot{\frac{1}{p+1}}\sum\limits_{i=0}^{p}(-1)^{i}B_{i}C_{p+1}^{i}n^{p+1-i} e−z−11−ezn=i=0∑∞j=1∑∞i!(−1)iBi⋅j!njzi+j−1=p=0∑∞i=0∑pi!(−1)iBi⋅(p−i+1)!np−i+1zp=p=0∑∞p!zp⋅p+11i=0∑p(−1)iBii!(p+1−i)!(p+1)!np+1−i=p=0∑∞p!zp⋅p+11i=0∑p(−1)iBiCp+1inp+1−i
对照系数可以得到
S p ( n ) = ∑ k = 1 n k p = 1 p + 1 ∑ i = 0 p ( − 1 ) i B i C p + 1 i n p + 1 − i S_{p}(n)=\sum\limits_{k=1}^{n}k^{p}={\frac{1}{p+1}}\sum\limits_{i=0}^{p}(-1)^{i}B_{i}C_{p+1}^{i}n^{p+1-i} Sp(n)=k=1∑nkp=p+11i=0∑p(−1)iBiCp+1inp+1−i
4. tan x \tan{x} tanx泰勒展开式
与伯努利数和欧拉数相关的问题之一是泰勒展开式。 tan x \tan{x} tanx的泰勒级数表达式不太好计算.这里我们采用一个小的技巧,对于 coth x \coth{x} cothx,函数在 x = 0 x=0 x=0点处是不可导的,所以有
x e x − 1 + x 2 = x 2 ⋅ e x + 1 e x − 1 = x 2 ⋅ e x 2 + e − x 2 e x 2 − e − x 2 = x 2 coth x 2 \frac{x}{e^{x}-1}+\frac{x}{2}=\frac{x}{2}\cdot{\frac{e^{x}+1}{e^{x}-1}} =\frac{x}{2}\cdot{\frac{e^{\frac{x}{2}}+e^{-\frac{x}{2}}}{e^{\frac{x}{2}}-e^{-\frac{x}{2}}}} =\frac{x}{2}\coth\frac{x}{2} ex−1x+2x=2x⋅ex−1ex+1=2x⋅e2x−e−2xe2x+e−2x=2xcoth2x
所以得到这样的一个表达式
x 2 coth x 2 = x 2 + ∑ n = 0 ∞ B n x n n ! = x 2 + ∑ n = 0 ∞ B n ( 2 ⋅ x 2 ) n n ! \frac{x}{2}\coth\frac{x}{2}=\frac{x}{2}+\sum\limits_{n=0}^{\infty}B_{n}\frac{x^{n}}{n!}=\frac{x}{2}+\sum\limits_{n=0}^{\infty}B_{n}\frac{\left(2\cdot\frac{x}{2}\right)^{n}}{n!} 2xcoth2x=2x+n=0∑∞Bnn!xn=2x+n=0∑∞Bnn!(2⋅2x)n
由于 B 0 = 1 , B 1 = − 1 2 B_{0}=1,B_{1}=-\frac{1}{2} B0=1,B1=−21,故而
x coth x = 1 + ∑ n = 2 ∞ B n ( 2 x ) n n ! x\coth{x}=1+\sum\limits_{n=2}^{\infty}B_{n}\frac{(2x)^{n}}{n!} xcothx=1+n=2∑∞Bnn!(2x)n
得到
coth x = 1 x + ∑ n = 2 ∞ 2 n B n x n − 1 n ! \coth{x}=\frac{1}{x}+\sum\limits_{n=2}^{\infty}2^{n}B_{n}\frac{x^{n-1}}{n!} cothx=x1+n=2∑∞2nBnn!xn−1
这个等式在下面三角函数表达式的递推有用.设 B 2 n = ( − 1 ) n − 1 β n B_{2n}=(-1)^{n-1}\beta_{n} B2n=(−1)n−1βn,则上式可以得到,
x coth x = 1 + ∑ n = 1 ∞ ( − 1 ) n − 1 2 2 n β n ( 2 n ) ! x 2 n = 1 + ∑ n = 1 ∞ ( − 1 ) n − 1 2 2 n β n ( 2 n ) ! x 2 n x\coth{x}=1+\sum\limits_{n=1}^{\infty}\frac{(-1)^{n-1}2^{2n}\beta_{n}}{(2n)!}x^{2n} =1+\sum\limits_{n=1}^{\infty}\frac{(-1)^{n-1}2^{2n}\beta_{n}}{(2n)!}x^{2n} xcothx=1+n=1∑∞(2n)!(−1)n−122nβnx2n=1+n=1∑∞(2n)!(−1)n−122nβnx2n
即
coth x = 1 x + ∑ n = 1 ∞ ( − 1 ) n − 1 2 2 n β n ( 2 n ) ! x 2 n − 1 = ∑ n = 0 ∞ ( − 1 ) n + 1 2 2 n β n ( 2 n ) ! x 2 n − 1 = ∑ n = 0 ∞ 2 2 n B 2 n ( 2 n ) ! x 2 n − 1 \coth{x}=\frac{1}{x}+\sum\limits_{n=1}^{\infty}\frac{(-1)^{n-1}2^{2n}\beta_{n}}{(2n)!}x^{2n-1}=\sum\limits_{n=0}^{\infty}\frac{(-1)^{n+1}2^{2n}\beta_{n}}{(2n)!}x^{2n-1}=\sum\limits_{n=0}^{\infty}\frac{2^{2n}B_{2n}}{(2n)!}x^{2n-1} cothx=x1+n=1∑∞(2n)!(−1)n−122nβnx2n−1=n=0∑∞(2n)!(−1)n+122nβnx2n−1=n=0∑∞(2n)!22nB2nx2n−1
对于 tan x \tan{x} tanx泰勒展开式的计算,需要用到复变函数的知识。容易得知
x cot x = i x coth i x x\cot{x}=ix\coth{ix} xcotx=ixcothix
所以得到
x cot x = 1 − ∑ n = 1 ∞ 2 2 n β n ( 2 n ) ! x 2 n x\cot{x}=1-\sum\limits_{n=1}^{\infty}\frac{2^{2n}\beta_{n}}{(2n)!}x^{2n} xcotx=1−n=1∑∞(2n)!22nβnx2n
所以有
cot x = 1 x − ∑ n = 1 ∞ 2 2 n β n ( 2 n ) ! x 2 n − 1 \cot{x}=\frac{1}{x}-\sum\limits_{n=1}^{\infty}\frac{2^{2n}\beta_{n}}{(2n)!}x^{2n-1} cotx=x1−n=1∑∞(2n)!22nβnx2n−1
即表示为
cot x = ∑ n = 0 ∞ ( − 1 ) n 2 2 n B 2 n ( 2 n ) ! x 2 n − 1 \cot{x}=\sum\limits_{n=0}^{\infty}\frac{(-1)^{n}2^{2n}B_{2n}}{(2n)!}x^{2n-1} cotx=n=0∑∞(2n)!(−1)n22nB2nx2n−1
由于
tan x = cot x − 2 cot 2 x \tan{x}=\cot{x}-2\cot{2x} tanx=cotx−2cot2x
所以得到
tan x = ∑ n = 1 ∞ ( − 1 ) n − 1 ( 2 2 n − 1 ) 2 2 n B 2 n ( 2 n ) ! x 2 n − 1 \tan{x}=\sum\limits_{n=1}^{\infty}(-1)^{n-1}\frac{\left(2^{2n}-1\right)2^{2n}B_{2n}}{(2n)!}x^{2n-1} tanx=n=1∑∞(−1)n−1(2n)!(22n−1)22nB2nx2n−1
5. 程序应用与计算
我们这里的程序列举出如何用程序计算伯努利数、欧拉数、自然幂指数和。
根据公式的定义我们可以写出相应的程序。笔者这里使用到的是C++语言进行编写
# pragma once
# ifndef BERNOULI_H
# define BERNOULI_H
# include<cassert>
# include<iostream>
//计算阶乘
long Factorial(long N) {
if (N == 0) return 1;
if (N == 1) return 1;
else return N*Factorial(N - 1);
}
//计算组合数
unsigned long Combinatorial(unsigned long N, unsigned long M) {
assert(N >= M);
return Factorial(N) / (Factorial(M)*Factorial(N-M));
}
//计算伯努利数
double CalBernouli(unsigned long N) {
if (N == 0) return 1;
if (N == 1) return -0.5;
if (N % 2 == 1) return 0;
else {
double value = 0;
for (unsigned int k = 0; k <= N / 2 - 1; k++) {
value += Combinatorial(N + 1, 2 * k)*CalBernouli(2*k);
}
value = 0.5 - value / (N + 1);
return value;
}
}
//计算欧拉数
long CalEluer(unsigned long N) {
if (N == 0) return 1;
else {
long sign = 1;
long value = 0;
for (unsigned long k = 0; k <= N - 1; k++) {
value += sign*Combinatorial(2 * N, 2 * k)*CalEluer(k);
sign = sign*(-1);
}
sign = sign*(-1);
return sign*value;
}
}
//自然数幂指数之和普通加法
double CalSumNpMethodA(unsigned long p,unsigned long N) {
double result = 0;
for (unsigned long k = 0; k <= N; k++) {
result += pow(k, p);
}
return result;
}
//求和公式
double CalSumNpMethodB(unsigned long p, unsigned long N) {
double result = 0;
int sign = 1;
for (unsigned int k = 0; k <= p; k++) {
result += sign*CalBernouli(k)*Combinatorial(p+1,k)*pow(N,p+1-k);
sign = (-1)*sign;
}
return result/(p+1);
}
# endif // !BERNOULI_H