第一节:数列的概念

数列(Number sequence),是由许多个数排成一列组成的有序对象。在不至于引起混淆时,也可称为序列(Sequence)或简称,但严格来说,序列不止包括数列(如向量列、函数列也是序列)。

数列可以是有限的,也可以是无限的。不过,不加说明时,数列指的通常是无限数列。

数列可以表示为:

a1,a2,,an,a_1,a_2,…,a_n,…

(其中a1,a2,,an,a_1,a_2,…,a_n,…表示不同的数),通常简记为{an}\{a_n\}。在一些严格的数学分析教材中,也会记为{an}n=1m\{a_n\}^m_{n=1}(表示有限数列a1,a2,,ama_1,a_2,…,a_m)或{an}n=1\{a_n\}^∞_{n=1}(表示无限数列)。

数列的函数性与通项公式

数列可以视为一个从自然数集N或正整数集Z+(或其子集)映射到实数集R或复数集C的函数:

f:NRnanf:N→R\\ n↦a_n

其中{an}\{a_n\}表示数列的第nn项。

函数f(n)f(n)称为数列的通项公式,通项公式未必唯一。

Example

数列1,4,9,16,25,1,4,9,16,25,…的通项为an=n2a_n=n^2

数列0,1,20,1,2的通项可以是an=n1(n=1,2,3)a_n=n−1(n=1,2,3),也可以是an=(n1)!a_n=(n−1)!

数列1,1,1,1,−1,1,−1,1,…的通项可以是an=(1)na_n=(−1)^n,也可以是an=cosnπ2a_n=\cos \frac {nπ}{2}

数列的递推公式

数列的递推公式(Recurrence formula)或递推关系(Recurrence relation),简单来说,就是将项ana_n表示为之前项的函数。也就是说,an=f(an1,,a1)a_n=f(a_{n−1},…,a_1)

这种关系式一般给定了几个项的值(如a1=1a_1=1),称为初值条件(initial condition)

Example

斐波那契数列(Fibonacci sequence)是典型的递推关系数列。用{fn}\{f_n\}表示Fibonacci数列,则{fn}\{f_n\}的递推关系和初值条件为:

f0=0,f1=1fn=fn1+fn2f_0=0,f_1=1\\f_n=f_{n−1}+f_{n−2}

这个数列和兔子繁殖问题有关:设一对小兔子需要两个月成熟,从第三个月起一对成熟的兔子会产生一对小兔子,新生的小兔子同样需要两个月成熟。第n个月有多少对小兔子?

这个问题最先由Fibonacci提出,并得到了上面的递推关系式。因此,我们称这个数列为Fibonacci数列,而其中的每一项称为Fibonacci数。

数列的子列

一个数列的子列(Subsequence),指的是从其中取出一部分项(可以有限或无限)并且不破坏原来的顺序关系构成的新数列。

例如,数列1,2,3,,n,1,2,3,…,n,…的一个子列是1,3,51,3,5(有限子列),一个子列也可以是1,3,5,1,3,5,…(无限子列)。而{5,3,1}\{5,3,1\}{3,2,1,5,6,}\{3,2,1,5,6,…\}不是这个数列的子列,因为它们改变了项的顺序。

数列{an}\{a_n\}的子列通常用{ank}\{a_{n_k}\}表示,其中{nk}\{n_k\}每一项皆为自然数(或正整数),且k:nk+1>nk∀k:n_{k+1}>n_k(也就是{nk}\{n_k\}严格递增,数列“严格递增”的定义见下面“单调性”)。或者,简单说,这就是一个“复合数列”。

数列的差分

一个数列的差分(Difference),指的是数列的相邻两项之差。

差分分为两种,数列ana_n前向差分an+1ana_{n+1}−a_n,记为ΔanΔa_n。而后向差分则是 anan1a_n−a_{n−1},记为 an∇a_n (并且通常补充定义 a1=a1∇a_1=a_1)。

前向差分和后向差分实际上只差一个平移。容易发现an+1=Δann2∇a_{n+1}=Δa_n (n≥2)

差分依然是一个数列,可以继续做差分运算。一般地,一个数列差分kk次之后的数列称为其 kk 阶差分,可以分别定义 kk 阶前向差分和 kk 阶后向差分,记为 ΔkanΔ^ka_nkan∇^ka_n​。

数列的求和

一个数列的求和 (Summation),通常指的是 nn 项和,在算法领域也称为前缀和。数列的前nn项和也是一个新的数列,通常记作sns_nSnS_n。也就是说,数列ana_n的前nn项和为:

Sn=a1+a2++an=k=1nakS_n=a_1+a_2+⋯+a_n=\sum_{k=1}^{n}ak

其中符号\sum​​称为连加号求和符号,数列的求和与差分互为逆运算。

第二节:数列的性质

数列作为特殊的函数,同样可以讨论它的一些函数性质,并利用这些性质进行分类。

有限性

有限数列和无限数列上面已有涉及。

有界性

若存在实数m,Mm,M,使得n:m<an<M∀n:m<a_n<M,则称数列{an}\{a_n\}有界(Bounded)的,m,Mm,M分别为这个数列的上界(Upper bound)和下界(Lower bound)。

或者,我们可以直接讨论数列的值域。数列的值域也是一个数集,我们完全可以讨论这个数集的有界性,并把值域的有界性作为数列的有界性。这个定义和上面的定义是等价的。

单调性

类似于函数的单调性,但由于数列是离散的,我们只需要比较每对相邻的项:

  • 若一个数列{an}\{a_n\}满足nN:an+1an∀n\in \N:a_{n+1}≥an,则称这个数列单调递增(或者单调增加单调上升),简称递增,一般记为{an}\{a_n\}↑或者{an}\{a_n\}↗,并称这个数列为递增数列
  • 若这个数列满足的是nN:an+1>an∀n\in \N:a_{n+1}>a_n,则称这个数列严格递增,或称这个数列是严格递增数列

同样地,递减也可以定义:

  • 若一个数列{an}\{a_n\}满足nN:an+1an∀n\in \N:a_{n+1}≤a_n,则称这个数列单调递减(或者单调减少单调下降),简称递减,一般记为{an}\{a_n\}↓或者{an}\{a_n\}↘,并称这个数列为递减数列
  • 若这个数列满足的是nN:an+1<an∀n\in \N:a_{n+1}<a_n,则称这个数列严格递减,或称这个数列是严格递减数列

Tip:

很容易验证这个定义和函数的单调性是一致的。或者说,如果将数列视为一个定义在自然数或正整数上的函数,那么函数的单调性和数列的单调性等价。

周期性

如果存在某一个正整数 TT,使得 n:an+T=an∀n:a _n+T=a_n,则称数列 {an}\{a_n\}周期数列(Periodic sequence),数 TT 是这个数列的周期(Period)。

容易发现若 TT 是一个数列的周期,则 2T,3T,2T,3T,… 也是这个数列的周期,因此我们称其中最小的一个周期为数列的 最小周期。不加说明时,数列的周期通常指的是最小周期。不同于取值连续的函数,一个数列若是周期数列,则其最小周期必定存在。

周期函数离散化之后未必是周期数列。例如f(x)=sinxf(x)=\sin x 是一个典型的周期函数,但 xn=sinnx_n=\sin n 不是一个周期数列。一般地,设 {xn}\{x_n\}f(x)f(x) 在$ x=1,2,…$ 处抽样得到的离散化数列,若 f(x)f(x) 的一个周期是有理数,则 {xn}\{x_n\} 是周期数列。

两个周期数列相加之和依然是周期数列。设 {an}\{a_n\} 的周期为 T1T_1{bn}\{b_n\} 的周期为 T2T_2,则有 {an+bn}\{a_n+b_n\} 的一个周期为 [T1,T2][T_1,T_2](未必最小,其中 [T1,T2][T_1,T_2] 表示 T1T_1T2T_2 的最小公倍数。)

第三节:一些重要的数列

等差数列

如果一个数列的邻项之差(也就是差分)都等于同一个数,那么这个数列就是等差数列(arithmetic sequence),这个数称为公差(common difference),一般用字母dd​表示。

定义的条件可以用符号表示为:

an+1an=da_{n+1}−a_n=d

等差中项

等差数列的连续三项a1,a2,a3a_1,a_2,a_3中,a2a_2称为a1a_1a3a_3等差中项

等差数列的通项

等差数列的通项为an=a1+d(n1)a_n=a_1+d(n−1),这个公式可以由数学归纳法证明。

Proof:

设等差数列的第一项为a1a_1,公差为dd,用数学归纳法证明如下:

  1. n=1n=1时,a1=a1+d(11)a_1=a_1+d(1−1)显然成立;
  2. 假设an1=a1+d((n1)1)a_{n−1}=a_1+d((n−1)−1),那么

an1=an+d=a1+d((n1)1)+d=a1+d(n1) a_{n-1} = a_n + d \\ = a_1+d((n-1)-1)+d\\ = a_1+d(n-1)

也成立。

所以通项公式对所有的nZ+n\in \Z^+都成立。

Q.E.D.

等差数列的前nn项和

等差数列的前nn项和为Sn=n(a1+an)2S_n=\frac{n(a_1+a_n)}{2}或者Sn=na1+n(n1)2dS_n=na_1+\frac{n(n-1)}{2}d

Proof:

设等差数列{an}n=1\{a_n\}^{\infty}_{n=1}的前nn项为a1,a2,a3,...,ana_1,a_2,a_3,...,a_n,公差为dd​。则有:

Sn=i=1nai=12i=1n(ai+ani+1)=12n(a1+an)=n(a1+an)2S_n = \sum^{n}_{i=1}a_i\\ = \frac{1}{2}\sum^{n}_{i=1}(a_i+a_{n-i+1})\\ = \frac{1}{2}n(a_1+a_n)\\ = \frac{n(a_1+a_n)}{2}

代入通项公式an=a1+d(n1)a_n=a_1+d(n−1)就有:

Sn=n(a1+an)2=na1+n(n+1)2dS_n = \frac{n(a_1+a_n)}{2}=na_1+\frac{n(n+1)}{2}d

Q.E.D.

等比数列(几何数列)

如果一个数列的邻项之比都等于同一个数,则称这个数列为等比数列几何数列(geometric arithmetic),这个数称为数列的公比(common ratio),一般用字母qq表示。

定义的条件可以表示为:

an+1an=q.\frac {a_{n+1}} {a_n}=q.

等比中项

等比数列的连续三项a1,a2,a3a_1,a_2,a_3中,a2a_2称为a1a_1a3a_3等比中项

等比数列的通项

等比数列的通项公式为an=a1qn1a_n=a_1q^{n−1}。同样地,这个公式可以由数学归纳法证明。

不过,重复这种数学归纳过程有点trivial,所以以下我们尝试用等差数列推出等比数列公式的证明:

Proof:

(商化差,最先想到的是对数)

a1>0a_1>0q>0q>0时,我们可以对an+1an=q\frac {a_{n+1}} {a_n}=q取对数,得到:

lnan+1lnan=lnq\ln a_{n+1}- \ln a_n=\ln q

这说明{lnan+1}\{\ln a_{n+1}\}是公差为lnq\ln q的等差数列,它的通项公式为:

lnan=lna1+(n1)lnq=lna1qn1.\ln a_n=\ln a_1+(n−1)\ln q=\ln a_1q^{n−1}.

所以有an=a1qn1a_n=a_1q^{n−1}

a1>0a_1>0q<0q<0时,我们可以乘上(1)n+1(−1)^{n+1},转换为公比为正的数列。

a1<0a_1<0时,我们则可以取相反数得到首项为正的等比数列。

Q.E.D.

等比数列的前nn​项和

q1q\neq 1时,等差数列的前nn项和为Sn=a1(1qn)1qS_n=\frac{a_1(1-q^n)}{1-q}或者Sn=a1anq1qS_n=\frac{a_1-a_nq}{1-q}

q=1q=1时,等差数列的前nn项和为Sn=na1S_n=na_1

下证q1q \neq 1的情况:

Proof:

设等比数列{an}n=1\{a_n\}^{\infty}_{n=1}的前nn项为a1,a2,a3,...,ana_1,a_2,a_3,...,a_n,公比为qq​。则有:

Sn=i=1na1qn1qSn=i=1na1qnS_n=\sum^{n}_{i=1}a_1q^{n-1}\\ qS_n=\sum^{n}_{i=1}a_1q^n\\

所以有:

(1q)Sn=a1(1qn)Sn=a1(1qn)1q(1-q)S_n=a_1(1-q^n)\\ S_n=\frac{a_1(1-q^n)}{1-q}

代入通项公式an=a1qn1a_n=a_1q^{n−1}就有:

Sn=a1(1qn)1q=a1anq1qS_n = \frac{a_1(1-q^n)}{1-q}=\frac{a_1-a_nq}{1-q}

Q.E.D.

Note:

从等差数列和等比数列的英文可以发现,等差数列(arithmetic sequence)的直译为“代数数列”,而等比数列(geometric sequence)直译为“几何数列”。这和代数平均数、几何平均数是一致的。实际上,等差中项就是相邻两个数的(代数)平均数,而等比中项就是相邻两个数的几何平均数。