高中数学/不等式与数列/不动点法

来自testwiki
跳转到导航 跳转到搜索

阅读指南

Crystal Clear app gnome

在前面一阶递推关系的求解章节中我们已经知道,对于an+1=2an+3这样的数列,我们可以将其改写为an+1+1=2(an+2),从而将{an+2}整体地当作一个等比数列套用公式。如果系数更麻烦一点,比如对于an+1=2an+4这样的数列,原则上还是可以拆分常数,然后在等号的左右两边分别构造出等比数列。但是此时的常数如何拆分不那么容易直接尝试出来。一个比较容易想到的办法是采用待定系数法,先提前假设构造好的数列具有an+1+d=2(an+d)的形式,初步化简后再和原来的an+1=2an+4放在一起,比较各对应项的数值,即可确定与原关系式匹配的d值。

本节介绍的不动点法则是确定这个待定构造系数的更直接、简便的方法。不动点法可以解决形如an+1=pan+q的非齐次一阶常系数线性递推关系式的构造,也可以解决形如an+1=Aan+BCan+D的一阶常系数分式线性递推关系式的构造。除了这2种类型的递推式之外,少数可以转换为这2种情形的特例也可以使用不动点法求解构造系数。

这类不动点法的主要特点就是:

  • 适用条件容易判断
  • 用起来爽(对于不少常见情况而言)
  • 解释起来很麻烦

本节花费了不少篇幅提及这些方法背后的由来,其中多半不可避免地会介绍一些来自后续数学课程中的背景知识。如果读者对于不动点法的使用完全没有经验,建议先接触一些应用不动点解题的例题。了解不动点法解题的大致流程后,再根据需要了解其背后的由来,不然容易对其中的一些推敲思路产生困惑。

考试要求

不动点法并不被列入普通高中的考试大纲,因此在常规的高中考试中不能直接声明是在借助不动点法解题。但是利用不动点法的确可以快速求出所需的待定系数,识别适合使用不动点的问题并能快速地在草稿纸上用此方法求出所需的系数还是比较有必要掌握的。

基础知识

不动点的概念

定义:对于1个给定的函数f(x),能使f(x)=x成立的自变量取值x=x0叫做该函数的不动点(fixed point)[1][2]

与递推式形式一致的函数也被叫做递推关系式的特征函数characteristic function)或背景函数[1]。递推式特征函数的不动点也叫做递推式的不动点。不动点在对应函数图象上的对应点也叫做函数图象的不动点[2]

在解决高中数列递推问题时,我们讨论的不动点都是可逆函数的不动点。可逆函数的不动点有以下特点:

  • 如果(x0,y0)是可逆函数y=f(x)的不动点,等价于(y0,x0)是其反函数x=f1(y)的不动点。换句话说,可逆函数的不动点与其反函数的不动点是一一对应的。
  • 函数的不动点坐标具有(x0,x0)的形式,即不动点一定是函数图象与特殊直线y=x的交点。
  • 如果把可逆函数y=f(x)与其反函数x=f1(y)的图象画在同一个直角坐标系中,则它们的图象交点都是不动点。

不动点本身是拓扑学的知识点,表示物体或空间在某种拓扑变换的作用下,仍保持固定不动的点。它的几何意义是函数图象与恒等变换直线y=x交点的横坐标。但是它也出现在有关数列的解题方法中。

利用不动点简化一阶常系数线性递推关系式的通项求解

在从递推式an+1=pan+q(p1)构造等比数列的过程中,使用待定系数法所求的需要分配到等式两边的数值,刚好就可以用对应函数f(x)=px+q的不动点来确定。我们先给出用不动点法解决这类数列的通用解题步骤,然后结合例题说明它的具体运用。

Crystal Project Warehause 用不动点法可以求出一阶线性递推数列an+1=pan+q (其中p和q为常数,且p1)的通项的一般式[3]。其主要步骤为:
(1) 写出与an+1=pan+q对应的特征函数f(x)=px+q
(2) 求出函数f(x)的不动点x0,即求解方程f(x0)=x0px0+q=x0,解得:x0=q1p
(3) 在原始an+1=pan+q的等号两边同时减去刚才求出的不动点x0,即:

an+1x0=pan+qx0an+1x0=p(an+qx0p)an+1x0=p(anx0)

(4) 将anx0整体地看作一个等比数列求解,求出anx0的表达式后,an的表达式自然也就知道了。

可以证明,这样求得的最终结果形式为an=a1pn1+q(1pn1)1p[3]。但是实际上,解题时并不需要记住这个最终形式,只需要记住上面的几个关键步骤即可。

Crystal Clear action info 提示:如果求出的不动点形式比较复杂(例如算出的解带着根号跑),此时使用不动点法对于简化数列构造时的系数运算也无法提供太多帮助。求解兔子数列的通项公式问题就是一个例子。

一阶常系数线性递推关系式的不动点解法由来

关于在一阶常系数线性递推关系式的通项求解中,为什么会与不动点的概念产生联系,我们在这里给予一个比较简单的论证。

先设an+1=kan+d
再假设我们期待的构造好的等比数列形式an+1p=k(anp)
用后一式的两端同时对前一式的两端作差,可得:
(an+1p)an+1=k(anp)(kan+d)p=kpdp=kp+d
最后一个式子显然说明所需要的常数p就是函数f(x)=kx+d的不动点。

从几何上讲,从截距不为零的一次函数(对应于上述非齐次一阶线性递推关系式)变形为正比例函数(对应于构造出来的等比数列满足的关系式)的变换就是一种图象平移操作,而此类函数的不动点提供了同时沿y轴方向和x轴方向进行图象平移的距离参考值。

一阶常系数分式线性递推关系式的概念及其通项的待定系数解法

形如an+1=Aan+BCan+D的一阶常系数分式线性递推关系式的构造也可以借助不动点的求解实现[2]

Crystal Clear action info 提示:我们先在本小节简述如何使用待定系数法求这类分式线性递推式通项的大体思路,再在后面的小节介绍基于不动点法的优化和解题实例,最后谈谈在这类情形下可以使用不动点法的原理。

定义:具有以下形式的递推式an+1=f(an)叫做常系数分式线性递推关系
an+1=Aan+BCan+D(n+,A,B,C,D,ADBC0)

利用不动点简化一阶常系数分式线性递推关系式的通项求解

我们接下来从不动点的角度,指出这种常系数分式线性递推关系的通项公式求解方法。

Crystal Clear action info 提示:本小节前半部分展示的代数变形过程比较冗长罗嗦,主要就是讲述了2种情况下最基本的分类讨论,外加上常见优化步骤的思路由来。没有耐心的读者可以先看结论和具体例题,然后有时间再回过头来大致浏览一下这些纯字母化的运算和论证。

设函数f(x)=Ax+BCx+D满足x,A,B,C,D,ADBC0,其不动点为x=λ。 其不动点满足的方程λ=Aλ+BCλ+D可能只有1个解,也可能有2个不同的解(不同的实数根或不同的虚数根)[4]

如果x0为以上方程的任何一个根(从而x0也是函数的不动点),那么可以先对原递推式两边同时减去不动点:
an+1x0=Aan+BCan+Dx0=(ACx0)(anx0)Can+D
再对上式两侧同时颠倒可得:
1an+1x0=Can+D(ACx0)(anx0)=Cx0+DACx01anx0+CACx0
由上式可知此时{1anx0}整体来说是一个一阶常系数线性递推数列,且包含有取值为常数的非齐次项。

如果不动点方程λ=Aλ+BCλ+D的2个根是重根,则有x1=x2=AD2CCx1+DACx1=1。此时可以继续化简:
1an+1x0=Cx0+DACx01anx0+CACx0=1anx0+CACx0
{1anx0}变为以1a1x0为首项、CACx0为公差的等差数列,易知其通项为:
1anx0=1a1x0+2C(n1)A+D 既然在这种情形下都已经得到1anx0的解析式,从而an的解析式也容易知道了。

如果不动点方程λ=Aλ+BCλ+D有2个相异的根,那么最直接的想法是只能麻烦一点,针对得到的常系数线性递推式再使用不动点法构造一次:
1an+1x1+1x1x2=ACx1ACx2(1anx1+1x1x2)
此时{1anx1+1x1x2}构成公比为ACx1ACx2的等比数列,即:
1anx1+1x1x2=(1anx1+1x1x2)(ACx1ACx2)n11anx1=(1anx1+1x1x2)(ACx1ACx2)n11x1x2an=x2(a1x1)(ACx1)n1x1(a1x2)(ACx2)n1(a1x1)(ACx1)n1(a1x2)(ACx2)n1

如果方程有2个不等的根x1x2(是不同的实数根或不同的虚数根都行),此时还有一种基于不动点但是构造方向与上述思路有一些差异的解法。先在原递推式的两侧分别减去这2个根,可以得到:
{an+1x1=(ACx1)(anx1)Can+Dan+1x2=(ACx2)(anx2)Can+D
如果观察上述2个式子,可以发现它们的右侧都有相同的分母,且右侧的分子形式非常相似,最好能利用这个相同点去掉它们的分母。于是不妨对上述2个式子的两端同时作商(相除)可得:
an+1x1an+1x2=kanx1anx2,其中k=ACx1ACx2
易知此时{anx1anx2}整体来说是一个以a1x1a1x2为首项、k为公比的等比数列,所以得到{anx1anx2}的通项公式:
anx1anx2=a1x1a1x2kn1=(ACx1ACx2)n1a1x1a1x2
既然已经得到anx1anx2的解析式,从而an的解析式也容易知道了。
这种方法此时可以更快地得到同样的最终结果:
an=x2(a1x1)(ACx1)n1x1(a1x2)(ACx2)n1(a1x1)(ACx1)n1(a1x2)(ACx2)n1

Crystal Project Warehause 综上所述,我们可以将常系数分式线性递推式的通项求解思路简化如下[5]

  • 当只有1个不动点时,可以对原递推式的两边同时减去不动点,然后再同时取倒数,进而转化为等差数列求解。
  • 当有2个相异的不动点时,可以先对原递推式的两边同时减去第1个不动点并取倒数,再对原递推式的两边同时减去第2个不动点并取倒数,然后将分别得到的2个式子作商,进而转化为等比数列求解。

分式线性变换的概念与分式线性递推式的不动点解法由来

定义:具有以下形式的函数f:叫做分式线性变换linear fractional transformation):
f(x)=Ax+BCx+D(A,B,C,D,ADBC0)

因为德国数学家奥古斯特·莫比乌斯曾对其进行过大量研究,所以分式线性变换也叫做莫比乌斯变换Möbius transformation)。[4]

通过简单的分式分解,易知莫比乌斯函数可以分解为以下形式: f(x)=BCADC1Cx+D+AC 由于我们只考虑自变量值取实数的情形,因此可以对于特定的一组系数可以画出函数的图像。而由上述表达式的图象性质可知,分式线性变换是可逆的。

容易验证以下性质:

  • 分式线性变换f(x)=Ax+BCx+D(ADBC0)的逆变换(即反函数)为[4]
x=Dy+BCyA
  • 一次函数是特殊的分式线性变换[4]
  • 分式线性映射之间的复合结果仍然是分式线性变换[4]
  • 如果x=x0是分式线性变换f(x)的不动点,等价于f(x0)是其反函数的不动点。这是因为可逆函数的不动点与其反函数的不动点是一一对应的。

我们下面先通过一种计算量较少的思路来说明使用待定系数法时,第一步减去的常数一定是其不动点的原因。
按照待定系数法的思路,假定对分式线性变换解析式的f(x)两侧同时减去某个合适的常数P再同时取倒数后,能得到形式一致的分母。先做第一步减法,得:
an+1P=Aan+BCan+DP=Aan+BPCanDPCan+D=(APC)an+(BDP)Can+D
要使上面的式子取倒数后的分母满足要求,由于分母取倒数前是位于分子的位置,基于前面的解题实例可知,我们只需要保证上式最左边的量与最右边的分子形式相似即可。
即只需要使an+1P(APC)an+(BDP)的对应系数成相同比例即可。即:
1APC=PBDP,解得:P=BDPCPA
显然,这个所需的P值是f(x)的反函数的不动点。根据前面总结的性质,可知P也是f(x)的不动点。
即对f(x)两侧同时减去其不动点后,再取同时倒数,就一定能构造出一次的常系数非齐次递推式。

从同胚变换的角度理解函数迭代与递推式求解

也可以从函数同胚变换(也就是函数相似变换)的角度出发,来理解函数的多重迭代与分式线性递推式的求解。不动点法在这两类问题中都有登场出现。首先由于一次函数属于特殊的分式线性变换,而且分式线性变换是可逆变化,所以自然想到能否将分式线性递推式还原为某种更简单的一次线性递推式的形式。求出与之相关的一次线性递推式的迭代结果后,再利用逆变换反推出原递推式的多次迭代结果。另一方面,我们已经知道使用不动点法可以简化一次线性递推式的求解,我们希望将不动点也整合到分式线性变换还原为线性递推式的系数配凑过程中。

使得f(x)可以与另一个函数g(x)建立下列联系的可逆函数T(x)叫做桥函数 [6]
f(x)=T1(g(T(x)))

此时f(x)g(x)叫做关于桥函数T(x)的一对相似函数[6],或者说f(x)g(x)关于桥函数T(x)互为相似函数。用拓扑学术语来说,桥函数是一种同胚homeomorphism)变换,它建立了f(x)g(x)之间的拓扑共轭topological conjugacy)。

桥函数是计算函数迭代或巧妙构造数列的辅助函数。通过找到合适的桥函数,把不易得到迭代公式的f(x)变为容易得到迭代公式的形式更简单的g(x),计算完g(x)的n次迭代结果后,再使用桥函数的逆变换即可得到f(x)的n次迭代式。这种思路把函数迭代的问题转化为桥函数的寻找与研究问题。

可以通过数学归纳法验证函数f(x)的上述相似性(也就是拓扑共轭性)满足以下规律(T(x)f(x)的桥函数,g(x)是其共轭,下标表示迭代计算的次数)[6]
fn(x)=T1(gn(T(x)))

Crystal Clear app kdict 知识背景:将函数借助一个可逆的辅助函数,变换到另一个更容易求解或更容易研究的形式,在数学与物理学的许多分支中都是常见思想。矩阵对角化傅立叶变换Z变换卷积等技巧都是这类思想的体现。用泛函分析的术语来说,函数可以看成抽象空间中的点,如果一个函数直接研究起来不方便,我们就可以用可逆变换将它挪到其它更简单明了的空间中再研究。变换的可逆性保证了函数本身的某些关键特性在某些恰当选取的空间中并不会改变太多,解决问题以后还可以把结果再变回到原来的空间。

了解了桥函数方法的转换思想,下面使用不动点法的动机就是借助不动点套出桥函数可能满足的性质,以便确定所需桥函数中的未知待定系数。只要确定了桥函数的各个细节,就可以通过相似变换的方法巧妙地得到原函数的n次迭代式。

Crystal Project Warehause 假设f(x)=T1(g(T(x))),且x0f(x)的不动点,那么T(x0)一定也会是g(x)的不动点[6]。这说明如果我们求出了f(x)的不动点,并且有了简单可行的T(x),那么g(x)的不动点也就知道了。

通常为了便于求解g(x)的n次迭代式,可以尝试将g(x)取为下列形式[6]

  • g(x)=x+a
  • g(x)=ax
  • g(x)=ax2
  • g(x)=ax3

对于这几种情况,g(x)的不动点为0或。此时如果f(x)只有唯一的不动点a,可以考虑取g(x)=xag(x)=1xa;如果f(x)有2个相异的不动点a和b,则可以考虑取g(x)=xaxb

就分式线性变换的例子来说,如果我们先求出了f(x)=Ax+BCx+D的不动点x0,那么如果还能通过尝试一些特例猜出合适的桥函数具有T(x)=1xk的形式,并且目标函数是一次函数,那么p=T(x0)也一定是一次函数g(x)=x+b的不动点。即有下列关系式成立:
p=g(p)p=p+b
我们先不急着移项。因为我们可以从包含无穷大的扩展实数线扩充复平面上考虑问题,易知从方程λ=λ+b(b0)解出的唯一不动点是λ=。所以p=λ=,即可反推:
T(x0)=p=1x0k=k=x0
所以所求的关键待定系数k就是原函数f(x)的不动点x0

其它可以转换为上述情形的特例

对于二次函数或包含二次项的分式函数,除了恰巧可以用简单的配方法将二次项配凑进某个完全平方式的情形,一般都没有什么好办法获得n次迭代后的简洁表达式[6]

分式线性递推的其它方法概述

其它可以解决分式线性递推式的方法还包括转化为二阶常系数线性递推数列多元递推与矩阵方法

计算机求解

Mathematica

本节介绍的一阶常系数非齐次线性递推式和分式线性递推式都可以用Mathematica软件提供的“RSolve”命令求解出通项公式。我们在这里分别用Mathematica展示2种递推式的通项公式求解方法。它的更多递推式求解用法还会在常系数线性递推数列章节中继续补充。

求解差分方程a1=1,an+1=2an+3的示例:

RSolve[{a[n + 1] == 2 a[n] + 3, a[1] == 1}, a[n], n]; (* 在Mathematica中表示相等,需要2个"="在一起连用 *)

在新单元格(cell)输入完上述命令后,一般按组合键Shift + Enter即可得到结果。

求解分式线性差分方程a1=1,an+1=an+23an+4的示例:

RSolve[{a[n + 1] == (a[n] + 2) / (3 a[n] + 4), a[1] == 1}, a[n], n]; (* 在Mathematica中表示相除,需要使用"/"符号 *)

此题的答案很复杂很可怕哦~

Crystal Clear action info 提示:如果RSolve命令没有输入错误,但是执行后出现“RSolve::deqn: Equation or list of equations expected instead of True in the first argument True.”一类的报错信息,一般是由于没有清除同名标识符中的已有信息。如果是这种情况:(1)可以先在其它地方输入独立命令“ClearAll[a]”清除标识符a中的内容,然后重新执行RSolve命令;(2)也可以改用除a以外的其它未使用过的标识符来命名要求解的数列。

Crystal Clear action info 提示:“RSolve”命令中的“R”是递推(recurrence relation)、递归(recursion)的意思。它与“Resolve”命令拼写相似,但功能不同。Resolve是用于化简约束条件的,例如可以求解一些不等式或不等式组。

Crystal Clear action edit 相关例题1: 已知在数列{an}中,满足a1=1,an+1=2an+3,使用Mathematica求它的通项公式。

解答:
在Mathematica软件中输入命令(因为只有一行命令,分号此时可以不写):
RSolve[{a[n + 1] == 2 a[n] + 3, a[1] == 1}, a[n], n];
然后按组合键Shift + Enter即可得到结果为:an=12((12)n+(1+2)n)

答案:an=3+21+n

Crystal Clear action edit 相关例题2: 已知数列{an}满足a1=1,an+1=2an+3an+4,使用Mathematica求它的通项公式。

解答:
命令用法示例:
RSolve[{a[n + 1] == (2 a[n] + 3) / (a[n] + 4), a[1] == 1}, a[n], n];
然后按组合键Shift + Enter即可得到结果为:an=12((12)n+(1+2)n)

答案:an=3((1)n+(1)1+n51n)3(1)n+(1)n51n

补充习题

Crystal Clear app ksirtet Crystal Clear app laptop battery

参考资料

Template:Reflist

外部链接

Template:Wikipedia Template:Wikipedia