有理展开定理与递推数列通项公式
可以结合 https://blog.csdn.net/ez_lcw/article/details/125731258?spm=1001.2014.3001.5502。
不同根的有理展开定理
设 R ( x ) = P ( x ) Q ( x ) R(x)=\frac{P(x)}{Q(x)} R(x)=Q(x)P(x),其中 Q ( x ) = ( x − x 1 ) ⋯ ( x − x ℓ ) Q(x)=(x-x_1)\cdots(x-x_{\ell }) Q(x)=(x−x1)⋯(x−xℓ) 且 x 1 , ⋯ , x ℓ x_1,\cdots,x_{\ell} x1,⋯,xℓ 两两不同, P ( x ) P(x) P(x) 为一个次数小于 ℓ \ell ℓ 的多项式。那么:
[ x n ] R ( x ) = − ∑ i = 1 ℓ c i x i n + 1 [x^n]R(x)=-\sum_{i=1}^{\ell}\frac{c_i}{x_i^{n+1}} [xn]R(x)=−i=1∑ℓxin+1ci
其中:
c i = P ( x i ) Q ′ ( x i ) c_i=\frac{P(x_i)}{Q'(x_i)} ci=Q′(xi)P(xi)
证明:
使用待定系数法,我们假设 R ( x ) R(x) R(x) 能被表示成如下的形式:
R ( x ) = c 1 x − x 1 + ⋯ + c ℓ x − x ℓ R(x)=\frac{c_1}{x-x_1}+\cdots+\frac{c_{\ell}}{x-x_{\ell}} R(x)=x−x1c1+⋯+x−xℓcℓ
其中 c 1 , ⋯ , c ℓ c_1,\cdots,c_{\ell} c1,⋯,cℓ 为所说的常数。
事实上这是有道理的,因为 c 1 , ⋯ , c ℓ c_1,\cdots,c_{\ell} c1,⋯,cℓ 为 ℓ \ell ℓ 个自由度,而 P ( x i ) P(x_i) P(xi) 其实也有 ℓ \ell ℓ 个自由度。换言之这应该是一个 R ℓ R^{\ell} Rℓ 与 R ℓ R^{\ell} Rℓ 之间的一一映射。
那么:
P ( x ) = Q ( x ) R ( x ) = Q ( x ) ( ) P(x)=Q(x)R(x)=Q(x)() P(x)=Q(x)R(x)=Q(x)()
我们把 c i c_i ci 单独提取出来:
R ( x ) = c i x − x i + P i ( x ) ∏ j ≠ i ( x − x j ) R(x)=\frac{c_i}{x-x_i}+\frac{P_i(x)}{\prod_{j\neq i}(x-x_j)} R(x)=x−xici+∏j=i(x−xj)Pi(x)
其中 P i P_i Pi 为一个次数小于 ℓ − 1 \ell-1 ℓ−1 的多项式。
那么:
P ( x ) = Q ( x ) R ( x ) = c i ∏ j ≠ i ( x − x j ) + P i ( x ) ( x − x i ) P(x)=Q(x)R(x)=c_i\prod_{j\neq i}(x-x_j)+P_i(x)(x-x_i)\\ P(x)=Q(x)R(x)=cij=i∏(x−xj)+Pi(x)(x−xi)
将 x = x i x=x_i x=xi 代入(准确地说,是计算 x → x i x\to x_i x→xi 时的值):
P ( x i ) = c i ∏ j ≠ i ( x i − x j ) c i = P ( x i ) ∏ j ≠ i ( x i − x j ) \begin{aligned}P(x_i)&=c_i\prod_{j\neq i}(x_i-x_j)\\c_i&=\frac{P(x_i)}{\prod_{j\neq i}(x_i-x_j)}\end{aligned} P(xi)ci=cij=i∏(xi−xj)=∏j=i(xi−xj)P(xi)
对于下式,我们使用洛必达法则处理:
∏ j ≠ i ( x i − x j ) = lim x → x i Q ( x ) x − x i = lim x → x i Q ′ ( x ) = Q ′ ( x i ) \prod_{j\neq i}(x_i-x_j)=\lim_{x\to x_i}\frac{Q(x)}{x-x_i}=\lim_{x\to x_i}Q'(x)=Q'(x_i) j=i∏(xi−xj)=x→xilimx−xiQ(x)=x→xilimQ′(x)=Q′(xi)
于是:
c i = P ( x i ) Q ′ ( x i ) c_i=\frac{P(x_i)}{Q'(x_i)} ci=Q′(xi)P(xi)
再根据 [ x n ] 1 x − x i = − 1 x i n + 1 [x^n]\frac{1}{x-x_i}=-\frac{1}{x_i^{n+1}} [xn]x−xi1=−xin+11,即可得证。
看到了另一种方法,是直接从递推数列的角度解释的:
考虑常系数齐次递推数列
h n = a 1 h n − 1 + a 2 h n − 2 + ⋯ + a k h n − k , a k ≠ 0 ( n ≥ k ) h_n=a_1h_{n-1}+a_2h_{n-2}+\cdots+a_kh_{n-k},\quad a_k\neq 0\quad (n\geq k) hn=a1hn−1+a2hn−2+⋯+akhn−k,ak=0(n≥k)
称 x k = a 1 x k − 1 + ⋯ + a k x^k=a_1x^{k-1}+\cdots+a_k xk=a1xk−1+⋯+ak 为该数列的特征方程。解特征方程可以得到 k k k 个非零根 q 1 , ⋯ , q k q_1,\cdots,q_k q1,⋯,qk,假设它们两两不同。
那么 h n = q i n h_n=q_i^n hn=qin 就满足这个递推数列,意味着对于任意选定的常数 c 1 , ⋯ , c k c_1,\cdots,c_k c1,⋯,ck,
h n = c 1 q 1 n + c 2 q 2 n + ⋯ + c k q k n h_n=c_1q_1^n+c_2q_2^n+\cdots+c_kq_k^n hn=c1q1n+c2q2n+⋯+ckqkn
也满足这个递推数列。
那么对于给定的初项 h 0 , ⋯ , h k − 1 h_0,\cdots,h_{k-1} h0,⋯,hk−1,我们只需选定恰当的常数 c 1 , ⋯ , c k c_1,\cdots,c_k c1,⋯,ck 使得对于任意的 n ∈ [ 0 , k − 1 ] n\in[0,k-1] n∈[0,k−1] 都满足 h n = c 1 q 1 n + ⋯ + c k q k n h_n=c_1q_1^n+\cdots+c_kq_k^n hn=c1q1n+⋯+ckqkn,那么就能使对于任意的 n ≥ k n\geq k n≥k 也都满足通项公式 h n = c 1 q 1 n + ⋯ + c k q k n h_n=c_1q_1^n+\cdots+c_kq_k^n hn=c1q1n+⋯+ckqkn。
具体来说,我们需要解这个方程:
[ 1 1 ⋯ 1 q 1 q 2 ⋯ q k q 1 2 q 2 2 ⋯ q k 2 ⋮ ⋮ ⋱ ⋮ q 1 k − 1 q 2 k − 1 ⋯ q k k − 1 ] [ c 1 c 2 c 3 ⋮ c k ] = [ h 0 h 1 h 2 ⋮ h k − 1 ] \begin{bmatrix}1&1&\cdots&1\\q_1&q_2&\cdots&q_k\\q_1^2&q_2^2&\cdots&q_k^2\\\vdots&\vdots&\ddots&\vdots\\q_1^{k-1}&q_2^{k-1}&\cdots&q_k^{k-1}\\\end{bmatrix}\begin{bmatrix}c_1\\c_2\\c_3\\\vdots\\c_k\end{bmatrix}=\begin{bmatrix}h_0\\h_1\\h_2\\\vdots\\h_{k-1}\end{bmatrix} ⎣⎢⎢⎢⎢⎢⎡1q1q12⋮q1k−11q2q22⋮q2k−1⋯⋯⋯⋱⋯1qkqk2⋮qkk−1⎦⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎡c1c2c3⋮ck⎦⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎡h0h1h2⋮hk−1⎦⎥⎥⎥⎥⎥⎤
听说左边那个系数矩阵叫范德蒙德矩阵,然后它有逆(满秩)当且仅当 q i q_i qi 各不相同,于是在 q i q_i qi 各不相同的假设前提下,该方程有唯一解。
最开始的那个方法应该可以理解成是直接将这个方程的解表示了出来。
有理生成函数的一般展开定理
设 R ( x ) = P ( x ) Q ( x ) R(x)=\frac{P(x)}{Q(x)} R(x)=Q(x)P(x),其中 Q ( x ) = ( x − x 1 ) s 1 ⋯ ( x − x ℓ ) s ℓ Q(x)=(x-x_1)^{s_1}\cdots(x-x_{\ell})^{s_{\ell}} Q(x)=(x−x1)s1⋯(x−xℓ)sℓ 且 x 1 , ⋯ , x ℓ x_1,\cdots,x_{\ell} x1,⋯,xℓ 两两不同, P ( x ) P(x) P(x) 是一个次数小于 ∑ s i \sum s_i ∑si 的多项式。那么:
[ x n ] R ( x ) = ∑ i = 1 ℓ f i ( n ) x i n [x^n]R(x)=\sum_{i=1}^{\ell}\frac{f_i(n)}{x_i^{n}} [xn]R(x)=i=1∑ℓxinfi(n)
其中 f i ( n ) f_i(n) fi(n) 是次数为 s i − 1 s_i-1 si−1 的关于 n n n 的多项式。
证明:
R ( x ) R(x) R(x) 一定能被表示成如下形式:
R ( x ) = C 1 ( x ) ( x − x 1 ) s 1 + ⋯ + C ℓ ( x ) ( x − x ℓ ) s ℓ R(x)=\frac{C_1(x)}{(x-x_1)^{s_1}}+\cdots+\frac{C_{\ell}(x)}{(x-x_{\ell})^{s_{\ell}}} R(x)=(x−x1)s1C1(x)+⋯+(x−xℓ)sℓCℓ(x)
其中 C i ( x ) C_i(x) Ci(x) 为次数小于 s i s_i si 次的多项式。
于是:
[ x n ] R ( x ) = ∑ i = 1 ℓ ∑ j = 0 s i − 1 ( [ x j ] C i ( x ) ) ( [ x n − j ] 1 ( x − x i ) s i ) = ∑ i = 1 ℓ ∑ j = 0 s i − 1 ( [ x j ] C i ( x ) ) ( − 1 x i ) s i ( 1 x i ) n − j ( n − j + s i − 1 s i − 1 ) = ∑ i = 1 ℓ 1 x i n ∑ j = 0 s i − 1 ( [ x j ] C i ( x ) ) ( − 1 x i ) s i ( 1 x i ) − j ( n − j + s i − 1 s i − 1 ) = ∑ i = 1 ℓ f i ( n ) x i n \begin{aligned}[x^n]R(x)&=\sum_{i=1}^{\ell}\sum_{j=0}^{s_i-1}\bigg([x^j]C_i(x)\bigg)\bigg([x^{n-j}]\frac{1}{(x-x_i)^{s_i}}\bigg)\\&=\sum_{i=1}^{\ell}\sum_{j=0}^{s_i-1}\bigg([x^j]C_i(x)\bigg)\left(-\frac{1}{x_i}\right)^{s_i}\left(\frac{1}{x_i}\right)^{n-j}\binom{n-j+s_i-1}{s_i-1}\\&=\sum_{i=1}^{\ell}\frac{1}{x_i^n}\sum_{j=0}^{s_i-1}\bigg([x^j]C_i(x)\bigg)\left(-\frac{1}{x_i}\right)^{s_i}\left(\frac{1}{x_i}\right)^{-j}\binom{n-j+s_i-1}{s_i-1}\\&=\sum_{i=1}^{\ell}\frac{f_i(n)}{x_i^n}\\\end{aligned} [xn]R(x)=i=1∑ℓj=0∑si−1([xj]Ci(x))([xn−j](x−xi)si1)=i=1∑ℓj=0∑si−1([xj]Ci(x))(−xi1)si(xi1)n−j(si−1n−j+si−1)=i=1∑ℓxin1j=0∑si−1([xj]Ci(x))(−xi1)si(xi1)−j(si−1n−j+si−1)=i=1∑ℓxinfi(n)
与不同根的有理展开定理不同的是, C i ( x ) C_i(x) Ci(x)(以致于 f i ( n ) f_i(n) fi(n))都不能被直接表示出来。
但我们仍然可以通过待定系数列方程的方法求出它们。
其他
事实上,本文所讨论的方法在实际应用中往往因很难求得多项式的所有根而受到限制。
一般来说,对于一个已经给定的递推数列,要求它的通项公式,往往用生成函数会是通法,下面记录了一些常见形式的生成函数:
{ k n } n : 1 1 − k x \{k^n\}_{n}:\frac{1}{1-kx} {kn}n:1−kx1。
{ n k } n \{n^k\}_n {nk}n:通过 1 1 − x \frac{1}{1-x} 1−x1 的 0 ∼ k 0\sim k 0∼k 阶导数进行线性组合得到。
有理展开定理与递推数列通项公式相关推荐
- 3a2b递归排列java,高考数学解题技巧-递推数列通项公式的十种策略例析
求递推数列通项公式的十种策略例析 递推数列的题型多样,求递推数列的通项公式的方法也非常灵活,往往可以通过适当的策略将问题化归为等差数列或等比数列问题加以解决,亦可采用不完全归纳法的方法,由特殊情形推导 ...
- 母函数求递推的通项公式(一)
总是看到有人问递推的通项公式如何求,母函数(Generating function)是一个很好用的工具, 现总结如下以供学习 母函数是组合数学里面的概念,其实就是这坨东西 是不是看不明白,确实有些生疏 ...
- [线性代数学习笔记] 线性递推数列及 Berlekamp-Massey 算法的详细推导过程
线性递推数列 线性递推 对于无限数列 {a0,a1,...}\{a_0,a_1,...\}{a0,a1,...} 和有限非空数列 {r0,r1,...,rm−1}\{r_{0},r_1,...,r ...
- a(n+1) = f[a(n)] 型递推数列的迭代作图(玩计算器玩出了问题)
把任意一个正数开平方再加 \(1\), 把得到的结果也开平方再加 \(1\), 不断算下去,最终总会得到 \( \frac{3+\sqrt{5}}{2} \approx 2.61804 \), 即: ...
- 线性递推数列_学习笔记
前置知识:线代基础(越多越好 发现了一位老哥写的笔记,精炼得相当到位 (这是博客地址嗷) . 线性递推数列 基本性质 定理1.1. 对于无限数列 { a 0 , a 1 , a 2 . . . } \ ...
- 遍历递归树求递推数列通项
考虑K阶变系数线性递推方程: 现给定初值a1,a2,-,ak和n>k,要求编程打印an,an-1,-,ak+1的值 该问题用常规的迭代法非常容易解决,现在要考虑的是用遍历递归调用树的方法求解.n ...
- 【学习笔记】线性递推数列
1.11.11.1 定义:对于无限数列{a0,a1,a2,...}\{a_0,a_1,a_2,...\}{a0,a1,a2,...}和有限非空数列{r0,r1,r2,...,rm−1}\{r_0 ...
- 错排公式 ——递推与通项公式
错排公式 一.定义: 错排问题,是组合数学中的问题之一.考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排. n个元素的错排数记为D(n).研 ...
- Loj 538 递推数列
Loj 538 递推数列 出题人:这题提高难度吧.于是放在了%你赛的 \(D1T2\) . 递推式为 \(a_i=k*a_{i-1}+a_{i-2}\) , 注意到 \(k\in \mathbb{N_ ...
最新文章
- CVS代码管理的一个小错误
- linux make链接.o文件,Linux操作系统至gcc编译器、makefile
- go mongodb排序查询_【赵强老师】MongoDB中的索引(下)
- Java Bean Validation 最佳实践
- UVA307 Sticks小木棍
- 有用的网址集合, IT杂谈
- acwing2058. 笨拙的手指(进制转换)
- StringEscapeUtils类的使用
- Python——Python3.6.0+Scrapy安装方法(总算没有bug了)
- django-视图中的request对象的属性
- 将byte数组写进文件,指定buffer size
- Linux SVN迁移备份的三种方法
- 解决VScode在保存less文件时,自动生成对应的css文件以及安装Easy less之后,计算式子不显示结果的问题
- 安卓调用科大讯飞语音
- 寻找2020java 蓝桥杯
- C系新版凯立德推荐版本G1036
- 全面掌握Java多线程
- c++ ends理解
- 解决: 在路径为[/StudentManagerWeb]的上下文中,servlet[LoginServlet]的Servlet.service()引发异常 java.lang.NullPointe
- 数据库复习 BCNF分解算法