程序?的数学:几何角度理解矩阵

原文链接

本文将带领读者以几何视角来理解矩阵,本文力求简洁,基本不涉及矩阵计算,相关概念请参阅相关教材,本文所有矩阵例子均使用二阶矩阵

空间与矩阵

矩阵的几何意义

矩阵是什么?从几何角度来看,每种矩阵都对应着一种特定的空间变换方式:

程序?的数学:几何角度理解矩阵
程序?的数学:几何角度理解矩阵
程序?的数学:几何角度理解矩阵

上图中的三个矩阵分别对应了空间的放大,斜切与旋转

点与图形

点/图形存在于空间之中,所以矩阵也就使他们发生了改变:

程序?的数学:几何角度理解矩阵
程序?的数学:几何角度理解矩阵

上图分别展示了矩阵变换前后点/图形的变化。

如上左图所示放大矩阵与剪切矩阵分别使点(-2,2)放生了不同的变化:

程序?的数学:几何角度理解矩阵

实际应用

相对于作用于空间,将矩阵变换应用于点/图形上是实际工作用经常遇到的一类问题:

程序?的数学:几何角度理解矩阵

如上图,将正方形逆时针旋转30度后,点ABCD所对应的坐标。
通常的方法会分别求出四个点的坐标,这样四个点相互独立计算,计算量大,且容易出错;
使用矩阵后,我们只需要求出变幻的矩阵,将四个点坐标与矩阵相称即可,工作量顿时降低了不少。
那么应当如果求得这个变换矩阵?

先别急,在此之前我们先说明一下如何表示点。

点与向量

在坐标系中,每一个向量都可以表示为一组基向量(线形无关)的和的形式,在直角坐标系中我们选取单位向量(1,0)与(0,1)作为一组基向量。
所以,对于任意的向量,都可以分解为X方向Y方向上的向量,在求得其对应的系数nm,则该向量可表示为nX+mY,该点则为(n,m):

程序?的数学:几何角度理解矩阵

如图,将向量在X,Y的分量求出分别为4X3Y,则该向量为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

程序?的数学:几何角度理解矩阵

小结

以上就是关于几何角度理解矩阵的基本知识了。
其实求出矩阵其实很简单:只要求出变换后的基向量,将其写成矩阵的形式即可。
由于线性变化原点是不移动的,后续我们还将讨论如何使用矩阵描述原点移动的变换。

相关推荐