生成函数求递推数列通项

news/2025/1/31 17:27:40/文章来源:https://www.cnblogs.com/Pbriqwq/p/18695844

可以看《具体数学》

假设我们已知递归关系:\(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\) 之后,根据初值解一下系数的方程是更好的选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/877319.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VM笔记_Modbus通信触发流程

1,通信触发流程 ①通信配置② 接收事件新建③全局触发-事件触发4, 通信心跳配置和启用5, 效果展示

[SWPUCTF 2021 新生赛]easyupload3.0 Writeup

题目来源:NSSCTF 题目方向:Web 题目类型:文件上传 2.0的做法和1.0相同,不过用.phtml绕过就行 1.这里去了解了一下.htaccess文件: htaccess文件是Apache服务中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮助我们实现:网页301重定向、自定义404错…

数据库性能调优中的配置参数调整:提升系统效率的关键环节

title: 数据库性能调优中的配置参数调整:提升系统效率的关键环节 date: 2025/1/31 updated: 2025/1/31 author: cmdragon excerpt: 数据库的性能直接影响到应用程序的响应能力和用户体验,因此在日常运维中,管理员需要定期对数据库系统进行性能调优。配置参数调整是数据库性…

PID 温控设计(基于 STC51)

PID 温控设计(基于 STC51) 一、需求分析 开关型控制存在的问题:加热的过程是全功率加热,三极管发热量大,温度控制振荡幅度大,控制精度较低。而通过采用PID方法能够更加精确地控制加热片处于目标温度,并在一个较小范围内浮动。精度要求:0.2℃ 温控范围 目标温度:45℃ 温…

gin: 接收参数时校验

一,安装第三方库: $ go get -u github.com/go-playground/validator/v10 go: downloading github.com/go-playground/validator/v10 v10.24.0 go: downloading github.com/gabriel-vasile/mimetype v1.4.8 go: downloading golang.org/x/crypto v0.32.0 go: downloading golan…

Java异常分类及处理

Throwable 是 Java 语言中所有错误或异常的超类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。实例分为 Error 和 Exception 两种。 其中,AWTError GUI图形界面化编程相关异常。Error(错误)是程序无法处理…

Apple Safari 18.3 - macOS 专属浏览器 (独立安装包下载)

Apple Safari 18.3 - macOS 专属浏览器 (独立安装包下载)Apple Safari 18.3 - macOS 专属浏览器 (独立安装包下载) 适用于 macOS Sonoma 和 macOS Ventura 的 Safari 浏览器 18 请访问原文链接:https://sysin.org/blog/apple-safari-18/ 查看最新版。原创作品,转载请保留出处…

AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试

AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试 Rapid7 Dynamic Application Security Testing (DAST) released Jan 30, 2025 请访问原文链接:https://sysin.org/blog/appspider/ 查看最新版。原创作品…

Nexpose 7.4.0 for Linux Windows - 漏洞扫描

Nexpose 7.4.0 for Linux & Windows - 漏洞扫描Nexpose 7.4.0 for Linux & Windows - 漏洞扫描 Rapid7 on-prem Vulnerability Management, released Jan 30, 2025 请访问原文链接:https://sysin.org/blog/nexpose-7/ 查看最新版。原创作品,转载请保留出处。 作者主页…

kuboard作为k8s的dashboard使用

kuboard作为k8s的dashboard使用 1 资源信息主机名 OS IP CPU/MEMERY/DISK 备注k8s-master Rocky-8.10 172.16.1.30 2core/4GiB/100GiB k8s-v1.28.0k8s-node01 Rocky-8.10 172.16.1.31 4core/8GiB/100GiB k8s-v1.28.0k8s-node02 Rocky-8.10 172.16.1.32 4core/8GiB/100GiB k8s-v…