主要内容

高等代数: 多项式与线性代数

1.1 一元多项式的定义和基本性质

和其它很多数学课程一样,《高等代数》是建立在数字系统之上的。在接下来的课程中,我们将反复使用下面一些基本的数字集合。
1.1.1. 常用数字集合记号与定义
名称 记号 定义 可能记号来源
自然数集 \(\N\) \(\N = \{0,1,2,3, \ldots \}\) 英文名称Natural number首字母。
整数集 \(\Z\) \(\Z = \{0,\pm 1,\pm 2,\pm3, \ldots \}\) 德文单词Zahl首字母。
有理数集 \(\Q\) \(\Q = \{\frac{q}{p}|p,q\in \Z, p\ne 0 \}\) 英文单词Quotient(商)首字母。
实数集 \(\R\) 全体有理数数列极限点构成的集合 英文名称Real number首字母。
复数集 \(\C\) \(\C =\{a+b i| a,b\in \R, i^2=1\} \) 英文名称Complex number首字母。
数的集合(简称数集)相对于其他一般集合的优势在于数集上有自然定义的运算。下面我们讨论一种有良好运算性质的数集,即数域。

子节 1.1.1 数域

\(T\)是一个数集,\(*\)表示加、减、乘、除四种运算中的一种运算。若对 \(\forall t_1,t_2\in T\),均有 \(t_1*t_2 \)仍然属于\(T \),则称集合 \(T\)关于 \(*\)运算封闭的,或简称为\(T\)关于 \(*\)封闭。(若\(*\)表示除法,则总约定 \(t_2\ne 0\) 。)
我们知道:任意两个自然数的和仍然是自然数,但差未必;任意两个整数的和、差、积都是整数,但商可能不是(除数不为0)。上述的两个事实也可描述为:自然数集 \(\N\)关于加法封闭,但关于减法不封闭;整数集 \(\Z\)关于加、减、乘三种运算都封闭,但关于除法不封闭。
有理数集 \(\Q\)、实数集 \(\R\)、复数集 \(\C\)这三个集合均关于所有的四则运算加减乘除运算封闭。这是很好的性质,可以让我们放心的进行运算。把这种好的性质抽象出来,我们有下面的定义。

定义 1.1.2.

\(\F\subseteq \C\)\(\{0,1\}\subseteq \F\)。若 \(\F\)关于四则运算封闭,则称 \(\F\) 是一个 数域
上述定义中的条件\(\{0,1\}\subseteq \F\)是为了排除两种平凡情况:\(\F\)为空集或\(\F\)只含有一个元素0。本书中我们一般用\(\F\)来表示一个数域,这样的记号选择是因为“域”对应的英文单词为Field。

备注 1.1.3.

也有很多书中选择用\(\mathbb{K}\)表示一个数域,其可能原因是“域”在德文中对应的单词为Körper。
有理数域 \(\Q\)是最早为人类认识的数域。历史上,在第一次数学危机之前,很多古代先贤认为 \(\Q\)已经足够描述这个世界,不需要再有其它数域。第一次数学危机的爆发就与无理数的发现有关。事实上,有理数域仅是“最小”的数域。

证明.

因为\(\mathbb{F}\)是一个数域,所以\(0,1\in\mathbb{F}\),则
\begin{equation*} 2=1+1\in\mathbb{F},3=2+1\in\mathbb{F},\cdots ,n=(n-1)+1\in\mathbb{F}. \end{equation*}
又由于
\begin{equation*} -n=0-n\in\mathbb{F}. \end{equation*}
因此\(\mathbb{Z}\subseteq\mathbb{F}\)。对任意\(a\in\mathbb{Q}\),存在\(p,q\in\mathbb{Z}\)(其中\(p\neq 0\)),使得\(a=\frac{q}{p}\)。由\(p,q\in\mathbb{F}\)可得
\begin{equation*} \frac{q}{p}\in\mathbb{F}, \end{equation*}
\(a\in\mathbb{F}\)。从而, \(\mathbb{Q}\subseteq\mathbb{F}\)
数学分析中的极限理论是建立在实数域\(\R\)基础上的。复数域\(\C\)的引入则来源于对多项式因式分解的研究。
有一个自然的问题:除有理数域 \(\Q\)、实数域\(\R\)和复数域\(\C\)外是否存在其它数域?答案是肯定的。

1.1.5. 新数域\(\Q(\sqrt{2})\).

证明:\(\Q(\sqrt{2})=\{a+b\sqrt{2}|a,b\in \Q \}\) 是一个数域。
提示.
要证明此结论,需要按定义验证 \(\Q(\sqrt{2})\)对于加、减、乘、除四种运算封闭,其中主要难点在于除运算封闭性的验证。验证除法封闭性时,可以使用分母有理化的方式来进行验证。
解答.
因为
\begin{equation*} 0=0+0\times\sqrt{2},1=1+0\times\sqrt{2}, \end{equation*}
所以\(0,1\in\mathbb{Q}(\sqrt{2})\)
对任意\(\alpha,\beta\in\mathbb{Q}(\sqrt{2})\),存在\(a,b,c,d\in\mathbb{Q}\),使得\(\alpha=a+b\sqrt{2},\beta=c+d\sqrt{2}\),则
  • \(\alpha\pm\beta=(a\pm c)+(b\pm d)\sqrt{2}\in\mathbb{Q}(\sqrt{2})\)
  • \(\alpha\beta=(ac+2bd)+(ad+bc)\sqrt{2}\in\mathbb{Q}(\sqrt{2})\)
  • \(\beta\neq 0\)时,\(c,d\)不全为\(0\),则\(c-d\sqrt{2}\neq 0\)。(否则,\(c=d\sqrt{2}\)。若\(d=0\),则\(c=0\),矛盾。故\(d\neq 0\),由此推出\(\frac{c}{d}=\sqrt{2}\),左边是有理数,而右边是无理数,矛盾。)因此,
    \begin{align*} \frac{\alpha}{\beta}&=\frac{a+b\sqrt{2}}{c+d\sqrt{2}} \\ &=\frac{\left(a+b\sqrt{2}\right)\left(c-d\sqrt{2}\right)}{\left(c+d\sqrt{2}\right)\left(c-d\sqrt{2}\right)} \\ &=\frac{ac-2bd}{c^2-2d^2}+\frac{bc-ad}{c^2-2d^2}\sqrt{2} \\ &\in\mathbb{Q}(\sqrt{2}). \end{align*}
综上可知,\(\mathbb{Q}(\sqrt{2})\)是一个数域。
数域这个概念在后续课程《抽象代数》中会进一步展开。《高等代数》中有些结论是与所选数域无关,有些结论有关。例如本章后续内容中两个多项式的最大公因式与所选数域无关,而多项式的因式分解与所选数域密切相关,请大家在学习过程中要注意区分。
本课程中最常用的数域是实数域\(\R\)和复数域\(\C\),其次是有理数域 \(\Q\)。对复数域不熟悉的同学可以参考 附录 C

子节 1.1.2 一元多项式的定义

定义 1.1.6.

\(\F\)是一个数域,\(x\)是一个符号(可以理解为变量,也称为 未定元 )。称形式表达式
\begin{equation} a_nx^{n} + a_{n-1}x^{n-1}+\cdots+ a_1 x+a_0 \tag{1.1.1} \end{equation}
为数域\(\F\)上以\(x\)为变元的 一元多项式,或简称为关于\(x\)多项式
特别地,只有一项系数不为0的多项式也称为单项式
数域\(\F\)上关于\(x\)的一元多项式全体构成的集合记为 \(\blue{\F[x]}\) ,即
\begin{equation*} \F[x] = \{a_nx^{n} +\cdots +a_0| n\in \N, a_i\in \F, i=0,\dots,n\}. \end{equation*}

备注 1.1.7.

我们会经常使用集合\(\{0,1,\ldots,n-2,n-1\}\),方便起见,记
\begin{equation*} \blue{[n]}=\{0,1,\ldots,n-2,n-1\}. \end{equation*}
应用此记号,一个一般的多项式也可被简记为:
\begin{equation*} a_nx^{n} +\cdots+ a_0 = \sum_{i\in [n+1]} a_i x^i. \end{equation*}
关于一元多项式的定义,我们有如下一些说明和相关常用术语:
  • 多项式 (1.1.1)中,\(a_ix^i\)称为 \(i\) 次项\(a_i\)称为 \(i\)次项的 系数。特别的,\(a_0\)称为 常数项
  • 类似于函数,多项式经常被简记为\(f(x),g(x)\)\(p(x),q(x)\)等。我们约定:两个多项式\(f(x),g(x)\)相等 当且仅当\(f(x),g(x)\)的同次项系数均相等,并记为 \(f(x)=g(x)\)
  • 习惯上,当\(f(x)=a_nx^{n} +\cdots+a_0\)表示某一个已知非0多项式时,通常约定最高次项系数\(a_n\ne 0\)。此时\(a_nx^n\)称为多项式的首项\(a_n\)称为首项系数。特别的,首项系数为1的多项式称为首一多项式。最高次项的次数\(n\)称为多项式\(f(x)\)次数,记作 \(\blue{\deg}f(x)\),有时也简记为\(\blue{\deg}f\)
    \(f(x)=a_nx^{n} +\cdots+a_0\)表示一个未知多项式时,这样的表示方式相当于限定 \(f(x)\)是一个次数不超过 \(n\)的多项式,此时的\(a_n\)可能等于0。
  • 所有项系数均为0的多项式称为0多项式。特别约定:0多项式的次数记为\(-\infty\)。在后面讨论多项式的运算性质时会看到这样约定的好处。
  • 次数为0的多项式指的是只有非0常数项的多项式。0多项式不是0次多项式。
  • 本质上,一元多项式的系数决定了这个多项式。一元多项式\(a_nx^{n} +\cdots+a_0\)\((a_n\ne 0)\) 可以一一对应于其系数按次数降序排列而成的序列
    \begin{equation*} (a_n,a_{n-1},\ldots, a_1,a_0). \end{equation*}
    这种表示多项式的方式称为多项式的系数表示
    一些数学软件(如Matlab)就是按系数表示的方式表示和存储多项式。这种表示方式和整数的表示方式是类似的。一个整数,例如314159,也可以表示为类似于多项式的形式:
    \begin{equation*} 314159=3\times 10^5+1\times 10^4+4\times 10^3+1\times 10^2+5\times 10^1+ 9. \end{equation*}
    由于这种结构上的相似性,多项式和整数有很多类似的性质,请大家比较记忆。

    备注 1.1.8.

    程序设计中,也常用按次数升序排列的系数序列,即\((a_0,a_{1},\ldots, a_{n-1},a_n)\), 来表示多项式。两者没有本质差别。
注意在定义 1.1.6中定义的多项式是一种形式表达式。多数同学看到\(f(x)\)时可能会联想到函数。事实上,在高等代数范围内,多项式也可以按照函数来理解。

定义 1.1.9.

\(f(x)=a_nx^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0\in \F[x]\), 对任意\(b \in\mathbb{F}\),将\(f(x)\)表示式里的\(x\)\(b\)代替,得到 \(\mathbb{F}\)中的数
\begin{equation*} a_nb^n+a_{n-1}b^{n-1}+\cdots+a_1b+a_0, \end{equation*}
称为当\(x=b\)\(f(x)\)的值,记作\(f(b)\)。此时
\begin{equation*} f:\ \F\to\F,\ b\mapsto f(b) \end{equation*}
定义了数域\(\mathbb{F}\)上的函数\(f(x)\),称\(f(x)\)为数域\(\mathbb{F}\)上的多项式函数
在多项式函数中,多项式相当于函数的映射法则表达式。
\(f(x),g(x)\in \F[x]\)。若\(f(x),g(x)\)作为多项式相等,则可知
\begin{equation*} \forall b\in\F,\ f(b)=g(b), \end{equation*}
\(f(x),g(x)\)作为多项式函数也是一样的函数。这时,有一个自然的问题:\(f(x),g(x)\)作为多项式函数相等,是否也能推出\(f(x),g(x)\)作为多项式相等?
如果没有多项式的限制,由两个函数相同去推定其表达式一定一样是不对的。例如取\(f(x),g(x)\)都是 \(\R\to\R\)的函数,其中
\begin{equation*} f(x) = |x|,\quad g(x)=\sqrt{x^2}. \end{equation*}
虽然\(f(x),g(x)\)的表达式是不同的,但容易验证\(\forall b\in \R,\ f(b)=g(b)\)。所以函数相同不能保证表达式一定相同。
我们后面会说明:当我们限制\(f(x),g(x)\)都是数域\(\F\)上的多项式,且 \(\F\)是复数域\(\C\)的子域时,多项式相等等价于多项式函数相等。有了这个结论后,在高等代数中,为了简便,我们通常会选择忽略二者的差异,将二者看成是一体两面。

备注 1.1.10.

在后续课程《抽象代数》中,域\(\F\)不一定是复数域\(\C\)的子域;相应的,此时多项式相等和多项式函数相等就不再等价。

子节 1.1.3 一元多项式的运算和基本性质

下面来介绍一元多项式的基本运算。这些运算的定义都很自然。
\begin{equation*} f(x)=a_nx^n+a_{n-1}x^{n-1}+\cdots +a_0, \end{equation*}
\begin{equation*} g(x)=b_mx^m+b_{m-1}x^{m-1}+\cdots +b_0, \end{equation*}
是数域\(\mathbb{F}\)上任给的两个多项式。
多项式加法
不妨设\(n\geq m\),令\(b_{m+1}=b_{m+2}=\cdots =b_n=0\)。定义\(f(x)\)\(g(x)\)的和为
\begin{equation*} f(x)+g(x)=(a_n+b_n)x^n+(a_{n-1}+b_{n-1})x^{n-1}+\cdots+(a_0+b_0). \end{equation*}
不难看出,\(f(x)+g(x)\)仍是数域\(\mathbb{F}\)上的多项式。我们把多项式的和运算称为多项式的加法
容易验证多项式加法具有以下性质:
  1. 结合律: \((f(x)+g(x))+h(x)=f(x)+(g(x)+h(x))\)
  2. 交换律:\(f(x)+g(x)=g(x)+f(x)\)
  3. 存在零元:\(f(x)+0=f(x)\)
  4. 存在负元:\(f(x)+(-f(x))=0\),其中 \(-f(x)=\sum_{i=0}^n -a_ix^i\)
由多项式加法性质 项 4 ,我们可以定义\(f(x)\)\(g(x)\)
\begin{equation*} f(x)-g(x)=f(x)+\left(-g(x)\right). \end{equation*}
此种运算称为多项式的 减法。减法运算本质上是加法运算的逆运算。
多项式乘法
定义\(f(x)\)\(g(x)\)的积为
\begin{equation*} f(x)g(x)=c_{m+n}x^{m+n}+c_{m+n-1}x^{m+n-1}+\cdots+c_0, \end{equation*}
其中
\begin{equation*} c_k=\sum\limits_{i+j=k}a_ib_j=a_0b_k+a_1b_{k-1}+\cdots+a_kb_0. \end{equation*}
易见\(f(x)g(x)\)也是数域\(\mathbb{F}\)上的多项式。我们把多项式的积运算称为多项式的乘法
特别地,常数\(c\in\mathbb{F}\)\(f(x)\)的积为
\begin{equation*} cf(x)=ca_nx^n+ca_{n-1}x^{n-1}+\cdots+ca_0, \end{equation*}
此种运算也称为\(c\)\(f(x)\)数乘
直接验证可得多项式乘法满足以下性质:
  1. 结合律:\(( f (x) g(x))h(x) = f (x) (g(x) h(x))\)
  2. 交换律:\(f (x) g(x) = g(x) f (x)\)
  3. 分配律:\((f (x)+g(x)) h(x) = f (x) h(x)+ g(x) h(x)\)
  4. 数乘与乘法协调:\(c ( f (x) g(x))=(c f (x)) g(x) = f (x)(c g(x))\)
  5. \(1\cdot f (x) = f (x) \)
约定:对于任意的\(n\in \N\)
\begin{equation*} (1) -\infty < n;\quad (2).-\infty + n = -\infty; \quad (3) . (-\infty)+(-\infty)= -\infty. \end{equation*}
于是,容易验证关于多项式和与积的次数有如下统一结论:
下面两个常用的推论,请读者自己验证。

1.1.14.

\(f(x),g(x)\in\R [x]\),证明:\(f^2(x)+g^2(x)=0\)的充分必要条件是\(f(x)=g(x)=0\)
解答.
充分性显然,下面用反证法来证明必要性。
假设\(f(x)\neq 0\)\(g(x)\neq 0\),则\(f(x),g(x)\)均不为\(0\)。(否则,\(f(x),g(x)\)中一个为\(0\),另一个不为\(0\)。不妨设\(f(x)\neq 0, g(x)= 0\),则\(f^2(x)+g^2(x)=f^2(x)\neq 0\),与已知条件矛盾。)不妨设
\begin{equation*} f(x)=a_nx^n+a_{n-1}x^{n-1}+\cdots +a_0, \end{equation*}
\begin{equation*} g(x)=b_mx^m+b_{m-1}+\cdots +b_0, \end{equation*}
其中\(0\neq a_n\in\R,0\neq b_m\in\R\)\(n\geq m\),则\(f^2(x)+g^2(x)\)的首项系数为\(a_n^2\)\(a_n^2+b_n^2\),均非零。由此推出\(f^2(x)+g^2(x)\neq 0\),与题设矛盾。因此\(f(x)=g(x)=0\)
  • 思考:上述结论在复数域\(\C\) 上是否成立?

子节 1.1.4 相关Sage命令

关于Sage的基本操作,请参考 附录 D
Sage内部已经定义好了自然数集、整数集、有理数域、实数域和复数域,分别用NN、ZZ、QQ、RR、CC来表示。
借助多项式的记法,\(\Q(\sqrt{2})\)也可以记为\(\Q[\sqrt{2}]\)。(习惯上,抽象代数中用圆括号强调表示对应的集合是域,方括号是一般的多项式集合记号。)Sage中也可定义\(\Q[\sqrt{2}]\)
Sage 中声明多项式常见的有以下几种方式。
第一行命令告诉sage系统:P 是变量名为x的有理系数多项式全体所构成的集合。后续程序中出现的以x为变量的有理系数多项式表达式都将被系统识别为有理系数多项式集合P中的元素。下面的例子可以说明指定系数数域后的区别。

备注 1.1.15.

对加、减、乘三种运算封闭的集合称之为 ,英文名称为 ring,因此sage中声明多项式集合的命令名为 PolynomialRing。
Sage中也可以直接使用[]的记号来定义多项式。
Sage中多项式的加、减、乘、除的运算和数字的运算相同,只是两个多项式的除法可能不再是多项式。
作为计算机程序设计的入门实践,这里我们以多项式的加法为例,用较原始的方法给出其实现代码。为了进一步降低编写程序的难度,我们选择以次数升序排列的多项式系数序列来表示一个多项式,即用序列 \((a_0,\ldots,a_n)\)来表示多项式 \(a_n x^n+\cdots+a_0\)。在python/sage中使用 \([a_0,a_1,\ldots,a_n]\)表示这样的序列。这种数据结构称为 列表(list)。
请同学们自行尝试用类似的方式实现多项式的其它运算。

练习 1.1.5 练习

基础题.

1.
证明:\(\mathbb{Q} ({\rm i})=\{a+b{\rm i}\ |\ a,b\in\mathbb{Q}\}\)是一个数域。
2.
求包含\(\sqrt{3}\)的最小数域,并证明。
3.
设数集\(\mathbb{F}\)至少包含两个不同的数,证明:若\(\mathbb{F}\)中任意两个数的差与商(除数非零)仍属于\(\mathbb{F}\),则\(\mathbb{F}\)是一个数域。
4.
\begin{equation*} f(x)=2x^4+2x^3-x^2+5x-5,g(x)=-4x^2+3x-2, \end{equation*}
\(f(x)+g(x),f(x)g(x)\)
5.
\(f (x),g(x)\in\mathbb{F}[x]\),证明:
\begin{align} \deg \left(cf (x)\right) \amp = \deg f (x) ,\quad 0 \ne c\in \mathbb{F}, \tag{1.1.5}\\ \deg \left(f (x)g(x)\right)\amp = \deg f (x) + \deg g(x).\tag{1.1.6} \end{align}
6.
\(f(x),g(x)\in \mathbb{F}[x]\),且 \(f (x)\ne 0\)\(g(x)\ne 0\), 证明:
\begin{equation*} f(x)g(x)\ne 0. \end{equation*}
7.
\(f (x),g(x)\in \mathbb{F}[x]\),若 \(f(x)\ne 0\)\(f (x) g(x) = f (x) h(x)\),证明:
\begin{equation*} g(x) = h(x). \end{equation*}
8.
对任意非零多项式\(f(x)\),证明:\(\deg f\left(f(x)\right)=\left(\deg f(x)\right)^2\)

提高题.

9.
\(\K,\ \F\)是数域,
  1. 证明:\(\K\cap \F\)是一个数域;
  2. 举例说明\(\K\cup \F\)不一定是数域;
  3. 试证:\(\K\cup \F\)是数域的充要条件是\(\K\subseteq \F\)\(\F\subseteq \K\)
10.
\(\F\)是一个数域,且\(\R \subseteq \F\subseteq \C\)。证明:或者\(\F=\R\),或者\(\F = \C\),二者必居其一。
11.
用多项式的系数序列来表示多项式(不限定升序或降序排列),写一个函数实现多项式的乘法,并验证 练习 1.1.5.4 手算获得的结论是否正确。
12.
\(f(x),g(x),h(x)\in\R[x]\),满足\(x\left(f(x)\right)^2+x\left(g(x)\right)^2=\left(h(x)\right)^2\)。证明:
\begin{equation*} f(x)=g(x)=h(x)=0. \end{equation*}
这个结论在复数域上成立否?若成立,请证明;若不成立,请举例说明。
13.
\(f(x)\in\C[x]\)\(f\left(x^2\right)=\left(f(x)\right)^2\),求\(f(x)\)
14.
\(f(x)\in\C[x],k\in\Z^+\)\(f\left(f(x)\right)=\left(f(x)\right)^k\),求\(f(x)\)