关于线性代数


记得,是大二上学期学的线性代数。那年期末考试,线代还考了90多分,感觉也就如此。上研究生后,看的文献越来越多,才发现好多牛人对于线性代数,尤其是矩阵的使用,驾轻就熟。当年自己学的那两把刷子,根本不够用,也不会用,在文献面前,常常知难而退。究其原因,还是因为不知道线性代数到底在干什么,比如线性变化这个概念,我始终不理解。一个东西,如果不能深刻地了解他,就不能熟练地应用他。

前两天,终于找到了顾生写的,被刘老师称为,颠覆你所学过的线性代数知识的一篇博文。不过,他写的太简洁了。下面,我借助于R语言画图,再图文并茂解释一遍。

举一个例子,说明什么是线性变换。有一个向量:

$(x,y)’$

还有一个矩阵:

\[m=\left( \begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right)\]

那么,矩阵和向量相乘,就是线性变换: \(\left( \begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right)\left(\begin{array}{c} x \\ y \end{array} \right)=\left(\begin{array}{cc} a_{11} x + a_{12} y \\ a_{21} x + a_{22} y \end{array} \right)\)

单看数学公式,仍然不能体会什么是线性变换.

下面我们代入具体数据,让$(x,y)’$表示下图上的点:

而矩阵赋值为:

\[m=\left( \begin{array}{cc} 2 & 0 \\ 0 & 2 \end{array} \right)\]

用上面的矩阵,对上图中的每一点$(x,y)’$进行线性变换,即$(2x,2y)’$,结果如下:

从上图看,这个线性变换,就相当于把原来的正方形放大,具体来说,x轴方向和y轴方向都伸长为原来的2倍。

如果矩阵赋值为:

\[m=\left( \begin{array}{cc} 2 & 0 \\ 0 & 3 \end{array} \right)\]

用上面的矩阵,对每一点$(x,y)’$进行线性变换,即$(2x,3y)’$,结果如下:

这个线性变换,也是把单位正方形放大,不过,x轴和y轴两个方向上不同,x轴方向放大为2倍,而y轴方向放大为3倍。

如果矩阵赋值为:

\[m=\left( \begin{array}{cc} 2 & 1 \\ 1 & 2 \end{array} \right)\]

用上面的矩阵,对每一点$(x,y)’$进行线性变换,即$(2x+y,x+2y)’$,结果如下:

这种变换,与前面几个不同,这个是把单位正方形,伸缩变换为平行四边形。

矩阵m的行列式是什么?矩阵的行列式,就是上图中平行四边形的面积,不信你算算,是3.

再来考虑一特殊情况,如果矩阵赋值为:

\[m=\left( \begin{array}{cc} 2 & 0.2 \\ 1 & 0.2 \end{array} \right)\]

用上面的矩阵,对每一点$(x,y)’$进行线性变换,即$(2x+0.2y,x+0.22y)’$,结果如下:

可见,上面的线性变换,把单位正方形,压缩为很细长的平行四边形。进一步给矩阵赋值为:

\[m=\left( \begin{array}{cc} 2 & 0.02 \\ 1 & 0.02 \end{array} \right)\]

用上面的矩阵,对每一点$(x,y)’$进行线性变换,即$(2x+0.02y,x+0.02y)’$,结果如下:

当矩阵的第二列都是0时,单位正方形被压缩为一条线:

当一个变换矩阵,把单位正方形压缩为一条直线时,该变换是不可逆的,这也就是矩阵不可逆。意思是,不论采用何种变换,都不能使一条直线,再变成原来的正方形。这有点像一个正数乘以0,变成0,然后不论乘以多大的数,都不可能变为原来的正数。

我们也发现,直线的面积是0,所以上面矩阵行列式是0,而行列式是0的矩阵不可逆,与上述结论一致。


上篇: MCMC初步 下篇: 制作贝叶斯培训手册