主要内容

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

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

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

子节 1.1.1 数域

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

定义 1.1.2.

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

备注 1.1.3.

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

证明.

因为F是一个数域,所以0,1F,根据加法封闭性则有
2=1+1F,3=2+1F,,n=(n1)+1F.
又由于
n=0nF.
因此ZF。对任意aQ,存在p,qZ(其中p0),使得a=qp。由p,qF可得
qpF,
aF。从而, QF
数学分析中的极限理论是建立在实数域R基础上的。复数域C的引入则来源于对多项式因式分解的研究。
有一个自然的问题:除有理数域 Q、实数域R和复数域C外是否存在其它数域?答案是肯定的。

1.1.5. 新数域Q(2).

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

子节 1.1.2 一元多项式的定义

定义 1.1.6.

F是一个数域,x是一个符号(可以理解为变量,也称为 未定元 )。称形式表达式
(1.1.1)anxn+an1xn1++a1x+a0
为数域F上以x为变元的 一元多项式,或简称为关于x多项式
特别地,只有一项系数不为0的多项式也称为单项式
数域F上关于x的一元多项式全体构成的集合记为 F[x] ,即
F[x]={anxn++a0|nN,aiF,i=0,,n}.

备注 1.1.7.

我们会经常使用集合{0,1,,n2,n1},方便起见,记
[n]={0,1,,n2,n1}.
应用此记号,一个一般的多项式也可被简记为:
anxn++a0=i[n+1]aixi.
关于一元多项式的定义,有如下一些说明和相关常用术语:
  • 多项式 (1.1.1)中,aixi称为 i 次项ai称为 i次项的 系数。特别的,a0称为 常数项
  • 类似于函数,多项式经常被简记为f(x),g(x)p(x),q(x)等。约定:两个多项式f(x),g(x)相等 当且仅当f(x),g(x)的同次项系数均相等,并记为 f(x)=g(x)
  • 习惯上,当f(x)=anxn++a0表示某一个已知非0多项式时,通常约定最高次项系数an0。此时anxn称为多项式的首项an称为首项系数。特别的,首项系数为1的多项式称为首一多项式。最高次项的次数n称为多项式f(x)次数,记作 degf(x),有时也简记为degf
    f(x)=anxn++a0表示一个未知多项式时,这样的表示方式相当于限定 f(x)是一个次数不超过 n的多项式,此时的an可能等于0。
  • 所有项系数均为0的多项式称为0多项式。特别约定:0多项式的次数记为。在后面讨论多项式的运算性质时会看到这样约定的好处。
  • 次数为0的多项式指的是只有非0常数项的多项式。0多项式不是0次多项式。
  • 本质上,一元多项式的系数决定了这个多项式。一元多项式anxn++a0(an0) 可以一一对应于其系数按次数降序排列而成的序列
    (an,an1,,a1,a0).
    这种表示多项式的方式称为多项式的系数表示
    一些数学软件(如Matlab)就是按系数表示的方式表示和存储多项式。这种表示方式和整数的表示方式是类似的。一个整数,例如314159,也可以表示为类似于多项式的形式:
    314159=3×105+1×104+4×103+1×102+5×101+9.
    由于这种结构上的相似性,多项式和整数有很多类似的性质,请大家比较记忆。

    备注 1.1.8.

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

定义 1.1.9.

f(x)=anxn+an1xn1++a1x+a0F[x], 对任意bF,将f(x)表示式里的xb代替,得到 F中的数
anbn+an1bn1++a1b+a0,
称为当x=bf(x)的值,记作f(b)。此时
f: FF, bf(b)
定义了数域F上的函数f(x),称f(x)为数域F上的多项式函数
在多项式函数中,多项式相当于函数的映射法则表达式。
f(x),g(x)F[x]。若f(x),g(x)作为多项式相等,则可知
bF, f(b)=g(b),
f(x),g(x)作为多项式函数也是一样的函数。这时,有一个自然的问题:f(x),g(x)作为多项式函数相等,是否也能推出f(x),g(x)作为多项式相等?
如果没有多项式的限制,由两个函数相同去推定其表达式一定一样是不对的。例如取f(x),g(x)都是 RR的函数,其中
f(x)=|x|,g(x)=x2.
虽然f(x),g(x)的表达式是不同的,但容易验证bR, f(b)=g(b)。所以函数相同不能保证表达式一定相同。
我们后面会说明:当我们限制f(x),g(x)都是数域F上的多项式,且 F是复数域C的子域时,多项式相等等价于多项式函数相等。有了这个结论后,在高等代数中,为了简便,我们通常会选择忽略二者的差异,将二者看成是一体两面。

备注 1.1.10.

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

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

下面来介绍一元多项式的基本运算。这些运算的定义都很自然。
f(x)=anxn+an1xn1++a0,
g(x)=bmxm+bm1xm1++b0,
是数域F上任给的两个多项式。
多项式加法
不妨设nm,令bm+1=bm+2==bn=0。定义f(x)g(x)的和为
f(x)+g(x)=(an+bn)xn+(an1+bn1)xn1++(a0+b0).
不难看出,f(x)+g(x)仍是数域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)=i=0naixi
由多项式加法性质 项 4 ,我们可以定义f(x)g(x)
f(x)g(x)=f(x)+(g(x)).
此种运算称为多项式的 减法。减法运算本质上是加法运算的逆运算。
多项式乘法
定义f(x)g(x)的积为
f(x)g(x)=cm+nxm+n+cm+n1xm+n1++c0,
其中
ck=i+j=kaibj=a0bk+a1bk1++akb0.
易见f(x)g(x)也是数域F上的多项式。我们把多项式的积运算称为多项式的乘法
特别地,常数cFf(x)的积为
cf(x)=canxn+can1xn1++ca0,
此种运算也称为cf(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))=(cf(x))g(x)=f(x)(cg(x))
  5. 1f(x)=f(x)
约定:对于任意的nN
(1)<n;(2).+n=;(3).()+()=.
于是,容易验证关于多项式和与积的次数有如下统一结论:
下面两个常用的推论,请读者自己验证。

1.1.14.

f(x),g(x)R[x],证明:f2(x)+g2(x)=0的充分必要条件是f(x)=g(x)=0
解答.
充分性显然,下面用反证法来证明必要性。
假设f(x)0g(x)0,则f(x),g(x)均不为0。(否则,f(x),g(x)中一个为0,另一个不为0。不妨设f(x)0,g(x)=0,则f2(x)+g2(x)=f2(x)0,与已知条件矛盾。)不妨设
f(x)=anxn+an1xn1++a0,
g(x)=bmxm+bm1++b0,
其中0anR,0bmRnm,则f2(x)+g2(x)的首项系数为an2an2+bn2,均非零。由此推出f2(x)+g2(x)0,与题设矛盾。因此f(x)=g(x)=0
  • 思考:上述结论在复数域C 上是否成立?

子节 1.1.4 相关Sage命令

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

备注 1.1.15.

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

练习 1.1.5 练习

基础题.

1.
证明:Q(i)={a+bi | a,bQ}是一个数域,其中i是虚数单位。
2.
求包含3的最小数域,并证明。
3.
f(x)=2x4+2x3x2+5x5,g(x)=4x2+3x2,
f(x)+g(x),f(x)g(x)
4.
f(x),g(x)F[x],证明:
(1.1.5)deg(cf(x))=degf(x),0cF,(1.1.6)deg(f(x)g(x))=degf(x)+degg(x).
5.
f(x),g(x)F[x],且 f(x)0g(x)0, 证明:
f(x)g(x)0.
6.
f(x),g(x)F[x],若 f(x)0f(x)g(x)=f(x)h(x),证明:
g(x)=h(x).
7.
对任意非零多项式f(x),证明:degf(f(x))=(degf(x))2

提高题.

8.
设数集F至少包含两个不同的数,证明:若F中任意两个数的差与商(除数非零)仍属于F,则F是一个数域。
9.
K, F是数域,
  1. 证明:KF是一个数域;
  2. 举例说明KF不一定是数域;
  3. 试证:KF是数域的充要条件是KFFK
10.
F是一个数域,且RFC。证明:或者F=R,或者F=C,二者必居其一。
11.
f(x),g(x)F[x],证明:
deg(f(x)+g(x))max{degf(x), degg(x)}.
12.
用多项式的系数序列来表示多项式(不限定升序或降序排列),写一个函数实现多项式的乘法,并验证 练习 1.1.5.3 手算获得的结论是否正确。
13.
f(x),g(x),h(x)R[x],满足x(f(x))2+x(g(x))2=(h(x))2。证明:
f(x)=g(x)=h(x)=0.
这个结论在复数域上成立否?若成立,请证明;若不成立,请举例说明。
14.
f(x)C[x]f(x2)=(f(x))2,求f(x)
15.
f(x)C[x],kZ+f(f(x))=(f(x))k,求f(x)

挑战题.

16.
F={0,1},在F上按如下方式定义加、减、乘、除(除数不为0)四种运算:
0+0=0,1+1=0,0+1=1+0=1;
00=0,11=0,01=10=1;
0×0=0,1×1=1,0×1=1×0=0
0÷1=0,1÷1=1.
此时F称为二元域
多项式的相关概念可以从数域推广到二元域上。请验证:当F是二元域时,取
f(x)=xF[x],g(x)=x2F[x],
f(x)g(x)作为函数是同一个函数。