数值分析读书笔记(2)求解线性代数方程组的直接方法

数值分析读书笔记(2)求解线性代数方程组的直接方法

1.引言

矩阵的数值计算一般可以分为直接法和间接法

本章主要介绍 Ax=b A x = b 这类线性方程组求解的直接法,数值求解该方程组的基础思想是Gauss消元法

实质是通过一组满秩的初等行变换,将A保秩变换成一个三角矩阵U,此变换过程称为矩阵A的非奇异上三角化

我们的目的就是寻求一个矩阵P,使得PA=U,其中U是一个三角矩阵,其中 Ax=b A x = b Ux=b¯¯ U x = b ¯ 同解( b¯¯=Pb b ¯ = P b ),有效的生成一个P是我们主要研究的问题

2.初等下三角矩阵–Guass变换矩阵

回顾一下线性代数中的三个初等线性变换
- 数乘
- 倍加
- 互换

我们引入一个一般意义上的初等变换矩阵,它把许多常用的线性变换统一在一个框架里面,在数值线性代数中起着重要的意义

Def: 称 Cn×n C n × n 中如下形式的矩阵 E(u,v;σ) E ( u , v ; σ ) 初等矩阵:

E(u,v;σ)=IσuvH E ( u , v ; σ ) = I − σ u v H

其中非零向量 u,vCn,σ0 u , v ∈ C n , σ ≠ 0 是实或者复数,即
E(u,v;σ)=1σu1v1σu2v1σunv1σu1v21σu2v2σunv2σu1vnσu2vn1σunvn E ( u , v ; σ ) = ( 1 − σ u 1 v 1 − σ u 1 v 2 ⋯ − σ u 1 v n − σ u 2 v 1 1 − σ u 2 v 2 ⋯ − σ u 2 v n ⋮ ⋮ ⋱ ⋮ − σ u n v 1 − σ u n v 2 ⋯ 1 − σ u n v n )

选取不同的 uvσ u , v , σ ,可以得到许多常用的线性变换矩阵

  • 数乘( E1=E(ei,ei;1α) E 1 = E ( e i , e i ; 1 − α )
  • 倍加( E2=E(ei,ej;μ) E 2 = E ( e i , e j ; − μ )
  • 互换( E3=E(eiej,eiej;1) E 3 = E ( e i − e j , e i − e j ; 1 )

下面引出初等变换矩阵的一些重要的数学性质
1.两相同向量u,v组成的初等变换矩阵可交换,其积仍然为一个初等矩阵

E(u,v;σ)E(u,v;τ)=E(u,v;σ+τστvHu) E ( u , v ; σ ) E ( u , v ; τ ) = E ( u , v ; σ + τ − σ τ v H u )

证明:

E(u,v;σ)E(u,v;τ)=(IσuvH))(IτuvH)=IσuvHτuvH+(6)(7) (6) E ( u , v ; σ ) E ( u , v ; τ ) = ( I − σ u v H ) ) ( I − τ u v H ) (7) = I − σ u v H − τ u v H +

2.若 1σvHu0 1 − σ v H u ≠ 0 ,则初等矩阵E(u,v;\sigma)可逆,其逆矩阵也是初等矩阵

E1(u,v;σ)=E(u,v;τ),τ=σσvHu1 E − 1 ( u , v ; σ ) = E ( u , v ; τ ) , τ = σ σ v H u − 1

3.设 v v ⊥ 表示和 v v 正交的(n-1)维子空间
a.若 uv u ∉ v ⊥ ,则 E(u,v;σ) E ( u , v ; σ ) 有n个线性无关的特征向量,该组特征向量由u和 v v ⊥ 中任取一组基向量组成
b.若 uv u ∈ v ⊥ ,则 E(u,v;σ) E ( u , v ; σ ) 仅有n-1个线性无关的特征向量,该组特征向量由 v v ⊥ 中任取一组基向量组成

4. det(E(u,v;σ))=1σvHu d e t ( E ( u , v ; σ ) ) = 1 − σ v H u

5.对任意非零向量 a,bCn a , b ∈ C n ,必可适当选取 u,v,σ u , v , σ 使得

E(u,v;σ)a=b E ( u , v ; σ ) a = b

事实上只需要取 u,v,σ u , v , σ 满足

vHa0,σu=abvHa v H a ≠ 0 , σ u = a − b v H a

由初等变换矩阵引出Guass变换矩阵,我们选取

σ=1,u=lk=(0,,0,lk+1,,lnk)T,v=ek=(0,,0,1,0,,0)T,k=1,2,,n1 σ = − 1 , u = l k = ( 0 , ⋯ , 0 , l k + 1 , ⋯ , l n k ) T , v = e k = ( 0 , ⋯ , 0 , 1 , 0 , ⋯ , 0 ) T , k = 1 , 2 , ⋯ , n − 1

得到n-1个Guass变换矩阵

Lk(lk)E(lk,ek;1)=I+lkek=11lk+1,klk+2,kl′′nk111 L k ( l k ) ≡ E ( l k , e k ; − 1 ) = I + l k e k = ( 1 ⋱ 1 l k + 1 , k 1 l k + 2 , k 1 ⋮ ⋱ l " n k 1 )

下面给出Guass变换矩阵的一些性质

1. det(Lk)=1+eTklk=1 d e t ( L k ) = 1 + e k T l k = 1

2.Guass变换矩阵的逆只需要将 σ σ 从-1变成+1

3. L1(l1)L2(l2)Ln1(ln1)=1l21l31ln11l32ln21ln31 L 1 ( l 1 ) L 2 ( l 2 ) ⋯ L n − 1 ( l n − 1 ) = ( 1 l 21 1 l 31 l 32 1 ⋮ ⋮ ⋮ ⋱ l n 1 l n 2 l n 3 ⋯ 1 )

注意左乘的顺序

3.Gauss消元法

先介绍一下顺序Gauss消元法,大概分两步
- 消元过程
- 回代过程

在消元过程中,我们不断去左乘Gauss变换矩阵,不断将原矩阵的下三角部分一列列变成0,从而最终变换成一个上三角矩阵

需要注意的是,在一列列的消元过程中,我们需保证 aii0(i=1,2,,n) a i i ≠ 0 ( i = 1 , 2 , … , n ) ,所以需要利用行互换来保证此条件

当然这一切消元过程的前提是,矩阵A应该是非奇异的

经过n-1次的Gauss消元,我们可以得到一个上三角矩阵

L1n1L1kL12L11A(1)=A(n)x=L1n1L1kL12L11b(1)=b(n) L n − 1 − 1 ⋯ L k − 1 ⋯ L 2 − 1 L 1 − 1 A ( 1 ) = A ( n ) x = L n − 1 − 1 ⋯ L k − 1 ⋯ L 2 − 1 L 1 − 1 b ( 1 ) = b ( n )

在回代过程中,由于我们得到了一个上三角矩阵,那么就可以从最底行开始逐步解出x

Gauss消元法的复杂度是 O(n3) O ( n 3 ) ,高阶状态下比起克拉默法则运算量要小得多

Gauss消元法过程中,在对各列进行消元的时候,如果主元比较小的话,运算的结果会产生较大的误差,故引入Gauss列主元消元法,即在每一次利用主元消元的步骤之前,把该列中绝对值最大的数所在的行与主元所在的行进行交换

4.三角分解法

我们利用Gauss变换矩阵对Gauss消元法进行进一步的分析

L1n1L1kL12L11A(1)x=A(n)x=Ux L n − 1 − 1 ⋯ L k − 1 ⋯ L 2 − 1 L 1 − 1 A ( 1 ) x = A ( n ) x = U x

A=L1LkLn2Ln1U=(I+l1eT1)(I+ln2eTn2)(I+ln1eTn1)U=(I+l1eT1++ln1eTn1)U(8)(9)(10) (8) A = L 1 ⋯ L k ⋯ L n − 2 L n − 1 U (9) = ( I + l 1 e 1 T ) ⋯ ( I + l n − 2 e n − 2 T ) ( I + l n − 1 e n − 1 T ) U (10) = ( I + l 1 e 1 T + ⋯ + l n − 1 e n − 1 T ) U

由此引出矩阵的LU分解,又称Doolittle分解

A=1l21l31ln11l32ln21ln31u11u12u22u13u23u33u1nu2nu3nunn A = ( 1 l 21 1 l 31 l 32 1 ⋮ ⋮ ⋮ ⋱ l n 1 l n 2 l n 3 ⋯ 1 ) ( u 11 u 12 u 13 ⋯ u 1 n u 22 u 23 ⋯ u 2 n u 33 ⋯ u 3 n ⋱ ⋮ u n n )

这里再介绍一下Crout分解,即A=LU中的L是一个下三角矩阵,U是单位上三角矩阵

注意到某些特殊矩阵的三角分解也是比较特殊的,这里引入一类带状对角形矩阵

A=a11ar+1,1a1,s+1ar+1,s+1an,nrans,nann A = ( a 11 ⋯ a 1 , s + 1 ⋮ ⋱ ⋱ a r + 1 , 1 a r + 1 , s + 1 a n − s , n ⋱ ⋱ a n , n − r a n n )

上半带宽为s,下半带宽为r,存在LU分解,其中L是下半带宽为r的单位下三角矩阵,U是上半带宽为s的上三角矩阵

对于r=s=1的这一类更加特殊的矩阵,称为三对角矩阵,对于此类矩阵的三角分解,介绍一种“追赶法”

首先做Crout分解

A=LU=p1r20p2rn1pn1rn0pn10q11q210qn11 A = L U = ( p 1 0 r 2 p 2 ⋱ ⋱ r n − 1 p n − 1 0 r n p n ) ( 1 q 1 0 1 q 2 ⋱ ⋱ 1 q n − 1 0 1 )

然后分两步解决此类问题
追:解 Ly=b L y = b
赶:解 Ux=y U x = y

注意到正定对称矩阵的三角分解也是特殊的,这里引入Cholesky分解

首先利用Doolittle分解,得 A=LU A = L U ,对U进一步提取对角矩阵 diag(u11,,unn) d i a g ( u 11 , … , u n n ) ,从而有

U=DD1U=D(D1U)=DU0 U = D D − 1 U = D ( D − 1 U ) = D U 0

故, A=LDU0 A = L D U 0 ,由于A对称正定, AT=A A T = A ,所以有
AT=(LDU0)T=UT0DLT=A=LDU0 A T = ( L D U 0 ) T = U 0 T D L T = A = L D U 0

由于分解的唯一性,可知 LT=U0 L T = U 0 ,从而有
A=LDLT A = L D L T

我们可以记, D1/2=diag(u11,,unn) D 1 / 2 = d i a g ( u 11 , … , u n n ) ,从而
A=LD1/2D1/2LT=LD1/2(LD1/2)T=L1LT1 A = L D 1 / 2 D 1 / 2 L T = L D 1 / 2 ( L D 1 / 2 ) T = L 1 L 1 T

此种分解手段称为Cholesky分解,限定对角元素为正,此类分解唯一

上述的Cholesky分解中涉及了开方的运算,下面介绍一种改进的平方根法

易知, A=LDLT A = L D L T ,则 Ax=LDLTx A x = L D L T x

先解 Ly=b L y = b ,后解 LTx=D1y L T x = D − 1 y ,其中D的逆只需要将对角元素取倒数即可

5.向量和矩阵的范数

范数是比长度更为一般的概念,有了范数就可以更好的去测度误差的大小

关于向量范数

Def:VR/C线VxifNxx,1.2.3. D e f : V 是 数 域 R / C 上 的 线 性 空 间 , 对 于 V 中 任 意 的 元 素 x , i f 存 在 一 个 唯 一 的 实 函 数 N ( x ) 与 之 对 应 , 记 为 ‖ x ‖ , 而 且 需 满 足 三 个 条 件 1. 非 负 正 定 , 2. 齐 次 性 , 3. 三 角 不 等 式

对于非负正定,当仅当x=0,有N(x)=0,否则N(x)> 0;

对于齐次性,有

αx=|α|x,αK ‖ α x ‖ = | α | ‖ x ‖ , α ∈ K

对于三角不等式,有

x+yx+y,x,yV ‖ x + y ‖ ≤ ‖ x ‖ + ‖ y ‖ , ∀ x , y ∈ V

这里介绍几种常见的向量范数

  • l1 l 1 − 范 数 向量中的元素的绝对值之和
  • l2 l 2 − 范 数 向量中的元素的绝对值的平方加起来然后开方
  • l l ∞ − 范 数 向量元素中的最大绝对值(使用Cauchy-Schwarz不等式证明三角不等式)
  • lp l p − 范 数 向量中的元素的绝对值的p次方加起来然后开p次方根(利用赫尔德不等式即可证明三角不等式)

在最优化理论中可能会涉及加权范数,A为对称正定矩阵, (xTAx)1/2 ( x T A x ) 1 / 2 是一种向量范数,记为 xA ‖ x ‖ A

在无限维线性空间中,比如在[a,b]区间中,对于所有的实连续函数集合C[a,b],对于其中的一个元素f(x)也是有类似定义的范数

  • 1范数
    f(x)1=ba|f(x)|dx ‖ f ( x ) ‖ 1 = ∫ a b | f ( x ) | d x
  • p范数
    f(x)p=(ba|f(x)|pdx)1p ‖ f ( x ) ‖ p = ( ∫ a b | f ( x ) | p d x ) 1 p
  • ∞范数
    f(x)=max|f(x)|,axb ‖ f ( x ) ‖ ∞ = m a x | f ( x ) | , a ≤ x ≤ b

下面介绍一下范数的等价性

对于任意两个定义好的范数,存在两个与向量x无关的非零正常数c1,c2,有

c1xαxβc2xα c 1 ‖ x ‖ α ≤ ‖ x ‖ β ≤ c 2 ‖ x ‖ α

称两个范数等价

不难验证,此处的等价性满足数学定义中的等价性的三个条件,即自反,对称,传递

关于矩阵范数

矩阵范数不仅仅满足非负正定,齐次和三角不等式,而且须满足矩阵相乘的相容性,即

ABAB ‖ A B ‖ ≤ ‖ A ‖ ‖ B ‖

这里给出一类特殊的范数, Frobenius范数

AF=(j=1mi=0n|aij|2)12 ‖ A ‖ F = ( ∑ j = 1 m ∑ i = 0 n | a i j | 2 ) 1 2

对于 Cm×n C m × n 上面的任意一种向量诱导范数,都有 I=maxx=1{Ix=1} ‖ I ‖ = max ‖ x ‖ = 1 { ‖ I x ‖ = 1 }

这里给出一种范数的定义,即诱导矩阵范数,诱导矩阵范数和向量范数密切相关

定义:设在两个向量空间 Cm,Cn C m , C n 中存在向量范数 V ‖ ∙ ‖ V , 定义在 Cm×n C m × n 空间上的矩阵A的由向量范数 V ‖ ∙ ‖ V 诱导所给出的矩阵范数为(其中x不为零向量)

AV=maxAxVxV ‖ A ‖ V = m a x ‖ A x ‖ V ‖ x ‖ V

我们为了解决这个最大值的问题,继续等价定义来优化这个问题

AV=maxAxVxV=maxAxV ‖ A ‖ V = m a x ‖ A x ‖ V ‖ x ‖ V = m a x ‖ A x ‖ V
其中第一个max条件为x不为零向量,第二个max条件为 xV=1 ‖ x ‖ V = 1

我们利用诱导范数的定义可以从原来的向量范数中诱导出三种范数,分别是

1范数:对矩阵的每一列中的元素取绝对值之后求和,然后选取其中的最大列作为1范数
2范数:矩阵的最大奇异值,也就是矩阵与矩阵的转置的乘积的最大特征值
无穷范数:对于矩阵的每一行的元素取绝对值之后求和,然后选取其中的最大行作为无穷范数

关于矩阵的应用,这里引入一个Banach引理

设矩阵A属于n*m的复矩阵空间,对于该空间上的某种矩阵范数 V ‖ ∙ ‖ V ,有 AV<1 ‖ A ‖ V < 1 ,则矩阵 I±A ( I ± A ) 非奇异,且有

(IA)1VI1A ‖ ( I − A ) − 1 ‖ V ≤ ‖ I ‖ 1 − ‖ A ‖

给出矩阵谱半径的定义

矩阵的谱半径为矩阵的最大特征值,关于矩阵的谱半径,它不超过其任意一种矩阵范数(当矩阵是Hermite矩阵时,矩阵的2范数恰好等于矩阵的谱半径)

继续给出线性方程组中条件数的定义

在某一矩阵空间中,对于某一矩阵范数,矩阵的条件数=矩阵的范数×矩阵的逆的范数,即

Cond(A)=AV×A1V C o n d ( A ) = ‖ A ‖ V × ‖ A − 1 ‖ V

对于矩阵的条件数来说,它显然大于等于1,当矩阵恰好是正交矩阵的时候,矩阵的条件数恰好等于1
当矩阵为对称阵,对应的矩阵范数为2范数的时候,此时的条件数称之为谱条件数,其值等于最大特征值除以最小特征值,然后取绝对值

你可能感兴趣的:(数值分析)