【线性代数】2-6:三角矩阵( $A=LU$ and $A=LDU$ )

原文地址1:https://www.face2ai.com/Math-Linear-Algebra-Chapter-2-6转载请标明出处

Abstract: 如何将矩阵分解成三角矩阵
Keywords: A=LU,A=LDU,Factorization

三角矩阵

今晚苹果要新版本iPhone了,不知不觉iPhone已经十年了,然而我只用过iPhone4和6,技术的不断创新,给人们带来了方便,也改变了产业结构和生活方式,这应该与自然的变迁类似,无法阻挡的历史潮流,人类一切的进步都源自于对未知事物的探索,希望各位继续努力,为人类的进步,为人类与自然的和谐相处努力。

因数分解(Factorization)

因式分解,开始学的时候肯定是分解多项式,将一串长的式子分解成几个因式相乘的形式,矩阵也可以,把一个矩阵分解成几个矩阵相乘的形式,但是问题来了,从表述上看,多项式分解的结果是整体变得简单了,但是矩阵分解好像越分越多啊,是多了,但是多出来这些矩阵都很有特点,他们的形状固定,大部分元素是0.
回想一下消元的过程

A to U
E 21 A = [ 1 0 − 3 1 ] [ 2 1 6 8 ] = [ 2 1 0 5 ] = U E_{21}A= \begin{bmatrix}1&0\newline -3&1\end{bmatrix} \begin{bmatrix}2&1\newline 6&8\end{bmatrix}= \begin{bmatrix}2&1\newline 0&5\end{bmatrix}=U E21A=[1031][2168]=[2105]=U
U to A

E 21 − 1 U = [ 1 0 3 1 ] = [ 2 1 0 5 ] = [ 2 1 6 8 ] = A U E_{21}^{-1}U= \begin{bmatrix}1&0\newline 3&1\end{bmatrix}= \begin{bmatrix}2&1\newline 0&5\end{bmatrix}= \begin{bmatrix}2&1\newline 6&8\end{bmatrix}=A U E211U=[1031]=[2105]=[2168]=AU
从U到A的过程就是我们今天的男一号, A = L U A=LU A=LU

消元的解释说明

1: E − 1 E^{-1} E1 都是lower triangular 下三角矩阵,对角线元素全部为1

2: E − 1 E^{-1} E1 就是 L L L,把U变回A的系数矩阵

3:每个消元系数 l i j l_{ij} lij 只会把对应的(i,j)位置的元素干掉,不会影响其他位置,尤其是已经完成消元的位置

A = L U A=LU A=LU

这是不包含行交换的消元过程的矩阵形式,上三角矩阵U对角线上全是pivot,对角下为0,L的对角线全是1,对角线下面是消元的乘子。
有两条规律,总结如下

1:A的某行开头是0,那么对应的L的位置也是0
2:A的某列开头是0,那么对应的U的位置也是0

A = L U A=LU A=LU 成立的关键还是要回顾消元过程,当某元素(pivot)所在的列一下都是0了以后,做下一个pivot消元的时候,对已完成的,为0的列没有影响,但是后面的非零列是有影响的,大部分非零列已经不是原始的列了,这种做法能保证解空间不变,但是矩阵的列空间已经发生改变了,具体后面讲到列空间的时候会有说明。

A = L D U A=LDU A=LDU

A = L U A=LU A=LU 数学家们喜欢0,喜欢1,喜欢对称, A = L U A=LU A=LU 显然不那么对称,U对角线上是主元,L对角线上是1,这太不美观了
然后再分解一下,
Divide U by a diagonal natrix D that contains the pivots
啥意思?就是这个意思:
[ d 1         d 2         ⋱         d n ] [ 1 u 12 / d 1 u 13 / d 1 .   1 u 23 / d 2 .     ⋱ ⋮       1 ] \begin{bmatrix} d_1&\,&\,&\,\newline \,&d_2&\,&\,\newline \,&\,&\ddots&\,\newline \,&\,&\,&d_n\newline \end{bmatrix} \begin{bmatrix} 1&u_{12}/d_1&u_{13}/d_1&.\newline \,&1&u_{23}/d_2&.\newline \,&\,&\ddots&\vdots\newline \,&\,&\,&1\newline \end{bmatrix} [d1d2dn][1u12/d1u13/d1.1u23/d2.1]
如果除法不好理解那就当做 D − 1 U D^{-1}U D1U然后根据row model 或者 col model一看,发现上面式子没问题。
所以系数矩阵A就能分解成 A = L D U A=LDU A=LDU

Why

你一定跟我当时一样心中一万匹羊驼在奔腾,觉得折腾这玩意有啥用啊,折腾过来折腾过去,没啥用啊,这么弄的目的是啥嘛,但是当天晚上回家看数值分析的书,刚好也讲这个过程,原来这么做的目的是为了减轻计算,举个例子 A x = b Ax=b Ax=b这种计算过程在工程应用里非常常见,而且多半时间是A不变,不同的b来解不同的x,那么按照高斯消元法,每次要从头消元,因为b改变了增广矩阵,但是很多计算是冗余的,所以使用三角矩阵的好处就是可以大大减少冗余计算

第一步:就是把矩阵分解成 L U LU LU 或者 L D U LDU LDU 形式(factor)
第二步:通过回代,把x求出来(solve)

A x = b L U x = b c = L − 1 b . . . . . . ( 1 ) U x = c x = U − 1 c . . . . . . ( 2 ) Ax=b\\ LUx=b\\ c=L^{-1}b......(1)\\ Ux=c\\ x=U^{-1}c......(2) Ax=bLUx=bc=L1b......(1)Ux=cx=U1c......(2)
过程(1)(2)并不需要求逆,而是通过回代的过程进行,根据计算时间复杂度(也就是计算量,计算次数),factor的时间复杂度是 O ( 1 3 n 3 ) O(\frac{1}{3}n^3) O(31n3),solve的时间复杂度大概是 O ( n 2 ) O(n^2) O(n2),如果你对时间复杂度不了解,可以去看《算法导论》的最开始那一章,这个理论还是非常有用的,尤其是对研究算法的童鞋。通过回代而不是消元,能够降低不少多余的计算。

带状矩阵(band matrix)

带状矩阵,只有对角线附近元素不为0,其他位置都是0,这种矩阵factor的时间复杂度是 O ( n w 2 ) O(nw^2) O(nw2),solve的时间复杂度大概是 O ( 2 n w ) O(2nw) O(2nw) w是非零元素的个数

总结

本文知识点比较连贯,就不总结了,总结的是一点,如果看一本书看不太懂,可以看看别的书,或者别人的解释,兼听则明,然后就有可能豁然开朗。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值