简介
这一篇主要关注矩阵的代数运算,介绍关于矩阵的各种概念。
矩阵运算
这里主要介绍矩阵的乘法。回顾一下线性变换的概念,把矩阵$B$乘以向量$x$,它将$x$变换为向量$Bx$,如果这个向量又乘以矩阵$A$,结果得到向量$A(Bx)$。换一种说法,$A(Bx)$是由$x$经过复合映射变换所得的,我们就可以把这个复合映射表示为乘以一个矩阵的变换,此矩阵记为$AB$,即
$A(Bx)=(AB)x$
具体相乘的方法这里不再说明。
矩阵的逆
这个概念可以与乘法的倒数类比。$AA^{-1}=I$
可逆矩阵定理
可逆矩阵定理的作用在于它给出了许多重要概念的联系,详细介绍看这里。比如矩阵$A$的列的线性无关性与$Ax=b$的解的存在性关联起来。对于这一点,我的理解是线性无关使得取值空间(余定义域)为$R^{n}$,对于$b$和$x$向量也都在$R^{n}$这个空间里,故至少有一解。
分块矩阵
这个概念又是从另一个角度来看待矩阵,之前是把矩阵看作一个“表”(从整体的角度看),这个则是把它看作一组列向量(从部分的角度看)。分块矩阵的运算类比正常矩阵的运算。
矩阵因式分解
这里摘抄《线性代数及其应用》其中的一段话,对做机器学习很有启发:
矩阵A的因式分解是把A表示为两个或更多个矩阵的乘积,矩阵乘法是数据的综合(把两个或更多个线性变换的作用结合成一个矩阵),矩阵因式分解是数据的分解,在计算机科学的语言种,将A表示为矩阵的乘积是对A中数据的预处理,把这些数据组成两个或更多部分,这种结构可能更有用,或者更便于计算。
LU分解
LU分解主要用来解一系列具有相同系数矩阵的线性方程。
设$A$是m*n矩阵可以行化简为阶梯形而不必行对换,则$A$可写成形式$A=LU$,$L$是m*m下三角矩阵,主对角线元素全是$I$,$U$是$A$的一个等价的m*n阶梯形矩阵。下面直接来看$L$和$U$是如何构造的:
解$Ax=b$:
当$A=LU$,可以变成如下形式:
$Ly=b$
$Ux=y$
首先解$Ly=b$然后解$Ux=y$求得$x$。
LU分解算法
LU分解在本质上是高斯消元法的一种表达形式。实质上是将$A$通过初等行变换变成一个上三角矩阵,其变换矩阵就是一个单位下三角矩阵。这正是所谓的杜尔里特算法(Doolittle algorithm):从下至上地对矩阵A做初等行变换,将对角线左下方的元素变成零,然后再证明这些行变换的效果等同于左乘一系列单位下三角矩阵,这一系列单位下三角矩阵的乘积的逆就是L矩阵,它也是一个单位下三角矩阵。
参考文献
[1][线性代数及其应用]