首页 > 技术文章 > 「学习笔记」特征根法求解数列问题

hongzy 2019-10-26 09:59 原文

听说特征法是数学中解常系数线性微分方程的一种通用方法。

而这里简单谈谈特征根法的运用:用数列的递推公式求通项公式,用通项公式求递推公式

特征根方法的证明需要线性代数相关知识,留坑。

斐波那契数列的公式推导

定义\(\text{Fibonacci}\)数列:\(f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2), n\geq 2\)

考虑这个递推式:\(f(n) = f(n - 1) + f(n - 2)\),找到一个一元二次方程与之对应(二次项对应\(f(n)\),一次项对应\(f(n-1)\),常数项对应\(f(n-2)\)

\(x^2 = x + 1\)

这个方程称为特征方程。

解出来特征根:\(x_1=\frac{1+\sqrt 5}{2},x_2=\frac{1-\sqrt 5}{2}\)

\(f(n)=c_1 x_1^n+c_2 x_2 ^n\)。把\(f(0)=0,f(1)=1\)代入,得到了:

\(c_1 + c_2 = 0, c_1 x_1 + c_2 x_2 = 1\)

解得:\(c_1=\frac{1}{\sqrt 5}, c_2=-\frac{1}{\sqrt 5}\),整理后得到:

\[f(n)=\frac{\left(\frac{1+\sqrt 5}{2}\right)^n-\left(\frac{1-\sqrt 5}{2}\right)^n}{\sqrt 5} \]

一般递推式的解法

形式化地,考虑形如\(f(n+2)=pf(n+1)+qf(n)\)的递推式子

我们把上面的式子换成:\(f(n+2)-(x1+x2)f(n+1)+(x1x2)f(n)=0\)

显然\(x1 + x2 = p,x1x2=-q\)。所以\(x1,x2\)\(x^2-px-q=0\)的两个根

\(f(n)\)就可以表示成\(C_1 x_1^n+C_2 x_2^n, C_1,C_2\)是常数

没有实数解怎么办?用复数。

反求递推式

某些时候通项公式可能不好计算,我们只能求出递推式然后矩阵快速幂求

看一个例子:

\(f(n)=\frac{(\sqrt a + b)^n+(\sqrt a - b)^n}{2}\)

\(x_1=\sqrt a + b,x_2=\sqrt a - b\)

特征根方程即\(x^2-2bx+(b^2-a)=0\)(韦达定理)

所以 \(f(n)=2b f(n-1)-(b^2-a)f(n-2)\)

推荐阅读