关于数列不动点问题的一些思考

一、前置芝士

引理1(因式定理)

若对于函数 (f(x)) 有 (f(a)=0),则 (x-a | f(x))。

引理2

若 (f(\alpha)=\alpha),则 (x-\alpha | f(x)-x)。

可通过引理1证明。

由此可得 (f(x)-x=(x-\alpha)\cdot g(x)),也即 (f(x)-\alpha=f(x)-x+x-\alpha=(x-\alpha)\cdot g(x))。

接下来进入正题:利用数列递推式特征函数的不定点,求数列的通项公式。

二、不动点解决数列通项问题两模型

(1) (f(x)=ax+b) 型

给定 (a_{n+1}=a\cdot a_n+b(a\not=0,1)) 以及 (a_1),求 (a_n)。

常用的做法是,构造等比数列。这里直接设 (a_{n+1}+\lambda=a(a_n+\lambda)),解得 (\lambda=\frac{b}{a-1})。

如何用不动点思想理解?考虑设 (f(x)=ax+b),可以得到 (f(a_n)=a_{n+1})。如果我们求出 (f(x)) 的不动点,即 (p) 使得 (p=f(p)),则根据引理2,有 (g(x)\cdot(x-p)=f(x)-p),带回原式,也就找到了 ({a_n-p}) 这一等比数列,这里的系数 (g(x)=a)。

注意,虽然最后构造的数列一样,但是思想是不一样的。下面将继续利用这种不动点思想解决更复杂的问题。

(2) (f(x)=\frac{ax+b}{cx+d}) 型

给定 (a_{n+1}=\frac{a\cdot a_n+b}{c\cdot a_n+d}(c\not=0,ad-bc\not=0)) 以及 (a_1),求 (a_n)。

之前我们遇到过一类形如 (a_{n+1}=\frac{qa_n+p}{pa_n}),做法是取倒数化为等差数列。对于这个类型,依然可以使用此类方法,但不能直接使用倒数法:

[\frac{1}{a_{n+1}}=\frac{c\cdot a_n+d}{a\cdot a_n+b}=\frac{\lambda(a\cdot a_n+b)-\mu}{a\cdot a_n+b} ]

可以发现,由于分母的形式不一样,导致不能直接做。这时候很自然的考虑将分母形式化成一样的,即设

[a_{n+1}+m=\frac{a\cdot a_n+b}{c\cdot a_n+d}+m=\frac{a\cdot a_n+b +m(c\cdot a_n+d)}{c\cdot a_n+d} ]

取倒数,有

[\frac{1}{a_{n+1}+m}=\frac{c\cdot a_n+d}{(a+mc)a_n+(b+md)} ]

若分母形式一样,即 (\frac{a+mc}{1}=\frac{b+md}{m}),可解得 (m)。设 (b_n=\frac{1}{a_n-m}),即可按照类型(1)继续做。

那么这种类型如何使用不动点求解?

设 (f(x)=\frac{ax+b}{cx+d}),不动点 (p) 满足 (p=f(p)),则有 (p(cp+d)=ap+b),化简得 (cp^2+(d-a)p-b=0)。

由引理2可以得到 (a_{n+1}-p=g(x)\cdot (a_n-p)),那么,如何求得 (g(x)) 呢?

我们考虑代回原式,可得

[\begin{aligned} a_{n+1}-p&=\frac{a\cdot a_n+b}{c\cdot a_n+d}-p\ a_{n+1}-p&=\frac{(a-pc)a_n+(b-pd)}{c\cdot a_n+d} \end{aligned} ]

由 (cp^2+(d-a)p-b=0) 可得 (b-pd=cp^2-ap),即

[\begin{aligned} a_{n+1}-p&=\frac{(a-pc)a_n+cp^2-ap}{c\cdot a_n+d}\ a_{n+1}-p&=\frac{(a-pc)a_n-p(a-pc)}{c\cdot a_n+d}\ a_{n+1}-p&=\frac{(a-pc)(a_n-p)}{c\cdot a_n+d} \end{aligned} ]

也即 (g(x)=\frac{a-pc}{cx+d})。

但是这个式子里还是有 (x),不可以直接用等比数列做。我们继续考虑其他方向。注意到 (cp^2+(d-a)p-b=0) 是一个二次方程,考虑对根的个数分类讨论。(\Delta=(d-a)^2+4bc)。

a) (\Delta =0)

设这个根 (x_0=\frac{a-d}{2c}),则有

[\begin{aligned} a_{n+1}-x_0&=\frac{(a-cx_0)(a_n-x_0)}{c\cdot a_n+d}\ \frac{1}{a_{n+1}-x_0}&=\frac{c\cdot a_n+d}{(a-cx_0)(a_n-x_0)}\ \frac{1}{a_{n+1}-x_0}&=\frac{c(a_n-x_0)+\frac{a-d}{2}+d}{(a-\frac{a-d}{2})(a_n-x_0)}\ \frac{1}{a_{n+1}-x_0}&=\frac{c(a_n-x_0)+\frac{a+d}{2}}{\frac{a+d}{2}(a_n-x_0)}\ \frac{1}{a_{n+1}-x_0}&=\frac{1}{a_n-x_0}+\frac{2c}{a+d} \end{aligned} ]

也即 ({\frac{1}{a_n-x_0}}) 是公差为 (\frac{2c}{a+d}) 的等差数列。

b) (\Delta >0)

设这两个根为 (x_1,x_2),则有

[\begin{aligned} a_{n+1}-x_1&=\frac{(a-cx_1)(a_n-x_1)}{c\cdot a_n+d}\ a_{n+1}-x_2&=\frac{(a-cx_2)(a_n-x_2)}{c\cdot a_n+d} \end{aligned} ]

实际上,拿出一个式子来,取倒数,化简之后可以用类型(1)的方法求解。但是这里有一种更快速的方法:注意到 (g(x)=\frac{a-pc}{cx+d}),实际上只需要把分母消掉就可以使用等比数列做了。现在正好有两个同样形式的式子,不难想到直接做比,可以得到

[\frac{a_{n+1}-x_1}{a_{n+1}-x_2}=\frac{a-cx_1}{a-cx_2}\cdot\frac{a_n-x_1}{a_n-x_2} ]

这样前面的系数就变成了一个常数,也即 ({\frac{a_n-x_1}{a_n-x_2}}) 是以 (\frac{a-cx_1}{a-cx_2}) 为公比的等比数列。

c) (\Delta

这个类型还没有研究,但是不动点在这个类型里就几乎难以使用了。朱老师给出了《朱子定理2》,称

朱子定理2 直接将 (x_1,x_2) 写作复数形式代入 b) 类型的式子,可以得到一个复数通项公式。可以证明,当 (n) 取正整数的时候,这个复数通项公式的值为实数。

证明(by knifebrother):实际上很简单,由于 (a_1,a,b,c,d) 都是实数,所以 (a_n) 不可能是复数。

在某些 (a,b,c,d) 的取值下,可以发现 ({a_n}) 是周期数列。未发现此类的通用特征。

总结一下,在真正使用不动点解决此类问题时,由于 (a_1) 给定,那么 (a_2) 也是易求的,如果 (\Delta=0),直接将 (a_1,a_2) 的值带入 (\frac{1}{a_n-x_0}) 可以直接得到公差;同理,(\Delta>0) 时,直接代入得到公比,可以快速解决此类问题。

三、对此类问题的一些思考

不动点的做法是否可以推广到 (a_{n+1}=a\cdot a_n+bn+c) 的形式?或者 (a_{n+1}=a\cdot a_n^2+b\cdot a_n+c)?有待研究。

不动点做法的本质是因式定理这一简单到容易被忽略的定理。有些时候往往一些简便的做法都出自于简单的定理和性质,需要细心观察和记忆。

Original: https://www.cnblogs.com/winterfrost/p/budongdian.html
Author: cunzai_zsy0531
Title: 关于数列不动点问题的一些思考

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/604869/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球