MIT18.06线性代数课程笔记4a:矩阵的LU分解

课程简介

18.06是Gilbert Strang教授在MIT开的线性代数公开课,课程视频以及相关资料请见https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/index.htm

课程笔记

Strang先说了两个逆元的性质: (AB)1=B1A1 以及 (AT)1=(A1)T 。证明都很简单,直接验证 A1A=I 即可。

然后对高斯消元法做了矩阵化理解,从而引入 A=LU 分解,其中 U 是上三角矩阵。

1. 高斯消元法的矩阵化理解

MIT18.06线性代数课程笔记3b:矩阵的逆元中所述,高斯消元法用于求解线性方程组Ax=b,通过把增广矩阵 A¯=[A,b] 进行行变换使得 A 的部分变为上三角矩阵U,然后做反向代换即可对方程进行求解。其中行变换只有两种方法:1. 交换行 i 和行j的位置,变换矩阵 Pij  2. 从第 i 行减去第j行的 k 倍,目的是使得ij位置上为 0 ,变换矩阵为Eij。(其中 P 代表permutation,E代表elimination) Pij 很简单,就是交换单位阵的第 i 行和第j行,即

Pnm=1 iff. n=m and ni and nj1 iff. n=i and m=j1 iff. n=j and m=i0 otherwise

Eij 也很简单,即 [Eij]ij=k,[Eij]nn=1 for all n=1,2,

对矩阵做行变换等价于左乘变换矩阵。

综上高斯消元的结果是 EA=U ,其中 E Eij Pij 的乘积。

2. 对 E 的分析

在分析之前,先对E做一些限制: E 中不包括行交换操作,即E Eij 的乘积。

同时,因为 E 是从上向下的操作,所以Eij的顺序是固定的,例如对于 A3×3 ,有 E=E32E31E21

因为 Eij 是为了使得 Aij 变为 0 ,而变换的目标是使得A变为上三角矩阵 U ,故必然有i>j,所以 Eij 必然是下三角矩阵,而下三角矩阵相乘依旧是下三角矩阵,故 E 也是下三角矩阵。但是E的一个不好性能是 E32E31E21 E32 的操作和 E21 是耦合在一起的,即 E32 是第 3 行减去第2行的倍数,而第二行的结果受 E21 控制。

回忆最初的目的:对 A 做分解使得A=LU,而我们已知 EA=U ,故有 L=E1

若直接对 E 求逆,使用标准的求逆算法(Gauss-Jordan法),需要额外的O(N3)时间。

3. 求解 A=LU

这里就要用到前面所述的矩阵逆元的性质: (AB)1=B1A1 . 例如上诉 A3×3 的例子,我们有 E1=E121E131E132 。而对消除矩阵求逆的操作非常简单,直接对 [Eij]ij 取反,其他位置不变。进而求取 E1 等价于对 I 做一系列行变换。

进一步,记得我们对E做的限制:不包括行交换操作。于是将对 E1 的求导转换为一系列消除矩阵逆元的乘积还有一个好处:当我们依次(从右到左)执行消除矩阵逆元乘法的时候发现,我们是从下向上进行操作,每个操作之间都不耦合, E1=E121+E131+E1322I

具体地,计算 E1 的操作等价于:

L=I

for i=n1

​ for j=i11

L=E1ijL ,即 L 的第i行加上第 j

return L

分析循环体内的操作, L 的第i行加上第 j [Eij]ij倍,而 j<i ,所以第 j 行没有改变,仍然是I的第 j 行,从而L=E1ij+LI

综上,求解 L 的过程转换为对[Eij]ij取反相加的过程,每次的复杂度是 O(1) ,而最多有 O(N2) 次消除操作,故最终求解 L 的复杂度为O(N2)

这里还可以分析一下高斯消元的复杂度,因为衡量单元是矩阵维度 N ,所以考虑缩减矩阵的操作数,最后再整合。缩减矩阵维度的标准是第1列只有第一行为 1 其他均为0,从而需要执行 N1 次消元操作,而每次操作需要 O(N) 的乘法和减法,故有 T(N)=T(N1)+O(N2) 。将公式展开可得 T(N)=Ni=1i2N3/3=O(N3) 。所以高斯消元的整体复杂度是 O(N3) ,进而 A=LU 分解也是 O(N3) 。对于上诉级数求和,Strang说那个 1/3 的系数大致上是从对 N3 求导得到 3N2 中的 3 <script type="math/tex" id="MathJax-Element-111">3</script>得来,然后类比了级数求和和积分。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值