退役OIer来诈尸了,祝大家新年快乐。
问题引入
下面的所有数列默认下标从 0 开始。
对于一个数列 {an},如果其满足 k 阶常系数齐次线性递推 关系:
an=k∑i=1pian−i(*)
其中 pk≠0,n≥k;
定义它的特征方程为:
xk=k∑i=1pixk−i
我们要证明的是:如果特征方程无重根,那么对于任意给出的初值 a0,a1,...ak−1,都能做到将 an(n∈N∗) 表示为
an=k∑i=1cirni
的形式。其中 ci 为常数, r1,r2,...rk 是特征方程的所有根。(这些根可以是复数。)
开始证明
我们将证明分为两部分,在第一部分中,我们证明 n≥k 的情况,而第二部分中,将证明 n<k 的情况。
第一部分:n≥k
对于任意非零数 r,我们看到,an=rn 是递推关系的解,当且仅当它满足递推关系,即,将其代入(∗)式,得到:
rn=k∑i=1pirn−i
两边同除 rn−k,得到
rk=k∑i=1pirk−i
于是,这无穷多个方程退化为一个方程,即特征方程。所以我们得到 rn 是递推关系的解当且仅当它是特征方程的根。
由于我们假定了 pk≠0,所以 0 不是特征方程的根。于是,我们得到 an=rni 都是递推关系 (∗) 的解。
根据 (∗) 的线性性和齐次性,我们得到,对于任意选定的常数 c1,c2,...ck,
an=k∑i=1cirni
都是 (∗) 的解,于是这部分就被证明了。
第二部分
我们要证明,对于任意给出的初值 a0,a1,...ak−1,我们都一定能选出一组常数 c1,c2,...ck,使得对于 n<k 的情况,也有
an=k∑i=1cirni
成立。
换句话说,这就是要证明如下方程组
⎧⎪
⎪
⎪
⎪
⎪
⎪⎨⎪
⎪
⎪
⎪
⎪
⎪⎩(when n=0):c1+c2+...+ck=a0(when n=1):c1r1+c2r2+...+ckrk=a1(when n=2):c1r21+c2r22+...+ckr2k=a2...(when n=k−1):c1rk−11+c2rk−12+...+ckrk−1k=ak−1
对于任意的 a0,a1,...ak−1 都有解。证明这个命题对于高中生来说可能有些困难。但是,如果你有线性代数基础,下面的证明并不难理解。我们将上方程组改写为矩阵乘向量的形式:
⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣11⋯1r1r2⋯rkr21r22⋯r2k⋮⋮⋱⋮rk−11rk−12⋯rk−1k⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣c1c2c3⋮ck⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦=⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣a0a1a2⋮ak−1⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦
于是,ci 能被唯一确定的充要条件就变为矩阵
⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣11⋯1r1r2⋯rkr21r22⋯r2k⋮⋮⋱⋮rk−11rk−12⋯rk−1k⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦
可逆。也即其行列式不为 0。
事实上,这是著名的范德蒙德(Vandermonde)矩阵。运用数学归纳法,能够证明其行列式即为:
∏1≤i<j≤k(rj−ri)
因此,当特征方程无重根时,也即 r1,r2,...rk 互不相同时,它的确不为 0。于是,这证明了对于 n<k的情况,定理依然成立。
综上所述,我们对 n∈N∗ 的情况都证明了这样的解是成立的,因此我们成功完成了对这个定理的证明。
后记
事实上,关于这个结论我们有:
- 对于这样的常系数齐次线性关系,我们求解其通项公式的障碍在于高次方程的求根,而后者通常是困难的。
- 对于有重根的情况,我们假设是 s 重根,只需要更改重根前的系数 ci 为一个 s−1 阶的关于 n 的多项式即可。系数依然唯一。由于本人水平精力有限,不做进一步探讨。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现