线性代数学习笔记(二)

高斯消元法 解 线性方程

对于Ax=b:

1
2
3
4
5
for i := 1 to n-1:
    for j := i+1 to n:
        if a(i,j)==0:
            substitute row j with some row below j
        row j := row j - row i * a(j,i) / a(i,i)

结合矩阵相乘的row picture来看,高斯消元每一步均可看做是一个矩阵E乘以A,例如:

Ei,jA=110010001a1a2a3=a1a1+a2a3 Ei,jA=[100110001][a1a2a3]=[a1a1+a2a3]

Eij乘以A得到EA的意义是:第一行结果不变,第二行结果是原第一行加上原第二行,第三行结果不变。将所有Eij相乘(包括逆向迭代的过程),得到的结果就是A的逆矩阵(1.如果有逆的话;2.不考虑行交换):A-1Ax = Ix = x

将b并入A,得到增广矩阵 [A b],目的是让对A的操作均等效在b中(相当于Eij乘以b),之后对增广矩阵进行高斯消元得到 [A-1A A-1b],即 [ I  A-1b],A-1b即为线性方程的解。

总结:1. 构造增广矩阵;2. 对增广矩阵进行高斯消元。

逆矩阵

判断A是否可逆

这里讨论的逆矩阵都是方阵的逆。假如A是m*n的,B是n*m的,AB=Im,BA=In,我们似乎能定义:B就是非方阵A的逆矩阵。

为什么不讨论非方阵矩阵的逆?可以证明上述情况下,m=n,也就是A必须是方阵。

Quora的一个直观解释是,我们可以从“线性变换”的角度看这个问题:一个m*n的矩阵A,可以看做 n维空间 到 m维空间 的一个转化。它的逆矩阵是 m维空间 到 n维空间 的一个转化。假如n>m,那么A的转化就是“高维到低维”的一个转化,也就是不可逆的(我们可以从人得到影子,但是无法从影子得到人)。

如果A满足以下条件之一,A就是可逆的:

  1. 消元之后有n个主元pivot(也就是A满秩)   or
  2. Ax=0无非零解(否则(左)A-1Ax=x=(右)A-10=0)  or
  3. A的行列式不等于0

利用Gauss-Jordan消元法求A-1

设A-1=[ a b; c d],AA-1按照column picture可以看做两个线性方程:A*[a;c]=[1;0]和A*[b;d]=[0;1],将这两个方程同时解(也就是增广矩阵右侧是矩阵I)就是Gauss-Jordan消元法:

A1[AI]=[IA1] A−1[AI]=[IA−1]

将求逆过程看做对系数矩阵 [A I] 进行高斯消元,将所有Eij相乘(见高斯消元)得到A的逆矩阵。

总结:1. 构造大的增广矩阵;2. 对增广矩阵进行高斯消元。

从GJ消元法得到的一个不大不小的推论:假如L是下三角矩阵,那么L的逆也是下三角矩阵(考虑求L的逆的过程即可得出)。

注:单位矩阵,常标注为 I (identity matrix),但有时也被标为 E(elementary matrix)。

矩阵的LU分解

L=Lower,是一个下三角矩阵, U=Upper,是一个上三角矩阵。高斯消元的过程可以理解为A的LU分解:

  • U就是消元之后的系数矩阵
  • L是高斯消元每一步之积E的逆,EA=U,A=LU,L的对角线是1,下三角矩阵中每个元素 l(i,j) 都是高斯消元的系数 c(i,j)  
  • (E也是下三角矩阵,对角线也等于1,但是下三角中每个元素就没有这个性质)

可以按照row picture结合高斯消元的步骤来理解:

(row 3 of U) = (row 3 of A) - c(3,1)*(row 1 of U) - c(3,2)*(row 2 of U)  =>高斯消元的步骤

(row 3 of A) =  c(3,1)*(row 1 of U) + c(3,2)*(row 2 of U) + 1*(row 3 of U)   =>row picture的含义

U还能再分解为DU,D=diagonal是对角线矩阵,对角线元素等于U的主元(U的每一行都要除以相应的主元)。

以上假设A不需要进行行交换,有时需要对A的行进行调整,就需要permutation matrice P:PA=LU (这就是matlab函数lu的参数意义)

转置矩阵

  • (AB)T = BT AT
  • (A-1)T = (AT)-1

AB是B的行的组合,BT AT是BT的列的组合。对称矩阵的逆还是对称的。任何矩阵乘以其转置得到一个对称矩阵:(RRT)T==RTTRT=RRT.对称矩阵分解成LDU后,L与U互为转置。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值