有理展开定理与递推数列通项公式

可以结合 https://blog.youkuaiyun.com/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)=(xx1)(xx) 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=1xin+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)=xx1c1++xxc

其中 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)=xxici+j=i(xxj)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(xxj)+Pi(x)(xxi)

x = x i x=x_i x=xi 代入(准确地说,是计算 x → x i x\to x_i xxi 时的值):

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(xixj)=j=i(xixj)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(xixj)=xxilimxxiQ(x)=xxilimQ(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]xxi1=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=a1hn1+a2hn2++akhnk,ak=0(nk)

x k = a 1 x k − 1 + ⋯ + a k x^k=a_1x^{k-1}+\cdots+a_k xk=a1xk1++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,,hk1,我们只需选定恰当的常数 c 1 , ⋯   , c k c_1,\cdots,c_k c1,,ck 使得对于任意的 n ∈ [ 0 , k − 1 ] n\in[0,k-1] n[0,k1] 都满足 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 nk 也都满足通项公式 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} 1q1q12q1k11q2q22q2k11qkqk2qkk1c1c2c3ck=h0h1h2hk1

听说左边那个系数矩阵叫范德蒙德矩阵,然后它有逆(满秩)当且仅当 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)=(xx1)s1(xx)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=1xinfi(n)

其中 f i ( n ) f_i(n) fi(n) 是次数为 s i − 1 s_i-1 si1 的关于 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)=(xx1)s1C1(x)++(xx)sC(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=1j=0si1([xj]Ci(x))([xnj](xxi)si1)=i=1j=0si1([xj]Ci(x))(xi1)si(xi1)nj(si1nj+si1)=i=1xin1j=0si1([xj]Ci(x))(xi1)si(xi1)j(si1nj+si1)=i=1xinfi(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:1kx1

  • { n k } n \{n^k\}_n {nk}n:通过 1 1 − x \frac{1}{1-x} 1x1 0 ∼ k 0\sim k 0k 阶导数进行线性组合得到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值