§2.3 范数与条件数

 

在分析方程组的解的误差及迭代法的收敛时,常产生一个问题,即如何判断向量x的“大小”,对矩阵也有类似的问题。本节介绍n维向量和n阶矩阵的范数。

2..1 向量范数

定义2.3.1 xyn维向量空间Rn中的任意向量,向量范数是定义在Rn上的一个实值函数,它满足以下三个条件:

       (1) 非负性 ≥0,当且仅当x0时,等号成立。

       (2)  齐次性 对于任意实数k

       (3)  三角不等式 

容易看出,向量范数是以n维向量空间Rn为定义域的一种特殊函数——非负实函数,实数的绝对值,复数的模,三维向量的模都满足以上三条,n维向量的范数概念是它们的自然推广。

x(x1x2,…,xn)T,在n维向量空间Rn中常使用的向量范数有三种:

(1)      1范数

(2)      欧几里德范数(或2范数)

(3)      无穷范数(或最大模范数)

其中2范数就是按向量内积定义的范数,一般我们把定义了范数的向量空间,称为赋范向量空间。可以证明,以上三种范数都满足定义2.3.1。由定义可知,同一个向量在不同意义下的范数值可以是不同的。

  【例2.3.1x(1,-21)T,则=4,=6,=2

y(100)T, 1

定义2.3.2 设有向量序列x(1)x(2),…,x(k),…,如果存在同维向量x,使得:,其中表示向量的任意一种范数,则称向量序列依范数收敛于向量x,记为:

容易证明,对于前面三种范数中的任意一种,等价于r =12,…,n。也就是说,向量序列的依范数收敛等价于依分量收敛。

由例2.3.1可知,一个向量在不同意义下的范数值可以是不同的,但它们在向量序列的收敛性上是等价的,即向量序列按某一种范数收敛时,按另外的两种范数也一定收敛。

关于向量范数我们有以下一些结论。

定理2.3.1  对于任何xRn,有

定义2.3.3  对于任意两种范数,若存在正常数c1c2使得:

c1c2c1

则称两个范数是等价的,范数的等价关系具有传递性。

定理2.3.2  n维向量空间Rn上的一切向量范数相互等价。

从以上定理看出,当向量的任一种范数趋于零时,其它各种范数也趋于零。因此讨论向量序列的收敛性时,可不指明使用的何种范数;证明时,也只要就某一种等价范数证明就行了

2..2 矩阵范数

利用向量范数,可以定义n阶方阵A的矩阵范数

定义2.3.  An阶方阵,xRn,令

为矩阵A的范数。

    它可以理解为A作为线性变换,作用于不同的x后,能将x的范数放大的最大倍数。这样定义的范数有如下性质:

      (1)  0 并且,当且仅当 A是零矩阵时,等号成立;

      (2)  ,其中k是任意一个实数;

     (3) 设AB是两个同阶方阵,有:

(4)      AB是两个同阶方阵,有:

(5)      An阶方阵,xRn,有:

矩阵范数最常用的有以下几种:

(1) 列和(1)范数:

(2) 行和(无穷)范数:

(3) 谱(2)范数:,其中 ATA的绝对值最大特征值;

(4) F范数:

它们分别与向量的范数对应,即用一种向量范数可定义相应的矩阵范数。

矩阵范数还有一种与向量范数类似的定义方式,即将满足前4条性质的实数称为矩阵范数。可以证明上述范数必定满足这4个条件。这样,将第5条性质称为相容性,即满足条件5的向量范数与矩阵范数是相容的。对于上面定义的向量范数与矩阵范数是相容的,但对于任意定义的范数,相容性未必成立。

【例2.3.2】设矩阵,求

解:列范数 max{2,5,2}5,行范数 max{3,4,2}4

谱范数 

    类似向量序列的收敛,可以定义矩阵序列的收敛。

    定义2.3.5  设有矩阵序列A(1)A(2),…,A(k),…,如果存在同阶矩阵A,满足:0,则称矩阵序列收敛于n阶矩阵A

定理2.3.3  A(k)()n×nA()n×n,则矩阵序列A(k)收敛于矩阵A的充要条件是:rc=12,…,n

2..3 谱半径

定义2.3.6 An阶方阵,A的特征值为(l2,…,n),则称:

A的谱半径。

定理2.3.4  矩阵谱半径和矩阵范数有如下关系:

    证 设A的任一特征值,为对应的特征向量,则有:

两边取任意范数,并利用矩阵范数的相容性,可得:

因为0,所以0,上式两边消去后有:l2,…,n,所以:

定理2.3.5  An阶方阵,A的各次幂组成的矩阵序列EAA2,…,Ar,…收敛于零,即0的充要条件是l

【例2.3.3】设,求

解 显然,列范数4,行范数4,下面计算2范数(谱范数)

由于矩阵A为对称矩阵,即ATA,所以有;

0

可得,显然之模最大。

所以2范数

下面计算A的谱半径

所以,显然之模最大,

所以

这里,我们指出,对于实对称矩阵A,有

2..4 条件数及病态方程组

线性方程组Axb的解是由系数阵A及右端常数向量b决定的。由实际问题中得到的方程组中A的元素和b的分量,总不可避免地带有误差,因此也必然对解向量x产生影响。这就提出一个问题:当A有误差Ab有误差b时,解向量x有多大误差?即当Ab有微小变化时,x的变化有多大?若Ab的微小变化,也只导致x的微小变化,则称此问题是“良态”的;反之,若Ab的微小变化会导致x的很大变化,则称此问题为“病态”问题。在以下的讨论中,设A非奇异,b0,所以‖x‖≠0

⑴ 设Axb中仅b向量有误差b,对应的解x发生误差x即:

A(xx)bb

注意到Axb,所以有:Axb。若A非奇异,有xb,则可得:

,又因为,所以

上面两式相除,有:                   (*)

x的相对误差小于等于b的相对误差的倍。

A有误差Ab无误差,此时解为:

同理注意到Axb,有:AxAxAx0,两边同乘,并移项得:

*x=-*Ax*A*x

两边除以,得:

一般讲*A是一个微小元素组成的矩阵,故相当小,10总能成立,解出下式:      (**)

它反映了x的相对误差和A的相对误差的关系,不难分析出,当‖A‖增大时,右端分子增大,分母减小,右端的值增大。

⑶ 由以上分析不难看出,当bA一定时,的大小,决定了x的相对误差限。越大时,x可能产生的相对误差越大,即问题的“病态”程度越严重。同时,我们看出,Axb的“病态”程度,与A的元素有关,而与b的分量是无关的。为此,我们有以下定义:

定义2.3.6 An阶非奇异方阵,则称A的条件数,记为:

cond(A)

由此,式(*)(**)可分别改写为:

由于选用的范数不同,条件数也不同,所以在有必要时,可记为:

()

由于1,可知cond(A)总是大于等于1的数。条件数反映了方程组的“病态”程度。条件数越小,方程组的性态越好;条件数很大时,称方程组为病态方程组。但多大的条件数才算病态则应视具体问题而定,病态的说法只是相对而言。

条件数的计算是困难的,这首先在于要算A的逆,而求A的逆比解Axb的工作量还大,当A确实为病态时,A的逆也求不准确;其次要求范数,特别是求2范数又十分困难,因此实际工作中一般不先去判断方程组的病态。但是必须明白,在解决实际问题的全过程中,发现结果有问题,同时数学模型中有线性方程组出现,则方程组的病态可能是出问题的环节之一。病态方程组无论选用什么方法去解,都不能根本解决原始误差的扩大,即使采用全主元消元法也不行。可以试用加大计算机字长,比如用双精度字长计算,或可使问题相对得到解决。如仍不行,则最好考虑修改数学模型,避开病态方程组。如在拟合问题中出现的正规方程组,就往往呈现病态,此时解决问题的方法之一是避开正规方程组,采用正交多项式拟合的方法,尽管后者比前者在理论上和实际计算中都复杂得多。

【例2.3.4n阶希尔伯特矩阵

n较高时,是有名的病态矩阵。在函数逼近时,有时得到方程组Hnxb,当n稍高,用任何方法都难以解出理想的结果。考查它的条件数如下表:

希尔伯特矩阵条件数表

N

cond1(Hn)

cond2(Hn)

cond(Hn)

cond2(Hn)

3

748

5.24×102

748

 

4

 

1.55×104

 

 

5

 

4.77×105

 

 

6

 

1.50×107

2.9×107

 

7

 

4.75×108

 

 

8

 

1.53×1010

 

 

9

 

4.93×1011

 

 

10

 

1.60×1013

 

 

可见Hnn稍高时,即呈严重病态。

【例2.3.5】求H2的条件数(H2)(H2)(H2)

解:⑴令,解得:

,因为H2对称,则1.2676

由于,则令:

,解得:

同理对称,所以15.2111

H2的条件数cond2(H2)×1.2676×15.21111902816

18,所以cond1(H2)×27

⑶ 同理(H2)×27

【例2.3.6】求H3的条件数(H3)(H3)(H3)

    ,由此可得:(H3)11/6×408748。同理,(H3)748