Pbri

生成函数求递推数列通项

可以看《具体数学》

假设我们已知递归关系:\(g_n=\sum\limits_{k=1}^lc_kg_{n-k}\) ,现在我们想给出 \(g_n\) 关于 \(n\) 的封闭形式。那么生成函数提供了一套机械式的计算方式。

分四步

\[1.给出g_n的单个公式,在g_k=0, \forall k<0的前提下 \]

\[2.分别乘以z^n后累加给出包含G(z)的表达式 \]

\[3.解出G(z)的封闭形式 \]

\[4.将G(z)展开成幂级数,取出z^n的系数,即为g_n的封闭形式 \]

一个更加强大的工具应当具备解决简单问题的能力,这里我们以斐波那契数列为例

第一步,通常意义下我们对斐波那契数列的定义考虑到初值会分三条,但在上述假设下我们可以给出一条式子来定义,即:

\[f_n=f_{n-1}+f_{n-2}+[n=1] \]

第二步,累加得到:

\[\begin{aligned}F(z)=\sum\limits_nf_nz^n&=\sum\limits_nf_{n-1}z^n+\sum\limits_nf_{n-2}z^n+\sum\limits_n[n=1]z^n\\&=zF(z)+z^2F(z)+z\end{aligned} \]

第三步,移项即可得到 \(F(z)=\dfrac{z}{1-z-z^2}\)

第四步,我们考虑更一般的情况,如果有理函数 \(R(z)=\dfrac{P(z)}{Q(z)}\) ,其中 \(P(z)Q(z)\) 均为整式函数,我们应该如何处理?

如果 \(P(z)\) 次数不小于 \(Q(z)\) ,很明显我们可以通过多项式除法取出一个整式。那么接下来我们只考虑 \(P(z)\) 次数小于 \(Q(z)\) 的情况。

由于 \(Q(z)\) 是整式函数,我们考虑一个特殊的有理函数

\[\dfrac{a}{(1-\rho z)^{m+1}}=\sum\limits_{n\ge 0}\dbinom{n+m}{m}a\rho^nz^n \]

为什么考虑这个,因为这个具有展开形式,并且若干个这个有理函数的和可以表示许多有理函数,再加上一个多项式的调整,我们可以得到任意有理函数。

形式化的来说,我们有如下的做法:

\[S(z)=\sum\limits_{k=1}^l\dfrac{a_k}{(1-\rho_kz)^{m_k+1}} \]

\[T(z)是一个多项式函数 \]

\[那么R(z)=S(z)+T(z) \]

我们发现 \(T(z)\) 只能是我们多项式除法得到的商式,\(S(z)\) 就是 \(P(z)\)\(Q(z)\) 的余式与 \(Q(z)\) 得到的新有理函数的分解,为了方便,下面的 \(R(z)\) 表示这个新的有理函数, \(P(z)\) 表示余式。

很明显,为了凑起来后分母一样,如果我们假设 \(Q(z)\)\(l\) 个根分别为 \(\alpha_1...\alpha_l\) ,那么有 \(\rho_k=\dfrac{1}{\alpha_k}\) 。或者我们考虑 \(Q(z)=q_0(1-\alpha_1z)...(1-\alpha_kz)\) 的反射多项式 \(Q^R(z)=q_0(z-\rho_1)...(z-\rho_l)\) ,其反射多项式的根就是我们需要的 \(\rho\)

接下来,我们考虑如果这 \(l\) 个根互不相同的做法。

很明显,这时 \(\forall k=1,2...l,m_k=0\) 。此时,我们需要构造合适的 \(a_k\) ,使得 \(H(z)=R(z)-S(z)\equiv 0\) 。我们的证明思路分两步:

\[1.证明H(z)是多项式函数 \]

\[2.由\lim\limits_{z\rightarrow\infty}H(z)=0得到H(z)\equiv 0 \]

第二步比较简单,假设我们已经证明了第一步了。如果 \(H(z)\) 非零,那么这个极限显然不收敛。但是由于 \(R(z)\)\(S(z)\) 均是分子次数小于分母的有理函数,那么这两个函数在无穷处的极限肯定都是零,所以 \(H(z)\) 在无穷处的极限也是零。于是 \(H(z)\equiv 0\)

现在返回来看第一步,我们注意到如果 \(H(z)\) 是一个非多项式的有理函数,那么根据分母的根,一定可以得到 \(H(z)\) 存在无穷点。考虑到 \(H(z)\) 的构成,我们只需要让 \(H(z)\)\(x=\alpha_k\) 处的取值恒非无穷即可。并且我们可以注意到, \(R(z)\)\(S(z)\) 在这些位置都是一阶无穷大。所以欲证明 \(\lim\limits_{z\rightarrow\alpha_k}H(z)\ne\infty\) ,只需证明:

\[\lim\limits_{z\rightarrow\alpha_k}(z-\alpha_k)H(z)=0 \]

注意到:

\[\lim\limits_{z\rightarrow\alpha_k}(z-\alpha_k)S(z)=\lim\limits_{z\rightarrow\alpha_k}(z-\alpha_k)\dfrac{a_k}{1-\rho_kz}=-a_k\alpha_k \]

\[\lim\limits_{z\rightarrow\alpha_k}(z-\alpha_k)R(z)=\lim\limits_{z\rightarrow\alpha_k}P(z)\dfrac{z-\alpha_k}{Q(z)} \]

然后运用洛必达得到

\[\lim\limits_{z\rightarrow\alpha_k}(z-\alpha_k)R(z)=\dfrac{P(\alpha_k)}{Q'(\alpha_k)} \]

两个极限相等我们就得到

\[a_k=-\dfrac{P(\alpha_k)}{\alpha_kQ'(\alpha_k)}=-\dfrac{\rho_kP(1/\rho_k)}{Q'(1/\rho_k)} \]

所以 \([z^n]R(z)=\sum\limits_{k=1}^la_k\rho^n,a_k=-\dfrac{\rho_kP(1/\rho_k)}{Q'(1/\rho_k)}\)

回看我们的斐波那契数列,我们得到 \(\rho_1=\dfrac{1+\sqrt{5}}{2},\rho_2=\dfrac{1-\sqrt{5}}{2},P(z)=z,Q'(z)=-1-2z\)

于是 \(a_k=-\dfrac{\rho P(1/\rho)}{Q(1/\rho)}=\dfrac{-1}{-1-2/\rho}=\dfrac{\rho}{\rho+2}\)

所以 \(a_1=\dfrac{1}{\sqrt{5}},a_2=-\dfrac{1}{\sqrt{5}}\)

所以 \(f_n=\dfrac{1}{\sqrt{5}}\left(\dfrac{1+\sqrt{5}}{2}\right)^n-\dfrac{1}{\sqrt{5}}\left(\dfrac{1-\sqrt{5}}{2}\right)^n\)

实际的话,解出 \(\rho\) 之后,根据初值解一下系数的方程是更好的选择。

posted @ 2025-01-31 17:24  Pbri  阅读(56)  评论(0)    收藏  举报