lambda http://lam8da.github.io 2022-10-06T18:41:38+00:00 lambda2fei@gmail.com 《陶哲轩实分析》笔记(第一部分) http://lam8da.github.io/2022/09/21/terence-tao-analysis-notes/ 2022-09-21T00:00:00+00:00 lambda http://lam8da.github.io/2022/09/21/terence-tao-analysis-notes

\[\def\LIM{\text{LIM}}\]

本文内容主要来自crasysky的cnblogs,在该基础上做了一些修正和补充。非常感谢原博主的辛勤劳动。

附录A 数理逻辑基础

命题

  • 命题通过关系、性质描述,可以利用表达式和词汇。
  • 利用逻辑连接词构造复合命题:合取,析取,否定,当且仅当

蕴含关系

若\(X\)则\(Y\)。 称为\(X\)到\(Y\)的蕴含关系。一个蕴含关系是空虚的,即前提不为真,空虚的蕴含关系表示的命题也是真命题。

变量与量词

  • 自由变量:命题中含有的规定类型但不设定为具体对象的变量,此时命题的是否为真与自由变量的取值有关。设定为具体对象的变量称为约束变量。
  • 全称量词和存在量词
  • 嵌套量词:如\(\forall x,\exists y...\),\(x\)不可依赖于y。外部变量不依赖与嵌套在该变量内部的变量。

相等

对一类对象定义相等关系,要遵守下面的相等公理

  • 自反公理:\(x=x\)
  • 对称公理:若\(x=y\),则\(y=x\)
  • 传递公理:若\(x=y\)且\(y=z\),则\(x=z\)
  • 替换公理:若\(x=y\),则对任何一个函数或运算\(f\)都有\(f(x)=f(y)\),类似地,对任何一个性质\(P\),\(P(x)\)和\(P(y)\)是等价命题。

例如:证明\(a=b\)且\(c=d\)时,有\(a+d=b+c\)。

证:由替换公理:\(a+d=b+d\),\(b+d=b+c\),再用传递公理。

第2章 自然数

皮亚诺公理

皮亚诺公理通过公理1~5描述了唯一的自然数系,intuition大概是:自然数源于我们最熟悉的“数数”,“数数”的本质大概就是\(n++\)这一运算。

  • 公理1:0是自然数
  • 公理2:如果\(n\)是自然数,那么\(n++\)也是自然数

此时可以定义\(1:=0++\) \(2:=1++\) 并可以证明\(2\)是自然数

  • 公理3:对任意一个自然数\(n\),\(n++\neq 0\)

此时可以证明\(4 \neq 0\)

  • 公理4:如果\(n\)和\(m\)是自然数,\(n \neq m\),有\(n++ \neq m++\)

可使用其逆否命题证明\(6 \neq 2\)。 可以看出来公理3和公理4就是在保证\(n++\)的作为\(n\)父亲的树形成了链

  • 公理5:令\(P(n)\)为n的一个某一个性质,若\(P(0)\)为真,且\(P(n)\)为真时\(P(n++)\)一定为真,则对于任意自然数\(n\),\(P(n)\)均为真。

这个公理是为了保证刚才所说的树不会形成多条链,如\(0,0.5,1,1.5,2...\)构成的就是两条链,因为这样一个数系无法得出\(P(0.5)\)为真。公理5也是数学归纳法原理。

至此,我们可以认为存在唯一数系满足皮亚诺公理,也就是自然数系。

加法

加法运算

仍然是受“数数”的影响,我们知道\(3+5\)是\(5\)再往后数\(3\)个数,以此定义加法。

  • 定义:\(0+m:=m\) 递归定义\((n++)+m:=(n+m)++\)

通过数学归纳法对n归纳证明自然数的和仍然是自然数。

  • \(n+0=n\);
  • \(n+(m++)=(n+m)++\);
  • 加法交换律:\(n+m=m+n\)
  • 加法结合律:\((a+b)+c=a+(b+c)\)
  • 消去律:若\(c+a=c+b\),有\(a=b\)

前三条均可对\(n\)归纳证明,后两条可对\(c\)归纳。

以第二条为例: \(0+(m++)=m++=(0+m)++\) 利用归纳假设,\((n++)+(m++)=(n+(m++))++=((n+m)++)++=((n++)+m)++\)

  • 正自然数的定义:自然数\(n\)是正的,当且仅当\(n \neq 0\)

可以归纳证明若\(a\)为正自然数,存在唯一自然数\(b\),满足\(b++=a\)

  • 如果\(a\)是正的,\(b\)是自然数,则\(a+b\)和\(b+a\)是正的

关于\(n \neq 0\)这件事,我们只有公理3提到了,因此还是需要用数学归纳法。

  • 序的概念:称\(n \ge m\)或\(m \le n\),当且仅当存在自然数a使得\(n=m+a\)。\(n\gt m\)或\(m\lt n\)当且仅当\(n \ge m\)且\(n \neq m\)

\(n++\gt n\),无最大自然数

  • 自反性:\(a \ge a\)
  • 传递性:若\(a \ge b\)且\(b \ge c\),则\(a \ge c\)
  • 加法保序性:\(a \ge b\)当且仅当\(a+c \ge b+c\)
  • \(a\lt b\)当且仅当\(a++ \le b\)
  • \(a\lt b\)当且仅当存在正自然数\(d\),\(b=a+d\)
  • 序的三歧性:任意两个自然数\(a\)和\(b\),\(a\lt b\),\(a=b\),\(a\gt b\)中恰一个为真

都可以通过定义设差值证明,序的三歧性先证明至多一个满足,证明至少有一个满足时归纳即可。

  • 强归纳原理:令\(m_0\)为自然数,若此命题成立:“若\(\forall m \ge m_0,\forall m_0\le m'\lt m\)均有\(P(m')\)成立,则\(P(m)\)也为真”,那么对于任何\(m\ge m_0\)均有\(P(m)\)为真。

令\(Q(n)\)为\(\forall m_0\le m'\lt n\)均有\(P(m')\)成立,然后用数学归纳法原理即可证明。

  • 逆向归纳原理:令\(n\)为自然数,若\(P(n)\)为真,且若“若\(P(m++)\)为真,则\(P(m)\)为真”是真命题,那么对于任何\(m\le n\)均有\(P(m)\)为真。

对n归纳即可。

乘法

乘法很自然地用加法来定义,并且部分定理的证明和加法很类似。

  • 定义:\(0\times m:=0\) \((n++)\times m:=(n\times m)+m\)

  • 乘法交换律:\(n\times m=m\times n\)
  • \(nm=0\)当且仅当\(n\)和\(m\)中至少有一个为\(0\)
  • 乘法分配律:\(a(b+c)=ab+ac\)
  • 乘法结合律:\((ab)c=a(bc)\)
  • 乘法保序性:若\(c\)是正自然数且\(a\gt b\)则\(ac\gt bc\)
  • 消去律:若\(ac=bc\)且\(c\)是正的,则\(a=b\)

乘法交换律类似加法交换律,先证明\(n\times 0=0\)和\(n\times (m++)=n\times m+n\)

分配律对任一个变量归纳证明,结合律利用分配律归纳

消去律证明不用归纳,利用乘法的保序性和序的三歧性证明

现在加法和乘法的代数法则非常完备了,我们熟悉的定理(如平方和公式)也很容易证明了。

  • \(q\)是正自然数,存在自然数\(m\)和\(r\),\(0\le r\lt q\),且\(n=mq+r\)

对n归纳证明。以此定义了带余除法,这是数论定理的基础。

  • 指数运算的定义:设\(m\)是自然数,\(m^0:=1\) \(m^{n++}:=m^n\times m\)

第3章 集合论

基础知识

这部分的主要内容是定义集合和运算。这部分仍然要摒弃有关集合的常识,例如暂时不知道什么东西可以是集合,不知道\(\{1,2,3\}\)是什么含义,我们也不能一下子取出集合中所有元素,在单个选取引理介绍后,才能取出集合中的一个元素。

  • 集合的(非正式)定义:集合\(A\)定义为任意一堆没有次序的东西。设\(x\)是一个对象,如果\(x\)在这堆东西中,我们说\(x\)是\(A\)的一个元素,或\(x\in A\),否则就是\(x\notin A\)。

问:不为这个非正式定义单独设立一条公理的原因是,它并不是一个命题吗?

  • 公理1(集合是对象):如果\(A\)是集合,\(A\)也是一个对象
  • 集合相等的定义:两个集合\(A\)和\(B\),称\(A=B\)当且仅当任取一个对象\(x\in A,x\in B\)并且任取一个对象\(y\in B,y\in A\)

数理逻辑基础中给出了定义相等这个概念的要求,自反公理,对称公理,传递公理都容易验证。而对于替换公理,我们现在需要考虑的\(P(x)\)只有\(x\in S\)(属于)这一种运算,因为我们还没有关于集合的任何其他运算,那么替换公理也可以证明。但是由于我们已经定义了相等,因此之后定义的任何运算,都需要考虑添加这个运算后,替换公理是否还能成立,否则集合相等的概念就无效了。

  • 公理2(空集公理):存在一个集合\(\emptyset\),被称为空集,对任一个对象\(x\),有\(x\notin S\)

容易知道,空集是唯一的,因为如果有多个空集,他们都相等。

我们现在虽然只定义了空集是集合,但不代表我们只能研究空集,因为我们没有定义哪些不是集合。

  • 单个选取引理:若\(A\ne \emptyset\),存在一个对象\(x\)满足\(x\in S\)

用反证法,得到\(A\)符合空集的定义,\(A=\emptyset\),矛盾。

  • 公理3(单元素集和双元素集公理):如果\(a\)是一个对象,存在集合\(\{a\}\)。\(\forall y\),\(y\in \{a\}\)当且仅当\(y=a\)。如果\(a\)和\(b\)是对象,存在集合\(\{a,b\}\),\(\forall y\),\(y\in \{a,b\}\)当且仅当\(y=a\)或\(y=b\)。

现在我们明确了\(\{1\}\)是集合,并且明确了它的含义。

  • 公理4(双并公理):对任意两个集合\(A\)和\(B\),\(A\cup B\)是集合,称为\(A\)和\(B\)的并集,并且任取对象\(x\),\(x\in A\cup B\)当且仅当\(x\in A\)或\(x\in B\)

定义并集仅仅使用了\(\in\)这一运算,因此容易证明替换公理仍然满足。

这里定义了并集,也提供了一个得到大集合的方式。我认为此时就可以定义有限集了,比如二元集由两个不相等的单元集的并得到,并且可以记作\(\{a,b\}\),三元集由单元集和二元集合并得到,并且利用单个选取引理得到单元素集中的元素,并保证其不属于二元集,记做\(\{a,b,c\}\)。进而定义四元集、五元集等等。那么现在唯一不可以确定\(\{1,2,3\}\)是集合的原因是\(1\),\(2\),\(3\)并没有被规定为对象,在无穷大公理中会被确定。

证明并集的结合律用相等的定义,使用并集的定义分类讨论。

公理4和单元素集公理可以得到双元素集公理,但未来会选择用双元素集公理和公理10代替公理4。

  • 子集的定义:\(A\)和\(B\)是集合,称\(A\)是\(B\)的子集,当且仅当对任意对象\(x\in A\),有\(x\in B\)。若\(A\in B\)并且\(A\ne B\),称\(A\)是\(B\)的真子集。

我们还只能判断一个集合是不是另一个集合的子集,而不能确定一个集合的子集有哪些,比如这时不能说一个大小为\(n\)的集合的子集个数是\(2^{n}\)。

  • 如果\(A\subseteq B\),\(B\subseteq C\),则\(A\subseteq C\)
  • 如果\(A\subseteq B\),\(B\subseteq A\),则\(A=B\)
  • 如果\(A\subsetneq B\),\(B\subsetneq C\),则\(A\subsetneq C\)

虽然我们根据双并公理可知道\(\{1,2,3\}\)有子集\(\{1,2\}\),但对于已知集合\(S\),\(3\in S\),我们还不知道是否存在\(S\)的一个子集\(S'\)是\(S\)去除\(3\)得到的

  • 公理5(分类公理):\(A\)是一个集合,对任意\(x\in A\),令\(P(x)\)是x的一个性质,那么存在一个集合\(\{x\in A:P(x)\}\),满足\(y\in \{x\in A:P(x)\}\)当且仅当\(y\in A\)且\(P(y)\)为真。

我认为分类公理保证了一个集合“子集”的确是集合,例如\(\{x\in S:x\ne 3\}\),只要准确地描述出一个子集(利用\(P(x)\)),就可以确定这个子集的存在。但我们还无法找出一个集合所有存在的子集,这也就是幂集公理所得到引理的作用。

  • 交集的定义:\(S_1\cap S_2\)定义为\(\{x\in S_1:x\in S_2\}\)
  • 差集的定义:\(A\setminus B\)定义为\(\{x\in A:x\notin B\}\)

这里定义交集和差集不像定义并集一样作为一个公理,因为分类公理已经保证了\(\{x\in S_1:x\in S_2\}\)和\(\{x\in A:x\notin B\}\)是一个集合。

如果\(A\cap B=\emptyset\),则\(A\)和\(B\)不相交

设\(A\),\(B\),\(C\)是集合,\(X\)是包含\(A\),\(B\),\(C\)作为子集的集合,以下定律被称为布尔代数定律,被确定为集合论基本定律

  • \(A\cup \emptyset=A\),\(A\cap \emptyset=\emptyset\)
  • \(A\cup X=X\),\(A\cap X=A\)
  • \(A\cup A=A\),\(A\cap A=A\)
  • \(A\cup B=B\cup A\),\(A\cap B=B\cap A\)
  • \((A\cup B)\cup C=A\cup(B\cup C)\),\((A\cap B)\cap C=A\cap(B\cap C)\)
  • \(A\cap(B\cup C)=(A\cap B)\cup(A\cap C)\),\(A\cup(B\cap C)=(A\cup B)\cap(A\cup C)\)
  • \(A\cup(X\setminus A)=X\),\(A\cap(X\setminus A)=\emptyset\)
  • 德·摩根律:\(X\setminus (A\cup B)=(X\setminus A)\cap(X\setminus B)\),\(X\setminus (A\cap B)=(X\setminus A)\cup(X\setminus B)\)

如果把\(A\),\(B\),\(C\)当成布尔表达式的真假,\(X\)表示真,\(\emptyset\)表示假,那么这些命题同样成立,因为集合这些运算的结果本质就是所有\(x\in S\)这个布尔表达式的值。

  • 公理6(替代公理):对集合\(A\),对对象\(x\in A\)和对象\(y\),设存在关于\(x\),\(y\)的命题\(P(x,y)\),使得\(\forall x\in A\),恰有一个\(y\)使得\(P(x,y)\)为真。那么存在集合\(\{y:x\in A且P(x,y)为真\}\),\(z\in \{y:x\in A且P(x,y)为真\}\)当且仅当\(\exists x\in A\),\(P(x,z)\)为真。也可记做\(\{f(x):x\in A\}\)。

替换公理得到的集合可以比原始集合“小”,可以据此推导出分类公理:若\(\nexists y\)满足\(y\in A\)且\(P(y)\)为真,由空集定理得证;设已知\(z\in A\)且\(P(z)\)为真,对于\(y\in A\)且\(P(y)\)为真,令\(f(y)=y\),对于\(y\in A\)且\(P(y)\)为假,令\(f(y)=z\),那么\(y\in \{f(x):x\in A\}\)当且仅当\(y\in A\)且\(P(y)\)为真。

  • 公理7(无穷公理):存在集合\(\NN\),对象\(0\in \NN\),且对每个\(n\in \NN\),\(n++\)是对象,且\(n++\in \NN\)

这里是自然数集合的正式描述,并且引入了无穷大集合的一个例子。

罗素悖论

  • 公理(万有分类):对任一个对象\(x\),存在关于\(x\)的性质\(P(x)\),那么存在集合\(\{x:P(x)为真\}\),满足\(y\in \{x:P(x)为真\}\)当且仅当\(P(y)\)为真

这个公理直接建立了性质和集合的对应关系,并且可以直接通过构造\(P(x)\)得到上一节的公理2~6。

万有集\(\Omega\)定义为:对所有对象\(x\),有\(x\in \Omega\)。万有分类公理和万有集的存在等价:根据万有分类公理,令\(P(x)\)恒为真,则存在万有集;若存在万有集,令\(A=\Omega\)使用分类公理可得到万有分类公理。

  • 罗素悖论:令\(P(x):=x是一个集合,且x\notin x\)。根据万有分类公理,得到集合\(\Omega\),那么考虑\(\Omega \in \Omega\)就会导出矛盾。

所以问题出在万有分类公理可以构造出一个包含自己的集合,而这种集合实际上是不存在的,为此我们引入之后的公理。

注意,人们常说的理发师悖论与罗素悖论并不是同一回事。理发师悖论说的是:一位理发师声称自己为所有不为自己理发的人理发,那么他是否为自己理发?用集合论的语言来描述理发师悖论是这样的(来自wiki):小城里的人构成集合\(A=\{a \vert a \text{ lives in the town}\}\),对于每个小城里的人\(a\)可以构造一个\(A\)的子集\(S_{a}=\{x\vert a \text{ shaves } x\}\),即\(a\)给属于\(S_{a}\)的人理发。那么,如果\(a\)给自己理发,则\(a\in S_{a}\),如果\(a\)不给自己理发,则\(a\notin S_{a}\),如果\(a\)不给任何人理发,则\(S_{a}=\{\}\)。设理发师为\(s\),则理发师的豪言就是:\(S_{s}=\{a\vert a\notin S_{a}\}\)。问题是:如果\(s\in S_{s}\),这将与\(S_{s}\)的定义矛盾,但如果\(s\not \in S_{s}\),根据\(S_{s}\)的定义,又应该有\(s\in S_{s}\)。理发师悖论中的“不给自己理发”即\(a\not \in S_{a}\)和罗素悖论里的\(X\notin X\)是不一样的,它们并不等价。

  • 公理8(正则公理):如果\(A\ne \emptyset\),\(\exists x\in A\),满足\(x\)不是集合或\(x\)与\(A\)不相交。

通过这个公理罗素悖论得到解决(巧妙!):根据集合是对象公理和单元素集公理,如果\(A\)是集合,那么\(\{A\}\)也是集合;由正则性可知\(A\cap \{A\}=\emptyset\),因此\(A\notin A\)。并且可以得到万有集不存在,万有分类公理矛盾。

进一步可证明\(\forall A,B\),有\(A\notin B\)或\(B\notin A\):若\(A\in B\),根据双元素集公理,有\(\{A,B\}\)是集合,而\(A\in B\cap \{A,B\}\),因此由正则性公理,有\(A\cap \{A,B\}=\emptyset\),因此\(B\notin A\)。

函数与集合

函数

其实在替换公理处已经定义了函数。

  • 函数的定义:对集合\(A\)和\(B\),对对象\(x\in A\)和对象\(y\in B\),令关于\(x\),\(y\)的命题\(P(x,y)\),满足\(\forall x\in A\),恰有一个\(y\in B\)使得\(P(x,y)\)为真,则定义\(P\)在定义域\(A\)和值域\(B\)上确定的函数\(f:A\to B\),\(f(x)\)是满足\(P(x,f(x))\)为真的唯一对象。

  • 函数相等的定义:具有相同定义域值域的函数\(f:X\to Y\)和\(g:X\to Y\)相等,当且仅当\(\forall x\in X\),有\(f(x)=g(x)\)。

  • 复合:对函数\(f:X\to Y\)和\(g:Y\to Z\),定义\(f\)和\(g\)的复合\(g\circ f:X\to Z\)为函数,\((g\circ f)(x):=g(f(x))\)

复合可以视作函数的最基本运算,注意需要满足替换公理。

复合满足结合律,不满足交换律。

  • 单射:\(\forall x,x'\in X且x\ne x'\)有\(f(x)\ne f(x')\)
  • 满射:\(\forall y\in Y\)有\(\exists x\in X且f(x)=Y\)
  • 双射:既是单射,又是满射的函数
  • :对于双射函数\(f\),\(\forall y\in Y\),存在唯一一个\(x\)满足\(f(x)=y\),令\(f^{-1}(y)=x\),\(f^{-1}\)是\(Y\)到\(X\)的函数。

象和逆象

  • 象的定义:函数\(f:X\to Y\),\(S\subseteq X\),令\(f(S):=\{f(x):x\in S\}\),称为\(S\)在\(f\)下的象(或前象)。

\(f(S)\)是集合可直接由替代公理得到,也可令\(A=Y\)用分类公理得到。

  • 逆象的定义:\(U\subseteq Y\),令\(f^{-1}(U):=\{x\in X:f(x)\in U\}\),称为\(U\)在\(f\)下的逆象。

如果\(f\)可逆,\(f^{-1}(U)\)既可以表示\(U\)在\(f\)下的逆象,也可表示\(U\)在\(f^{-1}\)下的前象,但二者相同,不会引起歧义。

有一些结论:

  • \(\forall S\subseteq Y\),\(f(f^{-1}(S))\subseteq S\)。\(\forall S\subseteq Y\)都有\(f(f^{-1}(S))=S\)的充要条件是\(f\)是满射。证明必要条件可令\(S=Y\)
  • \(\forall S\subseteq X\),\(S\subseteq f^{-1}(f(S))\)。\(\forall S\subseteq X\)都有\(f^{-1}(f(S))=S\)的充要条件是\(f\)是单射。证明必要条件可对每个\(x\in X\)令\(S=\{x\}\)

集合公理系统

  • 公理9(幂集公理):对集合\(X\)和\(Y\),存在集合记做\(Y^{X}\),\(f\in Y^{X} \iff f\)是定义域为\(X\)值域为\(Y\)的函数

  • 引理:对集合\(X\),存在集合\(S\),\(Y\in S \iff Y\)是\(X\)的子集

证明思路是构造\(2^{\#(X)}\)个函数将\(X\)映射到\(X\)的所有子集。令\(Y=\{0,1\}\),利用幂集公理,有\(\{0,1\}^{X}\)集合。定义\(P(f,y)\)为\(y\subseteq X\)且\(y=f^{-1}(\{1\})\),则利用替代公理有\(\{y:f\in A=\{0,1\}^{X}\)且\(P(f,y)\)为真\(\}\)

需要习惯利用公理来证明一些东西可构成集合。对于具体的集合,如写出\(\{1,2,3\}\)的所有子集构成的集合可以直接用之前的公理,但用这个引理就可得到任何未知元素的集合(抽象的集合)的子集。

  • 公理10(并集公理):设\(A\)是集合,\(A\)的所有元素也是集合,那么存在集合\(\cup A\),\(x\in \cup A \iff \exists S\in A\)且\(x\in S\)

利用双元素集公理,对于集合\(S_1\)和\(S_2\),存在集合\(\{S_1,S_2\}\)。又根据并集公理有\(\cup \{S_1,S_2\}\),用这个集合定义并集从而代替双并公理。

  • 定义\(\bigcup_{\alpha\in I}A_\alpha:=\cup\{A_\alpha:\alpha\in I\}\),通过替代公理和并集公理得到它是一个集合(重要结果)。把\(I\)称为指标集,\(\alpha\)称为标签,\(A\)称为集族,其通过\(\alpha\)索引。
  • 定义\(\bigcap_{\alpha\in I}A_\alpha\),要求\(I\ne \emptyset\),则根据单个选取引理存在\(\beta\in I\),\(\bigcap_{\alpha\in I}A_\alpha:=\{x\in A_\beta:\forall \alpha\in I有x\in A_\alpha\}\),通过分类公理证明其为集合,并且这个集合与\(\beta\)无关。

  • 习题:\(X\)和\(Y\)是集合,证明所有定义域\(X'\),值域\(Y'\)满足\(X'\subseteq X\)和\(Y'\subseteq Y\)的函数\(f\)构成集合

证明:利用引理得到\(X\)的子集构成的集合\(A\),\(Y\)的子集构成的集合\(B\),使用上述并集公理的重要结果,应可直接简写成\(\bigcup_{X'\in A}\bigcup_{Y'\in B}Y'^{X'}\)


公理1~10构成了集合论公理,其中公理10(并集公理)蕴含公理4(双并公理),公理6(替代公理)蕴含公理5(分类公理)。

ZF集合论公理与公理1~10大致相同,只缺少了公理3(单元素集和双元素集公理)和公理1(集合是对象)。内容如下:

  • 外延公理:集合相等的定义
  • 空集公理:同公理2
  • 替代公理:同公理6
  • 无穷公理:存在集合\(A\)满足\(\emptyset\in A\)和若\(S\in A\),则\(S\cup\{S\}\in A\)。本质上也是在描述自然数集的存在性,即公理7
  • 正则公理:同公理8
  • 幂集公理:表述为公理9的引理,在下一节会证明两者等价。
  • 并集公理:同公理10

笛卡尔积

  • 有序对的定义:若\(x\)和\(y\)是对象,定义有序对\((x,y)\)为新对象,有序对\((x,y)=(x',y')\)当且仅当\(x=x'\)且\(y=y'\)。

如果只用集合论公理来定义有序对:首先有两个显然的定理:若\(\{a,b\}=\{c,d\}\),要么\(a=c\)且\(b=d\),要么\(a=d\)且\(b=c\);若\(\{a,b\}=\{c,d\}\)且\(a=c\),那么\(b=d\)。

具体来说,我们可定义\((x,y):=\{\{x\},\{x,y\}\}\),根据单元素集和双元素集公理,可知有序对为集合,而集合为对象;再根据上述定理可以证明有序对相等的定义。

另外,也可以定义\((x,y):=\{x,\{x,y\}\}\),那么若\((x,y)=(x',y')\),要么\(x=x'\)且\(y=y'\),要么\(x=\{x',y'\}\)且\(x'=\{x,y\}\),对于第二种情形有\(x\in x'\)和\(x'\in x\),根据正则公理的引理可得矛盾。

  • 笛卡尔积的定义:若\(X\)和\(Y\)是集合,那么定义笛卡尔积\(X\times Y:=\{(x,y):x\in X,y\in Y\}\)。

此处证明笛卡尔积的结果为集合可以用并集公理,即\(X\times Y:=\bigcup_{x\in X}\bigcup_{y\in Y}\{(x,y)\}\)

  • 有序n元组和n重笛卡尔积:有序n元组\((x_i)_{1\le i\le n}\),\(x_i\)称为该有序n元组的第i个分量。\((x_i)_{1\le i\le n}=(y_i)_{1\le i\le n}\)当且仅当\(\forall 1\le i\le n\)有\(x_i=y_i\)。若\((X_i)_{1\le i\le n}\)是集合的有序\(n\)元组(即每个\(X_{i}\)都是一个集合),令它们的笛卡尔积\(\prod_{1\le i\le n}X_i:=\{(x_i)_{1\le i\le n}:\forall 1\le i\le n有x_i\in X_i\}\)

有序n元组\((x_i)_{1\le i\le n}\)可递归定义为\(((x_i)_{1\le i\le n-1},x_n)\)吗?


  • 习题3.5.2:有序n元组可利用函数来定义:对任意集合\(X\),满射函数\(x:\{i\in \NN:1\le i\le n\}\to X\),令\(x_i=x(i)\)并用函数相等的定义证明n元组相等的定义。利用这个定义可证明多重笛卡尔积的结果是集合:令\(X=\bigcup X_i\),利用幂集公理可知存在集合\(A=X^{\{i\in \NN:1\le i\le n\}}\),利用分类公理有\(\{f\in A:\forall 1\le i\le n有f(i)\in X_i\}\)。

  • 习题3.5.11:现在可以利用幂集公理的引理证明幂集公理:

首先有如下规定:

  • 不严格区分\(X_1\times X_2\times X_3\)使用结合律得到的结果,例如\(f:X_1\times X_2\times X_3\to Y\)可以看作关于三个变量\(x_1\),\(x_2\),\(x_3\),也可以看作关于\((x_1,x_2)\)和\(x_3\)两个变量,两者并无实质区别。
  • 使用\(X^{n}:=\prod_{1\le i\le n}X\)。
  • 规定\(n=0\)时得到单元素集0元组\(\{()\}\)

证明思路是将函数对应到函数上的点对应的集合。利用引理,存在\(S\)表示\(X\times Y\)(定义不需要用到幂集公理)所有子集构成的集合,利用分类公理存在集合\(S'=\{A\in S:\forall x\in X恰有一个y\in Y满足(x,y)\in A\}\),此时\(S'\)中的集合均可对应到函数,令\(f_{A}:X\to Y\),\(\forall x\in X\),有\((x,y)\in A\),\(f_{A}(x)=y\)。利用替代公理得到幂集公理:存在集合\(\{f_{A}:A\in S'\}\)


  • 习题3.5.7:直和的定义:令\(\pi_{X\times Y}:X\times Y\to X\)和\(\pi_{X\times Y}:X\times Y\to Y\)为\(X\times Y\)上的坐标函数,满足\(\pi_{X\times Y}:X\times Y\to X(x,y):=x\)和\(\pi_{X\times Y}:X\times Y\to Y(x,y):=y\)。对任意函数\(f:Z\to X\)和\(g:Z\to Y\),存在唯一函数\(h:Z\to X\times Y\),使得\(\pi_{X\times Y\to X}\circ h=f\)和\(\pi_{X\times Y\to Y}\circ h=g\)。\(h\)称为\(f\)和\(g\)的直和,记做\(h=f\oplus g\)。显然有\(h(z)=(f(z),g(z))\)

    问:上述函数\(h\)的唯一性怎么证明?


  • 有限选取引理:设\(n\ge 1\)且\(n\)为自然数,\(X_i\)是非空集合,存在n元组\((x_i)_{1\le i\le n}\)满足对所有\(1\le i\le n\)有\(x_i\in X_i\)。

即\(\prod_{1\le i\le n}X_i\)是非空的,使用归纳法(对\(n\)归纳)和单个选取引理即可证明。进而可以证明\(\prod_{1\le i\le n}X_i\)非空当且仅当\(\forall X_i\ne \emptyset\)。


  • 习题3.5.13:命题:自然数系唯一。如果存在另一个满足皮亚诺公理的自然数系\(\NN'\),存在双射\(a:\NN\to \NN'\)满足\(a(0)=0'\)且\(\forall n\in \NN,n'\in \NN'\),\(a(n)=n'\)当且仅当\(a(n++)=n'++\)。

首先证明引理:对任意\(f:\NN\times \NN\to \NN\)和自然数\(c\),存在函数\(a:\NN\to \NN\)满足\(a(0)=c\)且\(\forall n\in \NN\)有\(a(n++)=f(n,a(n))\)。

使用类似有限选取引理的证明过程归纳:先证存在唯一函数\(a_N:\{n\in \NN:n\le N\}\to \NN\)满足上述关于\(a\)的其他条件。如果只使用皮亚诺公理和集合论可以归纳得到,该结论对\(\{n\in \NN:n\le N\}\)成立。

然后证任意两个\(a_{N_{1}}\),\(a_{N_{2}}\)在\(\{n\in\NN:n\le\min(N_{1}, N_{2})\}\)上的函数值相同?

那么只需要令\(f(n,a(n))=a(n)++\),\(c=0'\),则有\(a(n++)=a(n)++\)。因此,若\(a(n)=n'\),则\(a(n++)=n'++\);若\(a(n++)=n'++\),\(a(n)++=n'++\),由于\(\NN'\)也满足皮亚诺公理,根据皮亚诺公理4可知\(a(n)=n'\)。

集合的基数

  • 基数相等的定义:两个集合\(X\)和\(Y\)的基数(也称为集合的势)相等,当且仅当存在一个从\(X\)到\(Y\)的双射。

对称性可以由双射存在逆得到,传递性可以由双射的复合仍是双射得到。

通过\(f(x)=2x\)可以得到自然数集和偶数集的基数相等。

  • 基数的定义:称集合\(X\)的基数为自然数\(n\),当且仅当\(X\)与集合\(\{i\in \NN:1\le i\le n\}\)基数相等。

  • 引理:若\(X\)的基数为\(n\ge 1\),则\(X\ne \emptyset\),且存在\(x\in X\),\(X\setminus \{x\}\)的基数为\(n-1\)。(暂且定义\(n-1\)为满足\(m++=n\)的唯一自然数)

可直接构造证明:设\(f:X\to \{i\in \NN:1\le i\le n\}\),定义\(g:X\setminus \{x\}\to\{i\in\NN:1\le i\le n-1\}\),则对任何\(x'\in X\setminus\{x\}\),令\(f(x')\lt f(x)\)时\(g(x')=f(x')\),\(f(x')\gt f(x)\)时\(g(x')=f(x')-1\)即可,再证明是双射即可。

再证明基数的唯一性:对\(n\)归纳使用引理即可。

  • 集合有限的定义:集合有限定义为基数是自然数,将有限集\(X\)的基数记做\(\#(X)\)。

证明自然数集不是有限集:反证,若\(\#(\NN)=N\),则存在双射\(f:\{i\in \NN:1\le i\le N\}\to \NN\),归纳得到\(f\)有界,即存在\(M\)使\(f(i)\le M\)对任意\(i\)成立。但自然数\(M+1\)不等于任何\(f(i)\),矛盾。

  • 基数算数定理1:\(X\)和\(Y\)是有限集,\(\#(X\cup Y)\le \#(X)+\#(Y)\),取等当且仅当\(X\cap Y=\emptyset\)。
  • 基数算数定理2:\(X\)是有限集且\(Y\subseteq X\),则\(Y\)是有限集且\(\#(Y)\le \#(X)\),取等当且仅当\(Y=X\)
  • 基数算数定理3:\(X\)是有限集且\(f:X\to Y\)是函数,则\(f(X)\)是有限集且\(\#(f(X))\le \#(X)\),取等当且仅当\(f\)是单射。
  • 基数算数定理4:\(X\)和\(Y\)是有限集,则\(X\times Y\)是有限集且\(\#(X\times Y)=\#(X)\times \#(Y)\)。
  • 基数算数定理5:\(X\)和\(Y\)是有限集,则\(Y^X\)是有限集且\(\#(Y^X)=\#(Y)^{\#(X)}\)。

都对其中一个集合的集合基数归纳即可,证明有限集也需归纳。定理1可再归纳扩展到\(\#(\bigcup_{\alpha\in I}A_\alpha)\)的不等式,定理4的证明需要用到笛卡尔积的性质\(A\times (B\cup C)=(A\times B)\cup (A\times C)\)。

定理5如何证?

利用定理1证明二元容斥原理:\(\#(A\cup B)=\#(A)+\#(B\setminus A)\),\(\#(B)=\#(B\setminus A)+\#(A\cap B)\)。

由于基数算数定理的证明并没有用到自然数的算数定理,可以利用基数来证明自然数的算术定理:将\(n\)写成集合\(\{x\in \NN:1\le x\le n\}\)的基数,构造双射可知\(\#(A\times B)=\#(B\times A)\),那么\(a\times b=\#(A)\times \#(B)=\#(A\times B)=\#(B\times A)=\#(B)\times \#(A)=b\times a\),就证明了乘法交换律。

第4章 整数和有理数

整数

我们使用减法定义整数,但为了避免循环定义,我们暂时不关心减法的结果。

  • 整数的定义:整数是形如\(a-b\)的表达式,其中\(a\)和\(b\)是自然数,整数\(a-b=c-d\)当且仅当\(a+d=b+c\)。

传递公理易证(\(a-b=c-d\)和\(c-d=e-f\),\(a+d+c+f=b+c+d+e\),\(a+f=b+e\)),之后定义整数运算时要注意相等定义的替换公理。

  • 整数的和和积的定义:\((a-b)+(c-d):=(a+c)-(b+d)\),\((a-b)\times (c-d):=(ac+bd)-(ad+bc)\)

这是根据我们已有的知识进行的定义。如果我们整数的定义使用正、负、零来定义,那么这里的运算定义将会涉及大量分类讨论,因此采用减法定义整数。

  • 整数的三歧性:设\(x\)是整数,\(x=0-0\)、\(x=n-0\)、\(x=0-n\)中恰有一个成立(\(n\)是正自然数)。

证明可设\(x=a-b\),根据序的三歧性讨论可得至少有一个成立(由于\(a\)和\(b\)不唯一,不能得到恰有一个成立);设其中两个成立可得\(n=0\)。

于是我们可以定义\(x=n-0\)时\(x\)是正整数,\(x=0-n\)时\(x\)是负整数。

此处对整数的定义已经完备了,为了方便使用再做以下规定:对整数\(a-b\),定义整数的负运算为\(-(a-b)=b-a\)。将\(n-0\)记做\(n\),那么\(0-n=-(n-0)=-n\)。此时\(+\)就有了多重含义,既可表示自然数的加法,也可表示整数的加法,而自然数系和整数系的非负部分“同构”,\(n-0\)和\(n\)可一一对应,运算性质相同(\(n\)的加法乘法等运算定理\(n-0\)也满足),因此不会引起混乱,\(3+3\)看作自然数运算和整数运算均可,得到的都是\(6\)(\(6-0\)也可记做\(6\));\(3+(-3)\)只能看作整数之间的运算。

\(a-b=(a-0)+(0-b)=a+(-b)\),可知我们定义的\(a-b\)结果就是熟知的减法定义。我们定义整数的减法\(a-b:=a+(-b)\)后就可以放心的使用\(-\)这一符号了。

可以证明整数加法乘法的运算定理、整数没有零因子、整数的消去律,定义出整数的序并证明其性质。

有理数

使用除法定义有理数。

  • 有理数的定义:有理数是形如\(a/b\)的表达式,其中\(a\)和\(b\)是整数且\(b\ne 0\),\(a/b=c/d\)当且仅当\(ad=bd\)。

  • 有理数的和/积:\((a/b)+(c/d)=(ad+bc)/(bd)\),\((a/b)\times (c/d)=(ac)/(bd)\),\(-(a/b)=(-a)/b\)

进而可以定义有理数减法:\(x-y:=x+(-y)\)。

  • 有理数的三歧性:称有理数\(x\)是正的当且仅当存在两个正整数\(a\)和\(b\),满足\(x=a/b\);\(x\)是负的当且仅当存在正有理数\(y=-x\),有理数\(x\)满足\(x=0\),\(x\)是正的、\(x\)是负的恰有一个成立。

类似上一节,我们可以将\(x/1\)记做\(x\),对\(x=a/b\)定义\(x^{-1}=b/a\),有\(x/y=(x/1)\times (1/y)=x\times y^{-1}\),再定义除法为\(x/y:=x\times y^{-1}\)。

可以证明有理数加法乘法的运算定理,定义出有理数的序并证明其性质。

  • 指数运算:设\(x\)是有理数,\(x^{0}:=1\),\(0^{0}:=1\),归纳性假设对自然数\(n\),\(x^{n}\)已经定义了,定义\(x^{n+1}=x^{n}\times x\)。设\(x\)是不为\(0\)的有理数,对任意负整数\(-n\),定义\(x^{-n}:=1/x^{n}\)

证明\(x^{n}x^{m}=x^{n+m}\),可以先用归纳法证明\(n\ge 0\)且\(m\ge 0\)的情况,再将\(n+m\lt 0\)的情况转为\(n+m\gt 0\)的情况,最后处理\(n\ge 0\)且\(m\lt 0\)的情况,两边同乘\(x^{-m}\)即可。

证明\((x^{n})^{m}=x^{nm}\)和\((xy)^{n}=x^{n}y^{n}\),先归纳证明\(n\ge 0\)且\(m\ge 0\)的情况再讨论。

还有性质:\(x\ge y\gt 0\)时,若\(n\)为正数,\(x^{n}\ge y^{n}\gt 0\),若\(n\)为负数,\(0\lt x^{n}\le y^{n}\)。如果\(x\gt 0\),\(y\gt 0\),\(n\ne 0\),\(x^{n}=y^{n}\),则\(x=y\)。

有理数的间隙

回顾高中知识:定义\(x\)的绝对值\(\abs{x}\),有三角不等式,\(-y\le x\le y\)当且仅当\(y\ge \abs{x}\),\(\abs{xy} =\abs{x} \abs{y}\);距离\(d(x,y):=\abs{x-y}\),距离的三角不等式。

  • \(\vae\)-接近的定义:有理数\(x\)和\(y\)是\(\vae\)-接近当且仅当\(d(x,y)\le \vae\)。

有结论(其他结论比较显然,此后直接使用):若\(x\)和\(y\)是\(\vae\)-接近的,\(z\)和\(w\)是\(\delta\)-接近的,则\(xz\)和\(yw\)是\(\vae \abs{z} +\delta \abs{x} +\vae \delta\)接近的。

  • 定理:设有理数\(x\),存在唯一整数\(n\)满足\(n\le x\lt n+1\),且存在自然数\(N\)满足\(N\gt x\)。

若\(x\ge 0\),\(x=p/q\)(\(p\gt 0\)且\(q\gt 0\)),根据自然数乘法一节中定义的带余除法,有唯一的自然数\(n\)和\(r\)满足\(p=nq+r\),则\(p/q-n=r/q\ge 0\),\(p/q-(n+1)=-(q-r)/q\lt 0\),令\(N=n+1\)可得\(N\gt x\)。若\(x\lt 0\),\(x=-p/q\)(\(p\gt 0\)且\(q\gt 0\)),有唯一的自然数\(n\)和\(r\lt q\)满足\(p=nq-r\),则\(-(p/q)-(-n)=r/q\ge 0\),\(-(p/q)-(-n+1)=(r-q)/q\lt 0\),令\(N=0\)即可。

  • 定理:若有理数\(x\)和\(y\)满足\(x\lt y\),存在有理数\(z\)满足\(x\lt z\lt y\)。

设\(z:=(x+y)/2\)即可,大概证明了不存在两有理数“相邻”。

  • 不存在有理数\(x\)满足\(x^{2}=2\)。

先证明无穷递降原理(习题4.4.2:不存在无穷递降的自然数数列):\(a_n\gt a_{n+1}\),\(a_n\ge a_{n+1}+1\),可归纳得出\(a_n\ge a_{n+k}+k\),由于\(a_{n+k}\ge 0\),\(\forall k\),有\(a_{1}\ge a_{k+1}+k\ge k\),而\(a_1\lt a_1++\),矛盾。

证明(巧妙!):若存在自然数\(k\)满足自然数\(p=2k\),则\(p\)是偶数;若存在自然数\(k\)满足\(p=2k+1\),则\(p\)是奇数;根据带余除法可知恰有一个成立。

设正有理数\(x=p/q\),\(p^{2}=2q^{2}\)。若\(p\)是奇数,则\(p^{2}\)也是奇数,矛盾;\(p=2k\),则\(q^{2}=2k^{2}\),问题从\((p,q)\)转化为\((q,k)\),根据指数运算的性质有\(p\gt q\),利用无穷递降原理得证。

  • 对任意有理数\(\vae\gt 0\),存在有理数\(x\)使得\(x^{2}\lt 2\lt (x+\vae)^{2}\)。

反证:设\(\forall x\ge 0\),若\(x^{2}\lt 2\)则必有\((x+\vae)^{2}\lt 2\)。从\(x=0\)开始,得到\(\vae\lt 2\),一直归纳,得到\((n\vae)^{2}\lt 2\)对任意自然数\(n\)成立,令\(n\)为大于\(2/\vae\)的任一个自然数即可。

第5章 实数

柯西序列

  • 序列的定义:设\(m\)是整数,序列\((a_n)_{n=m}^{\infty}\)是从集合\(\{n\in Z:n\ge m\}\)到\(\QQ\)的函数,对每个大于等于\(m\)的整数\(n\)指定有理数\(a_n\)。

  • \(\vae\)-稳定的定义:序列中每一对\(a_j\)和\(a_k\)都是\(\vae\)-接近的。
  • 最终\(\vae\)-稳定的定义:存在某个自然数\(N\ge 0\)使得\((a_n)_{n=N}^{\infty}\)是\(\vae\)-稳定的。
  • 柯西序列:对任意有理数\(\vae\gt 0\),序列\((a_n)_{n=m}^{\infty}\)都是最终\(\vae\)-稳定的。

例如,对序列\(a_n=1/n\),任取\(\vae\),根据有理数间隙的定理,令\(N\)为大于\(1/\vae\)的自然数即可。

  • 有界序列的定义:有限序列\(a_1,a_2,...,a_n\)以\(M\)为界当且仅当\(\abs{a_i} \le M\)对任意\(1\le i\le n\)成立,无限序列\((a_n)_{n=m}^{\infty}\)以\(M\)为界当且仅当\(\abs{a_i} \le M\)对任意\(i\ge m\)成立。一个序列是有界的,当且仅当存在有理数\(M\ge 0\),该序列以\(M\)为界。

有如下引理:

  • 有限序列有界:归纳证明,每次\(M\)增加\(\abs{a_n}\)即可。
  • 柯西序列有界:任取\(\vae\gt 0\),可知该序列是最终\(\vae\)-稳定的,即存在某个自然数\(N\ge 0\)使得\((a_n)_{n=N}^{\infty}\)是\(\vae\)-稳定的,那么由于有限序列有界,设\(a_1,a_2,...,a_N\)以\(M\)为界,则任取\(i\ge N\),有\(\abs{a_i} -\abs{a_N} \le \abs{a_i-a_N} \le \vae\),\(\abs{a_i} \le M+\vae\),该序列以\(M+\vae\)为界。

  • \(\vae\)-接近的定义:\((a_n)_{n=0}^{\infty}\)和\((b_n)_{n=0}^{\infty}\)满足对\(n=0,1,2,...\)均有\(\abs{a_n-b_n} \le \vae\)
  • 最终\(\vae\)-接近的定义:存在\(N\ge 0\)使得\((a_n)_{n=N}^{\infty}\)和\((b_n)_{n=N}^{\infty}\)是\(\vae\)-接近的
  • 等价序列:对任意有理数\(\vae\gt 0\),两序列都是最终\(\vae\)-接近的。

例如,序列\(a_n=1+10^{-n}\)和\(b_n=1+10^{n}\),\(\vae\gt 0\),要找到\(N\)满足\(2\times 10^{-N}\le \vae\),注意到\(10^{N}\gt N\)(归纳证明),因此\(10^{-N}\lt 1/N\),只需找到\(2\times 10^{-N}\le 2/N\le \vae\)即可,即\(N\ge 2/\vae\)。

有如下引理:

  • 若两序列\(a\)和\(b\)等价,则\(a\)是柯西序列当且仅当\(b\)是柯西序列
  • 若两序列\(a\)和\(b\)是最终\(\vae\)-接近的,那么\(a\)有界当且仅当\(b\)有界

实数的构造

有理数的间隙一节的最后一个命题中,可以看出用有理数逼近无理数是可能的,那么我们用有理数的柯西序列来定义实数。

  • 实数的定义:实数被定义为形如\(\LIM_{n\to \infty}a_{n}\)的对象,其中\((a_n)_{n=1}^{\infty}\)是有理数的柯西序列,两实数相等当且仅当两柯西序列是等价序列。

实数相等满足传递公理,可以任取\(\vae\),然后利用两序列都是最终\(\vae/2\)-稳定的序列证明。

  • 实数的和/积的定义:设实数\(x=\LIM_{n\to \infty}a_{n}\),\(y=\LIM_{n\to \infty}b_{n}\),定义\(x+y=\LIM_{n\to \infty}(a_n+b_n)\),\(xy:=\LIM_{n\to \infty}(a_nb_n)\)

实数的和是实数,可利用两序列都是最终\(\vae/2\)-稳定的序列;实数的积是实数,也是利用\(\vae\)-接近的结论,结合柯西序列有界性,使\(a_i\)和\(a_j\)是\(\delta’\)-接近的,\(b_i\)和\(b_j\)是\(\vae’\)-接近的,\(a_ib_i\)与\(a_jb_j\)是\(\delta'M_b+\vae'M_a+\delta\vae\)-接近的,令\(\delta'=\vae/(2M_b)\),\(\vae'=\vae/2(M_a+\delta')\)。

像之前一样,定义\(-\LIM_{n\to \infty}a_n=\LIM_{n\to \infty}-a_n\),实数减法\(x-y:=x+(-y)\)。

如果\(a\)是有理数,存在实数\(\LIM_{n\to \infty}a\),可记做\(a\)。类似将自然数系嵌入整数系的定义方式,因为有理数满足的运算法则实数均满足,因此\(1+1=2\)这时也可以表示实数的加法而不会引起混乱。

如果想要定义除法还需定义\(x^{-1}\),注意到柯西序列\(1,0.1,0.01,...\)的逆并不是柯西序列,原因是原来的柯西序列对应的实数是\(0\)。

  • 远离0的序列:有理数序列远离0当且仅当存在有理数\(c\gt 0\)满足\(\abs{a_n} \ge c\)对任何\(n\ge 1\)成立。

  • 引理:设实数\(x\ne 0\),存在远离0的柯西序列\((a_n)_{n=1}^{\infty}\),满足\(x=\LIM_{n\to \infty}a_n\)

设\(x\)的柯西序列是\(b\),存在\(\vae\)使得\(x\)和\(0\)不是最终\(\vae\)-接近的,再利用它是最终\(\vae/2\)稳定的(存在\(N\)),可得它是“最终远离0的”。那么令\(i\ge N\)时\(a_i=b_i\),\(i\lt N\)时\(a_i=\vae/2\),可令\(c=\vae /2\)。

  • 引理:\((a_n)_{n=1}^{\infty}\)是远离0的,则\((a_n^{-1})_{n=1}^{\infty}\)是柯西序列

利用\(\abs{a_i} \ge c\),\(\abs{a_n^{-1}-a_m^{-1}} =\abs{\frac{a_m-a_n}{a_ma_n}} \le \frac{\abs{a_m-a_n} }{c^2}\)。此时可定义实数的倒数。

倒数的定义:\((a_n)_{n=1}^{\infty}\)是远离0的,实数\(x=\LIM_{n\to \infty}a_{n}\),则\(x^{-1}:=\LIM_{n\to \infty}a_{n}^{-1}\)。

倒数运算是明确的(倒数运算满足替换公理)(巧妙!):利用\(x^{-1}\times x\times y^{-1}=x^{-1}\times y\times y^{-1}\)(\(x=y\)两边同乘\(x^{-1}*y^{-1}\))。

进而对于\(y\ne 0\),\(x/y:=x*y^{-1}\)

实数的序

  • 实数正负的定义:\(x\)是正的当且仅当存在远离0的柯西序列\(a\),\(x=\LIM_{n\to \infty}a_n\),满足存在正有理数\(c\),\(a_n\ge c\)对任意\(n\ge 1\)都成立;\(x\)是负的同理,要求\(a_n\le -c\)都成立。

  • 引理(实数的三歧性):对任意实数\(x\),\(x=0\),\(x\)是正的,\(x\)是负的恰有一个为真;\(x\)是负的当且仅当\(-x\)是正的。

  • 实数大小的定义:对实数\(x\),\(y\),若\(x-y\)是正实数,则\(x\gt y\);若\(x-y\)是负实数,则\(x\lt y\)。

若\(x\)是正的,\(x^{-1}\)也是正的。 用三歧性证。

  • 命题1:若所有\(a_i\ge 0\),\(\LIM_{n\to \infty}a_n\)非负。

该命题简单有用,可将实数的大小关系转化为有理数的大小关系。进而可以推出若\(a_n\ge b_n\),\(\LIM_{n\to \infty}a_n\ge \LIM_{n\to \infty}b_n\)。

  • 命题2:\(x\)是实数,存在有理数\(q\)和\(r\)满足\(q\le x\le r\),存在正整数\(N\)满足\(x\le N\)。

利用柯西数列有界性,把\(q\)和\(r\)写成实数结合命题1。

  • 命题3:对任意两个实数\(x\lt y\),存在有理数\(q\)满足\(x\lt q\lt y\)。

首先反证+归纳可知引理:对任意实数\(x\),存在唯一\(N\),满足\(N\le x\le N+1\),或\(x-1\le N\le x\)。

由命题2知存在整数\(N\gt 1/(y-x)\)(使得\(Ny-Nx\gt 1\)),即\(1/N\lt y-x\),由引理知存在整数\(a\)使\(Nx\lt a\lt Nx+1\lt Ny\)。令\(q=a/N\)即得。

如果要证明必然存在无理数\(z\)满足\(x\lt z\lt y\),可以两次使用命题3,找到两个有理数\(q_1\)和\(q_2\)满足\(x\lt q_1\lt q_2\lt y\),\(q1+(q2-q1)/\sqrt{2}\)是无理数可通过有理数的运算结果是有理数反证得到。

  • 习题:实数\(x\),若\(a_n\le x\),则\(\LIM_{n\to \infty}a_n\le x\)。

证明:如果\(x\)是有理数可直接用命题2,思路就是利用命题3找中间有理数。反证,设\(\LIM_{n\to \infty}a_n=y\),\(y\gt x\),由命题3可知存在\(q\)满足\(y\gt q\gt x\ge a_n\),进而\(q\gt a_n\),由命题1知\(y\le q\)。

最小上界性质

  • 上界的定义:设\(E\)是\(\RR\)的一个子集,实数\(M\)是\(E\)的上界当且仅当\(\forall x\in E\)都有\(x\le M\)。

注意并不能说\(E\)中最大元素是上界,\(E\)是无限集,且很可能不存在最大值如\({x\in \RR:1\lt x\lt 2}\)

  • 最小上界的定义:\(M\)是最小上界当且仅当\(M\)是上界且对所有上界\(M'\)满足\(M'\ge M\)。

  • 定理(最小上界存在性):如果\(E\)是\(\RR\)的非空子集且\(E\)存在上界,则恰有一个最小上界。

唯一性显然。证明存在性(巧妙!体现了\(\LIM\)的实际意义):思路是构造最小上界的有理数序列。

对每个\(n\),找\(m_n\)满足\(m_n/n\)是\(E\)的上界但\((m_n-1)/n\)不是:设该有界序列上界为\(M\),根据命题2可知存在整数\(R\)满足\(R\times 1/n\ge M\),利用单个选取引理任取\(x_0\in E\),再利用命题2知存在整数\(L\)满足\(L/n\lt x_0\),反证+归纳可知存在\(L\lt m_n\le R\)满足条件。

要证明\((m_n/n)_{n=1}^{\infty}\)是柯西序列,设\(n\)和\(n'\),设最小上界为\(S\),由于\(m_n/n\ge S\gt (m_{n'}-1)/n'\),可知\(m_n/n-m_{n'}/n'\ge -1/n'\),同理可得\(\abs{m_n/n-m_{n'}/n'} \le 1/n\),\(\forall \vae\gt 0\),根据命题2知\(\exists N\gt 1/\vae\),\(n,n'\ge N\)时由上述推导知满足条件。

\(X=\LIM_{n\to \infty}(m_n/n)\),利用上节习题可知\(X\)是上界;而\(X'=\LIM_{n\to \infty}{(m_n-1)/n}\),任取上界\(Y\),由上节习题可知\(Y\ge (m_n-1)/n\),因此\(Y\ge X'\),又因为\(X-X'=\LIM_{n\to \infty}(1/n)\)=0,因此\(Y\ge X\),\(X\)是最小上界。

  • 上确界的定义:设\(E\)是\(\RR\)的非空子集且存在上界,定义\(\sup(E)\)为\(E\)的最小上界,如果\(E\)非空且没有上界,令\(\sup(E):=+\infty\);如果\(E\)为空,令\(\sup(E):=-\infty\)。\(\sup(E)\)称为上确界。

同理我们也可以定义下确界\(\inf(E)\)。

  • 命题:存在一个实数\(x\)满足\(x^2=2\)。

证明(巧妙!):思路是利用上确界。令\(E={y\in \RR:y\ge 0且y^2\lt 2}\),显然\(2\)是\(E\)的上界,因此存在\(x=\sup(E)\),利用实数的三歧性。

若\(x^2\lt 2\),设\(0\lt \vae\lt 1\),\((x+\vae)^2\le x^2+5\vae\),令\(\vae\lt(2-x^2)/5\),\(x+\vae\in E\),与\(x\)是\(E\)的上确界矛盾。

若\(x^2\gt 2\),设\(0\lt \vae\lt 1\),\((x-\vae)^2\ge x^2-2\vae x\ge x^2-4\vae\),令\(\vae\lt(x^2-2)/4\),\((x-\vae)^2\gt 2\gt y^2\),同样的矛盾。

通过这个例子我们发现有理数不满足存在最小上界的定理。

实数的指数运算1

  • n次根的定义:对非负实数\(x\)和正整数\(n\),\(x^{1/n}:=\sup\{y\in \RR:y\ge 0且y^n\le x\}\)。

实数的整数次幂指数运算满足有理数的性质。

n次根的存在性证明:令\(E\)表示上述n次根定义中的集合。只需证\(E\)有上界。若\(x\le 1\),则反证\(y\le 1\)(\(y^n\gt 1^n\gt x\));若\(x\gt 1\),则反证得到\(y\lt x\)(\(y^n\ge x\times x^{n-1}\gt x\times 1^{n-1}\gt x\))。

  • 引理:\(y=x^{1/n}\)当且仅当\(y^n=x\)。

证明(巧妙的放缩):左蕴含右类似存在\(x^2=2\)的证明。设\(0\lt\vae\lt1\)。若\(y^n\lt x\),\((y+\vae)^n\lt y^n+\vae((y+1)^n-y^n)\)(把二项式定理展开后的所有\(\vae^n\)放缩为\(\vae\)),并令\(\vae=\frac{x-y^{n}}{(y+1)^{n}-y^{n}}\)得\((y+\vae)^{n}\lt x\)与上确界性质矛盾;若\(y^n\gt x\),\((y-\vae)^n\gt y^{n-1}\times (y-n\vae)\)(均值不等式)。右蕴含左证明可利用三歧性和整数次幂的性质(例如若\(y\gt x^{1/n}\),\(y^n\gt x\))。

  • 有理数次幂的定义:设有理数\(q=a/b\),其中\(b\)是正整数,\(a\)是整数,\(x\)是正实数,\(x^q:=(x^{1/b})^a\)。

要证明同一个\(q\)对应的不同的\((a,b)\)结果相同:若\(a=0\),\(x^q=1\);若\(a\gt 0\),\(ab'=a'b\),利用\((x^{1/n})^{1/m}=x^{1/nm}\),令\(y=x^{1/ab'}=x^{1/ba'}=(x^{1/b'})^{1/a}=(x^{1/b})^{1/a'}\),\((x^{1/b'})^{a'}=(y^{a})^{a'}=(y^{a'})^{a}=(x^{1/b})^{a}\);\(a\lt 0\)利用\(-a\)时相等即可。

第6章 序列极限

收敛和极限定律

可以把之前定义的有理数序列最终接近、有理数柯西序列等的定义扩展到实数,根据实数的性质中的命题2可知,有理数序列是有理数柯西数列当且仅当它是实数柯西数列。

  • 数列收敛和极限的定义:数列收敛于\(L\)当且仅当对任意实数\(\vae\gt 0\),该序列是最终\(\vae\)-接近于\(L\)的,称序列的极限为\(L\),记做\(L=\lim_{n\to \infty}a_n\)。

极限的唯一性反证即可。

那么我们可以证明之前所用的\(\LIM\)本质就是\(\lim\)(\(L=\LIM_{n\to \infty}a_n\),则\((a_n)_{n=m}^{\infty}\)收敛于\(L\)):反证,利用实数的序的习题即可。

之后我们可以证明实数序列是柯西序列当且仅当其收敛,因此我们接下来对极限的研究也是对\(\LIM\)这一运算的研究,例如极限定理就是实数(有理数序列)运算的性质扩展到实数序列,实数的指数运算本质其实是在用“实数柯西序列的\(\LIM\)”定义。

设\(a\)和\(b\)是收敛的实数序列,有如下极限定理:

  • 极限定理1:\(\lim_{n\to \infty}(a_n+b_n)=\lim_{n\to \infty}a_n+\lim_{n\to \infty}b_n\)
  • 极限定理2:\(\lim_{n\to \infty}(a_nb_n)=(\lim_{n\to \infty}a_n)(\lim_{n\to \infty}b_n)\)
  • 极限定理3:\(\lim_{n\to \infty}(ca_n)=c\lim_{n\to \infty}a_n\)
  • 极限定理4:\(\lim_{n\to \infty}(a_n-b_n)=\lim_{n\to \infty}a_n-\lim_{n\to \infty}b_n\)
  • 极限定理5:若对所有\(n\)有\(b_n\ne 0\),\(\lim_{n\to \infty}b_n^{-1}=(\lim_{n\to \infty}b_n)^{-1}\)
  • 极限定理6:若对所有\(n\)有\(b_n\ne 0\),\(\lim_{n\to \infty}\frac{a_n}{b_n}=\frac{\lim_{n\to \infty}a_n}{\lim_{n\to \infty}b_n}\)
  • 极限定理7:\(\lim_{n\to \infty}max(a_n,b_n)=max(\lim_{n\to \infty}a_n,\lim_{n\to \infty}b_n)\)

广义实数系

  • 广义实数系\(\RR^{\ast}\)的定义:实数\(\RR\)附加上\(+\infty\)和\(-\infty\)两个元素,广义实数有限当且仅当它是实数,无限当且仅当它是\(+\infty\)或\(-\infty\)。

定义\(-(+\infty)=-\infty\)和\(-(-\infty)=+\infty\)即可定义广义实数系上的负运算。

定义\(x\le y\)当且仅当\(x\)和\(y\)是实数且\(x\lt y\)或\(y=+\infty\)或\(x=-\infty\),\(x\lt y\)当且仅当\(x\le y\)且\(x\ne y\)。那么有小于等于的自反性和传递性,序的三歧性,负运算改变序。

  • 广义实数集的上确界的定义:设\(E\)是\(\RR^{\ast}\)的子集,定义\(\sup(E)\):(a)若\(E\)是\(\RR\)的子集,按照之前的定义;(b)如果\(E\)包含\(+\infty\),则\(\sup(E):=+\infty\);(c)如果\(E\)包含\(-\infty\),则\(\sup(E):=\sup(E\setminus \{-\infty\})\)。

可定义\(\inf(E)=-\sup(-E)\)。

定理:如果\(x\le M\)对任意\(x\in E\)成立,则\(\sup(E)\le M\)。对\(\inf\)同理。

序列的上确界和下确界

  • 序列的上下确界的定义:定义\(\sup(a_n)_{n=m}^{\infty}:=\sup\{a_n:n\ge m\}\),\(\inf(a_n)_{n=m}^{\infty}:=\inf\{a_n:n\ge m\}\)

  • 命题1:设单调递增数列\((a_n)_{n=m}^{\infty}\)存在上界\(M\),则\((a_n)_{n=m}^{\infty}\)收敛,且\(\lim_{n\to \infty}a_n=\sup(a_n)_{n=m}^{\infty}\)

利用三歧性,如果\(\lim\gt\sup\),则存在\(a_n\gt\sup\);若\(\lim\lt\sup\),则存在\(\lim\lt a_n\le\sup\),则对任一\(m\ge n\),\(a_m-\lim\gt a_n-\lim\)与收敛的定义矛盾。

收敛序列是柯西序列,柯西序列有界,因此单增序列收敛当且仅当序列有界。

  • 命题2:若\(0\lt x\lt 1\),\(\lim_{n\to \infty}x^n=0\)

证明(巧妙!):根据上一命题,序列有下界\(0\)且递减,因此收敛。设\((x^n)_{n=1}^{\infty}\)收敛于\(L\),则\((x^n)_{n=2}^{\infty}=(x^{n+1})_{n=1}^{\infty}\)收敛于\(xL\),因此\(xL=L\),\(L=0\)。

可以用反证法证明\(x\gt 1\)时不收敛:\((1/x)^nx^n=1\),利用极限定理2。

序列的上下极限和极限点

  • 极限点(附着点)的定义:\(x\)是实数序列\((a_n)_{n=m}^{\infty}\)的极限点(附着点)当且仅当\(\forall \vae\gt 0\),\(\forall N\ge m\),\(\exists n\ge N\),\(a_n\)与\(x\)是\(\vae\)-接近的。

极限的定义是\(\exists N\),\(\forall n\ge N\)。可以证明收敛的数列的唯一极限点的是极限。

  • 上下极限的定义:对\((a_n)_{n=m}^{\infty}\),定义新序列\((a_N^{+})_{N=m}^{\infty}\),其中\(a_N^{+}:=\sup(a_n)_{n=N}^{\infty}\),上极限记做\(\lim{\sup_{n\to \infty}a_n}:=\inf(a_N^{+})_{N=m}^{\infty}\);同理定义\(a_N^{-}:=\inf(a_n)_{n=N}^{\infty}\),下极限记做\(\lim{\inf_{n\to \infty}a_n}:=\sup(a_N^{+})_{N=m}^{\infty}\)

对于\((a_n)_{n=m}^{\infty}\),设(广义)实数\(L^{+}\)和\(L^{-}\)分别是上下极限,则有如下定理:

  • 定理1:\(\forall x\gt L^{+}\),\(\exists N\ge m\),\(\forall n\ge N\),\(a_n\lt x\)。

\(x\gt L^{+}\)可知存在\(a_n^{+}\lt x\)。这个定理说明了数列最终小于\(x\)。

  • 定理2:\(\forall x\lt L^{+}\),\(\forall N\ge m\),\(\exists n\ge N\),\(a_n\gt x\)。

\(x\lt L^{+}\)可知所有\(a_n^{+}\gt x\)。这个定理说明了数列有无限多处大于\(x\)。

  • 定理3:\(\inf(a_n)_{n=m}^{\infty}\le L^{-}\le L^{+}\le\sup(a_n)_{n=m}^{\infty}\)

两边由定义可得,\(L^{-}\le L^{+}\)可反证得到存在\(a_{p'}=a_p^{+}\lt a_q^{-}=a_{q'}\),若\(p\ge q\)则\(a_{p'}\lt \inf(a_n)_{n=q}^{\infty}\),若\(p\lt q\)则\(a_{q'}\gt\sup(a_n)_{n=m}^{\infty}\)。

  • 定理4:如果\(c\)是极限点,则\(L^{-}\le c\le L^{+}\)。

若\(c\lt L^{-}\),由定理1可令\(x=(c+L^{-})/2\),存在\(N'\),则\(0\lt \vae\lt (c-L^{-})/2\)时\(N=N'\)不满足;\(c\gt L^{+}\),同理可令\(x=(c+L^{+})/2\)。

  • 定理5:如果\(L^{+}\)有限,那么\(L^{+}\)是极限点;如果\(L^{-}\)有限,那么\(L^{-}\)是极限点

设\(\vae\gt 0\),由定理1知\(\exists N'\ge m\),\(\forall n\ge N'\)由\(a_n\le L^{+}+\vae\);\(\forall N\ge m\),由定理2知\(\exists n\ge max(N,N')\),\(a_n\gt L^{+}-\vae\),\(a_n\)和\(L^{+}\)是\(\vae\)-接近的。

  • 定理6:\((a_n)_{n=m}^{\infty}\)收敛于\(c\)当且仅当\(L^{+}=L^{-}=c\)

左蕴含右可以反证:由定理3,因此\(L^{+}\)和\(L^{-}\)有限,且\(L^{-}\lt L^{+}\),则存在两个极限点;右蕴含左利用定理4。

  • 引理(比较原理):如果\(a_n\le b_n\)对所有\(n\ge m\)成立,有\(\sup(a_n)_{n=m}^{\infty}\le\sup(b_n)_{n=m}^{\infty}\),\(\limsup_{n\to \infty}a_n \le \limsup_{n\to \infty}b_n\)。

  • 推论(夹逼定理):对\((a_n)_{n=m}^{\infty}\),\((b_n)_{n=m}^{\infty}\),\((c_n)_{n=m}^{\infty}\),若满足\(\forall n\ge m\)有\(a_n\le b_n\le c_n\),且\(a\)和\(c\)都收敛于\(L\),则\(b\)也收敛于\(L\)。

根据比较原理可知\(L_a^{-}\le L_b^{-}\le L_c^{-}\),\(L_a^{+}\le L_b^{+}\le L_c^{+}\),由命题6可知\(L_a^{-}=L_a^{+}\),\(L_c^{-}=L_c^{+}\)。

有一些求极限的例子:

  1. \(L=\lim_{n\to \infty}1/n^{1/k}\),证明\(L=0\):递减且下界为\(0\),由上下确界的命题1可知收敛于\(L\ge 0\),归纳+极限定理2可知\(L^k=\lim_{n\to \infty}1/n=0\)。
  2. 讨论极限\(\lim_{n\to \infty}x^n\)的存在性和值:由上下确界的命题2可知\(0\le x\lt 1\)的情形;\(-1\lt x\lt 0\)的情形利用\(-(-x)^n\le x^n\le (-x)^n\)和夹逼定理;\(x=-1\)的情形可以反证(\(L^2=1\),而\(L=-L\));其他情形类似命题2利用反证+极限定理2可知。
  3. 对任意\(x\gt 0\),证明\(\lim_{n\to \infty}x^{1/n}=1\):因为\(n\)较小时情况不一,只讨论\(x\gt 1\)的情况。设\(\vae\gt 0\),要证存在\(n\)满足\(1-\vae\le x^{1/n}\le 1+\vae\),\(x^{1/n}\gt 1^{1/n}\)成立,而\(x\le (1+\vae)^n\)利用例2,转化为\((1/(1+\vae))^n\le 1/x\),根据例2\(0\lt x\lt 1\)的情况得证。
  • 定理(实数的完备性):实数序列是柯西序列当且仅当它是收敛的。

右蕴含左显然,左蕴含右证明可用\(L^{+}\)和\(L^{-}\),显然\(\forall \vae\),\(a_N^{+}-a_N^{-}\lt 2\vae\),因此\(L^{+}=L^{-}\),由定理6得证。

有理数柯西序列一定收敛于一个实数(不一定是有理数),而实数柯西序列也一定收敛于一个实数(类似地,有理数集的\(\sup\)和\(\inf\)可能是实数,实数集则满足最小上界存在性定理),这些是实数集相比有理数集的优越性。

实数的指数运算2

  • 实数次幂的定义:设\(x\gt 0\)且\(\alpha\)是实数,\((q_n)_{n=0}^{\infty}\)是任一个收敛于\(\alpha\)的实数,\(x^{\alpha}:=\lim_{n\to \infty} x^{q_n}\)。

根据实数的定义和之前对极限本质的证明,存在\(q\);以下还需要证明\(\lim_{n\to \infty}x^{q_n}\)存在,以及不同的序列\(q\)会得到相同的极限。

证明存在:根据实数的完备性定理,极限存在等价于其为柯西序列。不妨设\(q_n\ge q_m\)且\(x\gt 1\),\(\abs{x^{q_n}-x^{q_m}} =x^{q_m}(x^{q_n-q_m}-1)\),而\(q\)有上界\(M\)(收敛等价于是柯西序列),且对任一\(\delta\)存在\(N\)满足\(n,m\ge N\)时\(q_n-q_m\le \delta\),利用求极限的例3,存在\(K\)满足\(x^{1/K}-1\le \delta'\),令\(\delta=1/K\),则\(\abs{x^{q_n}-x^{q_m}} \le x^M\delta'\)。可令\(\delta'=x^{-M}\vae\)得到序列是最终\(\vae\)-稳定的。

证明极限相同:利用极限定理只需证明\(\lim_{n\to \infty}x^{q_n-{q_n}'}=1\)。由于\(q_n-{q_n}'\)是最终接近0的,那么再次利用求极限的例3,存在\(K\)使得\(\abs{x^{-1/K}-1}\le\vae,\abs{x^{1/K}-1} \le \vae\),也存在\(N\)满足\(n\ge N\)时\(\abs{q_n-{q_n}'} \le 1/K\)。

子序列

  • 子序列的定义:设\((a_n)_{n=0}^{\infty}\)和\((b_n)_{n=0}^{\infty}\),称\((b_n)_{n=0}^{\infty}\)是\((a_n)_{n=0}^{\infty}\)的子序列当且仅当存在严格递增的函数\(f:\NN\to \NN\)满足\(b_n=a_{f(n)}\)对所有\(n\in \NN\)成立。

  • 定理1:序列收敛于\(L\)当且仅当所有子序列均收敛于\(L\)
  • 定理2:序列存在极限点\(L\)当且仅当存在子序列收敛于\(L\)

定理2的左蕴含右证明用类似实数的上界存在性的证法(因为是先构造序列,再证明对所有\(\vae\)成立,所以利用\(\lim_{n\to \infty}1/n=0\))。根据\(L\)为极限点,令\(\vae=1/n\)可得集合\(\{m\in \NN:m\gt f(n-1)且d(a_m,L)\le 1/n\}\)不为空,令\(f(n)\)为集合中任一元素即可。

  • 习题:证明无界序列存在子序列\((b_n)_{n=0}^{\infty}\)满足\(\lim_{n\to \infty}1/b_n=0\)。

使用类似的证法,一定存在\(m\gt f(n-1)\)且\(1/a_m\lt 1/m\),否则有界。

  • 定理(波尔查诺-维尔斯特拉斯定理):有界序列存在至少一个收敛的子序列

证明:由于\(-M\le a_n\le M\),根据比较原理\(L^{+}\)是实数,由定理5可知\(L^{+}\)是极限点。

第7章 级数

有限级数

对于广为人知的结论就不加证明地列出,以便后面的引用。

  • 有限级数的定义:(递归定义)若\(n\lt m\),\(\sum_{i=m}^{n}a_i:=0\);若\(n\ge m-1\),\(\sum_{i=m}^{n+1}a_i:=(\sum_{i=m}^{n}a_i)+a_{n+1}\)。

有如下求和的基本性质(用归纳法证):

  • 有限级数定理1:对整数\(m\le n\le p\),有\(\sum_{i=m}^{n}a_i+\sum_{i=n+1}^{p}a_i=\sum_{i=m}^{p}a_i\)
  • 有限级数定理2:对整数\(m\le n\)和整数\(k\),有\(\sum_{i=m}^{n}a_i=\sum_{i=m+k}^{n+k}a_{j-k}\)
  • 有限级数定理3:对整数\(m\le n\),有\(\sum_{i=m}^{n}(a_i+b_i)=(\sum_{i=m}^{n}a_i)+(\sum_{i=m}^{n}b_i)\)
  • 有限级数定理4:对整数\(m\le n\),有\(\sum_{i=m}^{n}(ca_i)=c(\sum_{i=m}^{n}a_i)\)
  • 有限级数定理5:对整数\(m\le n\),有\(\abs{\sum_{i=m}^{n}a_i} \le \sum_{i=m}^{n}\abs{a_i}\)
  • 有限级数定理6:对整数\(m\le n\),\(\forall m\le i\le n\),有\(a_i\le b_i\),则\(\sum_{i=m}^{n}a_i\le \sum_{i=m}^{n}b_i\)

  • 有限集求和运算的定义:设\(X\)是基数为\(n\)的有限集,则存在双射\(g:\{i\in \NN:1\le i\le n\}\to X\),设\(f:X\to \RR\),则\(\sum_{x\in X}f(x):=\sum_{i=1}^{n}f(g(i))\)

需要证明对于不同的\(g\)得到和相同:对\(n\)归纳,再取出\(g(n+1)\),构造新的双射\(\tilde{g}\)和\(\tilde{g'}\)用于归纳。

有限集求和的基本性质与有限级数定理类似,只需要记住这两个:

  • 有限集求和定理1:如果\(g:Y\to X\)是双射,则\(\sum_{x\in X}f(x)=\sum_{y\in Y}f(g(y))\)
  • 有限集求和定理2:设集合\(X=\{i\in Z:n\le i\le m\}\),则\(\sum_{i=n}^{m}a_i=\sum_{i\in X}a_i\)
  • 有限集求和定理3:\(X\)与\(Y\)无交时,\(\sum_{z\in X\cap Y}f(z)=(\sum_{x\in X}f(x))+(\sum_{y\in Y}f(y))\)

定理1使用函数复合以及有限集求和的定义证明;定理2先使用定义、再使用有限级数定理2证明;定理3利用定义和有限级数定理1证明。

  • 引理:若\(X\)和\(Y\)是有限集,设函数\(f:X\times Y\to \RR\),则\(\sum_{x\in X}(\sum_{y\in Y}f(x,y))=\sum_{(x,y)\in X\times Y}f(x,y)\)

对\(X\)的基数归纳,再使用有限集求和定理3即可。

推论 \(\sum_{x\in X}(\sum_{y\in Y}f(x,y))=\sum_{y\in Y}(\sum_{x\in X}f(x,y))\)。

等式两边都使用引理,再用有限集求和定理1证明\(\sum_{(x,y)\in X\times Y}f(x,y)=\sum_{(y,x)\in Y\times X}f(x,y)\)即可。

习题:对任意\(x\in X\),设\((a_n(x))_{n=m}^{\infty}\)是收敛的实数序列,则\(\lim_{n\to \infty}\sum_{x\in X}a_n(x)=\sum_{x\in X}\lim_{n\to \infty}a_n(x)\)

对\(X\)的基数归纳即可。推论证明了有限集求和可交换求和符号的次序,习题证明了可交换有限集求和和极限的次序。

无限级数

  • 无限级数和无限极数收敛的定义:无限极数是形如\(\sum_{n=m}^{\infty}a_n\)的表达式。对任意\(N\ge m\),令\(S_N:=\sum_{n=m}^{N}a_n\),称无限极数是收敛且收敛于\(L\),记做\(L=\sum_{n=m}^{\infty}a_n\),当且仅当序列\((S_N)_{N=m}^{\infty}\)收敛于极限\(L\)。

根据这个定义可以得到一个最直接的判定定理:\(\sum_{n=m}^{\infty}a_n\)收敛当且仅当对任意\(\vae\gt 0\),都存在\(N\ge m\),使得对任意\(p,q\ge N\)满足\(\abs{\sum_{n=p}^{q}a_n} \le \vae\)。

以下的级数定律可直接转化为\(S_n\)由极限定理或有限级数定律得到:

  • 级数定律1:\(\sum_{n=m}^{\infty}(a_n+b_n)=\sum_{n=m}^{\infty}a_n+\sum_{n=m}^{\infty}b_n\)
  • 级数定律2:\(\sum_{n=m}^{\infty}(ca_n)=c\sum_{n=m}^{\infty}a_n\)
  • 级数定律3:\(\sum_{n=m}^{\infty}a_n=\sum_{n=m}^{m+k-1}a_n+\sum_{n=m+k}^{\infty}a_n\)

  • 嵌套级数:设\((a_n)_{n=0}^{\infty}\)是收敛于\(L\)的实数序列,\(\sum_{n=0}^{\infty}(a_n-a_{n+1})=a_0-L\)。利用有限级数定律1,\(S_n=a_0-a_{n+1}\),再根据极限定律1可知。

  • 零判别法:根据上述判定定理,令\(p=q\)可以得到,若\(\sum_{n=m}^{\infty}a_n\)收敛则\(\lim_{n\to \infty}a_n=0\)

  • 绝对收敛的定义:称级数\(\sum_{n=m}^{\infty}a_n\)是绝对收敛的,当且仅当级数\(\sum_{n=m}^{\infty}\abs{a_n}\)是收敛的。

  • 绝对收敛判别法:绝对收敛的级数收敛,且满足\(\abs{\sum_{n=m}^{\infty}a_n} \le \sum_{n=m}^{\infty}\abs{a_n}\)

证明:设左侧级数对应数列\(S_N\),右侧级数对应数列\({S_N}'\),根据有限级数定理5可知\(S_N\le {S_N}'\),再根据比较原理可知极限的大小关系。

  • 交错级数判别法:\((a_n)_{n=m}^{\infty}\)是非负递减的实数序列,则级数\(\sum_{n=m}^{\infty}(-1)^na_n\)收敛当且仅当\(a_n\)收敛于\(0\)

证明:根据零判别法可知\((-1)^na_n\)收敛于\(0\),因此\(a_n\)收敛于0;而\(S_{N+2}=S_N+(-1)^{N+1}(a_{N+1}-a_{N+2})\),归纳可知\(N\)为偶数时有\(S_{N+2k}\le S_N\),\(S_{N+2k+1}\le S_{N+1}=S_{N}-a_{N+1}\),因此有\(S_N-a_{N+1}\le S_{N+2k+1}\le S_{N+2k}\le S_N\),\(S_n\)时最终\(a_{N+1}\)稳定的,如果\(a_n\)收敛于\(0\),\(S_n\)也收敛。

非负数的和

对于非负实数的形式级数,\(S_n\)是递增的,根据序列上下确界的命题1可知,级数收敛当且仅当\((S_N)_{N=m}^{\infty}\)有上界。利用有限级数定理5和比较原理可以证明以下推论:

  • 比较判别法:对于任意\(n\ge m\)都有\(\abs{a_n} \le b_n\),那么如果\(\sum_{n=m}^{\infty}b_n\)收敛,则\(\sum_{n=m}^{\infty}a_n\)收敛,且\(\abs{\sum_{n=m}^{\infty}a_n} \le \sum_{n=m}^{\infty}\abs{a_n} \le \sum_{n=m}^{\infty}b_n\)。

比较判别法常利用几何级数:\(\sum_{n=0}^{\infty}x^n\)。如果\(\abs{x} \ge 1\),则几何级数发散;\(\abs{x} \lt 1\)时,几何级数收敛于\(1/(1-x)\)。

当\(\abs{x} \ge 1\)时,利用零判别法的逆否命题可得其发散;\(\abs{x} \lt 1\)时可先归纳证明有限几何级数和公式\((1-x^{N+1})/(1-x)\),再利用极限定理和上下确界的命题2可得。

  • 柯西准则:如果\((a_n)_{n=1}^{\infty}\)是递减非负实数序列,级数\(\sum_{n=1}^{\infty}a_n\)收敛当且仅当级数\(\sum_{k=0}^{\infty}2^ka_{2^k}\)收敛

证明:设\(S_N=\sum_{n=1}^{N}a_n\),\(T_k:=\sum_{k=0}^{K}2^ka_{2^k}\),归纳证明\(S_{2^{K+1}-1}\le T_{K}\le 2S_{2^{K}}\)。

  • 推论:\(q\)是正有理数,级数\(\sum_{n=1}^{\infty}1/n^q\)在\(q\le 1\)时发散,\(q\gt 1\)时收敛。

证明:使用柯西准则,级数\(\sum_{k=0}^{\infty}2^k/(2^k)^q=\sum_{k=0}^{\infty}(2^{1-q})^k\),转化成几何级数,且\(2^{1-q}\lt 1\)当且仅当\(q\gt 1\)。

重排列

  • 命题1:如果\(\sum_{n=0}^{\infty}a_n\)是收敛的非负实数的级数,\(f:\NN\to \NN\)是双射,则\(\sum_{m=0}^{\infty}a_{f(m)}\)也收敛于相同的和。

证明:令两者的部分和分别是\(S_N\)和\(T_M\),根据序列上下界命题1可转化为证明\(\sup(S_N)=\sup(T_M)\)。令\(Y=\{m\in \NN:m\le M\}\),分别根据有限集求和定理2和有限集求和定理1有\(T_M=\sum_{m\in Y}a_{f(m)}=\sum_{n\in f(Y)}a_n\),序列\((f(m))_{m=0}^{M}\)有限因此有界,存在\(N\ge f(m)\)对所有\(m\le M\)成立,再分别根据有限集求和定理3和有限集求和定理2可知\(T_M\le \sum_{n\in \{n\in \NN:n\le N\}}a_n=S_N\le\sup(S_N)_{N=0}^{\infty}\),因此\(\sup(T_M)_{M=0}^{\infty}\le\sup(S_N)_{N=0}^{\infty}\)。用\(f^{-1}\)同理可得\(\sup(T_M)\ge\sup(S_N)\)。

  • 命题2:如果\(\sum_{n=0}^{\infty}a_n\)是绝对收敛的实数级数,\(f:\NN\to \NN\)是双射,则\(\sum_{m=0}^{\infty}a_{f(m)}\)也绝对收敛,且收敛于相同的和。

根据命题1可知其绝对收敛。证明收敛于相同的和思路是利用级数收敛的判定定理。令两者的部分和分别是\(S_N\)和\(T_M\),\(S\)收敛于\(L\),对于\(\vae'\),可以找到\(N\)满足\(p,q\ge N\)时有\(\sum_{n=p}^{q}\abs{a_n} \le \vae'\)。\(S_N\)是\(\vae'\)-接近\(L\)的,类似命题1的办法,存在\(M\ge f^{-1}(n)\)对所有\(n\le N\)成立,利用有限集求和定理1,2和3有\(\sum_{m=0}^{M}a_{f(m)}=\sum_{n\in \{f(m):m\in \NN,m\le M\}}a_n=S_N+\sum_{n\in X}a_n\),其中\(X=f(M)\setminus \{n\in \NN:n\le N\}\)。\(X\)有限因此存在上界\(q\),\(X\subseteq \{n\in \NN:N+1\le n\le q\}\),根据有限级数定理5和有限集求和定理3可得\(\abs{\sum_{n\in X}a_n} \le \sum{n\in X}\abs{a_n} \le \sum_{n=N+1}^{q}\abs{a_n} \le \vae'\),因此当\(M'\ge M\)时\(T_{M'}\)是\(\vae'\)-接近于\(S_N\)的,即\(T\)是最终\(2\vae'\)-接近于\(L\)的。

根值判别法和比值判别法

  • 定理(根值判别法):\(\sum_{n=m}^{\infty}a_n\)是实数级数,设\(\alpha=\limsup_{n\to \infty}\abs{a_n} ^{1/n}\)。如果\(\alpha\lt 1\),级数绝对收敛;如果\(\alpha\gt 1\),级数不条件收敛。

证明:\(\alpha\lt 1\)时,存在\(\vae\)满足\(\alpha+\vae\lt 1\),利用上下极限定理1,存在\(N\ge m\)满足对\(n\ge N\)均有\(\abs{a_n} ^{1/n}\le \alpha+\vae\),\(\abs{a_n} \le (\alpha+\vae)^n\),转化为几何级数,再根据比较判别法可知其绝对收敛;\(\alpha\gt 1\)时,利用上下极限定理2,对每个\(N\ge m\)都存在\(n\ge N\)满足\(\abs{a_n} ^{1/n}\ge 1\),因此\((a_n)_{n=m}^{\infty}\)不是最终1-接近于0的,不收敛于0,由零判别法可知其不是条件收敛的。

如果\(\abs{a_n} ^{1/n}\)收敛,也可利用极限值代替上极限。

  • 引理:\(c_n\)是正数序列,则\(\liminf_{n\to \infty} c_{n+1}/c_n\le \liminf_{n\to \infty}c_n^{1/n}\le \limsup_{n\to \infty}c_n^{1/n}\le \limsup_{n\to \infty}c_{n+1}/c_n\)。

证明:中间的不等式可直接由上下极限定理3得到。对于最后一个不等式,仍然是利用上下极限定理,令\(L=\limsup_{n\to \infty}c_{n+1}/c_n\),如果\(L=+\infty\)直接成立,否则\(L\)为非负实数,由上下极限定理1可知,\(\forall \vae\ge 0\),存在\(N\ge 0\)满足\(\forall n\ge N\)都有\(c_{n+1}/c_n\le L+\vae\),归纳可知\(\forall n\ge N\)都有\(c_n\le c_N(L+\vae)^{n-N}\),令\(A=c_N(L+\vae)^{-N}\),有\(c_n^{1/n}\le A^{1/n}(L+\vae)\),由比较原理可知\(\limsup_{n\to \infty}c_n^{1/n}\le \limsup_{n\to \infty}A^{1/n}(L+\vae)\),根据极限定律3和求极限例3可知\(\lim_{n\to \infty}A^{1/n}(L+\vae)=L+\vae\),再结合上下极限定理6可知\(\lim_{n\to \infty}A^{1/n}(L+\vae)\le L+\vae\),因此\(\lim_{n\to \infty}A^{1/n}(L+\vae)\le L\);对于第一个不等式同理,令\(L\)为左式,存在\(N\ge 0\),\(\forall n\ge N\)有\(c_{n+1}/c_n\ge L-\vae\),\(c_n^{1/n}\ge A^{1/n}(L-\vae)\),因此有\(\liminf_{n\to \infty}c_n^{1/n}\ge L-\vae\),得证。

  • 应用:求证\(\lim_{n\to \infty}n^{1/n}=1\)。

证明:\(\limsup{n\to \infty}(n+1)/n=\liminf{n\to \infty}(n+1)/n=1\),根据引理和上下极限定理3(得到相等)和上下极限定理6可知。

  • 推论(比值判别法):结合引理和根值判别法得到:对于所有项不为零的级数\(\sum_{n=m}^{\infty}a_n\),如果\(\limsup_{n\to \infty}a_{n+1}/a_n\lt 1\),级数绝对收敛;如果\(\lim \inf_{n\to \infty}c_{n+1}/c_n\gt 1\),级数不条件收敛。

注意到,所有几何级数都会导致根值判别法\(\alpha=1\)和比值判别法极限为\(1\),但是\(\abs{q} \ge 1\)时发散,\(\abs{q} \lt 1\)时收敛,可以说明存在两种判别法都无法判断收敛性的情况。

第8章 无限集

可数性

  • 可数集的定义:集合\(X\)是可数的,当且仅当\(X\)与自然数集\(\NN\)有相等的基数(存在双射);\(X\)是至多可数的,当且仅当\(X\)是可数的或\(X\)是有限的;\(X\)是不可数的,当且仅当\(X\)不是可数的也不是有限的

  • 定理(良序原理):设\(X\)是\(\NN\)的非空子集,恰存在一个元素\(n\in X\)满足对所有\(m\in X\)有\(n\le m\)(自然数集的非空子集存在最小元素)

证明1:首先存在\(a_0\in X\),此后令\(S_n=\{x\in X:x\lt a_{n-1}\}\),\(a_n\)为\(S_n\)中的任意元素,有\(a_{n+1}\lt a_n\),根据有理数间隙一节中的无穷递降原理,\(a\)有限,即存在\(S_N=\emptyset\),则\(a_{N-1}\)即为所求。

证明2:根据实数的最小上界定理,由于\(0\)一定是下界,因此存在最小下界\(M\),如果\(M\)不在集合中,则\(M\lt m\)均成立,因此\(M+1\le m\)均成立,因此\(M\)在集合中。

  • 命题1:如果\(X\)是\(\NN\)的无限子集,那么存在唯一递增的双射\(f:\NN\to X\)

证明:利用良序原理,令\(a_n=\min(S_n)\)并构造\(S_n\)即可。\(S_n=\{x\in X:\forall m\lt n有x\ne a_m\}\)、\(S_n=\{x\in X:x\gt a_{n-1}\}\)均可。

据此可以说明自然数的所有子集至多可数。

  • 推论1:如果\(X\)至多可数,\(Y\subseteq X\),则\(Y\)至多可数。

证明:\(X\)有限可根据基数算术定理2得到结论;\(X\)无限根据定义可知存在\(f:X\to \NN\),那么\(f:Y\to f(Y)\)也是双射,\(Y\)与\(f(Y)\)基数相同,而\(f(Y)\subseteq \NN\),由上述命题1可知\(f(Y)\)可数,\(f(Y)\)与\(\NN\)有相等的基数。

  • 推论2:\(A\)是至多可数的当且仅当存在\(A\to \NN\)的单射。

证明:如果\(A\)可数,利用可数的定义,如果\(A\)有限,利用集合基的定义;如果存在单射,则存在\(A\to f(A)\)的双射,根据推论1可知\(f(A)\)至多可数。

  • 命题2:\(Y\)是集合,设\(f:\NN\to Y\),则\(f(\NN)\)至多可数

证明:思路是找到集合\(X\subseteq \NN\)且\(f:X\to f(\NN)\)构成双射,再利用命题1得到\(X\)至多可数。令\(X=\{x\in \NN:\forall x'\lt x有f(x)\ne f(x')\}\)即可。

  • 推论:\(X\)是可数集,\(Y\)是集合,设\(f:X\to Y\),则\(f(X)\)至多可数

证明:存在双射\(g:\NN\to X\),则\(f(x)=f(g(g^{-1}(x)))\),则\(f(X)=f(g(f^{-1}(X)))=f(g(\NN))\),利用命题2可知\((f\circ g)(\NN)\)至多可数。

  • 命题3:\(X\)和\(Y\)是可数集,则\(X\cup Y\)是可数集

证明:考虑如何构造\(\NN\to Z\)的双射,应当\(f(0)=0,f(1)=1,f(2)=-1,f(3)=2,f(4)=-2,...,f(2k)=-k,f(2k+1)=k+1,...\)。设存在双射\(g:\NN\to X\),\(h:\NN\to Y\),那么令\(g(n)=f(2n),h(n)=f(2n+1)\),则\(f(\NN)=X\cup Y\),由命题2可知\(X\cup Y\)可数。

  • 命题4:集合\(A=\{(n,m)\in \NN\times \NN:m\le n\}\)是可数集

证明:思路是按照一定顺序“分配”给自然数\((1,1),(2,1),(2,2),(3,1),(3,2),(3,3),...\)。令\(a_0=0\),\(a_{n+1}=a_n+n+1\),那么\(a_N\)就表示\(n\lt N\)的二元组个数,直接令\(f(n,m):=a_n+m\)即可。只需说明\(f\)是一对一的即可说明存在\(A\)到\(f(A)\)的双射,由命题1的推论1可知其至多可数,而如果\(A\)有限,则任一个子集都有限,而\(A'=\{(n,0)\in \NN\times \NN:n\in \NN\}\)与\(\NN\)基数相同,矛盾,因此\(A\)是可数的。(直接说明\(f\)是满射似乎更方便)

  • 推论1:\(\NN\times \NN\)是可数集

证明:令\(B=\{(n,m)\in \NN\times \NN:m\ge n\}\),则\(A\)和\(B\)基数相同,\(B\)可数;而\(\NN\times \NN=A\cup B\),根据命题3可得结论。

  • 推论2:如果\(X\)和\(Y\)是可数集,则\(X\times Y\)是可数集

证明:存在双射\(g:X\to \NN\)和\(h:Y\to \NN\),则\(f(x,y)=(g(x),h(y))\)是\(X\times Y\to \NN\times \NN\)的双射。

  • 推论3:有理数集\(\QQ\)是可数集

证明:由命题3可知\(Z\)是可数集,\(Z\setminus \{0\}\)也是可数集,则令\(f(a,b)=a/b\),由命题2的推论可知\(\QQ\)是可数集。

可数集意味着可以排成一排\(f(0),f(1),...\),而上述命题使用的都是构造性证明,因此对任何由这些命题证明出的可数集,我们都可以直接利用证明过程构造出一个无穷序列取遍所有元素。

构造有理数集合的无穷序列我的想法是只考虑互质的分子分母,并且对于\(a/b(a\lt b)\)要同时加入\(-a/b,b/a,-b/a\)(并集的构造就是交替选取元素)。按照\(b\)为第一优先级,\(a\)为第二优先级的顺序,如果要类似命题4来写的话可令\(a_n=\sum_{i\lt n}\varphi(i)\)

  • 习题1:\(X\)是无限集当且仅当存在\(X\)的真子集\(Y\)与\(X\)有相同的基数。

引理:无限集\(X\)存在可数子集。

引理的证明(巧妙):令\(S_0=X\),\(a_n\in S_{n-1}\),\(S_n=S_{n-1}\setminus\{a_n\}\)。因为\(X\)是无限集,因此不存在\(S_n=\emptyset\),因此根据选择公理,存在无穷数列\(a_n\),\(a_n\)构成双射,\(\{a_n:n\in \NN\}\)是可数子集。

证明:如果\(X\)不是无限集,根据基数定义的引理(集合删除一个元素基数减一)和基数算数定理2(集合的基数大于等于子集基数)可知不存在\(Y\);如果\(X\)是无限集,根据引理存在可数子集\(A\in X\),取\(a\in A\),则\(A\)与\(A\setminus \{a\}\)有相同的基数,进而存在双射\(f:A\to A\setminus \{a\}\),再令所有\(x\in X\setminus A\),\(f(x)=x\),则\(f\)是\(X\to X\setminus \{a\}\)的双射。

  • 习题2:\(I\)是至多可数的集,且对于每个\(\alpha\in I\)有\(A_{\alpha}\)是至多可数的,求证集合\(\bigcup_{\alpha\in I}A_{\alpha}\)至多可数。

证明:如果\(I\)是有限集,对\(\#(I)\)归纳利用可数性命题3得证。对于可数集\(I\),证明的思路是转化为\(\NN\times \NN\)。存在\(f:\NN\to I\),\(\bigcup_{\alpha\in I}A_{\alpha}=\bigcup_{i=0}^{\infty}A_{f(i)}=\bigcup_{i=0}^{\infty}(A_{f(i)}\setminus \bigcup_{j=0}^{i-1}A_{f(j)})\),因此它的基数等于\(\bigcup_{i=0}^{\infty}\p{ (A_{f(i)}\setminus \bigcup_{j=0}^{i-1} A_{f(j)})\times \{i\} }\)的基数,而\(\bigcup_{i=0}^{\infty}\p{ (A_{f(i)}\setminus \bigcup_{j=0}^{i-1}A_{f(j)})\times \{i\} }\subseteq \bigcup_{i=0}^{\infty} \p{ A_{f(i)}\times \{i\} }\),对于每个\(A_{f(i)}\),都存在一个满射\(g_i:\NN\to A_{f(i)}\),\(g_i\in \{h\in (A_{f(i)})^\NN:h是满射\}\),根据选择公理,对每个\(i\in \NN\)存在函数\(g_i\),\(g_i(\NN)=A_{f(i)}\),则\(\bigcup_{i=0}^{\infty} \p{A_{f(i)}\times \{i\}}=\{(g_n(m),n):(n,m)\in \NN\times \NN\}\),由可数性命题4(至多可数集的笛卡尔积是至多可数集)和可数性命题2(至多可数集经过替代公理仍然得到至多可数集)可知,\(\{(g_n(m),n):(n,m)\in \NN\times \NN\}\)至多可数,再由可数性命题1(至多可数集的子集是至多可数集)可知,最终结果至多可数。

在无限集上求和

  • 可数集上的级数的定义:设\(X\)是可数集,\(f:X\to \RR\)是一个函数,称\(\sum_{x\in X}f(x)\)是绝对收敛的,当且仅当存在某个双射\(g:\NN\to X\)使得\(\sum_{n=0}^{\infty}f(g(n))\)是绝对收敛的,此时\(\sum_{x\in X}f(x):=\sum_{n=0}^{\infty}f(g(n))\)。

根据重排列命题1,不同的\(g\)得到的值相同。

  • 无限和的富比尼定理:设\(f:\NN\times \NN\to \RR\)是使得\(\sum_{(n,m)\in \NN\times \NN}f(n,m)\)绝对收敛的函数,那么\(\sum_{n=0}^{\infty}(\sum_{m=0}^{\infty}f(n,m))=\sum_{(n,m)\in \NN\times \NN}f(n,m)=\sum_{(m,n)\in \NN\times \NN}f(n,m)=\sum_{m=0}^{\infty}(\sum_{n=0}^{\infty}f(n,m))\)。

证明:第二个等号,令双射\(h(x,y)=(y,x)\),再根据重排列命题1可得证;先考虑\(f(n,m)\ge 0\)的情况。第一个等号和第三个等号证法相同:令\(L=\sum_{(n,m)\in \NN\times \NN}f(n,m)\),要证明左式收敛于\(L\)。

先证明左式小于等于\(L\)。利用序列上下确界命题1(无穷递增数列收敛于最小上界),设双射\(h:\NN\to \NN\times \NN\),\(L\)也是上界,那么对于任何一个有限集\(X\subseteq \NN\times \NN\),存在\(M\)满足对所有\((n,m)\in X\)有\(h^{-1}(n,m)\le M\),\(\sum_{(n,m)\in X}f(n,m)\le \sum_{i\le M}f(h(i))\le L\)。利用有限级数的习题(有限级数和求极限可交换次序)和无限极数的定义,\(\sum_{n=0}^{N}\sum_{m=0}^{\infty}f(n,m)=\sum_{m=0}^{\infty}\sum_{n=0}^{N}f(n,m)\),对于任意\(M\),根据有限级数的富比尼定理可知,\(\sum_{m=0}^{M}\sum_{n=0}^{N}f(n,m)=\sum_{(n,m)\in X}f(n,m)\le L\),再根据最小上界的定义,\(M\to \infty\)时的无限极数收敛,\(\sum_{n=0}^{N}\sum_{m=0}^{\infty}f(n,m)\le L\),再次利用最小上界的定义可知,\(N\to \infty\)时的无限极数也收敛,即\(\sum_{n=0}^{\infty}\sum_{m=0}^{\infty}f(n,m)\le L\)。

再证明对于任意\(\vae\gt 0\),有左式大于\(L-\vae\)。这里的证明方法类似于重排列命题1,将集合看作前缀的子集直接放缩为前缀。根据最小上界的定义可知,存在有限集\(X\subseteq \NN\times \NN\)使得\(\sum_{(n,m)\in X}f(n,m)\gt L-\vae\),存在集合\(Y=\{(n,m)\in \NN\times \NN:n\le N,m\le M\}\)使得\(X\subseteq Y\),那么\(\sum_{n=0}^{N}\sum_{m=0}^{M}f(n,m)=\sum_{(n,m)\in Y}f(n,m)\ge \sum_{(n,m)\in X}f(n,m)\gt L-\vae\)。进而有\(\sum_{n=0}^{\infty}\sum_{m=0}^{\infty}f(n,m)\ge \sum_{n=0}^{N}\sum_{m=0}^{\infty}f(n,m)\ge \sum_{n=0}^{N}\sum_{m=0}^{M}f(n,m)\gt L-\vae\)。

对于\(f(n,m)\)有正有负的情况,按照正负分别求出极限\(f^{+}\)和\(f^{-}\),求正极限时把负数项设成0,负极限同理,利用上界可知都收敛,利用极限定律1可知极限为\(f^{+}-f^{-}\)。

注意到如果多重和式绝对收敛,每次可以交换任意两个相邻的求和符号,那么最终可以将求和符号任意重排列。

因为不可数集的和无法用序列极限定义,我们尝试使用集合来定义:

  • 任意集合上级数的定义:对于集合\(X\),设\(f:X\to \RR\),级数\(\sum_{x\in X}f(x)\)绝对收敛当且仅当\(\sup\{\sum_{x\in A}\abs{f(x)} :A\subseteq X,A是有限集\}\)不为\(\infty\)

若\(X\)是至多可数的,\(\sup\{\sum_{x\in A}\abs{f(x)} :A\subseteq X,A是有限集\}=\sum_{x\in A}f(x)\)(将两边都利用定义展开到\(\sup\)和有限级数即可),因此这个定义是可行的。

  • 引理1:对集合\(X\),设\(f:X\to \RR\),级数\(\sum_{x\in X}f(x)\)绝对收敛,则集合\(\{x\in X:f(x)\ne 0\}\)是至多可数的。

证明:令实数\(M=\sup\{\sum_{x\in A}\abs{f(x)} :A\subseteq X,A是有限集\}\),对任意正整数\(n\gt 0\),设集合\(A_n=\{x\in X:\abs{f(x)} \gt 1/n\}\),\(M\ge \sum_{x\in A_n}\abs{f(x)} \gt \sum_{x\in A_n}1/n\),因此\(A_n\)是有限集,利用可数性习题2,可知\(\bigcup_{n=1}^{\infty}A_n\)是至多可数的,而任意\(\abs{f(x)} \gt 0\),必有\(x\in \bigcup_{n=1}^{\infty}A_n\),因此集合\(\{x\in X:f(x)\ne 0\}\)与\(\bigcup_{n=1}^{\infty}A_n\)基数相同。

通过这个引理,我们又定义了不可数集的级数的值:\(\sum_{x\in X}f(x):=\sum_{x\in X:f(x)\ne 0}f(x)\)。我们可以用这个定义得到无限集的级数定律,包括(a)绝对收敛的级数相加,(b)乘常数,(c)不交集合的并的级数等于集合的级数之和,(d)可以利用双射复合:\(\sum_{y\in Y}f(\phi(y))=\sum_{x\in X}f(x)\),其中\(\phi:Y\to X\)是双射。(d)的可以用重排列命题2来证明。

  • 引理2:若\(\sum_{n=0}^{\infty}a_n\)收敛但不绝对收敛,则令\(A_+=\{n\in \NN:a_n\ge 0\}\),\(A_-=\{n\in \NN:a_n\lt 0\}\),则级数\(\sum_{n\in A_+}a_n\)和\(\sum_{n\in A_-}a_n\)都不收敛。

证明:反证。利用无限集的级数定律(c),原级数,\(A_+\),\(A_-\)三者中若两者收敛可得第三者收敛。

  • 定理:设\(\sum_{n=0}^{\infty}a_n\)收敛但不绝对收敛,设\(L\)是任一个实数,存在双射\(f:\NN\to \NN\)使得\(\sum_{n=0}^{\infty}a_{f(m)}\)收敛于\(L\)。

证明:思路是按\(a\)的正负分成两个集合,当目前的和不超过\(L\)时就加正的,超过了\(L\)就加负的。令\(A_+=\{n\in \NN:a_n\ge 0\}\),\(A_-=\{n\in \NN:a_n\lt 0\}\),如果\(\sum_{i=0}^{m-1}a_{f(i)}\lt L\),则\(f(m):=\min\{n\in A_{+}:\forall i\lt m有n\ne n_i\}\);同理如果\(\sum_{i=0}^{m-1}a_{f(i)}\ge L\),\(f(m):=\min\{n\in A_{-}:\forall i\lt m有n\ne n_i\}\)。由引理2知,\(\sum_{n\in A_{+}}a_n\)和\(\sum_{n\in A_{-}}a_n\)都不收敛,因此\(A_{+}\)和\(A_{-}\)都是无限集,上述构造的\(f\)存在,并且由于\(A_+\)删除任何一个有限子集后都不收敛,两种情况都会无限次出现,\(f:\NN\to \NN\)是双射。利用零判别法,\(\lim_{n\to \infty}a_n=0\),再根据极限的定义可以得到\(\lim_{m\to \infty}a_{f(m)}=0\)。再利用级数收敛的定义,设\(\vae\gt 0\),存在\(N\ge 0\),\(\forall m\ge N\)有\(\abs{a_{f(m)}} \le \vae\),那么存在\(N'\ge N\),\(\abs{\sum_{i=0}^{N'}a_{f(i)}-L} \le \vae\)(可利用反证法),再归纳证明,\(\forall m\ge N'\)有\(\abs{\sum_{i=0}^{m}a_{f(i)}-L} \le \vae\)。

也可以通过重排列使得级数发散:取任一个\(\vae\gt 0\),根据收敛序列有界,存在\(M\)满足所有\(a_n\ge M\),设当前部分和为\(S\),如果\(S+M\ge \vae\),则加入一个负数(\(f(m):=\min\{n\in A_{-}:\forall i\lt m有n\ne n_i\}\)),并令\(S=0\);否则加入一个正数。因为每加入一个负数,总和至少增加\(\vae\),最后收敛于正无穷。

什么发散的级数\(\sum_{n=0}^{\infty}a_n\)可以通过重排列得到收敛的级数:\(A_+\)和\(A_-\)的级数必须都发散,且存在排列\(g:\NN\to A_+\)使得\(\lim_{n\to \infty}a_{g(n)}=0\)(\(A_-\)同理)。

证明:必要性设存在\(f\)使得\(\sum_{n=0}^{\infty}a_{f(n)}\)收敛,令\(g(n)=f(\min\{m\in \NN:a_{f(m)}\gt 0且\forall i\lt n有g(i)\ne m\})\)可得\(\lim_{n\to \infty}a_{g(n)}=0\)。充分性可利用上述定理的证明方式,证明其可通过重排列收敛于任意实数。

综合这几个结论,级数的重排列可能有三种情况(a)任意重排列都收敛(绝对收敛) (b)既可以得到发散的级数也可以得到收敛的级数(\(A_+\)和\(A_-\)满足上述条件,如果收敛可以使其发散,如果发散可以使其收敛) (c)任意重排列都发散(其他情况)

不可数集

注:幂集公理的引理已经证明了一个集合的所有子集构成一个集合,可以通过对集合的基数归纳可证明集合\(X\)的子集个数为\(2^{\#(X)}\),因此我们把\(X\)的所有子集构成的集合记做\(2^X\)。

  • 康托尔定理:\(X\)是任一个集合,\(X\)和\(2^X\)基数不同。

证明:反证,存在双射\(f:X\to 2^X\),考虑集合\(A=\{x\in X:x\notin f(x)\}\)和对象\(x\)满足\(f(x)=A\),如果\(x\in A\),则\(x\notin f(x)\),矛盾;如果\(x\notin A\),则\(x\in f(x)\),矛盾。

设\(A=f(x_0)\),对于\(x_0\in A\)当且仅当\(x_0\notin A\),类似罗素悖论。

  • 推论:\(2^\NN\)是不可数集。

证明:\(2^\NN\)与\(\NN\)基数不同,是不可数集或有限集。而\(\{\{n\}:n\in \NN\}\)是可数集,也是\(2^\NN\)的子集,根据基数算数定理2可知\(2^\NN\)不是有限集。

为什么不能通过二进制拆分构造\(\NN\)和\(2^\NN\)的双射?因为\(2^\NN\)中有无限集,而\(\NN\)中所有对象都是有限的数。\(2^\NN\)中所有无限集通过二进制求和都无法得到一个自然数。

  • 推论:\(\RR\)是不可数集。

证明:定义\(f:2^\NN\to \RR\),\(f(A)=\sum_{n\in A}2^{-n}\),对于任意\(A\ne B\),找到\((A\setminus B)\cup(B\setminus A)\)中的最小元素即可证明\(f(A)\ne f(B)\),因此\(f\)是单射,\(f(2^\NN)\)与\(2^\NN\)基数相同,而\(f(2^\NN)\)是\(\RR\)的子集,根据可数性命题1可知,\(\RR\)是不可数集。

  • 习题(施罗德-伯恩斯坦定理):定义集合\(A\)的基数小于等于\(B\)的基数当且仅当存在单射\(f:A\to B\),那么如果\(A\)的基数小于等于\(B\)的基数,且\(B\)的基数小于等于\(A\)的基数,那么\(A\)和\(B\)基数相等。

引理:如果集合\(A\subseteq B\),且存在单射\(f:B\to A\)那么\(f\)是双射。

引理证明(巧妙!):思路就是如果\(A\setminus B\)有元素,那么从\(A\setminus B\)开始,每次将集合\(S\)变成\(f(S)\),如果\(B\)是有限集一定会导致无法无限进行。令\(D_0=B\setminus A\),令\(D_{n+1}=f(D_{n})\),由于\(f\)是单射,对\(n\)归纳可证明对每个\(n\)都满足\(D_n\)与之前的\(D_m(m\lt n)\)不相交。当\(x\in \bigcup_{n=0}^{\infty}D_n\)时,\(g(x)=f(x)\),当\(x\notin \bigcup_{n=0}^{\infty}D_n\)时,\(g(x)=x\)。那么\(g\)是\(A\to B\)的满射。因此\(A\)和\(B\)基数相同,\(f\)是双射。(证明也可用函数的\(n\)次复合表述:为当存在\(n\)满足\(x\in f^n(A\setminus B)\)时,令\(g(x)=f(x)\),否则\(g(x)=x\))

原定理证明:设存在单射\(f:A\to B\)和\(g:B\to A\),直接构造\(f(A)\subseteq B\),存在单射\(h:B\to f(A)\),\(h=f\circ g\)。利用引理可得\(f(A)=B\),\(f\)是双射。

选择公理

  • 无限笛卡尔积的定义:对集合\(I\),若任意\(\alpha\in I\)都满足\(X_{\alpha}\)是一个集合,定义笛卡尔积\(\prod_{\alpha\in I}X_{\alpha}=\{(x_{\alpha})_{\alpha\in I}\in (\bigcup_{\beta\in I}X_{\beta})^I:x_{\alpha}\in X_{\alpha}对所有\alpha\in I均成立\}\)

  • 选择公理:对集合\(I\),若任意\(\alpha\in I\)都满足\(X_{\alpha}\)是一个非空集合,那么集合\(\prod_{\alpha\in I}X_{\alpha}\)非空,即存在\((x_{\alpha})_{\alpha\in I}\),满足对每个\(\alpha\in I\)都有\(x_{\alpha}\in X_{\alpha}\)

选择公理并不能由有限选取引理直接得到,例如对于不可数集\(I\),我认为我们不知道该怎样构造出\(x_{\alpha}\),因为即便我们的数学归纳法可以归纳到无穷大(实际上并不能),我们也不知道该以什么样的顺序来取\(\alpha\)使得所有\(x_{\alpha}\)的值都被指定了(因为不存在一个\(\NN\to I\)的双射)。

  • 引理:\(E\)是实数集的子集,且\(\sup(E)\lt \infty\),那么存在一个所有项\(a_n\in E\)的序列\((a_n)_{n=1}^{\infty}\)使得\(\lim_{n\to \infty}a_n=\sup(E)\)

证明:对任意自然数\(n\),令\(X_n=\{x\in E:\sup(E)-1/n\le x\le\sup(E)\}\),对\(X_n\)使用选择公理,得到\(\sup(E)-1/n\le a_n\le\sup(E)\),再使用夹逼定理即可。

习题1:选择公理等价于如下表述,设\(I\)是集合,对每个\(\alpha\in I\)有\(X_{\alpha}\)是一个集合,且对任意不同的\(\alpha,\beta\in I\)都有\(X_{\alpha}\cap X_{\beta}=\emptyset\),存在一个集合\(Y\)使得对所有\(\alpha\in I\)有\(\#(X_{\alpha}\cap Y)=1\)。

证明:选择公理可直接得到命题正确;而根据这个命题,我们可以令\(X_{\alpha}'=\{\alpha\}\times X_{\alpha}\),可使\(X_{\alpha}'\)彼此不交,再求\(Y\),可以证明选择公理。

习题2:选择公理等价于如下表述,若存在满射\(g:B\to A\),则存在单射\(f:A\to B\)。

证明:根据选择公理,如果存在满射,在\(f^{-1}{a}\)中选择可得单射;要证明选择公理,可转化为证明习题1的表述,对\(x\in X_{\alpha}\),令\(f(x)=\alpha\),则\(f:\bigcup_{\alpha\in I}X_{\alpha}\to I\)是满射,存在单射\(g\),即对每个\(\alpha\in I\)有\(g(\alpha)\in X_{\alpha}\),令\(Y=\{g(\alpha):\alpha\in I\}\)即可。

可直接构造证明存在单射可得存在满射,据此定义\(A\)的基数小于等于\(B\)。

有序集

  • 偏序集的定义:偏序集时附加了关系\(\le_{X}\)的集合\(X\),即对任一个两个对象\(x,y\in X\),\(x\le_{X} y\)是真命题或假命题,并且这种关系遵守以下三个性质。(a)自反性:对任意的\(x\in X\),有\(x\le_{X} x\);(b)反对称性:如果\(x,y\in X\),\(x\le_{X} y\),\(y \le_{X} x\),则\(x=y\);(c)传递性:如果\(x,y,z\in X\)满足\(x\le_{X} y\)且\(y\le_{X} z\),则\(x\le_{X} z\)。称\(\le_{X}\)为序关系。如果\(x\le_{X} y\)且\(x\ne y\),记做\(x\lt _{X} y\)。

DAG上的可达性就就是典型的偏序关系(反对称性和传递性决定了不能有环)。

  • 全序集的定义:设\(X\)是一个偏序集,且\(\le_{X}\)是\(X\)上的序关系,若对任意的\(y,y'\in Y\)都有\(y\le_{X} y'\)或\(y'\le_{X} y\),则\(X\)的子集\(Y\)是全序的。如果\(X\)是全序的,则称\(X\)是附加了序关系\(\le_{X}\)的全序集。

全序集就对应一条链上的可达性。

  • 最大元素和最小元素的定义:设\(X\)是偏序集,\(Y\)是\(X\)的子集,且如果\(y\in Y\)且不存在\(y'\in Y\)使得\(y'\lt y\)则称\(y\)是\(Y\)的最小元素;如果不存在\(y'\in y\)使得\(y'\gt y\)则称\(y\)是\(Y\)的最大元素。

  • 习题1:全序集的任一个有限的非空子集都恰有一个最小元素和最大元素。对子集的基数归纳即可。
  • 习题2:全序集的任一个非空子集都有最小元素和最大元素,则该集合是有限集。

证明:设全序集为\(Y\)。反证,令\(S_0=Y\),\(a_0\)为\(S_0\)中最小元素,\(S_n=\{x\in Y:x\gt a_{n-1}\}\),\(a_n\)是\(S_n\)中最小元素。利用无限集可得\(S_n\ne \emptyset\),则\(a\)是无穷单调递增的数列。对于集合\(A=\{x\in Y:\exists n\in \NN,a_n=x\}\),\(A\)中有最大元素,矛盾。(如果\(S\)是不可数集,其实\(a\)不可能取遍\(Y\)中所有元素,所以只能说\(A\)是\(Y\)的子集)

  • 良序集的定义:设\(X\)是偏序集,\(Y\)是\(X\)的一个全序子集,如果\(Y\)的每个非空子集都有最小元素,则\(Y\)是良序的。

\(\NN\)是良序集。我自己发现了一个不可数良序集的例子:设\(2^\NN\)是一个全序集,\(X\le Y\)定义为\(X\setminus Y\)的最小元素\(a\)和\(Y\setminus X\)的最小元素\(b\)满足\(a\le b\)(这里认为空集的最小元素是\(+\infty\))。其实就是从小到大写出来的序列\(X\)的字典序更小。对于任意\(2^\NN\)的子集\(S\),只需要每次选出最小自然数使得存在一个\(S\)中的集合包含它,然后在\(S\)中删去不包含它的集合。具体地,令\(S_0=S\),\(a_n=\min\{x\in \NN,x\gt a_{n-1}:\exists Y\in S_n,x\in Y\}\),\(S_{n+1}=\{A\in S_n:a_n\in A\}\)。那么对\(n\)归纳可得:对于每个\(n\),任取一个\(A\in S_{n+1}\),任取\(0\le m\le n\),都有\(a_m\in A\)。且对于任意\(A\in S_n\)和\(B\notin S_n\),都有\(A\le B\)。如果存在\(S_{n+1}=\emptyset\)(最小集合是有限集),那么\(\{a_n:0\le m\le n\}\)即为所求;如果不存在,根据选择公理,\(\{a_n:n\ge 0\}\)即为所求。

  • 习题3:设\(X\)是偏序集,\(Y\)和\(Y'\)都是\(X\)的良序子集,证明\(Y\cup Y'\)是良序的当且仅当它是全序的。

证明:对于任意\(A\)是\(Y\cup Y'\)的子集,\(A=(A\cap Y)\cup (A\setminus Y)\),其中\(A\cap Y\)是\(Y\)的子集,\(A\setminus Y\)是\(Y'\)的子集。如果\(Y\cup Y'\)是全序的,\(A\cap Y\)的最小值和\(A\setminus Y\)的最小值中的较小值就是\(A\)的最小值。

  • 强归纳原理:设\(X\)是一个以\(\le_{X}\)为序关系的良序集,设\(P(n)\)是关于\(n\in X\)的性质,假设对每一个\(n\in X\),如下蕴含关系的命题都成立:如果对所有\(m\lt _{X} n\)都有\(P(m)\)为真,则\(P(n)\)为真。那么对所有\(n\in X\),\(P(n)\)均为真。

蕴含关系中,如果前提不为真,命题仍然是空虚的真,因此对于最小元素\(x\),\(P(x)\)自动为真。

证明:设\(Y=\{n\in X:P(n)为假\}\),由于\(X\)是良序集且\(Y\)是\(X\)的子集,因此\(Y\)中存在最小元素\(n\),对于所有\(m\lt _{X} n\),有\(m\notin Y\),因此\(P(m)\)为真,矛盾。

  • 上界和严格上界的定义:设\(X\)是一个以\(\le\)为序关系的偏序集,\(Y\)是\(X\)的一个子集,如果\(x\in X\),称\(x\)是\(Y\)的一个上界,当且仅当对所有\(y\in Y\)都有\(y\le x\)。如果\(x\notin Y\),则\(x\)是\(Y\)的严格上界。

  • 引理:设\(X\)是一个以\(\le\)为序关系的偏序集,\(x_0\)是\(X\)一个元素,那么存在\(X\)的一个良序子集\(Y\)使得x_0\(为\)Y\(的最小元素且\)Y$没有严格上界。

这个引理有“弱化版”:去掉\(x_0\)的限制,变成“任何一个偏序集存在一个良序子集没有严格上界”。

其实这些命题都很容易有直观的认识,而严谨的证明就是使用公理定理讲这个“感受”理性地写出来。例如从\(\{x_0\}\)开始不断地在集合中加入严格上界,但这并不严谨,例如实数集中\(\{0,1/2,3/4,7/8,...\}\)始终有严格上界。这个证法不合适其实是因为虽然构造的集合是无限集,但构造的过程中它只考虑了有限集的严格上界,因为添加的任何一个数都是有限集的严格上界。如果再追问一句,整个这个集合\(\{0,1/2,3/4,7/8,...\}\)的严格上界是什么,就会得到一个不小于\(1\)的数。下面的证法就利用并集公理的无穷并集,考虑了整个集合的严格上界。

证明(巧妙!):反证。利用选择公理,对每个以\(x_0\)为最小元素的良序子集\(Y\)指定严格上界\(s(Y)\in X\)。称\(X\)的子集\(Y\)是好的,当且仅当\(Y\)是良序的,最小元素是\(x_0\),且对所有\(x\in Y\setminus\{x_0\}\),都有\(s(\{y\in Y:y\lt x\})=x\)。令\(\Omega=\{Y\subseteq X:Y是好的\}\),则\(Y_{\infty}:=\bigcup \Omega\)即为所求。由于每个\(Y\in \Omega\)都有\(x_0\)是\(Y\)的最小元素,显然\(x_0\)是\(Y_{\infty}\)的最小元素。还需证明\(Y_{\infty}\)是良序的和\(Y_{\infty}\)没有严格上界。

(可以观察到,好的子集都是由\(\{x_0\}\)不断加入\(s\)值得到的,因此好的子集应该有“前缀”关系,接下来先证明包含关系和“前缀”关系。)先证明如下引理:如果\(Y\)和\(Y'\)是两个好的子集,可以通过强归纳原理,证明对任意\(a\in Y\cap Y'\),都有\(\{y\in Y:y\le a\}=\{y\in Y':y\le a\}=\{y\in Y\cap Y':y\le a\}\):对\(a\)归纳,可以通过反证法得到\(\{y\in Y:y\lt a_0\}=\{y\in Y':y\lt a_0\}=\{y\in Y\cap Y':y\lt a_0\}\),否则例如\(b\)属于其中某个而不属于另一个,则\(b\lt a_0\),\(a=b\)时三集合相等,矛盾。

进而可得\(Y\cap Y'\)的最小元素与\(Y\)相同,且任何一个子集都是\(Y\)的子集,因此\(Y\cap Y'\)又是良序的,若\(x\in Y\cap Y'\),有\(\{y\in Y\cap Y':y\lt x\}=\{y\in Y:y\lt x\}\),那么\(s(\{y\in Y\cap Y':y\lt x\})=s(\{y\in Y:y\lt x\})=y\),综上三个条件可得\(Y\cap Y'\)也是好的。注意到,如果\(Y\setminus Y'\)非空,考虑对任意\(x\in Y'\)且\(x\lt \min(Y'\setminus Y)\),有\(x\in Y\),那么\(x\in Y\cap Y'\);且对于任意\(x\in Y'\)且\(x\ge \min(Y'\setminus Y)\),都有\(x\notin Y\),否则\(x\in Y\cap Y'\),而\(\min(Y'\setminus Y)\le x\)属于\(Y'\)却不属于\(Y\),矛盾。进而得到\(Y\cap Y'=\{x\in Y':x\lt \min(Y'\setminus Y)\}\)。于是\(s(Y\cap Y')=\min(Y'\setminus Y)\)。同理可得\(s(Y\cap Y')=\min(Y\setminus Y')\),如果\(Y\setminus Y'\)和\(Y'\setminus Y\)均非空,由于其不交,\(s(Y\cap Y')\)同时等于两个不等的值,矛盾。所以\(Y\subseteq Y'\)或\(Y'\subseteq Y\)。进一步可以证明,不妨设\(Y\subseteq Y'\),\(x\in Y'\setminus Y\),\(x\)是\(Y\)的严格上界:反证,设\(x'\in Y\)且\(x'\gt x\),则\(x'\in Y'\),与引理矛盾。

下证\(Y_{\infty}\)是良序的。有了这个好的子集的包含关系,如果\(x,x'\in Y_{\infty}\),则有\(x\in Y\)和\(x'\in Y'\),不妨设\(Y\subseteq Y'\),则有\(x,x'\in Y'\),根据\(Y'\)是良序的,也是全序的,得到\(x\)与\(x'\)之间有大小关系,进而得到\(Y_{\infty}\)是全序的。对于任意\(Y_{\infty}\)的非空子集\(A\),存在\(a\in A\),存在\(a\in Y\),\(Y\)是好的。那么令\(b=\min(A\cap Y)\),要证\(b\)是\(A\)的最小元素。任取\(x\in A\),存在\(x\in Y'\)。如果\(x\in (Y'\cap Y)\cap A\),有\(x\ge b\);如果\(x\in (Y'\setminus Y)\cap A\),那么\(x\)是\(Y\)的严格上界,\(x\ge b\)。

最后,\(Y_{\infty}\)是好的,那么存在严格上界\(s(Y_{\infty})\),根据习题3,\(Y_{\infty}\cup \{s(Y_{\infty})\}\)也是好的,因此该集合包含在\(Y_{\infty}\)中,矛盾。

  • 佐恩引理(超限归纳原理):设\(X\)的每个全序子集\(Y\)都有一个上界,那么\(X\)至少有一个最大元素。

证明:反证,如果\(X\)没有最大元素,那么每个\(X\)的全序子集都存在严格上界(否则该子集的最大元素就是\(X\)的最大元素)。而根据上一个引理的“弱化版”,存在一个良序集,良序集是全序集,矛盾。

第9章 \(\RR\)上的连续函数

实直线的子集

可以按照常识定义区间\([a,b]\),\((a,b)\),\([a,b)\),\((a,b]\),其中\(a,b\in \RR^*\)是广义实数。当区间表示空集或单个元素时,称这个区间是退化的。

  • \(\vae\)-附着点的定义:设\(X\)是\(\RR\)的子集,\(\vae\gt 0\),\(x\in \RR\),称\(x\)是\(\vae\)-附着于X的,当且仅当存在\(y\in X\)是\(\vae\)-接近于\(x\)的。
  • 附着点的定义:设\(X\)是\(\RR\)的子集,\(x\in \RR\),称\(x\)是\(\vae\)-附着于\(X\)的,当且仅当对任意\(\vae\gt 0\),都有\(x\)是\(\vae\)-附着于\(X\)的。
  • 闭包的定义:设\(X\)是\(\RR\)的子集,\(X\)的闭包记做\(\overline{X}\),表示\(X\)的全体附着点构成的集合。

  • 闭包的初等性质:(a)\(X\subseteq \overline{X}\),(b)\(\overline{X\cup Y}=\overline{X}\cup \overline{Y}\),(c)\(\overline{X\cap Y}\subseteq \overline{X}\cap \overline{Y}\),(d)若\(X\subseteq Y\)则\(\overline{X}\subseteq \overline{Y}\)。

(b)的右包含于左显然,左包含于右需要反证。(c)的包含改为相等的反例:两个开区间\((1,2)\)和\((2,3)\)

  • 习题1:设\(X\)是\(\RR\)的子集,\(X\subseteq Y\subseteq \overline{X}\),那么必有\(\overline{Y}=\overline{X}\)

证明:首先根据闭包性质(d)得到右包含于左,左包含于右设\(y\in \overline{Y}\),\(\vae\gt 0\),可以找到\(y'\in Y\)且\(y'\vae/2\)-接近于\(y\),而\(y'\in \overline{X}\),可以找到\(x\in X\)且\(x\vae\)-接近于\(y'\),因此\(x\vae\)-接近于\(y\)。

另外也很容易证明对于实数\(a\lt b\),\([a,b]\),\((a,b)\),\([a,b)\),\((a,b]\)的闭包都是\([a,b]\);\(\QQ\)的闭包是\(\RR\):由实数的序命题3(对任意实数\(x\lt y\),存在有理数\(q\)满足\(x\lt q\lt y\))可知对\(x\in \RR\)均存在有理数\(q\)满足\(x-\vae\lt q\lt x+\vae\)。

  • 引理:设\(X\)是\(\RR\)的子集,\(x\in \RR\),那么\(x\)是\(X\)的附着点当且仅当存在一个序列\((a_n)_{n=0}^{\infty}\)满足任意对所有\(n\ge 0\)有\(a_n\in X\),且收敛于\(x\)。

证明:如果是附着点,类似选择公理的引理的证明思路(利用\(1/n\)收敛于0),设\(S_n=\{x'\in X:\abs{x'-x} \le 1/n\}\),再利用选择公理证明\(a_n\in S_n\)存在;如果存在序列,利用序列收敛的定义即可。

  • 闭集的定义:如果\(\overline{E}=E\),那么\(E\subseteq \RR\)是闭的,即\(E\)的所有附着点都在\(E\)中。

  • 习题2:如果\(Y\)包含\(X\)且\(Y\)是闭集,那么\(Y\)也包含\(\overline{X}\)。

证明:利用习题1可证明闭集的闭包是本身(\(X\subseteq \overline{X}\),那么\(\overline{\overline{X}}=\overline{X})\),再利用闭包的性质(d)可知\(Y=\overline{Y}\)包含\(\overline{X}\)

  • 习题3:闭集的并和交都是闭集。

证明:并可直接用性质(b)。\(\overline{\overline{X}\cap \overline{Y}}=\overline{\overline{X}}\cap \overline{\overline{Y}}=\overline{X}\cap \overline{Y}\)。交利用性质(c)可知\(\overline{\overline{X}\cap \overline{Y}}\subseteq \overline{X}\cap \overline{Y}\),再利用性质(a)得证。如果是无限个集合的交集,可以直接反证得到所有集合都不是闭集;如果是无限个集合的并集,注意到开区间可以表示为无限个单元素集的并集,无限个闭集的并不一定是闭集。

  • 推论:\(X\)是闭的当且仅当任意一个由\(X\)中元素构成的收敛的序列\((a_n)_{n=0}^{\infty}\)都满足\(\lim_{n\to \infty}a_n\in X\)。 可直接通过引理得到这个推论。

  • 极限点的定义:设\(X\)是\(\RR\)的子集,称\(x\)是\(X\)的极限点当且仅当\(x\)是\(X\setminus \{x\}\)的附着点;称\(x\)是\(X\)的孤立点当且仅当\(x\in X\)且\(x\)不是\(X\setminus \{x\}\)的附着点

那么\(X\)的闭集中的任一点都是极限点和孤立点之一。

对于区间\([a,b]\),\((a,b)\),\([a,b)\),\((a,b]\),可以证明\([a,b]\)中的任何\(x\lt b\)都是极限点:取一个序列\((x+1/n)_{n=N}^{\infty}\),根据实数的序命题2(对任一实数x存在自然数\(N\gt x\)),一定存在一个\(N\)满足\(x+1/N\le b\),对于\(x=b\)用序列\((x-1/n)_{n=N}^{\infty}\)即可。

  • 有界集合的定义:如果存在实数\(M\gt 0\)使得\(X\subseteq [-M,M]\),那么\(X\)是有界的

  • 海涅-博雷尔定理:设\(X\)是\(\RR\)的一个子集,\(X\)是闭的且是有界的,当且仅当任一个由\(X\)中元素构成的序列\((a_n)_{n=0}^{\infty}\)存在一个子序列收敛于\(X\)中的某个数\(L\)。

证明:对左蕴含右,根据子序列的极限中的波尔查诺-维尔斯特拉斯定理可知存在一个子序列收敛,再利用引理可知收敛于\(X\)的附着点;对右蕴含左,利用推论可得\(X\)是闭的,再使用反证法,若\(X\)无界,令\(S_n=\{x\in X:\abs{x} \gt n\}\),再利用选择公理得到\((a_n)_{n=0}^{\infty}\),它的任一个子序列都不收敛。

  • 习题4:\(\RR\)的任一有限子集都是闭的且是有界的。

证明:利用海涅-博雷尔定理,先通过反证法得到\(a_n\)中有某个\(X\)中的元素\(x\)出现了无穷次,那么\(x\)的项构成的子序列收敛于\(x\)。

函数的极限值

  • 函数在一点处收敛的定义:设\(X\)是\(\RR\)的一个子集,\(f:X\to \RR\),\(E\)是\(X\)的一个子集,\(x_0\)是\(E\)的附着点,称\(f\)在点\(x_0\)处沿着\(E\)收敛于\(L\),记做\(\lim_{x\to x_0;x\in E}f(x)=L\),当且仅当对任意\(\vae\gt 0\),存在一个\(\delta\gt 0\),满足对任意\(x\in E\)且\(\abs{x-x_0} \lt \delta\),满足\(\abs{f(x)-L} \le \vae\)。

书上先定义了\(\vae\)-接近的和局部\(\vae\)-接近的,将这些定义全部展开得到上述定义。我认为这样定义是为了加深对定义的理解,如果展开后可以感受到这个定义的实际意义,那么展开定义更加简洁。

当\(x_0\in E\)时,实际上\(\lim_{x\to x_0;x\in E}f(x)=f(x_0)\),\(x_0\notin E\)时更有意义,我们用\(x\to x_0;x\in X\)来简化表示\(x\to x_0;x\in X\setminus\{x_0\}\),因此这里定义了符号\(\lim_{x\to x_0}\),表示的是\(\lim_{x\to x_0;x\in \RR\setminus\{x_0\}}\),这个符号区别于\(\lim_{n\to \infty}\),在命题1中将会看到\(\lim_{n\to \infty}f(a_n)\)是一个数列的极限,而\(\lim_{x\to x_0}f(x)\)是无穷个极限相等的数列的极限。

  • 命题1:\(X\)是\(\RR\)的一个子集,\(f:X\to \RR\),\(E\)是\(X\)的一个子集,\(x_0\)是\(E\)的附着点,那么\(f\)在\(x_0\)处沿着\(E\)收敛于\(L\),当且仅当对任意由\(E\)中的元素构成且收敛于\(x_0\)的序列\((a_n)_{n=0}^{\infty}\)满足\((f(a_n))_{n=0}^{\infty}\)收敛于\(L\)。

证明:左蕴含右,对任意\(\vae\gt 0\),存在\(\delta\gt 0\),而存在\(N\ge 0\)满足对任意\(n\ge N\)有\(\abs{a_n-x} \lt \delta\),那么就对任意\(n\ge N\)有\(\abs{f(a_n)-L} \le \vae\);右蕴含左很难直接证,因为很难证明\(\abs{x-x_0} \lt \delta\)时都成立,使用反证,存在\(\vae\),令\(S_n=\{x\in \RR:\abs{x-x_0} \lt 1/n且\abs{f(x)-L} \gt \vae\}\),利用选择公理得到数列\(a_n\)。

利用这个命题和实直线子集的引理(存在一个数列收敛于附着点),再根据序列的极限唯一可得函数在一个附着点处沿着同一集合至多一个极限。

利用这个命题和实直线子集的引理,再根据序列的极限定律,可以得到:

  • 定理(函数的极限定律):如果\(X\)是\(\RR\)的一个子集,\(E\)是\(X\)的一个子集,\(x_0\)是\(E\)的一个附着点,\(f:X\to \RR\)在\(x_0\)处沿着\(E\)有极限\(L\),\(g:X\to \RR\)在\(x_0\)处沿着\(E\)有极限\(M\),则可以得到函数相加对应在\(x_0\)处沿着\(E\)的极限相加(\(\lim_{x\to x_0}(f\pm g)(x)=\lim_{x\to x_0}f(x)\pm \lim_{x\to x_0}g(x)\),相乘,相除,取\(\max\)和取\(\min\)都同理。

  • 习题1(自己定义上极限\(\limsup_{x\to x_0}f(x)\)):\(\limsup_{x\to x_0}f(x)=L\)当且仅当对任意\(\delta\gt 0\)都有\(\max\{f(x):x\in (x_0-\delta,x_0+\delta)\}\ge L\),且对于任意满足条件的\(L'\)都有\(L\ge L'\)。

类似的命题:对于所有收敛于\(x_0\)的序列,都有\(\limsup_{n\to \infty}f(a_n)\le M\),且对于任意满足条件的\(M'\)都有\(M\le M'\)。\(L=M\)。

证明:对于\(M\le L\),对任意\(a\),任意\(N\),根据收敛序列有界,存在\(\delta\)满足\(n\ge N\)都满足\(\abs{a_n-x_0} \lt delta\),有\(\limsup_{n\to \infty}f(a_n)\le a_N^+\le L\),因此\(M\le L\);对于\(L\le M\),令\(S_n=\{x\in (x_0-1/n,x_0+1/n):f(x)=\max\{f(x):x\in (x_0-1/n,x_0+1/n)\}\}\),根据选择公理得到存在序列\(a_n\),那么\(a_N^+\ge a_n\ge L\),\(\limsup_{n\to \infty}f(a_n)\ge L\),\(M\ge L\)。

  • 习题2(自己定义极限\(\limsup_{x\to x_0}f(x)=+\infty\)):任取\(M\),存在一个\(\delta\gt 0\),使得任取\(\abs{x-x_0} \lt \delta\)满足\(f(x)\gt M\)。

类似的命题:(先尝试定义序列收敛于正无穷:任取\(M\),都存在\(N\ge 0\),满足对任一\(n\ge N\)都有\(a_n\ge M\))对于所有收敛于\(x_0\)的序列,都有\(\lim_{n\to \infty}f(a_n)=+\infty\)

证明于命题1完全相同,先证左蕴含右,再用左的否命题构造数列作为右的反例。

  • 命题2:设\(X\)是\(\RR\)的一个子集,\(E\)是\(X\)的一个子集,\(x_0\)是\(E\)的一个附着点,\(f:X\to \RR\),对任意\(\delta\gt 0\),有\(\lim_{x\to x_0;x\in E}f(x)=L\)当且仅当\(\lim_{x\to x_0;x\in E\cap (x_0-\delta,x_0+\delta)}f(x)=L\)。

证明:利用命题1,右边的\(a\)都可作为左边的\(a\),左蕴含右;左边的任意个\(a\),都存在\(N\)满足所有\(n\ge N\)都有\(\abs{a_n-x_0} \lt \delta\),因此\((f(a_n))_{n=0}^{\infty}\)与\((f(a_n))_{n=N}^{\infty}\)收敛于同一个数,而由右边的命题可知其收敛于\(L\)。

  • 无限附着点的定义:\(X\)是\(\RR\)的子集,\(+\infty\)附着于\(X\)当且仅当对任意\(M\in \RR\)都存在\(x\in X\)满足\(x\gt M\);\(-\infty\)附着于\(X\)当且仅当对任意\(M\in \RR\)都存在\(x\in X\)满足\(x\lt M\)。
  • 无限处极限的定义:\(X\)是\(\RR\)的子集且\(+\infty\)是\(X\)的附着点,\(f:X\to \RR\),称当\(x\to \infty\)时\(f(x)\)沿着\(X\)收敛于\(L\),记做\(\lim_{x\to +\infty;x\in X}f(x)=L\),当且仅当对任意\(\vae\),都存在\(M\)使得对所有\(x\in X\)且\(x\gt M\)都有\(\abs{f(x)-L} \le \vae\)。当\(x\to -\infty\)同理。

函数的极限定律在无限处也同样适用。

无限处极限的定义很类似于序列极限的定义,可以注意到,当\(X\)是自然数集\(\NN\)时,两者相等,即\(\lim_{n\to +\infty;n\in \NN}a_n=\lim_{n\to \infty}a_n\)。

连续函数和左右极限

  • 连续的定义:设\(X\)是\(\RR\)的子集,\(f:X\to \RR\),设\(x_0\in X\),称\(f\)在\(x_0\)处是连续的当且仅当\(\lim_{x\to x_0;x\in X}f(x)=f(x_0)\),反之我们称\(f\)在\(x_0\)处是间断的。

利用极限值的命题1也可以得到函数连续的定义等价于:对任意有\(X\)中元素构成且收敛于\(x_0\)的序列\((a_n)_{n=0}^{\infty}\)满足\(\lim_{n\to \infty}f(a_n)=f(x_0)\)。

分别利用函数的极限定律和极限值的命题1易得:

  • 定理(算数运算保持连续性):设\(X\)是\(\RR\)的子集,\(f:X\to \RR\),\(g:X\to \RR\),设\(x_0\in X\),如果\(f\)和\(g\)在\(x_0\)处都连续那么\(f\pm g\),\(fg\),\(\max(f,g)\)都在\(x_0\)处连续,如果\(g\)在\(X\)上不为\(0\),则\(f/g\)也在\(x_0\)处连续。
  • 定理(复合运算保持连续性):设\(X\)和\(Y\)是\(\RR\)的子集,\(f:X\to Y\),\(g:Y\to \RR\),设\(x_0\)是\(X\)中的点,如果\(f\)在\(x_0\)处连续,\(g\)在\(f(x_0)\)处连续,那么\(g\circ f:X\to \RR\)在\(x_0\)处连续。

那么我们只需要利用\(\lim_{x\to x_0}c=c\)和\(\lim_{x\to x_0}x=x_0\)两个最简单的函数的连续性并结合函数的极限定律就可以证明大量函数的连续性,例如单元多项式函数,绝对值函数\(\abs{x} =max(x,-x)\)

指数函数连续的证明(\(y=a^x(a\gt 0)\)):思路就是转化为证明当\(\lim_{x\to 0}a^x=1\),然后利用\(\lim_{n\to \infty}x^{1/n}=1\)。只需考虑\(a\gt 1\)的情况。设序列\(b\)收敛于\(x_0\),对所有\(\vae\gt 0\),要证明存在\(N\ge 0\)满足对所有\(n\ge N\)有\(\abs{a^{b_n-x_0}-1} \lt \vae/a^{x_0}\),利用求极限例3(\(\lim_{n\to \infty}x^{1/n}=1\)),令\(\vae'=\vae/a^{x_0}\),存在\(m\gt 0\)满足\(0\lt a^{1/m}-1\lt \vae'\),那么根据\(b_n\)收敛于\(x_0\),令\(N\)就是满足所有\(n\ge N\)时\(\abs{b_n-x_0} \lt 1/m\)的\(N\),此时对\(n\ge N\)若\(b_n\ge x_0\)有\(0\lt a^{b_n-x_0}-1\lt a^{1/m}-1\lt \vae'\),若\(b_n\lt x_0\)有\(a^{b_n-x_0}=1/a^{x_0-b_n}\gt 1/(1+\vae')\gt 1-\vae'\)。(用\(\vae-\delta\)语言的定义来证方法类似)

幂函数连续的证明(\(y=x^a(x\gt 0)\)):要证\(\lim_{x\to x_0}(x/x_0)^a=1\),设\(n\)为正整数,根据函数的极限定律可归纳得到\(\lim_{x\to x_0}(x/x_0)^n=(\lim_{x\to x_0}(x/x_0))^n=1\),易得\(n\)是整数都成立,再利用夹逼定理(将序列极限的夹逼定理扩展到函数极限)得到\(a\)是实数的情况也成立。

  • 左右极限的定义:设\(X\)是\(\RR\)的子集,\(f:X\to \RR\),\(x_0\)是\(X\cap (x_0,+\infty)\)的一个附着点,定义\(f\)在\(x_0\)处的右极限\(f(x_0+):=\lim_{x\to x_0;x\in X\cup (x_0,+\infty}f(x)\);类似地若\(x_0\)是\(X\cap (-\infty,x_0)\)的一个附着点,定义左极限\(f(x_0-):=\lim_{x\to x_0;x\in X\cap (-\infty,x_0)}f(x)\)。

  • 命题:设\(X\)是包含\(x_0\)的子集,并且\(x_0\)是\(X\cap (x_0,+\infty)\)和\(X\cap (-\infty,x_0)\)的附着点,\(f:X\to \RR\)在\(x_0\)处连续当且仅当\(f(x_0+)\)和\(f(x_0-)\)都存在且为\(f(x_0)\)。

对于右蕴含左,只需要取\(\delta=\min(\delta+,\delta-)\)即可。

那么对于间断点,我们可以按照\(f(x_0+)\)和\(f(x_0-)\)来分类:

  • 跳跃间断点:\(f(x_0+)\)和\(f(x_0-)\)存在且不相等,如\(sgn(x)\)的\(0\)处
  • 可去间断点:\(f(x_0+)\)和\(f(x_0-)\)存在且相等,但不等于\(f(x_0)\),如\(f(x)=[x\ne 0]\)的\(0\)处
  • 渐进间断点:利用函数极限值习题2的定义,\(f(x_0+)\)或\(f(x_0-)\)收敛于\(+\infty\)或\(-\infty\),如\(f(x)=\abs{1/x}\)的\(0\)处
  • 振荡间断点:\(f(x_0+)\)或\(f(x_0-)\)不存在且有界,如\(f(x)=[x\in \QQ]\)的\(0\)处

最大值原理

函数\(f:X\to \RR\)是有界的定义为存在一个\(M\),满足\(x\in X\)都有\(\abs{f(x)} \le M\)。

  • 引理:设\(a\lt b\),设\(f:[a,b]\to \RR\)是\([a,b]\)上的连续函数,则\(f\)是一个有界函数。

证明(巧妙!):开区间和闭区间最本质的区别在于闭区间的闭包是本身,那么思路就是利用连续函数的定义\(f(x_0)=\lim_{n\to \infty}f(a_n)\)证明序列\(f(a_n)\)收敛。反证,令\(S_n=\{x\in [a,b]:\abs{f(x)} \ge n\}\),利用选择公理得到\(a_n\)或者是利用\(a_n=\sup(S_n)\),根据海涅-博雷尔定理得到\((a_n)_{n=0}^{\infty}\)存在一个子序列\((a_{n_j})_{j=0}^{\infty}\)收敛于\([a,b]\)内实数\(L\),再根据连续函数的定义得到\(\lim_{j\to \infty}f(a_{n_j})=f(L)\),而\(f(a_{n_j})\ge n_j\ge j\),因此\((f(a_{n_j}))_{j=0}^{\infty}\)发散,矛盾。

这个证明用到两个技巧,通过连续函数的定义将找一个点转化为找一个\(y\)收敛于这个值且\(x\)也收敛的点列,利用海涅-博雷尔定理去掉\(x\)也收敛的限制。

  • 函数最值的定义:对\(f:X\to \RR\),设\(x_0\in X\),如果对所有\(x\in X\)都有\(f(x_0)\ge f(x)\),则称\(f\)在\(x_0\)处取得最大值;如果对所有\(x\in X\)都有\(f(x_0)\le f(x)\),则称\(f\)在\(x_0\)处取得最小值。

  • 最大值原理:设\(a\lt b\),\(f:[a,b]\to \RR\)是\([a,b]\)上的连续函数,则\(f\)在某一点处取得最大值,某一点处取得最小值。

证明:思路类似上一引理,构造一个序列\(a_n\)使得\(f(x_0)=\lim_{n\to \infty}f(a_n)\)取得最大值。根据上一引理可知\(f\)有界,只需要证明存在\(x_0\)使得\(f(x_0)=\sup(f([a,b]))\)。再次利用最小上界存在性的套路,令\(M=\sup f([a,b])\),\(S_n=\{x\in [a,b]:f(x)\gt M-1/n\}\),利用选择公理或\(\sup\)得到\(a_n\),再通过海涅-博雷尔定理和连续函数的定义得到存在一个\(a\)的子序列收敛于\(x_0\)且\(f(x_0)\ge M\)。

中值定理

  • 中值定理:设\(a\lt b\),\(f:[a,b]\to \RR\)是\([a,b]\)上的连续函数,设\(y\)是\(f(a)\)和\(f(b)\)之间的一个实数,那么存在\(c\in [a,b]\)满足\(f(c)=y\)

证明(巧妙!):思路是找到小于等于\(y\)最后一次出现的位置,然后利用左极限证明\(f(c)\le y\),利用右极限证明\(f(c)\ge y\)。只考虑\(f(a)\lt y\lt f(b)\)的情况,令\(E=\{x\in [a,b]:f(x)\lt y\}\)和\(c=\sup(E)\),利用选择公理找到由\(E\)中元素构成的序列\(c-1/n\le x_n\le c\),再根据夹逼定理得到\(\lim_{n\to \infty}x_n=c\),利用连续的定义和比较原理得到\(y\le \lim_{n\to \infty}f(x_n)=f(c)\);存在\(N\)满足对所有\(n\ge N\)都有\(c+1/n\le 1/n\),那么再根据比较原理得到\((f(c+1/n))_{n=N}^{\infty}\)的极限不小于\(y\),因此\(f(c)\ge y\)。

我们也可以直接得到:设\(f:[a,b]\to \RR\)的最小值是\(m\),最大值是\(M\),则\(f([a,b])=[m,M]\)

  • 习题(不动点定理):设\(f:[0,1]\to [0,1]\)是连续函数,存在一个实数\(x\)满足\(f(x)=x\)。

证明:令\(g(x)=f(x)-x\),而\(g\)的最大值\(M\ge g(0)=f(0)\ge 0\),最小值\(m\le g(1)=f(1)-1\le 0\),由上述推论可知存在\(x\)满足\(g(x)=0\)即\(f(x)=x\)。

单调函数

  • \(f:X\to \RR\)单调递增定义为对任一\(a,b\in X\),\(a\lt b\),都有\(f(a)\lt f(b)\);严格单调递增定义为都有\(f(a)\lt f(b)\)。显然对于单调函数\(a\lt b\)当且仅当\(f(a)\lt f(b)\)。

对于函数\(f:[a,b]\to \RR\),如果\(f\)是连续的单射,一定是单调的:设\(f(a)\le f(b)\),如果存在\(x_1\lt x_2\)有\(f(x_1)\gt f(x_2)\),那么利用中值定理存在\(x_3\in (a,x_1)\)有\(f(x_3)=f(x_2)\)。

对于函数\(f:[a,b]\to \RR\),如果\(f\)是连续的且严格单调的,那么\(f:[a,b]\to [f(a),f(b)]\)是双射,\(f^{-1}\)也是严格单调的,且是连续的:直接用\(\vae-\delta\)定义,对任一\(y\)和\(\vae\),设\(f(x)=y\),必存在\(\delta\)满足\(f(x-\vae)\le y-\delta\le f(x+\vae)\)。

  • 习题:由于\(\QQ\)是可数集,存在双射\(q:\NN\to \QQ\),定义\(g:\QQ\to \RR\)满足\(g(q(n))=2^{-n}\),则\(\sum_{r\in \QQ}g(r)\)绝对收敛,令\(f(x)=\sum_{r\in \QQ;r\lt x}g(r)\)。

(a)\(f\)单调递增:根据实数的序命题3(任意两实数间存在有理数),对任意\(a\lt b\)有实数\(c\in (a,b)\),\(f(b)=f(a)+\sum_{r\in \QQ;a\le x\lt b}g(r)\ge f(a)+g(c)\)。

(b)\(f\)在有理数处间断:对有理数\(a\),对任意\(b\gt a\)有\(f(b)=f(a)+\sum_{r\in \QQ;a\le r\lt b}g(r)\ge f(a)+g(a)\)。

(c)\(f\)在无理数处连续(巧妙!):令\(f_n(x)=\sum_{r\in \QQ;r\lt x;g(r)\ge 2^{-n}}g(r)\),由于\(\{r\in \QQ;g(r)\ge 2^{-n}\}\)是有限集,\(x\)是无理数时存在一个\(\delta\),满足\([x-\delta,x+\delta)\)中没有该集合的元素,因此\(f_n\)在无理数处连续,而\(f_n(x)\le f(x)=f_n(x)+\sum_{r\in \QQ;r\lt x;g(r)\lt 2^{-n}}g(r)\le f_n(x)+\sum_{r\in \QQ:g(r)\lt 2^{-n}}g(r)=f_n(x)+2^{-n}\),那么再利用函数连续的定义,存在一个\(n\)满足\(2^{-n+1}\lt \vae\),由于存在\(\delta\)满足\(f_n\)在\((x-\delta,x+\delta)\)内与\(f_n(x)\)差不超过\(\vae-2^{-n+1}\),\(f\)在\((x-\delta,x+\delta)\)内与\(f(x)\)差不超过\(\vae\)。

一致连续性

  • 一致连续的定义:设\(X\)是\(\RR\)的子集,称\(f:X\to \RR\)是一致连续的,当且仅当对任意\(\vae\gt 0\),都存在\(\delta\gt 0\)使得对所有\(\abs{x-x_0} \le \delta\)都有\(\abs{f(x)-f(x_0)} \le \vae\)。

\(f(x)=1/x\)和\(f(x)=x^2\)都是连续但不一致连续的例子,而\(f(x)=ax+b\)和\(f(x)=\sqrt{x}\)在\((1,+\infty)\)上都满足一致连续,我认为一致连续差不多叙述的就是“导函数在任一处(包括无穷大处)极限不为无穷”。

  • 命题1:设\(X\)是\(\RR\)的子集,\(f:X\to \RR\),则\(f\)在\(X\)上一致连续,当且仅当对任意两个由\(X\)中元素构成的等价序列\((x_n)_{n=0}^{\infty}\)和\((y_n)_{n=0}^{\infty}\),序列\((f(x_n))_{n=0}^{\infty}\)和\((f(y_n))_{n=0}^{\infty}\)也等价。

这里使用了当时定义实数所用的等价序列的概念,不要求序列收敛。证明就直接用\(\vae-\delta\)定义,左蕴含右只需找到\(N\)满足\(n\ge N\)时\(\abs{x_n-y_n} \le \delta\);右蕴含左的反证即对存在的\(\vae\),令\(\delta=1/n\),存在\(\abs{x-x_0} \le 1/n\)且\(\abs{f(x)-f(x_0)} \gt \vae\),令\(x_n=x\)和\(y_n=x_0\)即可。

令其中一个序列为常数序列就转化成了用序列定义连续的形式。

\(f(x)=1/x\)可利用序列\((1/n)_{n=1}^{\infty}\)和\((1/2n)_{n=1}^{\infty}\)得到不满足一致连续;\(f(x)=x^2\)可利用序列\((n)_{n=0}^{\infty}\)和\((n+1/n)_{n=0}^{\infty}\)。

通过这个命题可以得到两个一致连续的函数复合仍然是一致连续的函数。

  • 命题2:设\(X\)是\(\RR\)的子集,\(f:X\to \RR\)是一致连续的,\((x_n)_{n=0}^{\infty}\)是由\(X\)中元素构成的柯西序列,那么\((f(x_n))_{n=0}^{\infty}\)也是柯西序列。

推论:如果\(x_0\)是\(X\)的附着点,极限\(\lim_{x\to x_0;x\in X}f(x)\)存在。根据命题2可知函数值序列收敛,再根据命题1可知他们都收敛于同一个实数。

  • 命题3:设\(X\)是\(\RR\)的子集,\(f:X\to \RR\)是一致连续的,如果\(E\)是\(X\)的有界子集,那么\(f(E)\)也是有界的。

证明:用类似最大值原理引理的证明思路。反证,先找到\(a_n\)满足\(f(a_n)\ge n\),再根据波尔查诺-魏尔斯特拉定理得到\(a_n\)存在一个收敛的子序列,再根据命题2得到这个子序列对应的函数值序列收敛,矛盾。

  • 命题4:设\(a\lt b\)都是实数,\(f:[a,b]\to \RR\)是\([a,b]\)上的连续函数,那么\(f\)也是一致连续的。

证明:反证,用命题1。令\(E=\{n\in \NN:\abs{f(x_n)-f(y_n)} \gt \vae\}\),根据可数性命题1(可数集的子集至多可数)\(E\)是可数集,并且存在单调递增序列\(n\)满足\(\abs{f(x_{n_j})-f(y_{n_j})} \gt \vae\),再利用海涅-博雷尔定理找到\((x_{n_j})_{j=0}^{\infty}\)收敛于\(L\in [a,b]\)的子序列\((x_{n_{j_k}})_{k=0}^{\infty}\),再利用连续函数的定义得\(\lim_{k\to \infty}f(x_{n_{j_k}})=f(L)\),由等价序列的定义可知\(\lim_{n\to \infty}(x_n-y_n)=0\),再利用子序列定理1(收敛序列的子序列收敛)得到\(\lim_{n\to \infty}(x_{n_{j_k}}-y_{n_{j_k}})=0\),再根据极限定律得到\(\lim_{k\to \infty}y_{n_{j_k}}=L\),有\(\lim_{k\to \infty}f(y_{n_{j_k}})=f(L)\),再利用极限定律得到\(\lim_{k\to \infty}(f(x_{n_{j_k}})-f(y_{n_{j_k}}))=0\),与\(n\)序列的定义矛盾。

第10章 函数的微分

基本定义

  • 可微性的定义:\(x_0\in X\)是\(X\)的极限点,对\(f:X\to \RR\),如果极限\(\lim_{x\to x_0;x\in X\setminus\{x_0\}}\frac{f(x)-f(x_0)}{x-x_0}\)收敛于实数\(L\),那么\(f\)在\(x_0\)处可微,导数是\(L\),记做\(f'(x_0)=L\)。

可以直接通过函数的极限定律求一些导数:\(f(x)=x^2\)时\(f'(x)=\lim_{x\to x_0;x\in \RR\setminus\{x_0\}}\frac{x^2-{x_0}^2}{x-x_0}=\lim_{x\to x_0}x+x_0=2x_0\)

  • 牛顿逼近法:\(x_0\in X\)是\(X\)的极限点,对\(f:X\to \RR\),\(f\)在\(X\)中的\(x_0\)处可微且导数是\(L\)当且仅当:对任意\(\vae\gt 0\)都存在\(\delta\gt 0\)使得对所有\(x\in X\)且\(\abs{x-x_0} \le \vae\),那么\(\abs{f(x)-(f(x_0)+L(x-x_0)} \le \vae\abs{x-x_0}\)

证明:\(x\ne x_0\)时就是\(\abs{\frac{f(x)-f(x_0)}{x-x_0}-L} \le \vae\),利用函数极限的定义可知。

牛顿逼近法的形式就是\(f(x)\approx f(x_0)+f'(x_0)(x-x_0)\)。牛顿逼近法可以用于求函数零点,令\(f(x')\approx f(x)+(x'-x)f'(x)=0\),\(x'=x-f(x)/f'(x)\),例如开根号的算法。

我认为直接通过定义得到的\(\abs{f(x)-f(x_0)} \le (\abs{L} +\vae)(x-x_0)\)也是证明中很好用的形式。

  • 命题1:\(x_0\in X\)是\(X\)的一个极限点,如果\(f\)在\(x_0\)处是可微的,那么\(f\)在\(x_0\)处也是连续的。

证明:直接使用牛顿逼近法,设\(f'(x_0)=L\gt 0\),对任意\(\vae'\gt 0\),都存在\(\delta'\gt 0\)满足对所有\(\abs{x-x_0} \le \delta'\)都有\(\abs{f(x)-f(x_0)} \le (L+\vae')(x-x_0)\le (L+\vae')\delta'\)。对于\(\vae\gt 0\),任取一个\(\vae'\gt 0\),令\(\delta=\min(\delta',\vae/(L+\vae')\)即可得到\(\abs{f(x)-f(x_0)} \le \vae\)。

\(f:X\to \RR\),若\(f\)在所有\(x_0\in X\)处都可微,则定义\(f\)在\(X\)上可微函数。那么可以得到可微函数是连续函数。

利用函数的极限定律,可以推出微分计算定理:

\(x_0\in X\)是\(X\)的极限点,

  • 微分计算定理1:如果\(f\)是常数函数,\(f\)在\(x_0\)处可微且\(f'(x_0)=0\)。
  • 微分计算定理2:如果对所有\(x\in X\),\(f(x)=x\),\(f\)在\(x_0\)处可微且\(f'(x_0)=1\)。
  • 微分计算定理3:如果\(f\)和\(g\)在\(x_0\)处可微,\(f+g\)也在\(x_0\)处可微且\((f+g)'(x_0)=f'(x_0)+g'(x_0)\)
  • 微分计算定理4:如果\(f\)和\(g\)在\(x_0\)处可微,\(fg\)在\(x_0\)处也可微且\((fg)'(x_0)=f'(x_0)g(x_0)+g'(x_0)f(x_0)\)
  • 微分计算定理5:如果\(f\)在\(x_0\)处可微,\(cf\)在\(x_0\)处也可微且\((cf)'(x_0)=cf'(x_0)\)
  • 微分计算定理6:如果\(f\)在\(x_0\)处可微且\(f\)在\(X\)上非零,那么\(1/f\)在\(x_0\)处可微,\((1/f)'(x_0)=-f'(x_0)/f(x_0)^2\)
  • 微分计算定理7:如果\(f\)和\(g\)在\(x_0\)处可微,\(f/g\)在\(x_0\)处也可微且\((f/g)'(x_0)=(f'(x_0)g(x_0)-g'(x_0)f(x_0))/(g(x_0)^2)\)

定理3称为莱布尼茨法则,需要稍作变换:\(f(x)g(x)-f(x_0)g(x_0)=(f(x)g(x)-f(x_0)g(x))+(f(x_0)g(x)-f(x_0)g(x_0))\)

对于\(f(x)=x^n(n\in \NN)\)的导数,可以直接使用归纳法,也可用函数极限定律和n次方差公式得到\(f'(x)=nx^{n-1}\);对于\(n\lt 0\)的情况利用定理6可得结论相同。

  • 链式法则:\(f:X\to Y\)在\(x_0\)处可微,\(g:Y\to \RR\)在\(y_0=f(x_0)\)处可微,那么\(g\circ f:X\to \RR\)在\(x_0\)处可微,且\((g\circ f)'(x_0)=g'(y_0)f'(x_0)\)。

证明:利用函数极限值命题1,任取序列满足\(\lim_{n\to \infty}x_n=x_0\),有\(\lim_{n\to \infty}f(x_n)=y_0\),那么利用函数极限定律得到\(\lim_{n\to \infty}\frac{g(f(x_n))-g(y_0)}{x_n-x_0}=\lim_{n\to \infty}\frac{g(f(x_n))-g(y_0)}{f(x_n)-y_0}\frac{f(x_n)-f(x_0)}{x_n-x_0}=g'(y_0)f'(x_0)\)。如果\(f(x_n)=0\)会出现问题,注意到如果\(f'(x_0)\ne 0\),利用牛顿逼近法令\(\vae\lt \abs{f'(x_0)}\)时有存在\(\delta\)满足\(\abs{x-x_0} \lt \delta\)时\(f(x)\ne f(x_0)\),再利用函数的极限值命题2,将极限固定在\((x_0-\delta,x_0+\delta)\)内即可;对于\(f'(x_0)=0\)的情况,用定义\(\abs{g(f(x))-g(f(x_0))} \le (\abs{g'(f(x_0))} +\vae_2)\abs{f(x)-f(x_0)} \le (\abs{g'(f(x_0))} +\vae_2)\vae_1(x-x_0)\),任取\(\vae_2\),令\(\vae_1\lt \vae/(\abs{g'(y_0)} +\vae_2)\)和\(\delta=\min(\delta_1,\delta_2)\)即可(整个证明直接使用定义并构造\(\vae_1\)和\(\vae_2\)使得\((g'(y_0)+\vae_2)(f'(x_0)+\vae_1)\le g'(y_0)f'(x_0)+\vae\)也可)

局部极值和函数单调性

  • 局部极值的定义:\(f:X\to \RR\),\(x_0\in X\),称\(f\)在\(x_0\)处达到局部最大值当且仅当存在\(\delta\gt 0\)使得\(f\)在\(X\cap (x_0-\delta,x_0+\delta)\)上达到最大值;局部最小值同理。

  • 命题1:实数\(a\lt b\),\(f:(a,b)\to \RR\),如果\(x_0\in (a,b)\)时\(f\)在\(x_0\)处可微,且达到局部最值,则\(f'(x_0)=0\)。

证明:利用牛顿逼近法,如果\(f'(x_0)\ne 0\),任取\(\vae\)存在\(\delta\)满足对\(x\in (x_0-\delta,x_0+\delta)\)有\(f(x_0)+(L-\vae)(x-x_0)\le f(x)\le f(x_0)+(L+\vae)(x-x_0)\),当\(\vae\lt \abs{L}\)时有\(x_0\lt x\lt x_0+\delta\)时与\(x_0-\delta\lt x\lt x_0\)时\(f(x)\)和\(f(x_0)\)的大小关系不同。

如果是闭区间\([a,b]\)就不成立了。

  • 罗尔定理:实数\(a\lt b\),\(f:[a,b]\to \RR\)是连续函数,并且在\((a,b)\)上可微,如果\(f(a)=f(b)\)则存在\(x\in (a,b)\)使得\(f'(x)=0\)。

根据最大值原理和命题1可以直接得到结论。需要注意如果最大值和最小值都在端点处那么该函数是常值函数。

  • 推论(平均值定理):设\(f:[a,b]\to \RR\)是连续函数且在\((a,b)\)上可微,存在\(x\in (a,b)\)满足\(f'(x)=\frac{f(b)-f(a)}{b-a}\)。

证明:令\(g(x)=f(x)-\frac{f(b)-f(a)}{b-a}x\),\(g(a)=g(b)=0\),再利用罗尔定理即可。

  • 习题:如果\(f:\RR\to \RR\)是可微函数,且\(f'\)有界,则\(f\)一致连续。

证明:设\(\abs{f'(x)} \le M\),则所有\(x,y\)均满足\(\abs{f(x)-f(y)} \le M\abs{x-y}\),否则根据平均值原理会得到矛盾(因此满足习题条件的函数称为利普希茨连续函数,\(M\)称为利普希茨常数)。那么对每个\(\vae\),令\(\delta=\vae/M\)即可。

  • 命题2:若函数\(f:X\to \RR\)单调递增且在\(x_0\in X\)处可微,则\(f'(x_0)\ge 0\);如果单调递减且在\(x_0\)处可微,则\(f'(x_0)\le 0\)。

反证并用类似命题1的证明方法。

  • 命题3:实数\(a\lt b\),\(f:[a,b]\to \RR\)是可微函数,如果对所有\(x\in [a,b]\)都有\(f'(x)\gt 0\)则\(f\)严格单调递增;如果都有\(f'(x)\lt 0\)则\(f\)严格单调递减。

反证并利用平均值原理即可得到矛盾。

反函数及其导数

  • 引理:\(f:X\to Y\)是可逆函数,反函数\(f^{-1}:Y\to X\),设\(x_0\in X\)且\(f(x_0)=y_0\in Y\),如果\(f\)在\(x_0\)处可微,\(f^{-1}\)在\(y_0\)处可微,则\((f^{-1})'(y_0)=1/f'(x_0)\)。

证明可使用链式法则:\(1=(f^{-1}\circ f)'(x_0)=(f^{-1})'(y_0)f'(x_0)\)。

  • 反函数定理:\(f:X\to Y\)是可你函数,反函数\(f^{-1}:Y\to X\),设\(x_0\in X\)且\(f(x_0)=y_0\in Y\),如果\(f\)在\(x_0\)处可微且导数不为0,\(f^{-1}\)在\(y_0\)处连续,则\(f^{-1}\)在\(y_0\)处可微,且有\((f^{-1})'(y_0)=1/f'(x_0)\)

证明可直接利用函数的极限命题1和序列极限定理6(倒数的极限等于极限的倒数)。

  • 习题:研究函数\(f(x)=x^a\),\(a=1/n(n\in \NN且n\ge 1)\)、\(a\in \QQ\)、\(a\in \RR\)

1.\(a=1/n\)时,根据单调函数的命题(严格单调且连续的函数反函数也连续),\(f(x)\)时连续函数,再根据反函数定理得到\(f'(x)=1/nx^{1/n-1}\)。

2.\(a\in \QQ\)时,令\(a=p/q\),\(x^a=(x^p)^{1/q}\),使用链式法则和微分计算定理可得\(f'(x)=ax^{a-1}\)。 求证:\(\lim_{x\to 1;x\in (0,+\infty)}\frac{x^a-1}{x-1}=a\)。直接使用在\(x=1\)处导数的定义即可。

3.\(a\in \RR\)时, 求证:\(\lim_{x\to 1;x\in (0,+\infty)}\frac{x^a-1}{x-1}=a\)。

证明:令\(b_n\in (a,+\infty)\)且\(\lim_{n\to \infty}b_n=a\),\(g_n(x)=\frac{x^{b_n}}{x-1}\);\(c_n\in (0,a)\)且\(\lim_{n\to \infty}c_n=a\),\(h_n(x)=\frac{x^{b_n}}{x-1}\)。根据比较原理(从序列上扩展到函数的极限值)得到\(\lim_{x\to 1;x\in (0,+\infty)}\frac{x^{c_n}-1}{x-1}\le \lim_{x\to 1;x\in (0,+\infty)}\frac{x^a-1}{x-1} \le \lim_{x\to 1;x\in (0,+\infty)}\frac{x^{b_n}-1}{x-1}\)。通过习题2得到\(c_n\le \lim_{x\to 1;x\in (0,+\infty)}\frac{x^a-1}{x-1} \le b_n\),再利用序列的比较原理得到结论。

求证:\(f\)在\((0,+\infty)\)上可微,且\(f'(x)=ax^{a-1}\)。

证明:\(\frac{x^a-{x_0}^a}{x-x_0}={x_0}^{a-1}\frac{(x/x_0)^a-1}{(x/x_0)-1}\),因此尝试使用上一个结论,\(f'(x_0)={x_0}^{a-1}\lim_{n\to \infty}\frac{(a_n/x_0)^a-1}{(a_n/x_0)-1}\),其中\(\lim_{n\to \infty}a_n=x_0\)。令\(b_n=a_n/x_0\),有\(\lim_{n\to \infty}b_n=1\),由上一结论可知\(\lim_{n\to \infty}\frac{ {b_n}^a-1}{b_n-1}=a\),因此\(f'(x_0)={x_0}^{a-1}a\)。

洛必达法则

  • 洛必达法则1:设\(X\)是\(\RR\)的一个子集,\(f:X\to \RR\)和\(g:X\to \RR\),且\(x_0\in X\)是\(X\)的极限点,如果\(f(x_0)=g(x_0)=0\),且\(f\)和\(g\)在\(x_0\)处可微且\(g'(x_0)\ne 0\),则存在\(\delta\gt 0\)使得对所有\(x\in X\cap(x_0-\delta,x_0+\delta)\setminus\{x_0\}\)都有\(g(x)\ne 0\)且\(\lim_{x\to x_0;x\in X\cap(x_0-\delta,x_0+\delta)\setminus\{x_0\}}\frac{f(x)}{g(x)}=\frac{f'(x_0)}{g'(x_0)}\)

证明:链式法则的证明中已经包含了如果\(g'(x_0)\ne 0\)就会存在\(\delta\)使得\(\delta\)范围内有\(g(x)\ne 0\)。而根据函数极限定律得到\(\lim_{x\to x_0}\frac{f(x)}{g(x)}=\lim_{x\to x_0}\frac{f(x)}{x}/\frac{g(x)}{x}=f'(x_0)/g'(x_0)\)

  • 洛必达法则2:实数\(a\lt b\),\(f:[a,b]\to \RR\)和\(g:[a,b]\to \RR\)是\([a,b]\)上的可微函数,如果\(f(a)=g(a)=0\),且\(g'\)在\([a,b]\)上不为零,且极限\(\lim_{x\to a;x\in (a,b]}\frac{f'(x)}{g'(x)}\)存在且等于\(L\),那么对所有\(x\in (a,b]\)都有\(g(x)\ne 0\),且极限\(\lim_{x\to a;x\in (a,b]}\frac{f(x)}{g(x)}=L\)。

证明(巧妙!):对于\(g(x)\ne 0\)可反证并用罗尔定理得到矛盾。利用函数极限的命题1转化为序列\((x_n)_{n=1}^{\infty}\)收敛于\(a\),构造函数\(h_n(x)=f(x)g(x_n)-g(x)f(x_n):[a,x_n]\to \RR\),根据算数运算保持连续性定理\(h_n(x)\)连续,且\(h_n(a)=h_n(x_n)=0\),因此根据罗尔定理存在\(a\lt y_n\lt x_n\)满足\(h_n'(y_n)=0\),根据夹逼定理得到\((y_n)_{n=1}^{\infty}\)也收敛于\(a\),即\(\frac{f(x_n)}{g(x_n)}=\frac{f'(y_n)}{g'(y_n)}\),因此\(\lim_{n\to \infty}\frac{f(x_n)}{g(x_n)}=\lim_{n\to \infty}{f'(y_n)}{g'(y_n)}=L\)。

定理里的\([a,b]\)用于避免写成序列时的分类讨论,可以得到对区间\([b,a](b\lt a)\)也有同样的结论,进而通过左右极限可以得到\(a\in [l,r]\)时也满足。

第11章 黎曼积分

划分

  • 连通的定义:设\(X\)是\(\RR\)的子集,称\(X\)是连通的,当且仅当对任意\(X\)中的元素\(x\lt y\),\([x,y]\)是\(X\)的子集。

  • 引理:\(X\)是有界且连通的当且仅当\(X\)是有界区间。

证明左蕴含右可用\(X\)的上下确界\(\sup(E)\)和\(\inf(E)\),那么对于任一元素\(\inf(E)\lt a\lt\sup(E)\),必有元素\(l\in E\)和\(r\in E\)满足\(\inf(E)\le l\le a \le r\le\sup(E)\),因此\(a\in E\)。对\(a=\inf(E)\)和\(a=\sup(E)\)的情况讨论刚好得到四种有界区间。

  • 推论:有界区间的交一定是有界区间。先用引理再利用连通的定义即可。

  • 区间长度的定义:如果\(I\)是有界区间\([a,b]\),\([a,b)\),\((a,b]\),\((a,b)\)中的任一个\((a\lt b)\),定义\(I\)的长度\(\abs{I} :=b-a\)。若\(I\)是单元素集或空集,\(\abs{I} :=0\)。

  • 划分的定义:设\(I\)是有界区间,\(I\)的划分定义为有限个包含在\(I\)中的有界区间构成的集合\(P\)使得\(I\)中每个元素\(x\)恰好属于\(P\)中一个有界区间\(J\)。

  • 定理:设\(I\)是有界区间,\(P\)是\(I\)的一个划分,那么\(\abs{I} =\sum_{J\in P}\abs{J}\)。

证明可直接对\(P\)的基数归纳,设\(I\)的右端点是\(b\),\(P\)中必存在右端点为\(b\)的区间\(K\)(反证),由定义可知\(\abs{I} =\abs{I\setminus K}+\abs{K}\)。

  • 更细的划分的定义:设\(I\)是有界区间,\(P\)和\(P'\)是\(I\)的两个划分,如果对\(P'\)中每个区间\(J\)都存在\(P\)的一个区间\(K\)满足\(J\subseteq K\),则\(P'\)比\(P\)更细,\(P\)比\(P'\)更粗糙。

  • 公共细化的定义:设\(I\)是有界区间,\(P\)和\(P'\)是\(I\)的两个划分,定义\(P\)和\(P'\)的公共细化\(P\#P':=\{K\cap J:K\in P;J\in P'\}\)。

  • 引理:\(P\#P'\)是\(I\)的划分,且比\(P\)和\(P'\)都细。

分段常数函数

常数函数\(f:X\to \RR\)定义为对任意\(x\in X\)都有\(f(x)=c\),\(c\)称为\(f\)在\(X\)上的常数值。

  • 分段常数函数的定义:设\(I\)是有界区间,\(f:I\to \RR\)是一个函数,\(P\)是\(I\)的一个划分,如果对任意\(J\in P\),\(f\)在\(J\)上是常值的,则称\(f\)是关于\(P\)的分段常数函数。称\(f\)是\(I\)上的分段常数函数。

若\(f\)是关于\(P\)的分段常数函数,那么对于任意比\(P\)更细的划分\(P'\),\(f\)都是关于\(P'\)的分段常数函数。

  • 引理:\(I\)是有界区间,且\(f:I\to \RR\)和\(g:I\to \RR\)都是\(I\)上的分段常数函数,那么\(f+g\),\(max(f,g)\),\(fg\)都是\(I\)上的分段常数函数,如果\(g\)在任一处不为\(0\),则\(f/g\)也是分段常数函数。

对\(f\)的划分和\(g\)的划分进行公共细化得到运算后结果的划分。

  • 分段常值积分的定义:设\(I\)是有界区间,\(P\)是\(I\)的一个划分,\(f:I\to \RR\)是关于\(P\)的分段常数函数,定义\(f\)的分段常数积分\(p.c.\int_{I}f:=\sum_{J\in P}c_J\abs{J}\),其中对任意\(J\in P\),\(c_J\)表示\(f\)在\(J\)上的常数值。

  • 引理:对于\(I\)的不同划分\(P\)和\(P'\),\(p.c.\int_{I}f\)通过两个划分得到的结果相同。

证明可以考虑\(P\#P'\),对粗糙的划分的基数归纳可得\(P\)和\(P'\)均与\(P\#P'\)得到的结果相同。

设\(I\)是有界区间,\(f:I\to \RR\)和\(g:I\to \RR\)是\(I\)上的分段常数函数,有如下积分定律:

  • 积分定律1:\(p.c.\int_{I}(f+g)=p.c.\int_{I}f+p.c.\int_{I}g\)。
  • 积分定律2:对任意实数\(c\),都有\(p.c.\int_{I}(cf)=c(p.c.\int_{I}f)\)。
  • 积分定律3:如果对所有\(x\in I\)都有\(f(x)\ge 0\),则\(p.c.\int_{I}f\ge 0\)。
  • 积分定律4:如果\(f\)是常数函数\(f(x)=c\),则\(p.c.\int_{I}f=c\abs{I}\)。
  • 积分定律5:如果\({J,K}\)是\(I\)的一个划分,那么\(f\vert _{J}:J\to \RR\)和\(f\vert _{K}:K\to \RR\)分别是\(J\)和\(K\)上的分段常数函数,且\(p.c.\int_{I}f=p.c.\int_{J}f\vert _J+p.c.\int_{K}f\vert _K\)。

积分定律1仍然考虑公共细化,积分定律5先证明若两个有界区间\(I\subseteq J\),\(x\in I\)时\(F(x)=f(x)\),\(x\notin I\)时\(F(x)=0\),若\(f\)是分段常数函数,\(F\)也是分段常数函数。

上黎曼积分和下黎曼积分

  • 函数控制的定义:\(f:I\to \RR\),\(g:I\to \RR\),如果对所有\(x\in I\)都有\(g(x)\ge f(x)\),称\(g\)在\(I\)上从上方控制\(f\);如果对所有\(x\in I\)都有\(g(x)\le f(x)\),称\(g\)在\(I\)上从下方控制\(f\)。

  • 上下黎曼积分的定义:设\(f:I\to \RR\)是定义在有界区间\(I\)上的函数,对\(f:\)定义上黎曼积分\(\overline{\int_{I}}f:=\inf\{p.c.\int_{I}g:g是从上方控制f的分段常数函数\}\),下黎曼积分\(\underline{\int_{I}}f:=\sup\{p.c.\int_{I}g:g是从下方控制f的分段常数函数\}\)。

  • 引理:设\(f:I\to \RR\)是定义在有界区间\(I\)上的有界函数,以\(M\)为界,则\(-M\abs{I} \le \underline{\int_{I}}f \le \overline{\int_{I}}f\le M\abs{I}\)。

利用积分定律3,再两次运用上下确界的定义即可。

  • 黎曼积分的定义:设\(f:I\to \RR\)是定义在有界区间\(I\)上的有界函数,如果\(\underline{\int_{I}}f=\overline{\int_{I}}f\),则称\(f\)在\(I\)上黎曼可积,并定义\(\int_{I}f:=\underline{\int_{I}}f=\overline{\int_{I}}f\)。

对于分段常数函数\(f\),有\(\int_{I}f=p.c.\int_{I}f\)。

  • 黎曼和的定义:设\(f:I\to \RR\)是定义在有界区间\(I\)上的有界函数,\(P\)是\(I\)的一个划分,定义上黎曼和\(U(f,P)=\sum_{J\in P;J\ne \emptyset}(\sup_{x\in J}f(x))\abs{J}\),下黎曼和\(L(f,P)=\sum_{J\in P;J\ne \emptyset}(\inf_{x\in J}f(x))\abs{J}\)。

  • 命题:设\(f:I\to \RR\)是定义在有界区间\(I\)上的有界函数,则\(\overline{\int{I}}f=\inf\{U(f,P):P是I的划分\}\),\(\underline{\int{I}}f=\sup\{L(f,P):P是I的划分\}\)。

证明:利用上黎曼积分的定义,并反复利用上下确界的定义。对于每个\(P\),可以构造分段常数函数\(g\)使得对每个\(J\in P\)都有\(c_J=\sup{x\in J}f(x)\),则\(p.c.\int_{I}g=U(f,P)\),即\(\overline{\int_{I}}f\le U(f,p)\),进而\(\overline{\int_{I}}f\le \inf\{U(f,P):P是I的划分\}\);对于每个分段常数函数\(g\),设\(g\)关于\(P\)的分段常数函数,则对于任意\(J\in P\),有\(c_J\ge \sup_{x\in J}f(x)\),因此\(p.c.\int_{I}g\ge U(f,P)\),\(p.c.\int_{I}g\ge \inf\{U(f,P):P是I的划分\}\),进而\(\overline{\int_{I}}f\ge \inf\{U(f,P):P是I的划分\}\)。

黎曼积分的基本性质

利用黎曼积分的定义和积分定律,可以很容易得到内容几乎相同的黎曼积分定律:(a)黎曼可积函数的和黎曼可积,且\(\int_{I}(f+g)=\int_{I}f+\int_{I}g\);(b)\(\int_{I}(cf)=c(\int_{I}f)\);(c)\(f(x)\ge 0\)则\(\int_{I}f\ge 0\);(d)\(\{J,K\}\)是\(I\)的划分,则\(\int_{I}f=\int_{J}f\vert _J+\int_{K}f\vert _K\)。

  • 定理1:设\(I\)是有界区间,\(f:I\to \RR\)和\(g:I\to \RR\)是黎曼可积的,则\(\max(f,g)(x):I\to \RR\)和\(\min(f,g)(x):I\to \RR\)也是黎曼可积的。

证明:思路是利用定义并取\(\vae\)证明两数相等。任取\(\vae\),存在从下方控制\(f\)的分段常数函数\(\underline{f}:I\to \RR\)满足\(\int_{I}\underline{f}\ge \int_{I}f-\vae\),从上方控制\(f\)的分段常数函数\(\overline{f}\)满足\(\int_{I}\overline{f}\le \int_{I}f+\vae\);\(\underline{g}\)满足\(\int_{I}\underline{g}\ge \int_{I}f-\vae\),\(\overline{g}\)满足\(\int_{I}\overline{g}\le \int_{I}g+\vae\)。\(\overline{\int_{I}}\max(f,g)-\underline{\int_{I}}\max(f,g)\le \int_{I}\max(\overline{f},\overline{g})-\int_{I}\max(\underline{f},\underline{g})\),而\(\max(\overline{f},\overline{g})-\max(\underline{f},\underline{g})\le (\overline{f}-\underline{f})+(\overline{g}-\underline{g})\),因此\(\max(f,g)(x)\)的上下黎曼积分差不超过\(4\vae\)。

而\(\abs{f} =\max(f,-f)\),绝对值保持黎曼可积性。也可设\(f_+=max(f,0)\),\(f_-=\min(f,0)\),\(\abs{f} =f_+-f_-\)。

  • 定理2:设\(I\)是有界区间,\(f:I\to \RR\)和\(g:I\to \RR\)是黎曼可积的,则\((fg)(x):I\to \RR\)也是黎曼可积的。

证明:思路仍然是设\(\vae\)。要对正负讨论,因此写成\(fg=f_+g_++f_+g_-+f_-g_++f_-g_-\)。对于\(f_+g_+\)的黎曼积分,分别找到上界\(M_1\)和\(M_2\)。类似定理1设\(\overline{f_+}\),\(\underline{f_+}\),\(\overline{g_+}\),\(\underline{g_+}\),\(\overline{f_+}(x)\overline{g_+}(x)-\underline{f_+}(x)\underline{g_+}(x)=\overline{f_+}(x)(\overline{g_+}(x)-\underline{g_+}(x))+\underline{g_+}(x)(\overline{f_+}(x)-\underline{f_+}(x))\)。因此上下黎曼积分差不超过\(M_1(2\vae)+M_2(2\vae)\)。

黎曼可积性

  • 定理1:设\(I\)是有界区间,\(f\)是\(I\)上的一致连续的函数,则\(f\)是黎曼可积的。

证明:利用一致连续的\(\vae-\delta\)定义,根据实数的序命题2找到整数\(N\gt 0\)使得\((b-a)/N\lt \delta\)(区间端点为\(a\)和\(b\)),找到一个划分\(J_1,...,J_N\)使得每个区间长度都为\((b-a)/N\lt \delta\),由于\(f(x)\lt f(y)+\vae\)对所有\(x,y\in J_k\)成立,两边分别取上确界和下确界,得到\(\overline{\int_{J_k}}f-\underline{\int_{J_k}}f\le (\sup_{x\in J_k}f(x)-\inf_{x\in J_k}f(x))\abs{J_k} \le \vae\abs{J_k}\)。因此利用黎曼积分的性质(d)上下黎曼积分的差不超过\(\vae\abs{b-a}\)。

因为上下黎曼积分分别是用\(\inf\)和\(\sup\)定义的,因此构造一对从上方控制和从下方控制的函数即可。

  • 推论:设\(f:[a,b]\to \RR\)是连续的,则\(f\)黎曼可积。

  • 定理2:设\(I\)是有界区间,\(f:I\to \RR\)是一个连续有界的函数,那么\(f\)是黎曼可积的。

证明:设区间端点\(a\)和\(b\),\(M\)为\(f\)的界,取\(\vae\),利用推论\(f\)在\([a+\vae,b-\vae]\)上是黎曼可积的,在闭区间外上下黎曼积分的差不超过\((2M)(2\vae)\)。

  • 定理3:\(f:[a,b]\to \RR\)是单调函数,则\(f\)在\([a,b]\)上黎曼可积。

证明:不妨设\(f\)递增。设\(N\gt 0\)将区间划分为长度为\((b-a)/N\)的\(N\)段再用\(\sup\)和\(\inf\)来构造从上方控制的函数和从下方控制的函数。利用嵌套级数引理可得最终上下黎曼积分的差不超过\((f(b)-f(a))(b-a)/N\)。

  • 推论:设\(I\)是有界区间,\(f:I\to \RR\)是单调且有界的,则\(f\)黎曼可积。

利用定理2的证法设\(\vae\)再使用定理3即可。

  • 推论:分段连续(存在划分使得函数在划分中的每个区间上连续)的有界函数黎曼可积,分段单调的有界函数黎曼可积。

  • 积分判别法:设\(f:[0,+\infty)\to \RR\)时单调递减的非负函数,那么级数\(\sum_{n=0}^{\infty}f(n)\)收敛当且仅当\(\sup_{N\gt 0}\int_{[0,N]}f\)有限。

证明:单调函数黎曼可积,构造证明出\(\sum_{n=1}^{N}f(n)\le \int_{[0,N]}f\)和\(\sum_{n=0}^{N-1}\ge \int_{[0,N]}f\),即\(\int_{[0,N+1]}f-f(0)\le \sum_{n=1}^{N}f(n)\le \int_{[0,N]}f\),而单调数列收敛当且仅当有界,通过两次反证法即可。

积分判别法的使用可结合之后的微积分基本定理,例如讨论\(p\gt 0\)时\(\sum_{n=1}^{\infty}n^{-p}\)的收敛情况。

  • 命题:设\(f[0,1]\to \RR\)在\(x\in \QQ\)处为\(1\),\(x\notin \QQ\)处为0,\(f\)有界但不黎曼可积。

证明:使用黎曼和,对任一个划分,根据实数的序命题3可知\(U(f,P)=1\),\(L(f,P)=0\),根据黎曼和的命题,上黎曼积分和下黎曼积分不等。

微积分基本定理

微积分第一基本定理和第二基本定理建立了微分和积分的联系。

  • 微积分第一基本定理:设\(f:[a,b]\to \RR\)是黎曼可积的函数,\(F:[a,b]\to \RR\)是函数\(\int_{[a,x]}f\),则\(F\)是连续的。如果\(x_0\in [a,b]\)且\(f\)在\(x_0\)处连续,则\(F\)在\(x_0\)处可微,且\(F'(x_0)=f(x_0)\)。

这里的限制条件是黎曼可积和在\(x_0\)处连续。例如如果\(f\)是分段函数(且断点处不连续),那么\(F\)在断点处当然不可导。

\(F\)的连续性证明:设\(f\)以\(M\)为界,则\(-M(y-x)\le \int_{[x,y]}f\le M(y-x)\),用连续函数命题1转化为序列,\(-M\abs{x_n-x} \le F(x_n)-F(x)\le M\abs{x_n-x}\),利用夹逼定理对\(n\)取极限得到\(\lim_{n\to \infty}F(x_n)=F(x)\)。 \(F'(x_0)=f(x_0)\)的证明:利用连续的\(\vae-\delta\)定义和牛顿逼近法。取左右极限避免讨论,设\(x_0\lt x\le x_0+\delta\),有\((f(x_0)-\vae)(x-x_0)\le \int_{[x_0,x]}f\le (f(x_0)+\vae)(x-x_0)\),即\(\abs{F(x)-F(x_0)-f(x_0)(x-x_0)} \le \vae(x-x_0)\),右极限为\(f(x_0)\)。

  • 习题1:考虑单调函数的习题\(g(q(n))=2^{-n}\),\(f(x)=\sum_{q\lt x}g(q)\)。\(f(x)\)在无理数处连续,因此\(F(x)\)在无理数处可微;\(f(x)\)在有理数处间断,那么任取一个\(\delta\gt 0\),都有\(y\in (x,x+\delta]\)上,\(\int_{[x,y]}f(x)/(y-x)\ge f(x)+g(x)\),而\(y\in [x-\delta,x)\)上都有(\int_{[y,x])f(x)/(x-y)\le f(x)),令\(\vae\lt g(x)\)可得\(F(x)\)不可微。

  • 习题2:设\(f:[a,b]\to \RR\)时黎曼可积的函数,且\(f\)单调,求证如果\(x_0\in [a,b]\),则\(f\)在\(x_0\)处连续当且仅当\(F\)在\(x_0\)处可微。

证明:对于另一边,反证并利用习题1的方法,存在\(\vae'\gt 0\)使得对任意\(\delta'\)都有\(f(x_0+\delta')-f(x_0-\delta')\gt \vae'\),那么设\(\vae\),对任意\(\delta\),存在\(\delta'\lt \delta\),\(\int_{[x_0,x_0+\delta]}f(x)/\delta-\int_{[x_0-\delta,x_0]}f(x)/\delta\ge \int_{[x_0+\delta',x_0+\delta]}f(x)/\delta-\int_{[x_0-\delta,x_0-\delta']}f(x)/\delta\ge \vae'(\delta-\delta')\gt 0\),令\(\vae\lt \vae'(\delta-\delta')\)即可。

  • 原函数的定义:设\(I\)是有界区间,\(f:I\to \RR\),函数\(F:I\to \RR\)可微,且对所有\(x\in I\)都有\(F'(x)=f(x)\),则称\(F\)是\(f\)的原函数。

我认为微积分第一基本定理的内容简单来说就是若\(F(b)=\int_{[a,b]}f\),则\(F\)是\(f\)的原函数,而微积分第二基本定理的内容就是若\(F\)是\(f\)的原函数,则\(F(b)-F(a)=\int_{[a,b]}f\)。几乎是互为逆命题的。

  • 微积分第二基本定理:设\(a\lt b\)是实数,设\(f:[a,b]\to \RR\)是黎曼可积的函数,如果\(F:[a,b]\to \RR\)是\(f\)的原函数,那么\(\int_{[a,b]}f=F(b)-F(a)\)。

证明:只需要证明对每个划分\(P\),都有\(U(f,P)\ge F(b)-F(a)\ge L(f,P)\)。对\(P\)的每个区间\(J\),设端点为\(l_J\)和\(r_J\),则\(F(b)-F(a)=\sum_{J\in P}F(r_J)-F(l_J)\),要证明\(\sup{x\in J}f(x)\abs{J} \ge F(r_J)-F(l_J)\)(右边不等式同理)。由平均值原理知,存在\(e\in J\)使得\(F'(e)=(F(r_J)-F(l_J))/(r_J-l_J)\),即\(f(e)\abs{J} =F(r_J)-F(l_J)\),得证。

  • 引理:设\(I\)是有界区间,对\(f:I\to \RR\),设\(F:I\to \RR\)和\(G:I\to \RR\)是\(f\)的两个原函数,存在实数\(C\)使得对所有\(F=G+C\)

证明:令\(H=F-G\),如果存在一个\(x\lt y\)使得\(H(x)\ne H(y)\),则根据平均值原理,存在\(x\le z\le y\)满足\(F'(x)-G'(x)=H'(x)\ne 0\),因此\(H\)是常数函数,对任意\(x\in I\)都有\(H(x)=C\)。

]]>
2021年终总结 http://lam8da.github.io/2021/12/31/summary-of-2021/ 2021-12-31T21:10:20+00:00 lambda http://lam8da.github.io/2021/12/31/summary-of-2021 大事记:

  • 爸爸年中诊断出房颤和肾病,耽误了。肾病已经偏晚期了,也不知道还有多少时日。想了很多,人生就是这样,再过几十年也会轮到我,人人都逃不掉。能做的就是珍惜身边的家人朋友,珍惜当下吧。
  • 妈妈心脏偶有问题,希望只是小问题吧。家里还是很多事,有时候真的心很累。

小事记:

  • 继续开发赶海技能,能抓的都抓过了(鱼除外):青口、海胆、Pismo Clam、银汉鱼、石头蟹、珍宝蟹、象拔蚌、小龙虾,等等。期间车后窗还被砸过,保险还算靠谱(虽然保费挺贵)。也爬了很多山。去了趟黄石和Tahoe。今年是(娃)玩的最多的一年。
  • Chase被盗用,希望损失都能追回。
  • 继续在家看了很多动漫
  • 研究了一下海运,终于把家里的屯书和其他东西运过来了。

看过的书:撸了三年的《线性代数应该这样学》,还没撸完哎。这效率。

学到的技术:乱搞了一下ml相关,了解了个大概吧。感觉不怎么靠谱,人人都削尖了脑袋想搞这个,但是出成果的寥寥无几,而且没有什么严格的方法论,感觉就是人肉暴力搜索。还是做infra更有意思点啊。

经验总结:

  • 定期做体检,多了解医学常识,不要等到一切都太晚
  • 投资一定要做足功课
  • 还是多陪陪孩子吧,耐心点!

最后是祝福,希望娃们快乐成长,全家健康快乐。和之前一样,也希望妹妹心想事成,爸妈身体健康,Covid早点结束吧!

]]>
2020年终总结 http://lam8da.github.io/2020/12/21/summary-of-2020/ 2020-12-21T21:53:51+00:00 lambda http://lam8da.github.io/2020/12/21/summary-of-2020 大事记:

  • Covid 19,取消机票。不知何时才能回国了,哎。
  • 因疫情Zoey退学,Aaron上网课,在家快要疯。
  • 疫情期间乱搞401k+入市,犯了一切小白该犯的错,亏损中。
  • 爸爸年底开始(?)高血压,年纪大了,不能尽孝,很自责。

小事记:

  • 换组后,屡遇z语言暴力,亚历山大。但他还是给了一个很好的idea,真不知道该感谢还是?以后还是走远点吧。
  • 搞了半年tf2,好麻烦
  • 职位level亚历山大,再加上applied ml的launch压力。
  • 小车路上漏机油冒烟,各种修。还好没大事。
  • 在家看了好多好多电视电影,特别是动漫。
  • 年底开发了赶海这一技能。

看过的书:无

学到的技术:就是瞎搞了一下cpu mem bandwidth相关的东西,大概有个头绪吧。

]]>
2019年终总结 http://lam8da.github.io/2020/12/21/summary-of-2019/ 2020-12-21T21:53:13+00:00 lambda http://lam8da.github.io/2020/12/21/summary-of-2019 迟到了一年才来写去年的总结。。。

大事记:

  • 年底本来要带Zoey回国,但是遇到Covid 19,因为担忧把机票取消了。后来爸妈的身体越来越不好了,未能及时尽孝,这可能会是我最大的遗憾之一。

小事记:

  • YF和YW都过来了,帮忙带娃。这真是我做过的最坏的决定之一。首先老婆就提前给过warning会出事,但是我觉得没什么,结果就是三天两头不愉快,期间还要动手。我服。然后这还是特别不孝顺的表现:我爸妈都没来过,凭什么他们就三番五次肆无忌惮?后来妈妈说爸爸还因此高血压犯病,唉我好后悔。
  • 做胃镜。过程倒是很顺利,睡一觉就好了,就是斯坦福的医院巨贵。
  • 升职。真心感谢前老板和新老板的帮忙。不久后新老板也再次成为了前老板。。
  • 换组,没人重视gpu。遇zf等,过程一波三折,最后Ben收留,感恩。
  • 妈妈心脏慢慢恢复了。希望能一直好下去。
  • y离了。爱而不得,这到底是为什么?

看过的书:主要是Compiler相关的看了一点(《编译器设计》等),没怎么做笔记。其他还有《线性代数应该这样学》,笔记记录在另外的博文里。

学到的技术:貌似没啥。

经验总结:老样子,多陪陪娃吧。

祝福。

]]>
《Fourier Analysis》笔记 http://lam8da.github.io/2020/09/04/fourier-analysis-notes/ 2020-09-04T00:00:00+00:00 lambda http://lam8da.github.io/2020/09/04/fourier-analysis-notes

Chapter 1. The Genesis of Fourier Analysis

  • 简谐振动(基于弹簧)
    • 力\(F=-ky(t)\),\(k\)表示弹性系数,\(t\)为时间
    • 应用牛顿第二定律后得\(-ky(t)=my''(t)\),可简化成\(y''(t)+c^{2}y(t)=0\)的形式
    • 该微分方程的一般解为\(y(t)=a\cos(ct)+b\sin(ct)\),且该解为唯一二次可微的解

      如何证明?

  • 求解匀质弹性线段的波动方程\(u(x,t)\)
    • 该线段两端点坐标为\(x=0\)和\(x=L\)
    • 分为\(N\)段,每段长度为\(h\)
    • 假设线段密度为\(\rho\),根据牛顿第二定律,第\(n\)段所受作用力可以表示为\(\rho hy_{n}''(t)\)
    • 设\(\tau>0\)为线段的张力系数(常数),第\(n\)段所受右边(左边类似)相邻段的张力和\((y_{n+1}-y_{n})/h\)成正比,这样该段所受左右两边的张力和为

      \[\frac{\tau}{h}\{y_{n+1}(t)+y_{n-1}(t)-2y_{n}(t)\}\]

      其中\(y_{n}(t)=u(x_{n},t)\)

    • 联立上述两式得

      \[\rho hy_{n}''(t)=\frac{\tau}{h}\{y_{n+1}(t)+y_{n-1}(t)-2y_{n}(t)\}\]
    • 令\(h\to0\)取极限有

      \[\rho\frac{\partial^{2}u}{\partial t^{2}}=\tau\frac{\partial^{2}u}{\partial x^{2}}\]

      这就是one-dimentional wave equation

  • 求解上述wave equation的两种方法

Chapter 2. Basic Properties of Fourier Series

Chapter 3. Convergence of Fourier Series

]]>
CUDA程序设计的一些笔记 http://lam8da.github.io/2019/10/28/cuda-notes/ 2019-10-28T21:12:23+00:00 lambda http://lam8da.github.io/2019/10/28/cuda-notes

CUDA C Best Practices Guide

9.1.2: Asynchronous and Overlapping Transfers with Computation

异步数据复制cudaMemcpyAsync要求pinned host memory(really??)

9.1.3: Zero Copy

CUDA kernel可以直接访问mapped pinned (non-pageable) memory,具体操作如下:

float *a_h, *a_map;
...
cudaGetDeviceProperties(&prop, 0);
if (!prop.canMapHostMemory) exit(0);
cudaSetDeviceFlags(cudaDeviceMapHost);
cudaHostAlloc(&a_h, nBytes, cudaHostAllocMapped);
cudaHostGetDevicePointer(&a_map, a_h, 0);
kernel<<<gridSize, blockSize>>>(a_map);

由于数据不会cache在GPU中,因此mapped pinned memory should be read or written only once。

9.2.1: Coalesced Access to Global Memory

L1 cache line is 128B; L2 cache line is 32B。

9.2.2: Shared Memory

同一个warp的多个线程访问同一shared memory的地址是不会导致bank conflict的,而是broadcast

使用shared memory的优点:

  • to enable coalesced accesses to global memory, especially to avoid large strides (for general matrices, strides are much larger than 32)
  • to eliminate (or reduce) redundante loads from global memory
  • to avoid wasted bandwidth

9.2.4: Texture Memory

The read-only texture memory space is cached. Therefore, a texture fetch costs one device memory read only on a cache miss; otherwise, it just costs one read from the texture cache. The texture cache is optimized for 2D spatial locality, so threads of the same warp that read texture addresses that are close together will achieve best performance. Texture memory is also designed for streaming fetches with a constant latency; that is, a cache hit reduces DRAM bandwidth demand, but not fetch latency.

9.2.5: Constant Memory

There is a total of 64 KB constant memory on a device. The constant memory space is cached. As a result, a read from constant memory costs one memory read from device memory only on a cache miss; otherwise, it just costs one read from the constant cache. Accesses to different addresses by threads within a warp are serialized, thus the cost scales linearly with the number of unique addresses read by all threads within a warp. As such, the constant cache is best when threads in the same warp accesses only a few distinct locations. If all threads of a warp access the same location, then constant memory can be as fast as a register access.

9.2.6: Registers

The latency of read-after-write dependencies is approximately 24 cycles, but this latency is completely hidden on multiprocessors that have sufficient warps of threads concurrent per multiprocessor (as many as 768 threads (24 warps) might be required to completely hide latency).

10.1.1: Calculating Occupancy

the maximum number of registers per thread can be set manually at compilation time per-file using the -maxrregcount option or per-kernel using the __launch_bounds__ qualifier

10.3: Multiple Contexts

While multiple contexts (and their associated resources such as global memory allocations) can be allocated concurrently on a given GPU, only one of these contexts can execute work at any given moment on that GPU; contexts sharing the same GPU are time-sliced. Creating additional contexts incurs memory overhead for per-context data and time overhead for context switching. Furthermore, the need for context switching can reduce utilization when work from several contexts could otherwise execute concurrently (see also Concurrent Kernel Execution).

Therefore, it is best to avoid multiple contexts per GPU within the same CUDA application. To assist with this, the CUDA Driver API provides methods to access and manage a special context on each GPU called the primary context. These are the same contexts used implicitly by the CUDA Runtime when there is not already a current context for a thread.

// When initializing the program/library
CUcontext ctx;
cuDevicePrimaryCtxRetain(&ctx, dev);

// When the program/library launches work
cuCtxPushCurrent(ctx);
kernel<<<...>>>(...);
cuCtxPopCurrent(&ctx);

// When the program/library is finished with the context
cuDevicePrimaryCtxRelease(dev);

10.5: Thread and Block Heuristics

Rules of thumb:

  • Threads per block should be a multiple of warp size to avoid wasting computation on under-populated warps and to facilitate coalescing.
  • A minimum of 64 threads per block should be used, and only if there are multiple concurrent blocks per multiprocessor.
  • Between 128 and 256 threads per block is a better choice and a good initial range for experimentation with different block sizes.
  • Use several (3 to 4) smaller thread blocks rather than one large thread block per multiprocessor if latency affects performance. This is particularly beneficial to kernels that frequently call __syncthreads().

11.1.4: Exponentiation With Small Fractional Arguments

For some fractional exponents, exponentiation can be accelerated significantly compared to the use of pow() by using square roots, cube roots, and their inverses. For those exponentiations where the exponent is not exactly representable as a floating-point number, such as 1/3, this can also provide much more accurate results, as use of pow() magnifies the initial representational error.

11.2: Memory Instructions

When accessing uncached local or global memory, there are 400 to 600 clock cycles of memory latency.

12.2: Branch Predication

The compiler replaces a branch instruction with predicated instructions only if the number of instructions controlled by the branch condition is less than or equal to a certain threshold: If the compiler determines that the condition is likely to produce many divergent warps, this threshold is 7; otherwise it is 4.

12.3: Loop Counters Signed vs. Unsigned

In the C language standard, unsigned integer overflow semantics are well defined, whereas signed integer overflow causes undefined results. Therefore, the compiler can optimize more aggressively with signed arithmetic than it can with unsigned arithmetic. For example:

for (i = 0; i < n; i++) {
  out[i] = in[offset + stride*i];
}

Here, the sub-expression stride*i could overflow a 32-bit integer, so if i is declared as unsigned, the overflow semantics prevent the compiler from using some optimizations that might otherwise have applied, such as strength reduction. If instead i is declared as signed, where the overflow semantics are undefined, the compiler has more leeway to use these optimizations.

12.4: Synchronizing Divergent Threads in a Loop

Synchronizing threads inside potentially divergent code (e.g., a loop over an input array) can cause unanticipated errors. Care must be taken to ensure that all threads are converged at the point where __syncthreads() is called. For example:

unsigned int imax = blockDim.x * ((nelements + blockDim.x - 1)/ blockDim.x);
for (int i = threadidx.x; i < imax; i += blockDim.x) {
  if (i < nelements) {
    ...
  }
  __syncthreads();
  if (i < nelements) {
    ...
  }
}

References:

Profiling

个人经验&总结

  • 不要过早优化!
  • CUDA的并行模型是分层次的,从fine grain到coarse grain包括:
    • thread level
    • warp level
    • block level
    • grid level

    我们可以决定某个算法的并行层次。例如对于sparse conv3d的backprop filter来说,是每个warp处理一个点的所有input channel,还是每个thread处理一个单独的input channel,等等。同一个点的所有input channel它们会有相似的特征,从而使控制流的执行完全一致(例如分支预测结果总是一致,循环迭代次数一致等),因此当channel数量是32的倍数时用一个warp来执行效率会很高。但是当channel数量不是32的倍数时就会浪费掉一些线程的计算资源。这是一个trade off。另外,每个层次上都有各自的同步机制,层次越低同步开销越小

  • 在7.0 compute cabability上一个时钟周期可以执行:
    • 32次32位整数加法或乘法,??或
    • ?次半精度(16位)浮点数乘法,或
    • ?次单精度(32位)浮点数乘法,或
    • ?次双精度(64位)浮点数乘法

    等等。具体参考??

  • 整数除法的cost大约是加法或乘法的20倍,因为会被分解成约20条指令
  • 实验表明某些情况下if分支和除法的效率一样差
  • global memory的一次读取(非cache)耗费400到600个时钟周期???
  • 浮点数加法不满足结合律!
  • 使用ldg()读取readonly多次的数据!
]]>
《线性代数应该这样学》笔记(下) http://lam8da.github.io/2019/07/22/linear-algebra-done-right-notes2/ 2019-07-22T22:04:32+00:00 lambda http://lam8da.github.io/2019/07/22/linear-algebra-done-right-notes2

\[\def\nspace{\text{null }} \def\range{\text{range }}\]

第六章 内积空间

向量空间研究的主要是空间的线性结构(加法和标量乘法),而内积空间则加上了对应于二维空间和三维空间中长度和角度的概念。

内积

  • 实向量空间或复向量空间\(V\)上的内积(inner product)就是一个函数,它把\(V\)中元素的每个有序对\((\vec{u},\vec{v})\)都映成一个数\(\viprod{u}{v}\in\mathbf{F}\),并且具有性质:
    • 正性:对所有\(\vec{v}\in V\)都有\(\viprod{v}{v}\ge0\)(这意味着\(\viprod{v}{v}\)是一个实数)
    • 定性:\(\viprod{v}{v}=0\)当且仅当\(\vec{v}=0\)
    • 第一个位置的加性:对所有\(\vec{u},\vec{v},\vec{w}\in V\)都有\(\iprod{\vec{u}+\vec{v}}{\vec{w}}=\viprod{u}{w}+\viprod{v}{w}\)
      • 通过这个和下一个性质可以证明第二个位置也具有加性,即:\(\iprod{\vec{u}}{\vec{v}+\vec{w}}=\viprod{u}{v}+\viprod{u}{w}\)
      • 可证\(\viprod{0}{w}=\viprod{w}{0}=0,\vec{w}\in V\)
    • 第一个位置的齐性:对所有\(a\in\mathbf{F},\vec{v},\vec{w}\in V\)都有\(\iprod{ a\vec{v}}{\vec{w}}=a\viprod{v}{w}\)
      • 通过这个和上一个性质可以证明第二个位置具有共轭齐性,即:\(\iprod{\vec{u}}{a\vec{v}}=\overline{a}\viprod{u}{v}\)
    • 共轭对称性:对所有\(\vec{v},\vec{w}\in V\)都有\(\viprod{v}{w}=\overline{\viprod{w}{v}}\)
      • 对实向量空间这等价于\(\viprod{v}{w}=\viprod{w}{v}\)
  • 内积空间是带有内积的向量空间。例子:
    • \(\mathbf{F}^{n}\),内积定义为\(\iprod{(\list{w}{n})}{(\list{z}{n})}=w_{1}\overline{z_{1}}+\cdots+w_{n}\overline{z_{n}}\)(这称为欧几里得内积)
    • 同样为\(\mathbf{F}^{n}\),但用另一个内积:若\(\list{c}{n}\)是正数,定义内积\(\iprod{(\list{w}{n})}{(\list{z}{n})}=c_{1}w_{1}\overline{z_{1}}+\cdots+c_{n}w_{n}\overline{z_{n}}\)
    • 由系数在\(\mathbf{F}\)中次数不超过\(m\)的所有多项式组成的向量空间\(\mathcal{P}_{m}(\mathbf{F})\),定义内积\(\iprod{ p}{q}=\int_{0}^{1}p(x)\overline{q(x)}\dx\)

范数

  • 范数定义为\(\| \vec{v}\|=\sqrt{\viprod{v}{v}}\)。性质:
    • \(\| \vec{v}\|=0\)当且仅当\(\vec{v}=0\)
    • 对所有\(a\in\mathbf{F}, \vec{v}\in V\)都有\(\| a\vec{v}\|=\abs{a}\norm{\vec{v}}\)(两边平方即可证)
  • 对于两个向量\(\vec{u},\vec{v}\in V\),如果\(\viprod{u}{v}=0\),则称\(\vec{u}\)和\(\vec{v}\)是正交的
    • 注意次序无关紧要(由共轭对称性)
    • \(\vec{0}\)正交于每个向量,且\(\vec{0}\)是唯一正交于自身的向量。
  • 6.3:勾股定理:如果\(\vec{u},\vec{v}\)是\(V\)中的正交向量,那么\(\| \vec{u}+\vec{v}\|^{2}=\|\vec{u}\|^{2}+\|\vec{v}\|^{2}\)。证明:对\(\|\vec{u}+\vec{v}\|^{2}\)展开即得。
    • 易证这个命题的逆命题在实内积空间中成立。
  • 6.5:正交分解:设\(\vec{u},\vec{v}\in V\),如果\(\vec{v}\ne0\),可以证明这个式子把\(\vec{u}\)写成了\(\vec{v}\)的标量倍加上一个正交于\(\vec{v}\)的向量:

    \[\vec{u}=\frac{\viprod{u}{v}}{\|\vec{v}\|^{2}}\vec{v}+\left(\vec{u}-\frac{\viprod{u}{v}}{\|\vec{v}\|^{2}}\vec{v}\right)\]
  • 6.6:柯西-施瓦茨不等式(Cauchy-Schwarz Inequality):若\(\vec{u},\vec{v}\in V\),则

    \[\abs{\viprod{u}{v}}\le\| \vec{u}\|\| \vec{v}\|\]

    而且其中的等号成立当且仅当\(\vec{u},\vec{v}\)之一是另一个的标量倍。

    • 证明:设\(\vec{v}\ne\vec{0}\)(否则等号成立),然后用上述正交分解。令\(\vec{w}\)等于右端第二项,则由勾股定理有:

      \[\| \vec{u}\|^{2}=\left\| \frac{\viprod{u}{v}}{\| \vec{v}\|^{2}}\vec{v}\right\|^{2}+\| \vec{w}\|^{2}=\frac{\abs{\viprod{u}{v}}^{2}}{\|\vec{v}\|^{2}}+\|\vec{w}\|^{2}\ge\frac{\abs{\viprod{u}{v}}^{2}}{\|\vec{v}\|^{2}}\]

      其中第二个等号成立是由于上面范数的第二个性质。然后再移项取平方根即得该不等式。从上式知等号成立当且仅当\(\vec{w}=\vec{0}\),而由6.5知这成立当且仅当\(\vec{u}\)和\(\vec{v}\)的一个是另一个的标量倍。证毕。

  • 6.9:三角不等式(Triangle Inequality):若\(\vec{u},\vec{v}\in V\)则\(\|\vec{u}+\vec{v}\|\le\vec{u}+\vec{v}\),而且其中的等号成立当且仅当\(\vec{u},\vec{v}\)之一是另一个的非负标量(实数)倍。
    • 证明:展开可得:

      \[\|\vec{u}+\vec{v}\|=\|\vec{u}\|^{2}+\|\vec{v}\|^{2}+2\text{Re }\viprod{u}{v}\le \|\vec{u}\|^{2}+\|\vec{v}\|^{2}+2\abs{\viprod{u}{v}} \le\|\vec{u}\|^{2}+\|\vec{v}\|^{2}+2\|\vec{u}\|\|\vec{v}\|=(\|\vec{u}\|+\|\vec{v}\|)^{2}\]

      根据6.6,第二个小于等于号中的等号成立当且仅当\(\vec{u},\vec{v}\)之一是另一个的标量倍,而当该条件成立时第一个小于等于号中的等号也成立(该条件是充分非必要,就是说第一个小于等于号中的等号成立还可能是由于其他原因,但这已经足够),即得。

  • 6.14:平行四边形等式(Parallelogram Equality):若\(\vec{u},\vec{v}\in V\),则\(\|\vec{u}+\vec{v}\|^{2}+\|\vec{u}-\vec{v}\|^{2}=2(\|\vec{u}\|^{2}+\|\vec{v}\|^{2})\)。证明:直接展开即得。
    • 几何解释为:在任意平行四边形中,对角线长度的平方和等于四条边长度的平方和。

规范正交基

  • 规范正交性:若一个向量组中的向量两两正交,并且每个向量的范数都是1,则称这个向量组是规范正交的。
  • 6.15:如果\(V\)中的向量组\((\vlist{e}{m})\)是规范正交的,那么\(\|a_{1}\vec{e}_{1}+\cdots+a_{m}\vec{e}_{m}\|^{2}=\abs{a_{1}}^{2}+\cdots+\abs{a_{m}}^{2}\),其中\(\list{a}{m}\in\mathbf{F}\)。证明:反复使用勾股定理6.3以及上述范数的第二个性质即得。
  • 6.16:推论:每个规范正交向量组都是线性无关的。证明:用线性无关的定义(若存在一组标量使该规范正交向量组和这组标量对应项的积的和为0,那么这组标量全为0),根据6.15即得。
  • 6.17:定理:设\((\vlist{e}{n})\)是\(V\)的规范正交基,则对每个\(\vec{v}\in V\)都有:
    • 6.18:\(\vec{v}=\iprod{\vec{v}}{\vec{e}_{1}}\vec{e}_{1}+\cdots+\iprod{\vec{v}}{\vec{e}_{n}}\vec{e}_{n}\),而且
    • 6.19:\(\|\vec{v}\|^{2}=\abs{\iprod{\vec{v}}{\vec{e}_{1}}}^{2}+\cdots+\abs{\iprod{\vec{v}}{\vec{e}_{n}}}^{2}\)
    • 证明:对等式\(\vec{v}=a_{1}\vec{e}_{1}+\cdots+a_{n}\vec{e}_{n}\)两端都与\(\vec{e}_{j}\)做内积,即得\(\iprod{\vec{v}}{\vec{e}_{j}}=a_{j}\),即6.18成立。又由6.15即得6.19。
  • 6.20:格拉姆-施密特过程(Gram-Schmidt procedure):如果\((\vlist{v}{m})\)是\(V\)中的线性无关向量组,则\(V\)有规范正交向量组\((\vlist{e}{m})\)使得:

    \[\vspanl{v}{j}=\vspanl{e}{j}, j=1,\cdots, m\]
    • 证明:首先令\(\vec{e}_{1}=\vec{v}_{1}/\|\vec{v}_{1}\|\),这满足\(j=1\)的情况。然后归纳地选取\(\vlist{e}{m}\)。假设\(j>1\)并且已经选取了规范正交组\((\vlist{e}{j-1})\)使得\(\vspanl{v}{j-1}=\vspanl{e}{j-1}\)。现在令

      \[\vec{e}_{j}=\frac{\vec{v}_{j}-\iprod{\vec{v}_{j}}{\vec{e}_{1}}\vec{e}_{1}-\cdots-\iprod{\vec{v}_{j}}{\vec{e}_{j-1}}\vec{e}_{j-1}}{\|\vec{v}_{j}-\iprod{\vec{v}_{j}}{\vec{e}_{1}}\vec{e}_{1}-\cdots-\iprod{\vec{v}_{j}}{\vec{e}_{j-1}}\vec{e}_{j-1}\|}\]

      易知\(\vec{v}_{j}\notin\vspanl{e}{j-1}\),因此上式良定义(分母不为0)且\(\|\vec{e}_{j}\|=1\)。设\(1\le k\le j\),用上式将\(\iprod{\vec{e}_{j}}{\vec{e}_{k}}\)展开即得其值为0,因此\((\vlist{e}{j})\)是规范正交组。由上式知\(\vec{v}_{j}\in\vspanl{e}{j}\),再根据归纳假设即得\(\vspanl{v}{j}\subset\vspanl{e}{j}\),而由于这两个组都是线性无关的(后者根据6.16得到),因此上面两个子空间的维数都是\(j\),从而一定相等。

  • 6.24:推论:每个有限维内积空间都有规范正交基。证明:直接对该空间的一组基应用格拉姆-施密特过程。因为该空间是有限维的,因此过程会停止并会得到一个规范正交组,根据6.16即得。
  • 6.25:推论:\(V\)中的每个规范正交向量组都可以扩充为\(V\)的规范正交基。证明:先根据2.12将该向量组扩充为\(V\)的基,然后应用格拉姆-施密特过程即得。
  • 6.27:推论:设\(T\in\lmap(V)\),如果\(T\)关于\(V\)的某个基具有上三角矩阵,那么\(T\)关于\(V\)的某个规范正交基也具有上三角矩阵。证明:对该具有上三角矩阵的基应用格拉姆-施密特过程得到一组规范正交基,根据5.12(C)知\(T\)关于该组基具有上三角矩阵。
  • 6.28:推论:设\(V\)是复向量空间,并且\(T\in\lmap(V)\),则\(T\)关于\(V\)的某个规范正交基具有上三角矩阵。证明:由5.13和6.27即得。

正交投影与极小化问题

  • 正交补:如果\(U\)是\(V\)的子集,那么\(U\)的正交补(orthogonal complement)为:

    \[U^{\bot}=\{\vec{v}\in V:\viprod{v}{u}=0, u\in U\}\]

    性质:

    • \(U^{\bot}\)总是\(V\)的子空间
    • \(V^{\bot}=\{\vec{0}\}\)。
    • \(\{\vec{0}\}^{\bot}=V\)。
  • 6.29:定理:如果\(U\)是\(V\)的子空间,那么\(V=U\oplus U^{\bot}\)
    • 证明:先证\(V=U+U^{\bot}\),为此设\(\vec{v}\in V\)且\((\vlist{e}{m})\)是\(U\)的一个规范正交基,则有

      \[\vec{v}=\underbrace{\iprod{\vec{v}}{\vec{e}_{1}}\vec{e}_{1}+\cdots+\iprod{\vec{v}}{\vec{e}_{m}}\vec{e}_{m}}_{\vec{u}}+\underbrace{\vec{v}-\iprod{\vec{v}}{\vec{e}_{1}}\vec{e}_{1}-\cdots-\iprod{\vec{v}}{\vec{e}_{m}}\vec{e}_{m}}_{\vec{w}}\]

      显然\(\vec{u}\in U\),易证对每个\(j\)都有\(\iprod{\vec{w}}{\vec{e}_{j}}=0\),因此\(\vec{w}\in U^{\bot}\),证得。再证该和是直和,为此只需证\(U\cap U^{\bot}=\{\vec{0}\}\),为此设\(\vec{v}\)属于该交集,则它(包含于\(U\))正交于\(U\)中的每个向量(包括\(\vec{v}\)本身),从而\(\viprod{v}{v}=0\)即\(\vec{v}=\vec{0}\),即得。

  • 6.33:推论:如果\(U\)是\(V\)的子空间,那么\(U=(U^{\bot})^{\bot}\)
    • 证明:采用证明集合相等的一般方法,即每个属于其中一个集合的元素都属于另一个。设\(\vec{u}\in U\),根据定义很容易证明\(\vec{u}\in (U^{\bot})^{\bot}\)。要证另一个方向,设\(\vec{v}\in(U^{\bot})^{\bot}\),根据6.29可得\(\vec{v}=\vec{u}+\vec{w},\vec{u}\in U,\vec{w}\in U^{\bot}\),从而\(\vec{v}-\vec{u}\in U^{\bot}\);又因为\(\vec{v}\in(U^{\bot})^{\bot}\),而根据上述另一个方向的证明有\(\vec{u}\in(U^{\bot})^{\bot}\),因此\(\vec{v}-\vec{u}\in(U^{\bot})^{\bot}\),因此\(\vec{v}-\vec{u}\in U^{\bot}\cap(U^{\bot})^{\bot}\),故\(\vec{v}=\vec{u}\),于是\(\vec{v}\in U\),证毕。
  • 根据6.29,每个\(\vec{v}\in V\)都可以唯一写成\(\vec{v}=\vec{u}+\vec{w},\vec{u}\in U,\vec{w}\in U^{\bot}\)。定义\(V\)上的算子\(P_{U}\),称为\(V\)到\(U\)上的正交投影:对\(\vec{v}\in V\),定义\(P_{U}\vec{v}\)为前述分解中的\(\vec{u}\)。易证:
    • \(P_{U}\in\lmap(V)\);
    • \(\range P_{U}=U\);
    • \(\nspace P_{U}=U^{\bot}\);
    • 对每个\(\vec{v}\in V\)都有\(\vec{v}-P_{U}\vec{v}\in U^{\bot}\)
    • \(P_{U}^{2}=P_{U}\);
    • 对每个\(\vec{v}\in V\)都有\(\|P_{U}\vec{v}\|\le\|\vec{v}\|\)
  • 6.35:根据6.29的证明所用的分解可知,如果\((\vlist{e}{m})\)是\(U\)的规范正交基,那么对于每个\(\vec{v}\in V\)都有\(P_{U}\vec{v}=\iprod{\vec{v}}{\vec{e}_{1}}\vec{e}_{1}+\cdots+\iprod{\vec{v}}{\vec{e}_{m}}\vec{e}_{m}\)
  • 6.36:命题:设\(U\)是\(V\)的子空间并且\(\vec{v}\in V\),则\(\|\vec{v}-P_{U}\vec{v}\|\le\|\vec{v}-\vec{u}\|,\vec{u}\in U\)。进一步,若上面等号成立,则\(\vec{u}=P_{U}\vec{v}\)
    • 证明:

      \[\|\vec{v}-P_{U}\vec{v}\|^{2}\le\|\vec{v}-P_{U}\vec{v}\|^{2}+\|P_{U}\vec{v}-\vec{u}\|^{2}=\|(\vec{v}-P_{U}\vec{v})+(P_{U}\vec{v}-\vec{u})\|^{2}=\|\vec{v}-\vec{u}\|^{2}\]

      其中第一个等号是根据勾股定理。即得。

    • 例子:如何找到一个次数不超过5的实系数多项式\(\vec{u}\)使其在区间\([-\pi,\pi]\)上尽量好地逼近\(\sin x\),即\(\int_{-\pi}^{\pi}\abs{\sin x-\vec{u}(x)}^{2}\dx\)最小
      • 解:令\(C[-\pi,\pi]\)表示由\([-\pi,\pi]\)上的连续实值函数组成的实向量空间(注意这个空间不是有限维的),并取内积为:

        \[\iprod{ f}{g}=\int_{-\pi}^{\pi}f(x)g(x)\dx\]

        设\(\vec{v}\in C[-\pi,\pi]\)是由\(\vec{v}(x)=\sin x\)定义的函数,令\(U\)表示由次数不超过5的实系数多项式组成的\(C[-\pi,\pi]\)的子空间,则问题可以重述为:求\(\vec{u}\in U\)使得\(\|\vec{v}-\vec{u}\|\)最小。根据6.36要求的\(\vec{u}\)就是\(P_{U}\vec{v}\),而这可以先找\(U\)的一组规范正交基然后根据6.35来求,而规范正交基可以对\(U\)的基\((1,x,x^{2},x^{3},x^{4},x^{5})\)应用格拉姆-施密特过程得到。

    • 通过6.29的证明知,其只用到\(U\)的维数的有限性,而无论\(V\)维数是否有限证明都成立。对\(P_{U}\)的定义和性质(包括6.35),以及6.36也是一样的。因此可知:无论\(V\)是否为有限维的,只要\(U\)是有限维的,就可以用上面讨论的过程来寻找\(\vec{u}\in U\)使得\(\|\vec{v}-\vec{u}\|\)最小。

线性泛函与伴随

  • \(V\)上的线性泛函(linear functional)是从\(V\)到\(\mathbf{F}\)的线性映射。
  • 6.45:定理:设\(\varphi\)是\(V\)上的线性泛函,则存在唯一一个向量\(\vec{v}\in V\)使得\(\varphi(\vec{u})=\viprod{u}{v},\vec{u}\in V\)
    • 证明:首先证明存在向量\(\vec{v}\in V\)使得对每个\(\vec{u}\in V\)都有\(\varphi(\vec{u})=\viprod{u}{v}\)。设\((\vlist{e}{n})\)是\(V\)的规范正交基,则对每个\(\vec{u}\in V\)都有:

      \[\begin{array}{l} \varphi(\vec{u})&=\varphi\left(\iprod{\vec{u}}{\vec{e}_{1}}\vec{e}_{1}+\cdots+\iprod{\vec{u}}{\vec{e}_{n}}\vec{e}_{n}\right) \\ &=\iprod{\vec{u}}{\vec{e}_{1}}\varphi(\vec{e}_{1})+\cdots+\iprod{\vec{u}}{\vec{e}_{n}}\varphi(\vec{e}_{n}) \\ &=\iprod{\vec{u}}{\overline{\varphi(\vec{e}_{1})}\vec{e}_{1}+\cdots+\overline{\varphi(\vec{e}_{n})}\vec{e}_{n}} \\ &=\viprod{u}{v} \end{array}\]

      现在来证明这样的\(\vec{v}\)只有一个,否则假设\(\vec{v}_{1},\vec{v}_{2}\)对任意的\(\vec{u}\)均满足条件,则取\(\vec{u}=\vec{v}_{1}-\vec{v}_{2}\),易证\(\vec{v}_{1}=\vec{v}_{2}\)。

  • 伴随(adjoint)的定义:设\(V,W\)是\(\mathbf{F}\)上的有限维非零内积空间,设\(T\in\lmap(V,W)\)。给定\(\vec{w}\in W\),考虑\(V\)上将\(\vec{v}\in V\)映成\(\iprod{ T\vec{v}}{\vec{w}}\)的线性泛函\(\varphi_{\vec{w}}\)(易证这个线性泛函满足线性映射的定义,因此是良定义的),则\(T\)的伴随\(T^{*}\)是使得如下性质成立的从\(W\)到\(V\)的函数:\(T^{*}w\)是\(V\)中唯一一个满足条件\(\iprod{ T\vec{v}}{\vec{w}}=\iprod{\vec{v}}{T^{*}\vec{w}},\vec{v}\in V\)的向量(该向量的存在性和唯一性由6.45得到)
    • 注意:伴随是一个函数,其定义域为\(W\),而上述描述定义了它在每个\(\vec{w}\in W\)上的值,该值满足:对任何\(\vec{v}\in V\)成立等式\(\iprod{ T\vec{v}}{\vec{w}}=\iprod{\vec{v}}{T^{*}\vec{w}}\)
  • 伴随是线性映射:若\(T\in\lmap(V,W)\),则\(T^{*}\in\lmap(V,W)\)。证明:根据线性映射的定义需要证明加性和齐性。
    • 加性:\(\iprod{\vec{v}}{T^{*}(\vec{w}_{1}+\vec{w}_{2})}=\iprod{ T\vec{v}}{\vec{w}_{1}+\vec{w}_{2}}=\iprod{ T\vec{v}}{\vec{w}_{1}}+\iprod{ T\vec{v}}{\vec{w}_{2}}=\iprod{\vec{v}}{T^{*}\vec{w}_{1}}+\iprod{\vec{v}}{T^{*}\vec{w}_{2}}=\iprod{\vec{v}}{T^{*}\vec{w}_{1}+T^{*}\vec{w}_{2}}\)
    • 齐性可以类似地证明。
  • 函数\(T\mapsto T^{*}\)具有如下性质(以下设\(S,T\in\lmap(V,W)\))
    • 加性:\((S+T)^{*}=S^{*}+T^{*}\)。为证此性质需要证明\((S+T)^{*}(\vec{w})=S^{*}\vec{w}+T^{*}\vec{w},\vec{w}\in W\),为此需要证明\(\iprod{\vec{v}}{(S+T)^{*}\vec{w}}=\iprod{\vec{v}}{S^{*}\vec{w}+T^{*}\vec{w}}\),而这通过伴随定义的式子、内积的性质以及线性变换的性质就能证得。
    • 共轭齐性:\((aT)^{*}=\overline{a}T^{*}\)。证明思路同上。
    • 伴随的伴随:\((T^{*})^{*}=T\)。证明思路同上,要用到内积的共轭对称性。
    • 恒等算子:\(I^{*}=I\)
    • 乘积:\((ST)^{*}=T^{*}S^{*}\)。证明思路同上,要把\(S\)和\(T\)通过伴随的定义式做两次变换。
  • 6.46:命题:设\(T\in\lmap(V,W)\),则
    • (a)\(\nspace T^{*}=(\range T)^{\bot}\)
    • (b)\(\range T^{*}=(\nspace T)^{\bot}\)
    • (c)\(\nspace T=(\range T^{*})^{\bot}\)
    • (d)\(\range T=(\nspace T^{*})^{\bot}\)
    • 证明:对于(a),设\(\vec{w}\in W\),则:

      \[\begin{array}{l} \vec{w}\in\nspace T^{*}&\iff T^{*}\vec{w}=\vec{0} \\ &\iff \iprod{\vec{v}}{T^{*}\vec{w}}=0,\vec{v}\in V \\ &\iff \iprod{ T\vec{v}}{\vec{w}}=0,\vec{v}\in V \\ &\iff \vec{w}\in (\range T)^{\bot} \end{array}\]

      (a)的两端取正交补即得(d)(用到了6.33)。通过把这两式中的\(T\)和\(T^{*}\)互换即得另外两式。

  • 6.47:命题:设\(T\in\lmap(V,W)\),如果\((\vlist{e}{n})\)是\(V\)的规范正交基,且\((\vlist{f}{m})\)是\(W\)的规范正交基,那么

    \[\mathcal{M}(T^{*},(\vlist{f}{m}),(\vlist{e}{n}))\]

    \[\mathcal{M}(T,(\vlist{e}{n}),(\vlist{f}{m}))\]

    的共轭转置。

    • 证明:设\((\vlist{e}{n}),(\vlist{f}{m})\)分别是\(V,W\)的规范正交基。我们知道,把\(T\vec{e}_{k}\)写成这些\(\vec{f}_{j}\)的线性组合可以得到\(\mathcal{M}(T)\)的第\(k\)列,而根据6.17有:

      \[T\vec{e}_{k}=\iprod{ T\vec{e}_{k}}{\vec{f}_{1}}\vec{f}_{1}+\cdots+\iprod{ T\vec{e}_{k}}{\vec{f}_{m}}\vec{f}_{m}\]

      因此\(\mathcal{M}(T)\)中第\(j\)行第\(k\)列的元素是\(\iprod{ T\vec{e}_{k}}{\vec{f}_{j}}\)。类似地\(\mathcal{M}(T^{*})\)中第\(j\)行第\(k\)列的元素是\(\iprod{ T^{*}\vec{f}_{k}}{\vec{e}_{j}}\),而我们有:

      \[\iprod{ T^{*}\vec{f}_{k}}{\vec{e}_{j}}=\iprod{\vec{f}_{k}}{T\vec{e}_{j}}=\overline{\iprod{ T\vec{e}_{j}}{\vec{f}_{k}}}\]

      而这最后这值又等于\(\mathcal{M}(T)\)中第\(k\)行第\(j\)列元素的复共轭。证毕。

  • 习题28:设\(T\in \lmap(V),\lambda\in\mathbf{F}\)。证明\(\lambda\)是\(T\)的本征值当且仅当\(\overline{\lambda}\)是\(T^{*}\)的本征值。

    如何证明?

  • 习题32:设\(\vec{A}\)为\(m\times n\)实矩阵。证明\(\vec{A}\)的所有列(在\(\mathbf{R}^{m}\)中)所张成的子空间的维数等于\(\vec{A}\)的所有行(在\(\mathbf{R}^{n}\)中)所张成的子空间的维数(即,行秩=列秩)。

    如何证明?

第七章 内积空间上的算子

  • 本章只讨论有限维非零内积空间
  • 自伴(self-adjoint)算子:算子\(T\in\lmap(V)\)称为自伴的,如果\(T=T^{*}\)。易证:
    • 两个自伴算子的和是自伴的
    • 一个实数和一个自伴算子的乘积是自伴的
  • 一些概念的梳理:
    • \(\lmap(V,W)\) => \(\lmap(V)\)
    • 线性映射 => 算子
    • 伴随 => 自伴
  • 重要的类比:伴随在\(\lmap(V)\)上所起的作用犹如复共轭在\(\mathbf{C}\)上所起的作用。复数\(z\)是实的当且仅当\(z=\overline{z}\),因而自伴算子(\(T=T^{*}\))可与实数类比。
  • 7.1:命题:自伴算子的特征值都是实的。证明:思路就是证明\(\lambda=\overline{\lambda}\):

    \[\begin{array}{l} \lambda\|\vec{v}\|^{2}=\iprod{\lambda\vec{v}}{\vec{v}}=\iprod{ T\vec{v}}{\vec{v}}=\iprod{\vec{v}}{T\vec{v}}=\iprod{\vec{v}}{\lambda\vec{v}}=\overline{\lambda}\|\vec{v}\|^{2} \end{array}\]
  • 7.2:命题:若\(V\)是复内积空间,\(T\)是\(V\)上的算子,使得对所有\(\vec{v}\in V\)都有\(\iprod{ T\vec{v}}{\vec{v}}=0\),则\(T=0\)
    • 证明:思路就是用\(\iprod{ T\vec{v}}{\vec{v}}\)的形式来表示\(\iprod{ T\vec{u}}{\vec{w}}\):

      \[\begin{align} \iprod{ T\vec{u}}{\vec{w}} &=\frac{2\iprod{ T\vec{u}}{\vec{w}}+2\iprod{ T\vec{w}}{\vec{u}}}{4} + \frac{2\iprod{ T\vec{u}}{i\vec{w}}+2\iprod{ T(i\vec{w})}{\vec{u}}}{4}i \\ &=\frac{\iprod{ T(\vec{u}+\vec{w})}{\vec{u}+\vec{w}}-\iprod{ T(\vec{u}-\vec{w})}{\vec{u}-\vec{w}}}{4}+\frac{\iprod{ T(\vec{u}+i\vec{w})}{\vec{u}+i\vec{w}}-\iprod{ T(\vec{u}-i\vec{w})}{\vec{u}-i\vec{w}}}{4}i \\ &=0 \end{align}\]

      从而\(T=0\)(取\(\vec{w}=T\vec{u}\))。

    • 注意这个命题对实内积空间不成立,例如考虑算子\(T\in \lmap(\mathbf{R}^{2}),T((x,y))=(-y,x)\)(绕原点逆时针旋转90度)。

  • 7.3:推论:设\(V\)是复内积空间,\(T\in\lmap(V)\),则\(T\)是自伴的当且仅当对每个\(\vec{v}\in V\)都有\(\iprod{ T\vec{v}}{\vec{v}}\in \mathbf{R}\)
    • 证明:

      \[\begin{align} \iprod{ T\vec{v}}{\vec{v}}-\overline{\iprod{ T\vec{v}}{\vec{v}}}&=\iprod{ T\vec{v}}{\vec{v}}-\iprod{\vec{v}}{ T\vec{v}} \\ &=\iprod{ T\vec{v}}{\vec{v}}-\iprod{ T^{*}\vec{v}}{\vec{v}} \\ &=\iprod{(T-T^{*})\vec{v}}{\vec{v}} \end{align}\]
      • =>方向:若\(T\)是自伴的,则上式右端为0,从而左端的两者相等,即两者都为实数。
      • <=方向:若左端第一项为实数则左端为0,根据7.2知\(T-T^{*}=0\),因此\(T\)是自伴的。
  • 7.4:命题:若\(T\)是\(V\)上的自伴算子使得对所有\(\vec{v}\in V\)都有\(\iprod{ T\vec{v}}{\vec{v}}=0\),则\(T=0\)
    • 证明:7.2已经证明了\(V\)是复内积空间的情况(且没有\(T\)是自伴的的假设),因此这里只需处理实内积空间的情况,这时有\(\iprod{ T\vec{w}}{\vec{u}}=\iprod{\vec{w}}{T\vec{u}}=\iprod{ T\vec{u}}{\vec{w}}\),而据此可得:

      \[\begin{align} \iprod{ T\vec{u}}{\vec{w}} &=\frac{2\iprod{ T\vec{u}}{\vec{w}}+2\iprod{ T\vec{w}}{\vec{u}}}{4} \\ &=\frac{\iprod{ T(\vec{u}+\vec{w})}{\vec{u}+\vec{w}}-\iprod{ T(\vec{u}-\vec{w})}{\vec{u}-\vec{w}}}{4} \\ &=0 \end{align}\]

      从而\(T=0\)(取\(\vec{w}=T\vec{u}\))。

  • 正规的(normal):内积空间\(V\)上的算子\(T\in\lmap(V)\)称为正规的,如果\(TT^{*}=T^{*}T\)。
    • 自伴算子显然是正规的,反之不然。

Helpers

a T in L(V,W): T\in\lmap(V)
b       <a,b>: \viprod{u}{v}
e      rangeT: \range T
f       nullT: \nspace T
p            : p(z)=a_{0}+a_{1}z+a_{2}z^{2}+\cdots+a_{m}z^{m}
l   lambda1-m: \list{\lambda}{m}
u       u1-um: (\vlist{u}{m})
v       v1-vn: (\vlist{v}{n})
w       w1-wm: (\vlist{w}{m})

plain text: \(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890\alpha\beta\gamma\pi\phi\theta\lambda\sigma\omega\Gamma\Pi\Phi\Theta\Lambda\Sigma\Omega\)

\mathbb is: \(\mathbb{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890\alpha\beta\gamma\pi\phi\theta\lambda\sigma\omega\Gamma\Pi\Phi\Theta\Lambda\Sigma\Omega}\)

\mathbf is: \(\mathbf{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890\alpha\beta\gamma\pi\phi\theta\lambda\sigma\omega\Gamma\Pi\Phi\Theta\Lambda\Sigma\Omega}\)

\mathcal is: \(\mathcal{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890\alpha\beta\gamma\pi\phi\theta\lambda\sigma\omega\Gamma\Pi\Phi\Theta\Lambda\Sigma\Omega}\)

\mathfrak is: \(\mathfrak{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890\alpha\beta\gamma\pi\phi\theta\lambda\sigma\omega\Gamma\Pi\Phi\Theta\Lambda\Sigma\Omega}\)

\mathit is: \(\mathit{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890\alpha\beta\gamma\pi\phi\theta\lambda\sigma\omega\Gamma\Pi\Phi\Theta\Lambda\Sigma\Omega}\)

\mathrm is: \(\mathrm{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890\alpha\beta\gamma\pi\phi\theta\lambda\sigma\omega\Gamma\Pi\Phi\Theta\Lambda\Sigma\Omega}\)

\mathscr is: \(\mathscr{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890\alpha\beta\gamma\pi\phi\theta\lambda\sigma\omega\Gamma\Pi\Phi\Theta\Lambda\Sigma\Omega}\)

\mathsf is: \(\mathsf{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890\alpha\beta\gamma\pi\phi\theta\lambda\sigma\omega\Gamma\Pi\Phi\Theta\Lambda\Sigma\Omega}\)

\mathtt is: \(\mathtt{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890\alpha\beta\gamma\pi\phi\theta\lambda\sigma\omega\Gamma\Pi\Phi\Theta\Lambda\Sigma\Omega}\)

\text is: \(\text{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890\alpha\beta\gamma\pi\phi\theta\lambda\sigma\omega\Gamma\Pi\Phi\Theta\Lambda\Sigma\Omega}\)

\textbf is: \(\textbf{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890\alpha\beta\gamma\pi\phi\theta\lambda\sigma\omega\Gamma\Pi\Phi\Theta\Lambda\Sigma\Omega}\)

\pmb is: \(\pmb{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890\alpha\beta\gamma\pi\phi\theta\lambda\sigma\omega\Gamma\Pi\Phi\Theta\Lambda\Sigma\Omega}\)

\boldsymbol is: \(\vec{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890\alpha\beta\gamma\pi\phi\theta\lambda\sigma\omega\Gamma\Pi\Phi\Theta\Lambda\Sigma\Omega}\)

]]>
《线性代数应该这样学》笔记(上) http://lam8da.github.io/2019/07/22/linear-algebra-done-right-notes1/ 2019-07-22T22:04:32+00:00 lambda http://lam8da.github.io/2019/07/22/linear-algebra-done-right-notes1

\[\def\nspace{\text{null }} \def\range{\text{range }} \def\Re{\text{Re }} \def\Im{\text{Im }}\]

复数的一些性质

这里打乱顺序把关于复数的一些基本定义和性质单独列出,主要来自第一章和第四章第三节。

  • 复数的定义:其实就是一个有序数对。\(\mathbf{C}\)上的加法和乘法满足:加法/乘法交换率、加法/乘法结合律、存在加法/乘法单位元(分别为0和1)、存在加法逆(和为0)和乘法逆(积为1)、分配率。
    • 乘法逆:由\((a+bi)(a-bi)=a^{2}+b^{2}\)知道\(a+bi\)的逆为\(\frac{a-bi}{a^{2}+b^{2}}\)
  • 复数\(z=a+bi\),实部\(\Re z\),虚部\(\Im z\)
  • 复共轭定义为:\(\overline{z}=\Re z-(\Im z)i\)
  • 绝对值定义为\(\abs{z}=\sqrt{(\Re z)^{2}+(\Im z)^{2}}\)
  • 一些性质:
    • $z\overline{z}=\abs{z}^{2}$
    • $\overline{w+z}=\overline{w}+\overline{z}$
    • $\overline{wz}=\overline{w}\text{ }\overline{z}$
    • $\abs{wz}=\abs{w}\abs{z}$(通过上述第一式和第三式得到)

第一章 向量空间

向量空间的定义

向量空间:就是定义了加法和(标量)乘法并满足以下性质的集合\(V\):加法交换律、加法/乘法结合律、加法单位元(向量\(\vec{0}\))、加法逆(和为向量\(\vec{0}\))、乘法单位元(标量1)、分配率。其中\(V\)中的元素属于\(\mathbf{F}^n\),而\(\mathbf{F}\)是\(\mathbf{R}\)或\(\mathbf{C}\)(以下均采用这个\(\mathbf{F}\)的定义)。

  • 注意这里没有乘法交换律,因为这里乘法指标量乘法,而三个量间的乘法在有至少两个量是\(V\)中的元素时是无定义的,而如果有两个量是\(F\)中的元素则显然结果仍在\(V\)中。据此无法定义三个\(V\)中元素的乘法故无交换律。
  • 向量空间的例子:
    • \(\mathbf{F}^n=\{(\list{x}{n}): x_{j}\in \mathbf{F},j=1,\cdots,n\}\);
    • \(\mathbf{F}^{\infty}=\{(x_{1},x_{2},\cdots):x_{j}\in F,j=1,2,\cdots\}\);
    • 系数在\(\mathbf{F}\)中的所有多项式的集合:\(\mathcal{P}(\mathbf{F})\)
    • 系数在\(\mathbf{F}\)中并且次数不超过\(m\)的所有多项式组成的集合:\(\mathcal{P}_{m}(\mathbf{F})\)
  • 易证:
    • 1.2:向量空间有唯一加法单位元
    • 1.3:向量空间中的每个元素都有唯一的加法逆
    • 1.4:对每个\(\vec{v}\in V\)都有\(0\vec{v}=\vec{0}\)
    • 1.5:对每个\(a\in\mathbf{F}\)都有\(a\vec{0}=\vec{0}\)
    • 1.6:对每个\(\vec{v}\in V\)都有\((-1)\vec{v}=-\vec{v}\)

子空间

  • \(V\)的子集\(U\)称为\(V\)的子空间,如果\(U\)(采用与\(V\)相同的加法和标量乘法)也是向量空间
  • 如果\(U\)是\(V\)的子集,要验证\(U\)是\(V\)的子空间,只需验证\(U\)满足下列性质
    • 存在加法单位元\(\vec{0}\)
    • 对加法封闭
    • 对乘法封闭
  • 例子:
    • \(\mathbf{R}^{2}\)的子空间恰为:\(\{\vec{0}\}\),\(\mathbf{R}^{2}\),\(\mathbf{R}^{2}\)中所有过原点的直线
    • \(\mathbf{R}^{3}\)的子空间恰为:\(\{\vec{0}\}\),\(\mathbf{R}^{3}\),\(\mathbf{R}^{3}\)中所有过原点的直线,\(\mathbf{R}^{3}\)中所有过原点的平面

(空间的)和与直和

  • 设\(\list{U}{m}\)都是\(V\)的子空间,则它们的和定义为\(U_{1}+\cdots+U_{m}=\{\vec{u}_{1}+\cdots+\vec{u}_{m}:\vec{u}_{1}\in U_{1},\cdots,\vec{u}_{m}\in U_{m}\}\)
  • 易证该和也是\(V\)的子空间,且是\(V\)中包含\(\list{U}{m}\)的最小子空间
  • 若\(\list{U}{m}\)都是\(V\)的子空间且\(V=U_{1}+\cdots+U_{m}\),而且\(V\)中每个元素都可以唯一地写成\(\vec{u}_{1}+\cdots+\vec{u}_{m}\)的形式,则称\(V\)是子空间\(\list{U}{m}\)的直和(direct sum),记为\(V=U_{1}\oplus\cdots\oplus U_{m}\)
  • 注意,如果\(V\)中每个元素都可以表示成\(\vec{u}_{1}+\cdots+\vec{u}_{m}\)的形式但表示方式不唯一,则不是直和
  • 1.8:设\(\list{U}{m}\)都是\(V\)的子空间,则\(V=U_{1}\oplus\cdots\oplus U_{m}\)当且仅当以下俩条件成立
    • 满足和的条件:\(V=U_{1}+\cdots+U_{m}\)
    • 若\(\vec{0}=\vec{u}_{1}+\cdots+\vec{u}_{m},\vec{u}_{j}\in U_{j}\),则每个\(\vec{u}_{j}\)都为\(\vec{0}\)
  • 1.9:是\(U\)和\(W\)都是\(V\)的子空间,则\(V=U\oplus W\)当且仅当\(V=U+W\)且\(U\cap W=\{\vec{0}\}\)

第二章 有限维向量空间

(向量的)张成与线性无关

  • \(V\)中的一组向量\((\vlist{v}{m})\)的所有线性组合构成的集合称为\((\vlist{v}{m})\)的张成(span),记为\(\vspanl{v}{m}=\{a_{1}\vec{v}_{1}+\cdots+a_{m}\vec{v}_{m}:\list{a}{m}\in\mathbf{F}\}\)
    • 我们人为地令空组\(()\)的张成等于\(\{\vec{0}\}\)。这样,可以验证,\(V\)的任意一组向量的张成都是\(V\)的子空间,且是包含该组向量的最小子空间
    • 如果\(V=\vspanl{v}{m}\),则称\((\vlist{v}{m})\)张成\(V\)。
    • 如果一个向量空间可以由它的一组(有限个)向量张成,则称其为有限维的(finite dimensional)(注意这里“有限”并不是指每个向量里的元素个数有限,例如\(\mathbf{F}_{x}^{\infty}=\{(x,x,\cdots),x\in \mathbf{F}\}\)是有限维(一维)的,但\(\mathbf{F}^{\infty}\)不是有限维的)
  • 对于\(V\)中的一组向量\((\vlist{v}{m})\),如果使得\(a_{1}\vec{v}_{1}+\cdots+a_{m}\vec{v}_{m}=0\)的\(\list{a}{m}\in\mathbf{F}\)只有\(a_{1}=\cdots=a_{m}=0\),则称\((\vlist{v}{m})\)是线性无关的(linearly independent)
    • 易证\((\vlist{v}{m})\)是线性无关的当且仅当\(\vspanl{v}{m}\)中的每个向量都可以唯一地表示成\((\vlist{v}{m})\)的线性组合
    • 我们人为地令空组\(()\)是线性无关的。这样可以证明,如果从一个线性无关向量组中去掉一些向量,那么余下的向量组还是线性无关的。
  • 线性相关引理:如果\((\vlist{v}{m})\)在\(V\)中是线性相关的,并且\(\vec{v}_{1}\ne\vec{0}\),则有\(j\in\{2,\cdots,m\}\)使得下列成立:
    • \(\vec{v}_{j}\in\vspanl{v}{m}\)(用张成的定义来证)
    • 如果从\((\vlist{v}{m})\)中去掉第\(j\)项,则剩余组的张成等于\(\vspanl{v}{m}\)
  • 2.6定理:在有限维向量空间中,线性无关向量组的长度小于或等于张成向量组的长度。证明很不优美,要用上面的线性相关引理,从\((\vlist{w}{n})\)开始,每次往里面添加一个\(\vec{u}_{j}\),然后根据线性相关引理可以删除一个\(\vec{w}\),然后归纳法直至添加了所有的\(\vec{u}\)
  • 2.7命题:有限维向量空间的子空间都是有限维的。证明:从\(\{\vec{0}\}\)开始,不断往里面添加不能由已有向量线性组合而成的向量,这个过程一定会停止,因为每次得到的组是一个线性无关组且其长度不会比\(V\)的任何张成组长(定理2.6)。

  • 如果一个向量组既是线性无关的又张成\(V\),则称之为\(V\)的基(basis)。如\(\mathbf{F}^{n}\)的一组基为\(((1,0,\cdots,0),(0,1,0,\cdots,0),\cdots,(0,\cdots,0,1))\),称为其标准基(standard basis)
  • 2.8命题:\(V\)中向量组\((\vlist{v}{m})\)是其基当且仅当每个\(\vec{v}\in V\)都能唯一地写成\(\vec{v}=a_{1}\vec{v}_{1}+\cdots+a_{m}\vec{v}_{m}\),其中\(\list{a}{m}\in\mathbf{F}\)
  • 2.10定理:在向量空间中,每个张成组都可以简化成一个基。证明:不断尝试哪个元素可以被删掉而不影响张成,用线性相关引理即得。
  • 2.11推论:每个有限维向量空间都有基。证明:根据上面对有限维的定义,每个有限维的向量空间都有张成组,从而由2.10即得。
  • 2.12定理:在有限维向量空间中,每个线性无关向量组都可以扩充成一个基。证明:用张成该向量空间的任意一组向量的元素来不断填充该线性无关向量组直到成为基。
  • 2.13命题:设\(V\)是有限维的,\(U\)是\(V\)的一个子空间,则存在\(V\)的一个子空间\(W\)使得\(V=U\oplus W\)。证明:把\(U\)的一个基扩充成\(V\)的基,扩充的部分那些向量的张成就是\(W\)(用1.9来证)。

维数

  • 2.14定理:有限维向量空间的任意两个基的长度都相同。证明:对任意两个基,用基的定义并应用2.6即得(每个基的长度都小于等于另一个基的长度,因为基也是一个张成组)。
  • 维数:定义为有限维向量空间的任意基的长度,记为\(\dim V\)
  • 2.15定理:若\(V\)是有限维的,并且\(U\)是\(V\)的子空间,则\(\dim U\le\dim V\)。证明:用2.12。
  • 2.16命题:若\(V\)是有限维的,则\(V\)中每个长度为\(\dim V\)的张成向量组都是\(V\)的一个基。证明:由2.10和2.14即得。
  • 2.17命题:若\(V\)是有限维的,则\(V\)中每个长度为\(\dim V\)的线性无关向量组都是\(V\)的基。证明:由2.12和2.14即得。
  • 2.18定理:如果\(U_{1}\)和\(U_{2}\)是同一个有限维向量空间的两个子空间,那么\(\dim(U_{1}+U_{2})=\dim U_{1}+\dim U_{2}-\dim(U_{1}\cap U_{2})\)。
    • 证明:设\((\vlist{u}{m})\)是\(U_{1}\cap U_{2}\)的基,它可以扩充为\(U_{1}\)的一个基\((\vlist{u}{m},\vlist{v}{j})\),也可以扩充为\(U_{2}\)的一组基\((\vlist{u}{m},\vlist{w}{k})\)。只需证\((\vlist{u}{m},\vlist{v}{j},\vlist{w}{k})\)是\(U_{1}+U_{2}\)的一个基,而这只需证明该组是线性无关的,用定义以及\(U_{1}\)和\(U_{2}\)的关系即可证。
  • 2.19命题:设\(V\)是有限维的,并且\(\list{U}{m}\)是\(V\)的子空间,使得\(V=U_{1}+\cdots+U_{m}\)并且\(\dim V=\dim U_{1}+\cdots+\dim U_{m}\),则\(V=U_{1}\oplus\cdots\oplus U_{m}\)。
    • 证明:根据假设,可以把每个\(U\)的基concat成一个长为\(\dim V\)的组,而且这个组张成\(V\),从而是\(V\)的基(2.16)且线性无关。用1.8可以证得。

习题

  • 习题16:证明:若\(V\)是有限维向量空间且\(\list{U}{m}\)都是\(V\)的子空间,则\(\dim(U_{1}+\cdots+U_{m})\le\dim U_{1}+\cdots+\dim U_{m}\)。
    • 证明:对\(m\)进行归纳。\(m=2\)时由2.18即得。设当\(m=k\)时成立,则当\(m=k+1\)时有\(\dim(U_{1}+\cdots+U_{k}+U_{k+1})\le\dim(U_{1}+\cdots+U_{k})+\dim U_{k+1}\le\dim U_{1}+\cdots+\dim U_{k}+\dim U_{k+1}\)
  • 习题17:设\(V\)是有限维的,证明:如果\(\list{U}{m}\)是\(V\)的子空间使得\(V=U_{1}\oplus\cdots\oplus U_{m}\),那么\(\dim V=\dim U_{1}+\cdots+\dim U_{m}\)。
    • 证明:设\(U_{k}\)的一组基为\((\vec{v}_{1}^{k},\cdots,\vec{v}_{\dim U_{k}}^{k})\),易知所有这些\(\vec{v}\)线性无关,否则\(\vec{w}=\sum_{k=1}^{m}\sum_{i=1}^{\dim U_{k}}\vec{v}_{i}^{k}\)就有多于一种的表示法,与直和的定义矛盾。又因为所有这些\(\vec{v}\)都属于\(V\),因此它们可以扩充成\(V\)的基,故\(\dim V\ge\dim U_{1}+\cdots+\dim U_{m}\)。用习题16可以证明另一个方向,即得。

第三章 线性映射

定义

  • 从\(V\)到\(W\)的线性映射(linear map)是具有下列性质的函数\(T:V\to W\):
    • 加性:对所有\(\vec{u},\vec{v}\in V\)都有\(T(\vec{u}+\vec{b})=T\vec{u}+T\vec{v}\)
    • 齐性:对所有\(a\in\mathbf{F},\vec{v}\in V\)都有\(T(a\vec{v})=a(T\vec{v})\)

    问:把2D矩阵看成一个向量空间(可证明其具有向量空间定义所需性质),则在其上的Conv2D操作可看成一个线性映射(可证明Conv2D具有线性映射的所需性质)。那么,因此连续两个Conv2D可以合成为另一个单独的线性映射(通过矩阵乘法)?

  • 从\(V\)到\(W\)的所有线性映射所构成的集合记为\(\lmap(V,W)\)
  • 线性映射的例子:
    • 零:把某个向量空间的每个元素都映成另一个向量空间的加法单位元
    • 恒等映射
    • 微分:把一个可微函数映成其导函数
    • 定积分:定义\(T\in\lmap(\mathcal{P}(\mathbf{R}),\mathbf{R})\)为\(T_{\vec{p}}=\int_{0}^{1}\vec{p}(x)\mathrm{d}x\)
    • 从\(\mathbf{F}^{n}\)到\(\mathbf{F}^{m}\):设\(m\)和\(n\)都是正整数,\(a_{j,k}\in\mathbf{F},j=1,\cdots,m,k=1,\cdots,n\),定义\(T\in\lmap(\mathbf{F}^{n},\mathbf{F}^{m})\)为

      \[T(\list{x}{n})=(a_{1,1}x_{1}+\cdots+a_{1,n}x_{n},\cdots,a_{m,1}x_{1}+\cdots+a_{m,n}x_{n})\]

      后面会证明从\(\mathbf{F}^{n}\)到\(\mathbf{F}^{m}\)的每个线性映射都是这种形式的。

  • 在\(\lmap(V,W)\)上定义加法和标量乘法使其成为一个向量空间。对于\(S,T\in\lmap(V,W)\),可以定义
    • 加法:\((S+T)\vec{v}=S\vec{v}+T\vec{v},\vec{v}\in V\)
    • 标量乘法:\((aT)\vec{v}=a(T\vec{v}),\vec{v}\in V\)
    • 通过向量空间的定义可证
  • 设\(U\)是\(\mathbf{F}\)上的向量空间,如果\(T\in\lmap(U,V),S\in\lmap(V,W)\),那么定义\(ST\in\lmap(U,W)\)为\((ST)(\vec{v})=S(T\vec{v}),\vec{v}\in U\)。可以验证此时\(ST\)的确是从\(U\)到\(W\)的线性映射。我们称\(ST\)为\(S\)和\(T\)的乘积。可以验证它具有乘积的大多数常见性质(交换性除外):
    • 结合性:\((T_{1}T_{2})T_{3}=T_{1}(T_{2}T_{3})\)
    • 恒等映射:\(TI=T,IT=T\)
    • 分配性质:\((S_{1}+S_{2})T=S_{1}T+S_{2}T,S(T_{1}+T_{2})=ST_{1}+ST_{2}\)

零空间与值域

  • 对于\(T\in\lmap(V,W)\),\(V\)中被\(T\)映成\(\vec{0}\)的那些向量所组成的子集称为\(T\)的零空间(null space),记为\(\nspace T\)
  • 3.1命题:若\(T\in\lmap(V,W)\),则\(\nspace T\)是\(V\)的子空间,特别地\(\vec{0}\in\nspace T\)。证明:用子空间的定义即得。于是,“零空间”这个名字中的“空间”就变得有意义了。
    • 注意这个命题对于任意的线性映射都成立。而\(\nspace T\)的元素虽然由\(T\)来确定,但是它作为一个子空间的存在并不依赖于\(T\)!
  • 线性映射称为单的,如果像相同蕴含原像相同。
  • 3.2命题:设\(T\in\lmap(V,W)\),则\(T\)是单的当且仅当\(\nspace T=\{\vec{0}\}\)。由“单”的定义以及零空间的定义即得。
  • 对于\(T\in\lmap(V,W)\),由\(W\)中形如\(T\vec{v}(\vec{v}\in V)\)的向量组成的子集称为\(T\)的值域,记为\(\range T=\{T\vec{v}:\vec{v}\in V\}\)。如果值域等于\(W\)则称该线性映射为满的。
    • 一个非常有用但比较抽象的结论是:对于算子\(T\in\lmap(V)\),\(\range (\range T)\subseteq\range T\)。换句话说,若\(\vec{v}\in\range T\),则\(T\vec{v}\in\range T\),即\(\range T\)在\(T\)下是不变的
  • 3.3命题:设\(T\in\lmap(V,W)\),那么\(\range T\)是\(W\)的子空间。由值域的定义以及子空间的定义即可证。
  • 3.4命题:如果\(V\)是有限维向量空间,并且\(T\in\lmap(V,W)\),那么\(\range T\)是\(W\)的有限维子空间,并且\(\dim V=\dim\nspace T+\dim\range T\)。证明:用\(\nspace T\)的一组基扩充成\(V\)的基,只需证明扩充出来的部分的像是\(\range T\)的基。
  • 3.5推论:如果\(V\)和\(W\)都是有限维向量空间,且\(\dim V>\dim W\),那么从\(V\)到\(W\)的线性映射一定不是单的。由3.4和3.2可证。
  • 3.6推论:如果\(V\)和\(W\)都是有限维向量空间,且\(\dim V<\dim W\),那么从\(V\)到\(W\)的线性映射一定不是满的。由3.4和“满”的定义可证。
  • 令\(T(\list{x}{n})=\p{\sum_{k=1}^{n}a_{1,k}x_{k},\cdots,\sum_{k=1}^{n}a_{m,k}x_{k}}\),利用3.5和3.6可证:
    • 当变量多于方程时,齐次线性方程组(即\(T\vec{x}=\vec{0}\))必有非零解(易知\(\nspace T\)严格大于\(\{\vec{0}\}\),由3.5知这意味着\(n>m\))。
    • 当方程多于变量时,必有一组常数项使得相应的非齐次线性方程组(即\(T\vec{x}=\vec{c}\ne\vec{0}\))无解(无解意味着\(T\)不是满的,即存在某个\(\vec{c}\),其不存在原像。由3.6知这意味着\(n< m\))。

线性映射的矩阵

  • 设\(T\in\lmap(V,W)\),\((\vlist{v}{n})\)是\(V\)的基,\(\vlist{w}{m}\)是\(W\)的基,那么对于每个\(k=1,\cdots,n\),\(T\vec{v}_{k}\)都可以唯一地写成这些\(\vec{w}\)的线性组合:\(T\vec{v}_{k}=a_{1,k}\vec{w}_{1}+\cdots+a_{m,k}\vec{w}_{m}\),其中\(a_{j,k}\in\mathbf{F},j=1,\cdots,m\)。因为线性映射由其在基上的值确定,所以线性映射\(T\)由这些标量\(a_{j,k}\)完全确定。由这些\(a\)构成的\(m\times n\)矩阵:

    \[\left[ \begin{array}\\ a_{1,1}&\cdots&a_{1,n}\\ \vdots& &\vdots\\ a_{m,1}&\cdots&a_{m,n} \end{array} \right]\]

    称为\(T\)关于基\((\vlist{v}{n})\)和基\((\vlist{w}{m})\)的矩阵,记为\(\mathcal{M}(T,(\vlist{v}{n}),(\vlist{w}{m}))\),或简记为\(\mathcal{M}(T)\)。为方便记忆可以把矩阵写成这样:

    \[\begin{array}{cc} & \begin{matrix} \vec{v}_{1} \cdots & \vec{v}_{k} & \cdots \vec{v}_{n} \\ \end{matrix} \\ \begin{matrix} \vec{w}_{1} \\ \vdots \\ \vec{w}_{m} \\ \end{matrix} & \left[ \begin{array} \\ & & & a_{1,k} & & & \\ & & & \vdots & & & \\ & & & a_{m,k} & & & \\ \end{array} \right] \end{array}\]

    即第k列就是\(T\vec{v}_{k}\)用基\((\vlist{w}{m})\)表示时对应的系数。

  • 两个矩阵的和定义为对应元素的和。这个定义恰好使得\(\mathcal{M}(T+S)=\mathcal{M}(T)+\mathcal{M}(S)\)成立。
  • 矩阵的标量乘法定义为该标量乘以矩阵的每个元素。这个定义恰好使得\(\mathcal{M}(cT)=c\mathcal{M}(T)\)成立。
  • 用上述两个定义可以产生一个向量空间:元素在\(\mathbf{F}\)中的所有\(m\times n\)矩阵之集记为\(\text{Mat}(m,n,\mathbf{F})\)。用向量空间的定义可证。
  • 矩阵乘法的定义,恰好使得\(\mathcal{M}(TS)=\mathcal{M}(T)\mathcal{M}(S)\)成立
  • \(\vec{v}\)的矩阵:设\((\vlist{v}{n})\)是\(V\)的基,如果\(\vec{v}\in V\),那么存在唯一一组数\(\list{b}{n}\)使得\(\vec{v}=b_{1}v_{1}+\cdots+b_{n}v_{n}\)。这样,定义\(\vec{v}\)的矩阵为:

    \[\mathcal{M}(\vec{v})=\left[\begin{array}\\b_{1}\\\vdots\\b_{n}\\\end{array}\right]\]
  • 3.14命题:设\(T\in\lmap(V,W)\),那么对于每个\(\vec{v}\in V\)都有\(\mathcal{M}(T\vec{v})=\mathcal{M}(T)\mathcal{M}(\vec{v})\)(注意这里的\(\mathcal{M}(T\vec{v})\)里的\(T\vec{v}\)是\(W\)上的元素)。按照定义展开即证得。
  • 小结:到目前为止已涉及的向量空间的类型
    • \(\mathbf{F}^{n}\),其元素是元组\((\list{x}{n})\)
    • \(\mathbf{F}^{n}\)到\(\mathbf{F}^{n}\)的线性映射的集合,其元素是单个线性映射(函数)
    • 线性映射的矩阵的集合\(\text{Mat}(m,n,\mathbf{F})\),其元素是矩阵

      问:这个空间的元素和线性映射的空间的元素是一一对应的吗?目测是,因为在确定了\(V\)和\(W\)的一组基后,\(\lmap(V,W)\)中的每个变换就确定了一个矩阵,反之亦然。

可逆性

  • 线性映射\(T\in\lmap(V,W)\)称为可逆的,如果存在线性映射\(S\in\lmap(W,V)\)使得\(ST\)等于\(V\)上的恒等映射,并且\(TS\)等于\(W\)上的恒等映射。满足\(ST=I,TS=I\)的线性映射\(S\in\lmap(W,V)\)称为\(T\)的逆。

    问:是否存在\(S\in\lmap(W,V)\)使得\(ST\)等于\(V\)上的恒等映射,但是\(TS\)等于\(W\)上的恒等映射?习题23解决了\(S\in\lmap(V)\)的情况,但是否对一般情况也适用?用下面的同构来证?

  • 3.17命题:一个线性映射是可逆的当且仅当它既是单的又是满的。证明:=>方向用定义即得。<=方向:对于每个\(\vec{w}\in W\)定义\(S\vec{w}\)是\(V\)中唯一使得\(T(S\vec{w})=\vec{w}\)的那个元素(根据\(T\)既单且满可得此元素的存在性和唯一性)。\(TS\)显然等于\(W\)上的恒等映射。要证明\(ST\)是\(V\)上的恒等映射,有\(T(ST\vec{v})=(TS)(T\vec{v})=I(T\vec{v})=T\vec{v}\),这表明\(ST\vec{v}=\vec{v}\)(因\(T\)是单的)。除此以外还要证明\(S\)是一个线性映射(齐性+线性),用定义即可。
  • 称两个向量空间是同构的,如果存在从一个到另一个的可逆线性映射。
  • 3.18定理:两个有限维向量空间同构当且仅当它们的维数相等。证明:=>直接用3.4即得。<=用构造法:设\((\vlist{v}{n})\)和\((\vlist{w}{n})\)是该两个向量空间的基,定义\(T(a_{1}\vec{v}_{1}+\cdots+a_{n}\vec{v}_{n})=a_{1}\vec{w}_{1}+\cdots+a_{n}\vec{w}_{n}\),可证明\(T\)既单且满从而该俩向量空间同构。
    • 这个定理表明,每个有限维向量空间都同构于某个\(\mathbf{F}^{n}\)
  • 3.19命题:设\((\vlist{v}{n})\)和\((\vlist{w}{m})\)分别是\(V\)和\(W\)的基,那么\(\mathcal{M}\)是\(\lmap(V,W)\)和\(\text{Mat}(m,n,\mathbf{F})\)之间的可逆线性映射。证明:之前已经定义了矩阵的和以及标量乘法(因此\(\mathcal{M}\)是线性的),现在只需证明其既单且满即可,这很容易,略。
    • 注意,这里把\(\mathcal{M}\)看成一个函数,其定义域的元素是线性映射(也是函数)和对应的基的元组,值域的元素是矩阵。
    • 易知\(\text{Mat}(m,n,\mathbf{F})\)的维数是\(mn\)。
  • 3.20命题:如果\(V\)和\(W\)都是有限维的,那么\(\lmap(V,W)\)是有限维的,并且\(\dim\lmap(V,W)=(\dim V)(\dim W)\)。由上述\(\dim\text{Mat}(m,n,\mathbf{F})=mn\),3.18以及3.19即得。
  • 一个向量空间到其自身的线性映射称为算子。用\(\lmap(V)=\lmap(V,V)\)表示\(V\)上算子的集合。
  • 3.21定理:设\(V\)是有限维的,如果\(T\in\lmap(V)\),那么下列等价:(a)\(T\)是可逆的(b)\(T\)是单的(c)\(T\)是满的
    • 证明:b=>c和c=>b都是用3.4式。

习题

  • 习题22:设\(V\)是有限维的,并且\(S,T\in\lmap(V)\),证明\(ST\)可逆当且仅当\(S\)和\(T\)都可逆
    • <=方向:设\(S\)的逆为\(S'\),\(T\)的逆为\(T'\),易证\(ST\)的逆为\(T'S'\)
    • =>方向:设\(ST\)的逆为\(K\),则\((ST)K=K(ST)=I\),现在需证\(TK\)是\(S\)的逆。易证\(S(TK)=(ST)K=I\),然后有两种方法可证\((TK)S=I\):
      • 第一种方法:由下面习题23直接得知!
      • 第二种方法:首先我们有\(TKS=TIKS=T(KST)KS=(TKS)(TKS)\),令\(G=TKS\),这里说明\(G=GG\)即\(G(G-I)\)是零映射。然后?

        然后怎么证?

  • 习题23:设\(V\)是有限维的,并且\(S,T\in\lmap(V)\),证明\(ST=I\)当且仅当\(TS=I\)
    • 证明:先证\(T\)是单的。否则,根据3.2,设\(\vec{v}\ne\vec{0}\)且\(T\vec{v}=\vec{0}\),由于\((ST)\vec{v}=I\vec{v}=\vec{v}\),但\((ST)\vec{v}=S(T\vec{v})=S\vec{0}=\vec{0}\),这与\(\vec{v}\ne\vec{0}\)矛盾。故T是单的。根据3.21,\(T\)是可逆的,设其逆为\(T'\),则有\(T'T=TT'=I\)。现要证\(S=T'\),有\(T'=IT'=(ST)T'=S(TT')=S\)。
  • 习题24:设\(V\)是有限维的,并且\(T\in\lmap(V)\),证明\(T\)是恒等映射的标量倍当且仅当对每个\(S\in\lmap(V)\)都有\(ST=TS\)。
    • =>方向:若\(T=aI\),则\(ST=S(aI)=aS=aIS=TS\)
    • <=方向:一个非常不优美的方法是用矩阵\(\mathcal{M}(S)\)和\(\mathcal{M}(T)\)的乘积的元素的通项公式来证。有\(\mathcal{M}(S)\)的任意性可证得\(\mathcal{M}(T)\)是对角矩阵且对角线上元素相等。

第四章 多项式

次数

  • 多项式:\(p(z)=a_{0}+a_{1}z+a_{2}z^{2}+\cdots+a_{m}z^{m},a_{m}\ne0\),则\(m\)称为\(p\)的次数,记作\(\deg p\)。
  • 4.1命题:设\(p\in\mathcal{P}(\mathbf{F})\)是\(m\ge1\)次多项式。令\(\lambda\in\mathbf{F}\),则\(\lambda\)是\(p\)的根当且仅当存在\(m-1\)次多项式\(q\in\mathcal{P}\mathbf{F}\)使得\(p(z)=(z-\lambda)q(z),z\in\mathbf{F}\)。
    • 证明:<=是显然的。=>方向:由\(p(z)=p(z)-0=p(z)-p(\lambda)=(z-\lambda)(a_{1}+a_{2}q_{1}(z)+\cdots+a_{m}q_{m-1}(z))\)可得。
  • 4.3推论:设\(p\in\mathcal{P}(\mathbf{F})\)是\(m\ge0\)次多项式,则\(p\)在\(\mathbf{F}\)中最多由\(m\)个互不相同的根。证明:由4.1和数学归纳法易得。
  • 4.4推论:设\(a_{0},\cdots,a_{m}\in\mathbf{F}\),如果\(a_{0}+a_{1}z+a_{2}z^{2}+\cdots+a_{m}z^{m}=0\)对\(z\in\mathbf{F}\)成立,则\(a_{0}=a_{1}=\cdots=a_{m}=0\)。证明:根据4.3,任何非负整数都不可能是这个多项式的次数(否则根据4.3其最多只有\(m\)个根,根这里条件说其有无数个根矛盾),于是所有系数都等于0。
  • 4.5带余除法:设\(p,q\in\mathcal{P}(\mathbf{F})\),并且\(p\ne0\),则存在多项式\(s,r\in\mathcal{P}(\mathbf{F})\),使得\(q=sp+r\)并且\(\deg r<\deg p\)。证明:取\(s\in\mathcal{P}(\mathbf{F})\)使得\(q-sp\)的次数最小,将其赋值为\(r\),然后用反证法证明\(\deg r<\deg p\)。

复系数

  • 4.7代数学基本定理:每个不是常数的复系数多项式都有根。证明需要用到Liouville定理,超出书本范围故略去。

    看看北大《高等代数》怎么证。

  • 4.8推论:如果\(p\in\mathcal{P}(\mathbf{C})\)是非常数多项式,则\(p\)可以唯一分解成这样的形式\(p(z)=c(z-\lambda_{1})\cdots(z-\lambda_{m})\)。用归纳法和4.7直接证得。

实系数

  • 4.10命题:设\(p\)是实系数多项式,如果\(\lambda\in\mathbf{C}\)是\(p\)的根,则\(\overline{\lambda}\)也是\(p\)的根。证明:对\(a_{0}+a_{1}\lambda+\cdots+a_{m}\lambda^{m}=0\)两端取复共轭即得(要用到\(\overline{wz}=\overline{w}\text{ }\overline{z}\))。
  • 4.14定理:如果\(p\in\mathcal{P}(\mathbf{R})\)是非常数多项式,则\(p\)可以唯一(除因子的次序之外)分解成如下形式\(p(x)=c(x-\lambda_{1})\cdots(x-\lambda_{m})(x^{2}+\alpha_{1}x+\beta_{1})\cdots(x^{2}+\alpha_{M}x+\beta_{M})\),其中\(c,\list{\lambda}{m}\in\mathbf{R},(\alpha_{1},\beta_{1}),\cdots,(\alpha_{M},\beta_{M})\in\mathbf{R}^{2}\),并且对每个\(j\)都有\(\alpha_{j}^{2}<4\beta_{j}\)
    • 证明:就是用4.8和4.10。其中要注意的问题是,如果\(\lambda\)是一个非实数的复根,则根据4.10,\(\overline{\lambda}\)也是一个复根,但4.10并未说明这两个根的次数相同。解决办法是由\(p(x)=(x-\lambda)(x-\overline{\lambda})q(x)\)得\(q(x)=\frac{p(x)}{x^{2}-2(\Re \lambda)x+\abs{\lambda}^{2}}\),可知对任何\(x\in\mathbf{R}\)都有\(q(x)\in\mathbf{R}\),这样若把\(q\)写成\(q(x)=a_{0}+a_{1}x+\cdots+a_{n-1}x^{n-1}\)可看到\(0=\Im q(x)=(\Im a_{0})+(\Im a_{1})x+\cdots+(\Im a_{n-2})x^{n-2}\),然后由4.4证明这些虚部都是0。最后,唯一性用4.8来证。

第五章 本征值与本征向量

本章主要研究算子(到自身的线性映射)。

不变子空间

  • 对于\(T\in\lmap(V)\)和\(V\)的子空间\(U\),如果对每个\(\vec{u}\in U\)都有\(T\vec{u}\in U\),则称\(U\)在\(T\)下是不变的。不变子空间的一些例子:
    • ${\vec{0}}$
    • $\nspace T$
    • $\range T$
  • 对于\(T\in\lmap(V)\)和标量\(\lambda\in\mathbf{F}\),如果有非零向量\(\vec{u}\in V\)使得\(T\vec{u}=\lambda\vec{u}\),则称\(\lambda\)为\(T\)的本征值,而\(\vec{u}\)是\(T\)的(相应于\(\lambda\)的)本征向量。
    • 注意,\(\vec{u}\)必须是非零,但$\lambda$可以是0
    • \(T\vec{u}=\lambda\vec{u}\)等价于\((T-\lambda I)\vec{u}=\vec{0}\),因此:
      • \(\lambda\)是\(T\)的本征值当且仅当\(T-\lambda I\)不是单的
      • 对有限维向量空间而言,根据3.21,\(\lambda\)是\(T\)的本征值当且仅当\(T-\lambda I\)不可逆,当且仅当\(T-\lambda I\)不是满的
      • \(T\)的相应于\(\lambda\)的本征向量之集等于\(\nspace (T-\lambda I)\),而且是\(V\)的子空间(看这里
    • 注意:同一个本征值可以有多于一个不同的且线性无关的本征向量。如\(I\)的本征值为1,但\(\mathbf{R}^{2}\)上的\(I\)就有两个不同的本征向量\((0,1)\)和\((1,0)\)。
    • 例子:对于算子\(T\in\lmap(\mathbf{F}^{2}),T(\vec{w},\vec{z})=(-\vec{z},\vec{w})\)。若\(\mathbf{F}=\mathbf{R}\),此算子有很好的几何解释(绕\(\mathbf{R}^{2}\)的原点逆时针转\(90^{\circ}\),易知\(T\)没有本征值。若\(\mathbf{F}=\mathbf{C}\),\(i\)和\(-i\)都是\(T\)的本征值。
  • 5.6定理:设\(T\in\lmap(V)\),\(\list{\lambda}{m}\)是\(T\)的互不相同的本征值,\(\vlist{v}{m}\)是相应的非零本征向量,则\((\vlist{v}{m})\)线性无关。
    • 证明:反证法,设\(k\)是使\(\vec{v}_{k}\in\vspanl{v}{k-1}\)成立的最小正整数(由2.4知道这样的\(k\)一定存在),于是有\(\vec{v}_{k}=a_{1}\vec{v}_{1}+\cdots+a_{k-1}\vec{v}_{k-1}\),然后用该式两端乘以\(\lambda_{k}\)得到的式子减去把\(T\)作用于该等式两端得到的式子,根据\((\vlist{v}{k-1})\)的线性无关性易知这些\(a\)都是0,从而\(\vec{v}_{k}\)等于\(\vec{0}\),与特征向量不为零的假设矛盾。
  • 5.9推论:\(V\)上的每个算子最多有\(\dim V\)个互不相同的本征值。证明:由5.6即得。

多项式对算子的作用

  • 定义:算子的幂,\(T^{0}\)定义为恒等算子
  • 定义:\(p(T)=a_{0}I+a_{1}T+a_{2}T^{2}+\cdots+a_{m}T^{m}\)
    • 容易验证:对于一个固定的算子\(T\in\lmap(V)\),由\(p\mapsto p(T)\)所给出的从\(\mathcal{P}(\mathbf{F})\)到\(\lmap(V)\)的函数是线性的。
  • 乘法性质:易证\(p(T)q(T)=q(T)p(T)\)(直接展开然后用\(T\)的交换律即可)

上三角矩阵

  • 5.10定理:有限维非零复向量空间上的每个算子都有本征值。
    • 证明:设\(V\)是\(n>0\)维复向量空间,\(T\in\lmap(V)\),取\(\vec{v}\in V\)使得\(\vec{v}\ne\vec{0}\)。因为\(V\)是\(n\)维的,所以\(n+1\)个向量\((\vec{v},T\vec{v},T^{2}\vec{v},\cdots,T^{n}\vec{v})\)必定线性相关,因此有不全为零的复数\(a_{0},\cdots,a_{n}\)使得\(\mathbf{0}=a_{0}\vec{v}+a_{1}T\vec{v}+\cdots+a_{n}T^{n}\vec{v}\)。对其作多项式分解(4.8)得\(\mathbf{0}=c(T-\lambda_{1}I)\cdots(T-\lambda_{m}I)\vec{v}\)对于某个\(c\)和某个\(0\lt m\le n\)成立,而这意味着存在某个\(j\)使得\((T-\lambda_{j+1}I)\cdots(T-\lambda_{m}I)\vec{v}\ne\vec{0}\)但\((T-\lambda_{j}I)\cdots(T-\lambda_{m}I)\vec{v}=\vec{0}\),因此\(T-\lambda_{j}I\)不是单的,即\(T\)有本征值。
  • 一个矩阵称为上三角的,如果位于对角线下方的元素全为0。注意:对角线上的元素是否为0并没有限制。
  • 5.12命题:设\(T\in\lmap(V)\),并且\((\vlist{v}{n})\)是\(V\)的基,则下列等价:
    • (a)\(T\)关于基\((\vlist{v}{n})\)的矩阵是上三角的
    • (b)\(T\vec{v}_{k}\in\vspanl{v}{k},k=1,\cdots,n\)
    • (c)\(\vspanl{v}{k}\)在\(T\)下是不变的,\(k=1,\cdots,n\)

    证明:显然。

  • 5.13定理:设\(V\)是复向量空间,并设\(T\in\lmap(V)\),则\(T\)关于\(V\)的某个基具有上三角矩阵。
    • 证明:对\(V\)的维数用归纳法。若\(\dim V=1\)结论显然成立。设\(\dim V>1\),并设对于所有维数比\(V\)小的复向量空间结果都成立。设\(\lambda\)是\(T\)的任意本征值(5.10),设\(U=\range (T-\lambda I)\),由3.21知\(T-\lambda I\)不是满的,故\(\dim U<\dim V\)。通过\(T\vec{u}=(T-\lambda I)\vec{u}+\lambda\vec{u}\)易证\(U\)在\(T\)下是不变的,因此\(T\vert_{U}\)是\(U\)上的算子。由归纳法假设,\(U\)有基\((\vlist{u}{m})\)使得\(T\vert_{U}\)关于此基有上三角矩阵,因此根据5.12对每个\(j\)都有\(T\vec{u}_{j}=(T\vert_{U})(\vec{u}_{j})\in\vspanl{u}{j}\)。把\((\vlist{u}{m})\)扩充成\(V\)的基\((\vlist{u}{m},\vlist{v}{n})\),则对每个\(k\)都有\(T\vec{v}_{k}=(T-\lambda I)\vec{v}_{k}+\lambda\vec{v}_{k}\),其中第一项\(\in U=\vspanl{u}{m}\),因此\(T\vec{v}_{k}=\vspan{\vlist{u}{m},\vlist{v}{n}}\),而由5.12知\(T\)关于基\((\vlist{u}{m},\vlist{v}{n})\)有上三角矩阵。
  • 5.16命题:设\(T\in\lmap(V)\)关于\(V\)的某个基有上三角矩阵,则\(T\)可逆当且仅当这个上三角矩阵对角线上的元素都不是0。
    • 证明:只需证明等价命题:\(T\)不可逆当且仅当某个元素是0。设\((\vlist{v}{n})\)是\(V\)的基使\(T\)关于此基有上三角矩阵。

      \[\left[ \begin{array}\\ \lambda_{1} & & & *\\ & \lambda_{2} & & \\ & & \ddots & \\ 0 & & & \lambda_{n} \end{array} \right]\]
      • <=方向:若\(\lambda_{1}=0\)则\(T\vec{v}_{1}=\vec{0}\),故\(T\)不可逆。否则设\(\lambda_{k}=0,1\lt k\le n\),由5.17,\(T\vec{v}_{k}\in\vspanl{v}{k-1}\),根据3.5,存在非零向量\(\vec{v}\in\vspanl{v}{k}\)使得\(T\vec{v}=0\),故\(T\)不可逆。
      • =>方向:假设\(T\)不可逆,因此它不是单的且有非零向量\(\vec{v}\in V\)使得\(\vec{0}=T\vec{v}=T(a_{1}\vec{v}_{1}+\cdots+a_{k}\vec{v}_{k})=(a_{1}T\vec{v}_{1}+\cdots+a_{k-1}T\vec{v}_{k-1})+a_{k}T\vec{v}_{k};\list{a}{k}\in\mathbf{F};a_{k}\ne0\)(把\(\vec{v}\)表示成基的线性组合然后取\(k\)是系数不为0的最大下标)。最后那个括号中的向量含于\(\vspanl{v}{k-1}\)(因为\(T\)关于该基的矩阵是上三角的,5.12),于是\(a_{k}T\vec{v}_{k}\)从而\(T\vec{v}_{k}\)也含于\(\vspanl{v}{k-1}\),于是若把\(T\vec{v}_{k}\)写成基\((\vlist{v}{n})\)的线性组合,则\(\vec{v}_{k}\)的系数即\(\lambda_{k}\)是0。
  • 5.18命题:设\(T\in\lmap(V)\)关于\(V\)的某个基有上三角矩阵,则这个上三角矩阵对角线上的元素恰好是\(T\)的所有本征值。
    • 证明:设\(T\)关于某个基有上三角矩阵\(\mathcal{M}(T)\),设\(\lambda\in\mathbf{F}\),则矩阵\(\mathcal{M}(T-\lambda I)\)也是一个上三角矩阵且对角线上元素为\(\lambda_{k}-\lambda\)。根据5.16,\(T-\lambda I\)不可逆(即其不是单的,即存在非零向量被其映成零向量)当且仅当\(\lambda\)等于某个\(\lambda_{j}\),即\(\lambda\)是\(T\)的本征值当且仅当\(\lambda\)等于某个\(\lambda_{j}\)。

对角矩阵

  • 易知\(T\in\lmap(V)\)关于\(V\)的某个基有对角矩阵当且仅当\(V\)有一个由\(T\)的本征向量组成的基
  • 5.20命题:若\(T\in\lmap(V)\)由\(\dim V\)个互不相同的本征值,则\(T\)关于\(V\)的某个基有对角矩阵
    • 注意逆命题不成立,某些本征值较少的算子也可能有对角矩阵
    • 证明:设\(T\in\lmap(V)\)有\(\dim V\)个互不相同的本征值\(\lambda_{1},\cdots,\lambda_{\dim V}\),根据5.6,它们对应的非零本征向量线性无关,根据2.17,这些本征向量是\(V\)的基,因此\(T\)关于由这些本征向量组成的基由对角矩阵。
  • 5.21命题:设\(T\in\lmap(V)\),并设\(\list{\lambda}{m}\)是\(T\)的所有互不相同的本征值,则下列等价:
    • (a)\(T\)关于\(V\)的某个基有对角矩阵
    • (b)\(V\)有一个由\(T\)的本征向量组成的基
    • (c)\(V\)有在\(T\)下不变的1维子空间\(\list{U}{n}\)使得\(V=U_{1}\oplus\cdots\oplus U_{n}\)
    • (d)\(V=\nspace (T-\lambda_{1}I)\oplus\cdots\oplus\nspace (T-\lambda_{m}I)\)
    • (e)\(\dim V=\dim\nspace (T-\lambda_{1}I)+\cdots+\dim\nspace (T-\lambda_{m}I)\)

    证明:(a)和(b)等价已在之前说明。(b)=>(c)可令\(U_{j}=\vspan{\vec{v}_{j}}\),其中\(\vec{v}_{j}\)是\(T\)的其中一个本征向量。(c)=>(b)对每个\(\vec{v}_{j}\in U_{j}\),它都是\(T\)的本征向量,又由直和的条件易知\((\vlist{v}{n})\)是\(V\)的基,即得。(b)=>(d)易知\(V\)中每个向量都是\(T\)的本征向量的线性组合,故\(V=\nspace (T-\lambda_{1}I)+\cdots+\nspace (T-\lambda_{m}I)\),现只需证明这个和是直和;对于任意\(\vec{u}_{j}\in\nspace (T-\lambda_{j}I)\),要使\(\vec{0}=\vec{u}_{1}+\cdots+\vec{u}_{m}\)成立,它们只能全都等于0(根据5.6),从而前述的和是直和。(d)=>(e)由第二章习题17即得。(e)=>(b)在每个\(\nspace (T-\lambda_{j}I)\)中取一个基,全部这些基组成\(T\)的一组本征向量\((\vlist{v}{n})\),由(e)的条件知道\(n=\dim V\),现要证它们线性无关,即\(a_{1}\vec{v}_{1}+\cdots+a_{n}\vec{v}_{n}=\vec{0}\)的所有\(a\)都是\(0\),只需对它们分组然后用5.6知每组都是\(\vec{0}\),而每组内的\(\vec{v}_{k}\)是\(\nspace (T-\lambda_{j}I)\)的基从而所有\(a_{k}\)都是0,即得。

实向量空间的不变子空间

  • 5.24定理:在有限维非零实向量空间中,每个算子都有1维或2维的不变子空间。
    • 证明:设\(V\)是\(n>0\)维实向量空间,\(T\in\lmap(V)\),取\(\vec{v}\in V,\vec{v}\ne0\),由\(n+1\)个向量的线性相关性知存在不全为零的实数\(a_{0},\cdots,a_{n}\)使得\(\vec{0}=a_{0}\vec{v}+a_{1}T\vec{v}+\cdots+a_{n}T^{n}\vec{v}\),根据4.14可以作分解\(\vec{0}=c(T-\lambda_{1}I)\cdots(T-\lambda_{m}I)(T^{2}+\alpha_{1}T+\beta_{1}I)\cdots(T^{2}+\alpha_{M}T+\beta_{M}I)\vec{v}\),这意味着至少有一个\(j\)使得\(T-\lambda_{j}I\)不是单的或者\((T^{2}+\alpha_{j}T+\beta_{j}I)\)不是单的。若是前者,则\(T\)有1维不变子空间。若是后者,则存在\(\vec{u}\in V, \vec{u}\ne\vec{0}\),我们考虑\(\vspan{\vec{u},T\vec{u}}\)的一个典型元素\(a\vec{u}+bT\vec{u};a,b\in\mathbf{R}\),对其应用\(T\)并且条件\(T^{2}\vec{u}+\alpha_{j}T\vec{u}+\beta_{j}\vec{u}=\vec{0}\)知\(T(a\vec{u}+bT\vec{u})\in\vspan{\vec{u},T\vec{u}}\),于是\(\vspan{\vec{u},T\vec{u}}\)在\(T\)下不变。
  • 设\(V=U\oplus W\),则每个\(\vec{v}\in V\)都可表示为\(\vec{v}=\vec{u}+\vec{w};\vec{u}\in U,\vec{w}\in W\)。定义线性映射\(P_{U,W}\in\lmap(V)\)为:\(P_{U,W}\vec{v}=\vec{u}\)。这和“投影”类似。性质包括:
    • 对每个\(\vec{v}\in V\)都有\(\vec{v}=P_{U,W}\vec{v}+P_{W,U}\vec{v}\)
    • 多次应用,结果不变:\(P^{2}_{U,W}=P_{U,W}\)
    • $\range P_{U,W}=U$
    • $\nspace P_{U,W}=W$
  • 5.26定理:在奇数维实向量空间上,每个算子都有本征值。
    • 证明:对维数用归纳法。若维数为1,显然成立。设\(\dim V>1\)是奇数,且结论对\(\dim V-2\)成立。设\(T\in\lmap(V)\),若\(T\)由本征值则证明结束,否则由5.24知\(V\)有在\(T\)下不变的2维子空间\(U\),由2.13知存在\(V\)的子空间\(W\)使得\(V=U\oplus W\)。注意不能直接对\(W\)和\(T\vert W\)用归纳法因为\(W\)可能不是在\(T\)下不变的。定义\(S\in\lmap(W)\)为\(S\vec{w}=P_{W,U}(T\vec{w}),\vec{w}\in W\)。由归纳法假设\(S\)有一个本征值\(\lambda\),其对应的非零本征向量为\(\vec{w}\in W\)。如果\(\vec{w}\)是\(T\)的相应于本征值\(\lambda\)的本征向量,则证明结束。否则考虑\(U+\vspan{\vec{w}}\)中的一个典型向量\(\vec{u}+a\vec{w}\),易得\((T-\lambda I)(\vec{u}+a\vec{w})=T\vec{u}-\lambda\vec{u}+aP_{U,W}(T\vec{w})\in U\),因此\(T-\lambda I\)把\(U+\vspan{\vec{w}}\)映到\(U\)内。由于\(U+\vspan{\vec{w}}\)的维数比\(U\)的维数大,故\((T-\lambda I)\vert_{U+\vspan{\vec{w}}}\)不是单的(3.5),于是\(T\)有本征值。
]]>
《编译器设计》笔记 http://lam8da.github.io/2019/04/22/engineering-a-compiler-notes/ 2019-04-22T00:00:00+00:00 lambda http://lam8da.github.io/2019/04/22/engineering-a-compiler-notes

本文主要是编译原理书籍的一些笔记。内容主要来自以下书籍:

  • 《编译器设计/Engineering a Compiler》

词法分析器

RE,NFA,DFA的关系

  • RE到NFA:Thompson构造法。就是每种正则表达式的基本构造(\(ab\),\(a\vert b\),\(a\ast b\))都有对应的NFA的模板。
  • NFA到DFA:子集构造法。就是从集合\(\{n_0\}\)开始,将其\(\epsilon{-}closure\)作为一个所求DFA的状态;然后把每个这样得到的状态在经过\(\Sigma\)上每个字符转移后得到的集合的\(\epsilon{-}closure\)也作为新的状态;直到没有新的状态为止。
  • 最小化DFA:Hopcroft算法。一开始把初始结点作为一个集合,除初始结点外的其他结点作为另一个集合。每次从已有集合选出一个,判断是否有\(\Sigma\)上的字符可以将该集合分成两组,使得该两组集合经过该字符转以后到达不同的已有集合。如果是,就把该集合替换为该两个新集合。直到没有更多的拆分为止。最后每个集合作为所求DFA的一个状态。

    如何证明正确性?

  • 最小化DFA的另一种算法:直接从NFA构造最小DFA的Brzozowski算法。观察得知:子集构造法总是生成不包含重复前缀路径的DFA

    如何证明?

    根据这种观察,我们令:

    • \(reverse(n)\)是NFA \(n\)经过这些操作得到的NFA:翻转\(n\)中所有转移的方向,将初始状态设为\(reverse(n)\)的接受状态,增加一个新的初始状态,将其通过\(\epsilon\)边连接到\(n\)中所有的接受状态
    • \(reachable(n)\)返回NFA \(n\)中从初始状态可到达的状态和转移的集合(即删掉不可达状态和转移后的子NFA)
    • \(subset(n)\)为对\(n\)应用子集构造法生成的DFA
    • 这样,给定NFA \(n\),等价的最小DFA就是下述表达式:\(reachable(subset(reverse(reachable(subset(reverse(n))))))\)

      如何证明?而且有何实际意义?

  • DFA到RE:Kleen构造法。基本思想:DFA是一个图,如果图无环,构造算法是显然的:枚举所有路径即可(路径数量有限);如果有环,可能的环的种类也是有限的,通过RE的闭包运算可以模拟这些环。 2.18
    • 上述算法中,\(R_{ij}^k\)描述了DFA中从状态\(i\)到状态\(j\)、不经由编号大于\(k\)的状态的所有路径。这里“经由”表示“进入且离开”。

词法分析器

  • 表驱动的词法分析器
    • 识别token的基本算法 2.14
    • 上述算法会导致平方级别的回滚调用。考虑正则表达式\(ab\vert(ab)\ast c\),对于串\(abababab\)会导致平方级别回滚,因为在读到终结符前都不会到达\(s_e\)。下面改进的算法通过保存额外的失败信息可以避免这个问题。基本思想就是找出上面算法中在重复过去相同的回滚时所做的重复计算,然后把这些重复计算的结果在第一次计算时就保存下来: 2.15
  • 直接编码的词法分析器:降低了计算DFA转移的成本,将原本显式表示的DFA状态和转移图替换为隐式表示方法。即:把转移实现为函数调用,对每个不同的状态都有一个单独的\(NextChar()\)函数与之对应,每个函数内都编码了如\(lexeme\gets lexeme+char\)的操作,因此代码有很多重复
  • 手工编码的词法分析器:对直接编码的词法分析器高度优化以减少分析器和系统其余组件之间的接口的开销

语法分析器

各种语言和语法分析器

  • 各个语言的包含关系:\(RG(Regular Grammar)\subset LL(1)\subset LR(1)\subset CFG(Context Free Grammar)\)
    • 任意CFG需要花费更多的时间进行语法分析。如Earley算法可以在\(O(n^3)\)时间内解析任意CFG
    • LR(1)语法包含了无歧义CFG的很大一个子集,可以在线性时间内扫描输入并自底向上进行语法分析,任何时候都只需从当前输入符号前瞻最多一个单词
    • LL(1)可以在线性时间内扫描输入并自顶向下(通过手工编码的递归下降分析器或生成的LL(1)分析器)进行语法分析,只需前瞻一个单词
  • 自顶向下的语法分析
    • 自顶向下的语法分析可以高效进行的一个关键点是:上下文无关语法的很大一个子集不进行回溯即可以完成语法分析
  • 最左(右)推导:一种推导,在每个步骤多重写最左(右)侧的非终结符。最左和最右推导运用产生式的顺序不同。但因为语法分析树只表示应用了那些规则,而未指定按何种顺序应用规则,因此,对于无歧义语法来说,两种推导得出的语法分析树是相同的

自顶向下语法分析:无回溯语法

  • 自顶向下语法分析器可能会无限循环(因为左递归)。很容易消除直接左递归(略),消除间接左递归的算法如下(将间接左递归转换为直接左递归,再重写直接左递归为右递归): 3.6
  • 解决了无限循环问题后还是有可能会回溯。可以利用一个简单修改来(尝试)避免回溯:在选择下一条产生式时,可以同时考虑当前关注的符号以及下一个输入符号(前瞻符号)。如果这样做后不需要回溯,就说该语法在前瞻一个符号时是无回溯的。形式化定义如下:
    • \(FIRST(\alpha)\)定义为语法符号(可以为终结符\(T\)或非终结符\(NT\))\(\alpha\)推导出的语句开头可能出现的终结符的集合。\(\epsilon\)和\(eof\)同时出现在\(FIRST\)的定义域和值域中。可以通过一个简单的不动点算法算出每个语法符号的\(FIRST\)集合,如下: 3.7
    • 当前瞻符号不是任何其他备选产生式的\(FIRST\)集合的成员,且存在形如\(A\to\epsilon\)的产生式时,应该使用该\(\epsilon\)产生式。但为了区分合法输入和语法错误,语法分析器必须知道在应用了该产生式后哪些单词可能作为第一个符号出现。为此定义\(FOLLOW(\alpha)\)为紧跟非终结符\(\alpha\)导出的符号串之后的所有可能单词,计算方法如下: 3.8
    • 为准确定义无回溯条件,对于产生式\(A\to\beta\),定义其增强\(FIRST\)集\(FIRST^+\),如下

      \[FIRST^+(A\to\beta)=\left\{ \begin{array}{l} FIRST(\beta)\ \textbf{if}\ \epsilon\notin FIRST(\beta)\\ FIRST(\beta)\cup FOLLOW(A)\ \textbf{otherwise} \end{array} \right.\]

      这样,一个语法是无回溯语法的充分条件是,对任何匹配多个产生式的非终结符\(A\),\(A\to\beta_1\vert\beta_2\vert\cdots\beta_n\),有

      \[FIRST^+(A\to\beta_i)\cap FIRST^+(A\to\beta_j)=\emptyset, \forall 1\le i,j\le n, i\ne j\]
  • 一个有回溯的语法有时可以通过提取左因子(left factoring,即提取并隔离共同前缀的过程)将其变为无回溯语法
  • 然而某些上下文无关语言没有无回溯语法。一般来说,对于任意的上下文无关语言,是否存在无回溯语法是不可判定的。

    如何证明?

  • 有时候前瞻两个符号也可以解决回溯的问题,但是对于使用任意有限个前瞻符号的情况,都可以设计出一种语法,使得在给定数目的前瞻符号下不足以进行预测

自顶向下语法分析:递归下降法

实现的方法就是,为每个非终结符实现一个函数(类似于直接编码的DFA词法分析器),根据前瞻符号来决定使用哪个产生式,根据选择的产生式中的非终结符再调用对应的函数。

自顶向下语法分析:表驱动的LL(1)语法分析器

  • LL(1):由左(Left,L)向右扫描输入,构建一个最左推导(Leftmost,L),其中仅使用一个前瞻符号(1)。根据定义,LL(1)是无回溯的,因此其只能接受右递归、无回溯的语法。
  • 算法: 3.11
  • 生成上述算法中的LL(1)表\(Table\)的算法: 3.12
  • 如果语法不是无回溯的,上述构建将对\(Table\)表中的某些元素分配多个产生式

自底向上语法分析

  • 一些名词:
    • 上边缘:自底向上语法分析会构建一棵部分完成的语法分析树,其实质是一个森林,可以有多个树根。这些根节点的列(上边)的右侧边缘(缘)称为上边缘。
    • LR(1)的特点:从左(Left)到右扫描,反向(Reverse)最右推导,一个(1)前瞻符号
    • 为什么是反向最右推导而不是最左(注意对于无歧义文法最左和最右推导得到的语法树是一样的,因此这里考虑的只是推导的顺序,即为什么是按照反向最右推导的顺序):因为归约发生在语法分析树的上边缘(右侧),此时左边的子树(子森林)已经归约完成,因此右侧子树是最后归约的,那么将整个顺序反过来就变为,最右侧的子树是最早推导的,即最右推导的定义。
    • LR语法(指LR(k))分析技术可以用来分析很大一类(但不是全部)无歧义语法
    • 句柄是一个对\(\langle A\to\beta,k\rangle\),其中\(\beta\)出现在语法分析树的上边缘,而其右侧末端位于位置\(k\),且将\(\beta\)替换为\(A\)是语法分析中的下一步
    • LR语法分析器中,句柄总是位于栈顶(见下面算法),而各个句柄的链构成了一个反向的最右推导
    • 增加的前瞻符号并不能增大LR语法分析器可以识别的语言集合。对于\(k>1\),LR(1)语法分析器与LR(k)语法分析器接受的语言集合是相同的。但是,同一语言的LR(1)语法可能比LR(k)语法更复杂。
  • LR(1)算法: 3.15
  • 构建\(Action\)表和\(Goto\)表
    • LR(1)项:形如\([A\to\beta\cdot\gamma,a]\),其中\(A\to\beta\gamma\)是一个产生式,\(\cdot\)表示语法分析器栈顶的位置,而\(a\)是语法中的一个终结符。这个项表示,语法分析器已经从\([A\to\cdot\beta\gamma,a]\)(另一个LR(1)项)前进了一步(识别了\(\beta\)),如果输入确实能归约到\(A\),下一步将要识别出\(\gamma\);而这里\(a\)表示,\(A\)后接\(a\)是符合语法的,即如果在识别了\(\gamma\)后前瞻符号为\(a\),语法分析器可以将\(\beta\gamma\)归约到\(A\)。
    • 为简化任务,要求语法有一个唯一的目标符号(非终结符),该符号不会出现在任一产生式的右侧。设该符号为\(S'\),则\(\{[S'\to S, eof]\}\)形成了LR(1)项集的规范族CC的第一个状态\(CC_0\)的核心项集。下面的闭包运算可以根据此核心项集计算出\(CC_0\)的完备项集。
    • LR(1)项集合的两个基本运算:
      • 闭包运算: 3.20
      • goto过程实现了语法分析器根据当前状态和某个语法符号进行的转移过程。 3.21
    • 构建LR(1)项集的规范族CC: 3.22
    • 构建\(Action\)表和\(Goto\)表: 3.24
  • 一些观察:LR(1)语法分析器的效率,来源于\(Action\)表和\(Goto\)表内蕴的快速句柄查找机制。规范族CC表示了一个句柄查找DFA(局病毒集合是有限的,因此句柄的语言是一种正则语言)

一些要点/细节

  • 左递归语法并不是病态的,也不代表就是有歧义的。只是,自顶向下语法分析器无法处理左递归,但是自底向上语法分析器是可以处理的!
  • 在使用自底向上语法分析时,右递归语法需要更多的栈空间,其最大栈深度可以与输入长度成正比。与此相反,左递归语法的最大栈深度取决于语法本身,而非输入流。
  • 任何具有LR(1)语法的语言,同样有LALR(1)语法和SLR(1)语法。

    “同样有”是指“可以被改写为”?

上下文相关分析

属性语法框架

参考

]]>
深度学习的一些笔记 http://lam8da.github.io/2019/03/23/deep-learning-notes/ 2019-03-23T00:00:00+00:00 lambda http://lam8da.github.io/2019/03/23/deep-learning-notes

基本概念

  • \(precision=TP/(TP+FP)\)。
  • \(True Positive Rate (TPR)=recall=TP/(TP+FN)\)。
  • \(False Positive Rate (FPR)=FP/(FP+TN)\)。
  • ROC curve:横轴FPR,纵轴TPR,每个值是在某个分类threshold上对应的FPR和TPR的值。例如threshold为0,则全部样例都被归类为positive,没有样例归类为negative,因此FPR和TPR都是1。如果threshold为inf,则没有样例归为positive,因此FPR和TPR都是0。
  • AUC:Area Under the ROC Curve。具体看wiki
  • 信息量:假设\(X\)是一个离散型随机变量,其取值集合为\(\chi\),概率分布函数\(p(x)=Pr(X=x),x\in\chi\),则定义事件\(X=x_{0}\)的信息量为:\(I(x_0)=−\log(p(x_0))\)。直观理解:越不可能发生的事情,如果它发生了,信息量就越大。
  • 熵:用来表示所有信息量的期望,即

    \[H(X)=-\sum_{i=1}^{n}p(x_{i})\log(p(x_{i}))\]
  • 相对熵(KL散度):在机器学习中,P往往用来表示样本的真实分布,Q用来表示模型所预测的分布,直观的理解就是如果用P来描述样本,那么就非常完美。而用Q来描述样本,虽然可以大致描述,但是不是那么的完美,信息量不足,需要额外的一些“信息增量”才能达到和P一样完美的描述。如果我们的Q通过反复训练,也能完美的描述样本,那么就不再需要额外的“信息增量”,Q等价于P。

    \[D_{KL}(p\vert\vert q)=\sum_{i=1}^{n}p(x_i)\log(\frac{p(x_i)}{q(x_i)})\]

    \(D_{KL}\)的值越小,表示q分布和p分布越接近

    如何证明\(D_{KL}\)的值非负?看这里

    相对于其他类型的函数距离度量,KL散度的优点在于,可以写成期望的形式,这允许我们对其进行采样计算即\(\mathbb{E}[x]\approx\frac{1}{n}\sum_{i=1}^{n}x_i,x_i\backsim p(x)\)

  • 交叉熵:

    \[H(p,q)=-\sum_{i=1}^{n}p(x_i)\log(q(x_i))=D_{KL}(p\vert\vert q)+H(p(x))\]
  • 最大似然估计和最大后验概率估计的区别
  • 从最大似然到EM算法:一致的理解方式

    待看

  • 机器学习中正则化项L1和L2的直观理解

    待看

各种技术

术语

  • R-CNN: regional convolutional neural network
  • FCN: fully convolutional networks
  • RPN: region proposal network
  • FPN: feature pyramid networks

Faster R-CNN

FCN

  • Fully Convolutional Networks for Semantic Segmentation
  • 精读深度学习论文(18) FCN - 清欢守护者的文章 - 知乎
  • 深度学习论文笔记(六)— FCN 全连接网络
  • 是用来做semantic segmentation而不是object detection或者instance segmantation的。通常CNN网络在卷积层之后会接上若干个全连接层, 将卷积层产生的特征图(feature map)映射成一个固定长度的特征向量。以AlexNet为代表的经典CNN结构适合于图像级的分类和回归任务,因为它们最后都期望得到整个输入图像的一个数值描述(概率),比如AlexNet的ImageNet模型输出一个1000维的向量表示输入图像属于每一类的概率(softmax归一化)。而要做Semantic Segmentation(语义分割),希望能够直接输出一幅分割图像结果,所以就有了本篇FCN网络的提出。FCN将传统CNN中最后的全连接层转化成1x1xC卷积层,然后用conv2d_transpose来上采样。由于没有全连接层的存在,所以输入图像的尺寸要求并不固定了。这个原因是因为全连接层是一个矩阵乘法的操作,可以自己去想一想。而最后实现的是对每个像素点的分类预测,而能做到这样,是因为卷积层的输出的结果是datamap,而不是一个向量!经过反卷积后得到与原图一样大小的1000层heatmap,每一层代表一个类,然后观察每个位置的像素,在哪一层它这个点对应的值最大,就认为这个像素点属于这一层的类

R-FCN

  • R-FCN: Object Detection via Region-based Fully Convolutional Networks
  • 论文笔记 R-FCN: Object Detection via Region-based Fully Convolutional Networks
  • 深度学习目标检测模型全面综述:Faster R-CNN、R-FCN和SSD
  • 比Faster R-CNN更快,但是能达到差不多(精度稍微差一点)的效果。怎么做到的:Faster R-CNN对卷积层做了共享,但是经过RoI pooling后,却没有共享,例如如果一副图片有500个region proposal,那么就得分别进行500次卷积,这样就太浪费时间了。R-FCN的思路是,能不能把RoI后面的几层建立共享卷积,只对一个feature map进行一次卷积。但与Faster R-CNN相同,其最后的输出是object的分类和BB回归。我的理解是,两者都用了海量anchor来propose ROI,不同的是Faster R-CNN在propose之后要对修正后的每个anchor单独做Roi Pooling和分类,而R-FCN不用再用一个单独分类网络而是直接用计算好的score maps来pool一下再加个softmax就搞定
  • 目标检测-R-FCN-论文笔记 这篇文章写的非常好,特别是说明了为什么简单的直接在ResNet上(出来单个feature map)接一个FCN用来做检测的方案不work(文中图6和图2的对比)而需要用\(k^2\)组feature map(成为score maps)。最后那个R-CNN/Faster R-CNN/R-FCN的直观比较的图很赞。

U-Net

  • U-Net: Convolutional Networks for Biomedical Image Segmentation
  • 和FCN类似,是用来做semantic segmentation而不是object detection或者instance segmantation的。
  • 图像语义分割入门+FCN/U-Net网络解析:与FCN逐点相加不同,U-Net采用将特征在channel维度拼接在一起,形成更“厚”的特征。所以语义分割网络在特征融合时也有2种办法:
    • FCN式的逐点相加,对应tensorflow的tf.add()
    • U-Net式的channel维度拼接融合,对应tensorflow的tf.concat()
  • 总结一下,CNN图像语义分割也就基本上是这个套路:
    • 下采样+上采样:Convolution + Deconvolution/Resize(Resize指的是类似于keras的UpSampling2d,只是resize而不做deconvolution)
    • 多尺度特征融合:特征逐点相加/特征channel维度拼接
    • 获得像素级别的segement map:对每一个像素点进行判断类别

Transformer

ViT

GAN

Auto Encoder (AE)

  • 自动编码器是一种无监督的神经网络模型,它可以学习到输入数据的隐含特征,这称为编码(encoding),同时用学习到的新特征可以重构出原始输入数据,称之为解码(decoding)。
    • 从直观上来看,自动编码器可以用于特征降维,类似主成分分析PCA,但是其相比PCA其性能更强,这是由于神经网络模型可以提取更有效的新特征。
    • 除了进行特征降维,自动编码器学习到的新特征可以送入有监督学习模型中,所以自动编码器可以起到特征提取器的作用。
      • 自动编码器作为特征提取
    • 作为无监督学习模型,自动编码器还可以用于生成与训练样本不同的新数据,这样自动编码器(变分自动编码器,Variational Autoencoders)就是生成式模型。
  • VQ-VAE的简明介绍:量子化自编码器 VQ-VAE其实跟VAE没什么关系,其实是一个AE
  • 深入解析CogView、DALLE、VAE、GAN、GPT的技术原理,原来生成式模型是这么一回事! 先推导VAE再简化成VQ-VAE!所以VQ-VAE是从VAE推导出来的,虽然结果看上去跟VAE没什么关系(见下面的kexue文章)
  • VQ-VAE解读解释了为什么要用PixelCNN/PixelRNN做decoder:

    VAE的目的是训练完成后,丢掉encoder,在prior上直接采样,加上decoder就能生成。如果我们现在独立地采HxW个\(z\),然后查表得到维度为HxWxD的\(z_{q}(x)\),那么生成的图片在空间上的每块区域之间几乎就是独立的。因此我们需要让各个\(z\)之间有关系,因此用PixelCNN,对这些\(z\)建立一个autoregressive model:\(p(z_1,z_2,z_3,\cdots)=p(z_1)p(z_2\vert z_1)p(z_3\vert z_1,z_2)\cdots\),这样就可以进行ancestral sampling,得到一个互相之间有关联的HxW的整数矩阵;\(p(z_1,z_2,z_3,\cdots)\)这个联合概率即为我们想要的prior.

Variational Auto Encoder (VAE)

  • 变分自编码器(一):原来是这么一回事。给定一个真实样本\(X_k\),我们假设存在一个专属于\(X_k\)的分布\(p(Z\vert X_k)\)(学名叫后验分布),并进一步假设这个分布是(独立的、多元的)正态分布。我们要训练一个生成器\(X=g(Z)\),希望能够把从分布\(p(Z\vert X_k)\)采样出来的一个\(Z_k\)还原为\(X_k\)。而正态分布\(p(Z\vert X_k)\)有两参数(均值&方差),我们用神经网络把它们拟合出来,然后从这个专属分布中采样一个\(Z_k\)然后生成\(\hat{X_k}=g(Z_k)\),然后最小化它和\(X_k\)之间的距离。而为了不让改正态分布退化成一个点(随着距离的最小化这是一种必然趋势),VAE还让所有的\(p(Z\vert X)\)都向标准正态分布看齐,这样就防止了噪声为零,同时保证了模型具有生成能力。重构(采样)的过程是希望没噪声的,而向标准正态分布看齐得到的KL loss则希望有高斯噪声的,两者是对立的。所以,VAE跟GAN一样,内部其实是包含了一个对抗的过程,只不过它们两者是混合起来,共同进化的。代码在这里 VAE原理

    除了向标准正态分布看齐,如果给定每个类别的均值,我们还可以让其向每个类别的正态分布看齐(方差还是1),这样就是Conditional VAE,或者叫CVAE。 CVAE原理

  • 变分自编码器(二):从贝叶斯观点出发。进行了完整的推导。

    简单来说,由于直接描述复杂分布是难以做到的,所以我们通过引入隐变量来将它变成条件分布的叠加。而这时候我们对隐变量的分布和条件分布都可以做适当的简化(比如都假设为正态分布),并且在条件分布的参数可以跟深度学习模型结合起来(用深度学习来算隐变量的参数)

  • 变分自编码器(三):这样做为什么能成?

    未看

  • 破解VAE的迷思认为:

    VAE的任务:要学的图像是高维空间中一些离散的点,VAE试图把它们压缩到一个低维连续空间(也就是潜空间),再复原回原空间。这么做是基于这样的假设 - 那就是要学习的实际上是嵌入高维空间的低维流形,然而真实图形中的细节显然不全是某种低维流形,有些图像细节,比如处于空间中的头发,肤质,真实纹理质感,即使是某种流形,也很难用低数据量描述,或很难学得用低数据量描述。考虑到其他深度网络都是使用一个过容量(表示容量)的网络来学习一个简单平滑的函数,VAE使用一个瓶颈式的潜空间向量去实现前述任务就显得不太现实了。因此,VAE无法还原图像的细节,看上去缺乏真实感,同时,在不能还原的前提下,为了降低损失,只有输出平均值,对于人脸来说,就是生成一张大众脸。如果潜空间向量使用比较低的维数,原图中的人脸即使被遮挡了,还原图像也会生成被遮挡的部分,因为大多数训练样本是一张完整的脸。如果使用比较大的潜空间向量维数,还原质量会好一些,也不会出现人脸自动去遮挡的效果,但是采样质量较差。因为潜空间变大了,高维空间的离散点映射过来,不再容易保证连续性。

  • 深度神经网络生成模型:从GAN VAE到CVAE-GAN 把vae和gan结合起来,生成质量非常高。但上述文章说它只是假装解决了生成图片模糊的问题:

    CVAE-GAN假装解决了这一难题,它可以在一个细粒度分类中生成高质量的图像。比如在训练后,可以生成某一个人的人脸,但实际上它是通过让网络学习某个人的很多张照片来记住这个人的模样。它不是通过潜变量来传递这个人的相貌信息,而是通过一个单独的flag(即那个分类c)告诉后面的生成网络,请生成这个人的脸。

  • VAE的哲学,GAN的哲学对两者的本质的一些思考
  • 强大的NVAE:以后再也不能说VAE生成的图像模糊了 2020 nvidia的工作,更厉害。

    待看

  • VAE 的细节:p(x|z)的噪音,与p(z|x) 的编码坍塌有一些简单的例子来说明VAE的问题

    待看

  • 参考:

流模型

  • 细水长flow之NICE:流模型的基本概念与实现 和VAE(通过关于凸函数即似然函数里的log的Jensen不等式优化下界)以及GAN(通过交替训练的方法绕开求积分)不同,flow模型选择了一条“硬路”:使用狄拉克分布直接把积分算出来,而这样做要满足很多条件,于是flow就自定义了很多种网络结构来满足这些条件,很多层这些网络连起来就形成一个“flow”。

半监督学习(Semi-Supervised Learning)

  • 是监督学习和无监督学习的结合:use both labeled and unlabeled data at the same time to improve the performance of a supervised model
  • FixMatch用无label的图片来提升模型性能。有两个loss,一个是对有label的数据做简单的分类任务的loss;另一个是对无label的数据先做weak augmentation然后跑一遍model得到一个预测,如果预测对某个类的概率比其他类的概率大于某个阈值,就用最高概率那个类作为pseudo label,然后对无label的数据做strong augmentation跑一遍model得到的预测结果和该pseudo label来得到该loss。两个loss加起来作为总的loss。
    • 这有点像one-shot learning?

自监督学习(Self-Supervised Learning)

  • 根据StackExchange:这可以看成是半监督学习的一种(learn image representations without requiring human-annotated labels and then use those learned representations on some downstream tasks)
  • The Illustrated Self-Supervised Learning。常用的学习方法:
    • image reconstruction
      • colorization:将图片去色,让模型学习填色
      • superresolution:将图片缩小,学习还原原来的分辨率
      • impainting:即图像补全:将图片挖去一块,学习补全
      • cross-channel prediction: predict one channel of the image from the other channel and combine them to reconstruct the original image
    • common sense tasks
      • image jigsaw puzzle: 把图像切成多片,学习一个permutation number来将这些碎片拼回去
      • context prediction: 将图片切片,选择其中一片以及其相邻8片中的一片,学习该相邻的片究竟是相邻的哪一片
      • geometric transformation recognition: 随机旋转图片(90度的倍数),预测旋转的角度
    • automatic label generation
      • image clustering: 输入为图片及其类别(这样的data很容易找到,例如对于“海滩”类图片,网上一搜一大堆),该类别作为label来train
      • synthetic imagery: 用3D游戏引擎生成图片及其对应的参数(例如轮廓、深度等信息)作为training data
    • frame order verification: 从视频中得到每一帧的图像,学习这些帧的顺序(例如帧A是否出现在帧B之前)
  • SimCLR是一种contrastive learining,是self supervised learning的一个特例。输入是一个batch的图片,对其中每个图片做augmentation生成两个图片,目标就是最大化同一个图片生成的两个augmentation的相似性,并且最小化不同图片生成的两个augmentation的相似性。相似性\(s_{i,j}\)用余弦来衡量,对任意一个(augmentation的)图片,其Noise Contrastive Estimation(NCE)Loss为:

    \[l(i,j)=-\log\frac{e^{s_{i,j}}}{\sum_{k=1}^{2N}e^{s_{i,k[k\ne j]}}}\]

    其中\(N\)为batch中图片的个数。最终的loss为:

    \[L=\frac{1}{2N}\sum_{k=1}^{N}\left(l(2k-1,2k)+l(2k,2k-1)\right)\]

对比学习

Few-shot / Zero-shot learning

  • 小样本或零样本学习,对于语言模型来说,基本上就是把要预测的结果转化为完形填空,让语言模型去填(MLM)。
    • 必须要GPT3吗?不,BERT的MLM模型也能小样本学习

      假如给定句子“这趟北京之旅我感觉很不错。”,那么我们补充个描述,构建如下的完形填空:“____满意。这趟北京之旅我感觉很不错。” 进一步地,我们限制空位处只能填一个“很”或“不”,问题就很清晰了,就是要我们根据上下文一致性判断是否满意,如果“很”的概率大于“不”的概率,说明是正面情感倾向,否则就是负面的,这样我们就将情感分类问题转换为一个完形填空问题了,它可以用MLM模型给出预测结果,而MLM模型的训练可以不需要监督数据,因此理论上这能够实现零样本学习了。

Reparameterization

  • 函数光滑化杂谈:不可导函数的可导逼近

    待看

  • 漫谈重参数:从正态分布到Gumbel Softmax 文章谈了为什么要进行重参数以及对离散和连续分布的重参数方法。另外重参数不一定是只对loss有用,有时候遇到一些不可导或者采样的方差很大的函数也需要重参。

    如何理解直接采样没有梯度而重参数之后就有梯度呢?其实很简单,比如我说从\(\mathcal{N}(z;\mu_{\theta},\sigma_{\theta}^{2})\)中采样一个数来,然后你跟我说采样到5,我完全看不出5跟\(\theta\)有什么关系呀(求梯度只能为0);但是如果先从\(\mathcal{N}(\epsilon;0,1)\)中采样一个数比如0.2,然后计算\(\),这样我就知道采样出来的结果跟\(\theta\)的关系了(能求出有效的梯度)。

各种技术的融合

  • VQ-GAN
  • DALL-E
  • CLIP
    • Alien Dreams: An Emerging Art Scene展示了如何通过GAN+CLIP来用文字生成图片。这是一个迭代过程:首先生成一个随机latent vector,用GAN生成图片,然后用CLIP和输入的文字做相似度比较,对loss生成梯度来更新那个latent vector。这样就可以生成一个video了。 How CLIP Generates Art

      思考:是否所有视频都可以表示为梯度下降的过程?例如某个物体从状态1(位置,方位等)变换为状态2,可以看成:把该物体的状态encode成一个latent feature,然后让状态1(source)和状态2(target)的latent feature计算相似性然后算出loss,那么这个变换过程就是梯度下降(减少loss)的过程。

Speech

  • 语音识别技术的前世今生里面对transducer的解释(建立了输出的语言模型)非常形象易懂,对其与attention的区别的描述也很形象(被动等待下一个有意义的CTC输出 vs 主动根据输入找寻下一个输出)!
  • 自监督预训练(二) 语音部分
  • 自监督预训练(三)wav2vec 2.0原理剖析
  • wav2vec 2.0 | Lecture 76 (Part 3) | Applied Deep Learning讲的很清楚,最神奇的地方是,model中并没有重建原来语音的部分,而只是重建了latent feature

    为什么这样也能学习到语音的特征?可能是因为预测那些mask掉的部分的时候就是需要知道语音特征,而连续的语音特征之间是满足某种条件分布的,因而不是随机的!

    • 注意其中transformer的输入不是quantized的而是连续的,但是做contrastive loss的target是要跟quantized的feature来比较。文中详细比较了{quantize vs 不quantize}{input vs target}四种情况发现上述方式最好

      为什么?

  • wav2vec 2.0讲解

其他

一些理解

计算机视觉

  • 拿灰度图像来说,如果用0-255来编码一个灰度图像,很自然我们用0表示黑255表示白,数值越大越接近白,越小越接近黑
  • 为什么不能吧顺序打乱?例如0表示浅灰,100表示白,200表示黑,255表示深灰色等等?
  • 原因是这种编码表示必须满足一个特性:如果我们肉眼看到两个灰度很接近,那么这两个灰度在编码上的表示也应该很“接近”
  • 怎么定义“接近”?这里用的是差值:差值越小越相似
  • 那我可不可以用其他相似性定义?我觉得可以,只要这种定义满足线性关系(例如a和b比a和c更相似,那么a和b的相似性的数学表示应该在值上和a和c的相似值满足某种全序关系。问:可以是偏序吗?)但是除了正常的线性编码外(例如0表示黑255表示白或者反过来),这样的相似性定义应该很难找
  • 而两个图像相似是一个至少是一个三元关系:颜色相似、形状相似且大小相似。所以我对视觉计算的理解就是如何定义、计算并处理这些相似性。
  • 这就决定了为什么convolution用的是乘法和加法:待续。。。

一般理论

  • 一般的模型都可以分成几类
    • 判别模型(encoder)。例如用于分类的模型、BERT、object detection等。
    • 生成模型(decoder)。例如GPT等。
    • 判别模型+生成模型。如GAN是生成器后接判别器,AE和seq2seq是encoder后加decoder,等。

Convolutional Neural Networks (by Andrew Ng)

  • 视频链接在这里
  • 例子:边缘检测:通过用conv2d并设置特定的filter/kernel的值可以用该filter/kernel做边缘检测(横的或者竖的或者斜的或其他)
  • LeNet:最原始用于手写数字识别的网络,只有几层
  • AlexNet: Hinton等人发明的识别一般图像的网络,有大约十来层?感觉每一层都是hand-tuned的
  • VGG-16:避免hand-tuned:统一采用相同规格的block例如3x3的conv2d,证明也能达到好的效果
  • ResNet: 增加了short-cut,可以使网络通过学习自动选取究竟是否应用新的一层。例如如果新的层会导致精度更差,训练过程能够学习到这个结果从而通过自动调参来增大short-cut的权重从而降低其认为影响了精度的block的权重(让该block变为大约相当于identity的功能,从而大程度上禁止了该block的功能)。而普通的deep network没有这种选择所以有可能会在很deep的时候反而精度更差。
  • Inception: 与其决定每个block用1x1conv还是3x3conv还是别的,干脆全都用然后将结果concat起来作为下一层输入。block内用到的层有:1x1conv+3x3conv,1x1conv+5x5conv,1x1conv,maxpool等。
  • Transfer learning
    • 可以下载已经train好的如ResNet50的model,然后把最后的softmax层替换掉,将其他层的参数freeze,只重新train最后softmax层的参数(用新的数据)
    • 或者可以任意选择freeze前面N层而只重新train后面那些层(当然还是要先把softmax换为适合新应用的类别个数的softmax)
    • 可以预处理:把所有新数据的前N层的结果预先求出,避免之后重复计算
  • 数据预处理/增强技术:mirroring,random cropping,rotation,color shifting,等
  • Object Detection
    • 基本思想:slicing window
    • 如何避免真正的slicing window并为每个window算一遍是否里面有某个object:直接用conv处理原图,filter的strides设为slicing window的stride
    • anchor boxes和Yolo algorithm:没太懂?
    • R-CNN vs. Fast R-CNN vs. Faster R-CNN
  • 人脸识别
    • Triplet loss:每次的输入是一个triple:一个人脸图,一个和第一个图是同一个人的人脸图,一个其他人的人脸图。目标是最大化(前两图的相似性-第一和第三张图的相似性)。缺点是:需要显式定义相似性度量函数例如用余弦相似性,而这很可能不是最好的度量
    • 另一种种方法是,把相似性度量改为一个network module(黑箱)而让其输出0(不是同一个人)或1(是同一个人),这样能学习到好的但不能显式表示的度量函数。再一次,这里可以通过freeze整个network的前大半部分,而precompute特征向量,只train这个黑箱,来加速网络的训练
  • Neural Style Transfer
    • 如何visualize一个conv net的每一层到底detect了什么:可以选出使该层的某些activation unit的值达到最大值的输入图片来get some sense
    • Neural Style Transfer的关键就是定义一个cost function,由两部分组成:content cost和style cost。content cost评价结果图片和content image的“相似”程度,style cost评价结果哦图片和style image的style的“相似”程度。
    • 计算这两种cost的方法都是:选择某个层,对content/style input image和结果图片分别计算该层的输出,然后在该层上定义content/style的相似性,然后对所有层的content/style相似性加权求和便得到最终的content/style相似性。唯一的区别是content/style的相似性的定义:对于content相似性直接用对应层的值求差和平方和即可,对于style相似性要先计算该层上C个channel间的correlation得到一个CxC的矩阵然后再用两个图片的这个矩阵求差和平方和得到(为啥是这样呢?correlation可以这样理解:correlate的意思是,对应于两个不同channel的两个特征要么同时出现要么同时不出现)
    • 对于每层在最终相似性中的权重,可以通过第一步的visualization得到一些sense。

其他资源

]]>