程序?的数学:几何角度理解矩阵
本文将带领读者以几何视角来理解矩阵,本文力求简洁,基本不涉及矩阵计算,相关概念请参阅相关教材,本文所有矩阵例子均使用二阶矩阵
空间与矩阵
矩阵的几何意义
矩阵是什么?从几何角度来看,每种矩阵都对应着一种特定的空间变换方式:
上图中的三个矩阵分别对应了空间的放大,斜切与旋转
点与图形
点/图形存在于空间之中,所以矩阵也就使他们发生了改变:
上图分别展示了矩阵变换前后点/图形的变化。
如上左图所示放大矩阵与剪切矩阵分别使点(-2,2)放生了不同的变化:
实际应用
相对于作用于空间,将矩阵变换应用于点/图形上是实际工作用经常遇到的一类问题:
如上图,将正方形逆时针旋转30度后,点ABCD所对应的坐标。
通常的方法会分别求出四个点的坐标,这样四个点相互独立计算,计算量大,且容易出错;
使用矩阵后,我们只需要求出变幻的矩阵,将四个点坐标与矩阵相称即可,工作量顿时降低了不少。
那么应当如果求得这个变换矩阵?
先别急,在此之前我们先说明一下如何表示点。
点与向量
在坐标系中,每一个向量都可以表示为一组基向量(线形无关)的和的形式,在直角坐标系中我们选取单位向量(1,0)与(0,1)作为一组基向量。
所以,对于任意的向量,都可以分解为X方向
与Y方向
上的向量,在求得其对应的系数n
与m
,则该向量可表示为nX+mY
,该点则为(n,m)
:
如图,将向量在X,Y的分量求出分别为4X
与3Y
,则该向量为4X+3Y
,该点为(4,3)
。
如此一来我们便将点与基向量关联起来了,那么这样表示意义何在?
变中不变
对于任意的向量nX+mY
,矩阵变换前后其系数将保持不变,而这一过程中变换的仅是基向量:
由于点与基向量是相互关联的,即可通过求出变换后的基向量来表示变换后点的坐标:
如上所示,我们只要求出了变换后的一对基向量i'
,j'
即可得到变换矩阵。
小试牛刀
现在,我们用几个简单的例子来小试牛刀:
求旋转矩阵
如图求出顺时针旋转90度的变换矩阵
该变换之后的基向量i'
由(1,0)变为(0,-1),基向量j'
由(0,-1)变为(1,0),所以顺时针旋转90度所对应的矩阵A为:
0 1 -1 0
求剪切矩阵
如图求所对应剪切矩阵
该变换之后的基向量i'
由(1,0)变为(1,1),基向量j'
不变,所以顺时针旋转90度所对应的矩阵A为:
1 0 1 1
应用
好了现在我们来求解前文那道旋转正方形的问题
对于逆时针旋转30度,我们可得旋转后的图形:
如上图可知旋转后的基向量i'
为(Rcosθ,Rsinθ),基向量j'
为(-Rsinθ,Rcosθ)
其中R为1,θ=30°
带入的i'
= ((√3)/2,1/2)j'
= (-1/2,(√3)/2 )
所以该变换所对应的矩阵A为
(√3)/2 -1/2 1/2 (√3)/2
小结
以上就是关于几何角度理解矩阵的基本知识了。
其实求出矩阵其实很简单:只要求出变换后的基向量,将其写成矩阵的形式即可。
由于线性变化原点是不移动的,后续我们还将讨论如何使用矩阵描述原点移动的变换。