线性代数在科学领域有很多应用的场景,如下:

线性代数矩阵学习心得(由浅入深娓娓道来)(1)

矩阵,是线性代数中涉及的内容,

线性代数矩阵学习心得(由浅入深娓娓道来)(2)

线性代数是用来描述状态和变化的,而矩阵是存储状态和变化的信息的媒介,可以分为状态(静态)和变化(动态)信息来看待。

描述一个事物的状态需要在一个选好的坐标系(什么样的向量空间)中进行,所以矩阵所包含的信息从来都是成对出现(坐标值和坐标系)。而基就是坐标系的信息,可以将其拆分出来。

当把矩阵以动态信息来看待时,其信息的侧重点在于变化二字。这时的矩阵可以看做是一个方程。

通过矩阵内所描述的变化规则从一个状态变换到另一个状态。变换可以理解为事物本身的变化,也可以理解为坐标系的变化。


矩阵的本质:

探讨矩阵的本质的话,可以先看这篇文章:

理解矩阵(最通俗易懂的教程——高数-线性代数-矩阵

其思路概括来说如下:

换言之,矩阵的乘法,本质是一种运动。但除此以外,还有另外一种理解方式。

我们知道,运动是相对的,把[-1,2]变成[5,2],除了“移动”,还可以通过变换坐标系的方式实现。也就是说,找到这样的一个坐标系,在那里,同样的一个向量可以表示为[5,2]。

在这个情况下,对上面那个矩阵相乘例子而言,里面的那个2x2方阵就可以理解为一个坐标系,在这个坐标系下,[-1,2]这个向量可以表示为[5,2]。


比如上面这个动图中,通过坐标系变化,把红色向量[0,1]、绿色向量[1,0]变成了[3,0]和[1,-2]。

因此,矩阵的实质就是将坐标整体线性变换


矩阵的基本定义:

线性代数矩阵学习心得(由浅入深娓娓道来)(3)

矩阵的运算:


矩阵的本质就是线性方程式,两者是一一对应关系。如果从线性方程式的角度,理解矩阵乘法就毫无难度。

下面是一组线性方程式。


线性代数矩阵学习心得(由浅入深娓娓道来)(4)

矩阵的最初目的,只是为线性方程组提供一个简写形式。

线性代数矩阵学习心得(由浅入深娓娓道来)(5)

老实说,从上面这种写法,已经能看出矩阵乘法的规则了:系数矩阵第一行的2和1,各自与 x 和 y 的乘积之和,等于3。不过,这不算严格的证明,只是线性方程式转为矩阵的书写规则。

下面才是严格的证明。有三组未知数 x、y 和 t,其中 x 和 y 的关系如下。

线性代数矩阵学习心得(由浅入深娓娓道来)(6)

x 和 t 的关系如下。

线性代数矩阵学习心得(由浅入深娓娓道来)(7)

有了这两组方程式,就可以求 y 和 t 的关系。从矩阵来看,很显然,只要把第二个矩阵代入第一个矩阵即可。

线性代数矩阵学习心得(由浅入深娓娓道来)(8)

从方程式来看,也可以把第二个方程组代入第一个方程组。



线性代数矩阵学习心得(由浅入深娓娓道来)(9)

上面的方程组可以整理成下面的形式。

线性代数矩阵学习心得(由浅入深娓娓道来)(10)

最后那个矩阵等式,与前面的矩阵等式一对照,就会得到下面的关系。

线性代数矩阵学习心得(由浅入深娓娓道来)(11)

矩阵乘法的计算规则,从而得到证明。




矩阵相乘的应用:


先看一个例子:

某公司有四个工厂生产三种产品,已知每种产品的产量,利润和占地空间,因为工厂设在不同的地方,所以老板想调整一下各个工厂的产品输出,所以你告诉老板每个工厂的现有利润和占地空间。

产量:吨

工厂\产品P1p2p3甲524乙382丙604丁016

利润:万元 空间:平方米

产品利润空间P124P213P332

一般求解是这样的:产量利润=总利润,产量空间=总空间

所以就是那12个结果,都会算

如果用矩阵来表示呢

线性代数矩阵学习心得(由浅入深娓娓道来)(12)

直接拿(产量)*(利润,空间)就能直观的看到结果了。

这里是矩阵乘法的简单应用。


4X4齐次矩阵

两条平行线会相交吗?

在没有认识到齐次空间之前,我们知道两条平行线是不能相交的,但是两条平行线真的不能相交吗?我们看下面这幅图,我们都知道两条铁轨是平行的,但是这两条平行的铁轨在无穷远处会相交于一点.这对吗?在笛卡尔2D坐标系中, 我们用 (x, y) 表示笛卡尔空间中的一个 2D 点,而处于无限远处的点 (∞,∞) 在笛卡尔空间里是没有意义的。所以我们是无法解释这种现象的,但是在齐次空间中,我们可以解释这种现象.

线性代数矩阵学习心得(由浅入深娓娓道来)(13)

带着上面的两个问题,我们开始我们的齐次坐标之旅.其实齐次空间的出现主要是用于投影问题的解决.所谓齐次坐标就是将一个原本是n维的向量用一个n 1维向量来表示. 4D齐次空间有4个分量分别是(x,y,z,w),第四个是w,称为齐次坐标.那么在3D笛卡尔坐标系中可以使用其次坐标表示为(x/w,y/w,z/w).


那么我们就解决第一个问题,解释两条平行线投射到一个2D平面中相交于一点.我们知道在2D笛卡尔坐标系中用Ax By C= 0表示一条直线.两条平行直线相交的话,要关联两个方程式.如下所示.


线性代数矩阵学习心得(由浅入深娓娓道来)(14)

在笛卡尔坐标系中,上述的两者如果相交,那么C=D=0,也就是两者是同一条过原点的直线.显然是解释不了两条平行线相交于一点的.如果我们引入齐次坐标的概念的话,我们把x/w, y/w 代替 x, y 放到投影空间里,如下所示.


线性代数矩阵学习心得(由浅入深娓娓道来)(15)

上面的方程式组可以转换为下面的方程式组.

线性代数矩阵学习心得(由浅入深娓娓道来)(16)

在C≠D的情况下,那么对方程组求解,就是w = 0两条直线相交,那么就是(x,y,0).两条直线相交于无限远处.


那么引进齐次坐标有什么必要,它有什么优点呢?

1.它提供了用矩阵运算把二维、三维甚至高维空间中的一个点集从一个坐标系变换到另一个坐标系的有效方法.

2.它可以表示无穷远的点。n 1维的齐次坐标中如果h=0,实际上就表示了n维空间的一个无穷远点。对于齐次坐标[a,b,h],保持a,b不变, 点沿直线 ax by=0 逐渐走向无穷远处的过程.


矩阵的几何解释

与其说矩阵的几何意义这么生涩难懂,不如说的是矩阵在几何中到底是有什么作用呢?一般来说,方阵可以描述任意的线性变换.,也就说,在几何当中,我们用矩阵表示几何体的空间变换.比如我们在程序中常用的平移、旋转、缩放等等.(没事,这时候说的可能很生涩,看到最后你就会明白怎么回事的)


为了更好的理解矩阵的几何意义,我们先用一个简单的示例来说明一下.如果我们把一张图片放入一个2D的坐标系中(为了给下面做铺垫,向量形式为[x,y,0]),并且规定它的大小为边长为1的正方形.向量p = [0,1,0],向量q = [1,0,0].如下图所示.

线性代数矩阵学习心得(由浅入深娓娓道来)(17)

现在我们就单独的看图片的右上顶点 [1,1,0] (可看做向量).

线性代数矩阵学习心得(由浅入深娓娓道来)(18)


首先我们先把[1,1,0]这个向量拆分一下.如下所示.

线性代数矩阵学习心得(由浅入深娓娓道来)(19)

紧接着.我们要定义一下,p,q和r定义为指向 x, y, z方面的单位向量.然后用单位向量表示图片的右上顶点 [1,1,0] .如下所示.

线性代数矩阵学习心得(由浅入深娓娓道来)(20)

现在,向量[1,1,0]就被表示成p,q和r的线性变换了.向量p,q和r被称为基向量.这里的基向量是笛卡尔坐标系.但是事实上,一个坐标系能用任意的3个基向量表示.当然了,这三个向量不在同一个平面.向量p,q和r创建一个3x3的矩阵M.如下所示.

线性代数矩阵学习心得(由浅入深娓娓道来)(21)

当然了,矩阵M可不单单只有上面的一种形式,上面的只能算是一种形式,记住我们说过的,一个坐标系能用任意的3个基向量表示.接下来,我们再次研究一个向量和一个矩阵相乘.(图形变换的开始部分),先看一下公式.

线性代数矩阵学习心得(由浅入深娓娓道来)(22)

我们还是要借助一开始栋哥的那个坐标系图形.如果矩阵M如下所示.那么图形将不会发生任何变换.


线性代数矩阵学习心得(由浅入深娓娓道来)(23)

线性代数矩阵学习心得(由浅入深娓娓道来)(24)


接下来,我们就搞起图形变换了.如果矩阵M发生了如下改变,那么图形会有什么样的变化呢?

线性代数矩阵学习心得(由浅入深娓娓道来)(25)

在矩阵M中.向量p从[1 0 0]变换到[2 1 0],q从[0 1 0]变换到[-1 2 0],r未发生变化.然后我们图形的右上点会再次发生缩放和旋转的变换.

线性代数矩阵学习心得(由浅入深娓娓道来)(26)


得到效果图如下所示.

线性代数矩阵学习心得(由浅入深娓娓道来)(27)

上面是2D中的变换,3D中的变化一样类似.例如现在有向量OB[1 1 1],如下图所示.

线性代数矩阵学习心得(由浅入深娓娓道来)(28)


同时矩阵M如下所示.

线性代数矩阵学习心得(由浅入深娓娓道来)(29)


结果变换之后,向量的图像如下所示.

线性代数矩阵学习心得(由浅入深娓娓道来)(30)


平移矩阵

在3D图形:矩阵与线性变换我说过几种线性变换,比如旋转,缩放,镜像等等,唯独没有平移,但是在日常开发过程中,平移应该算的上我们很常用的一种仿射变换了.那么这是为什么呢?根据书上所说,矩阵的乘法性质所决定的,零向量总是变换成零向量,所以任何矩阵的乘法表达的变换是不会有平移的.但是我们却可以使用4X4平移矩阵表示3D环境中的平移变换,使用3X3平移矩阵表示2D环境中的平移变换.(假设w不变且w = 1)具体公式如下所示.

线性代数矩阵学习心得(由浅入深娓娓道来)(31)

线性代数矩阵学习心得(由浅入深娓娓道来)(32)


旋转矩阵

关于平面向量的逆时针旋转:

已知任意一个向量OA=(x,y),把向量OA绕其起点O沿逆时针方向旋转α角得到向量OB=(xcosα-ysinα,xsiaα ycosα)。推导如下:

线性代数矩阵学习心得(由浅入深娓娓道来)(33)

线性代数矩阵学习心得(由浅入深娓娓道来)(34)

可以反推导出旋转的矩阵:

线性代数矩阵学习心得(由浅入深娓娓道来)(35)


缩放矩阵:

线性代数矩阵学习心得(由浅入深娓娓道来)(36)

未完待续%…,等闲了点,再整理补充!


参考文章:

线代基本概念

机器学习笔记004 | 矩阵和向量,提升效率的数学工具

线性代数之矩阵理解

理解矩阵乘法理解矩阵乘法

AI学习笔记:[0]什么是矩阵

3D图形:矩阵的相关知识

3D图形:矩阵的行列式,矩阵的逆、正交矩阵、齐次矩阵

高级动画学习心得笔记(五)变换


推荐阅读:

【通俗理解线性代数】 -- 矩阵与空间的基和坐标

【通俗理解线性代数】 -- 矩阵的相似对角化

矩阵

数组和矩阵

矩阵特征值分解与奇异值分解含义解析及应用

从矩阵与空间操作的关系理解CSS3的transform

线性代数导论11——矩阵空间、秩1矩阵和小世界图

如何直观理解矩阵和线性代数?

矩阵特征值分解与奇异值分解含义解析及应用


传送门:3D数学基础 图形与游戏开发.pdf

https://www.zhoulujun.cn/html/theory/math/2016_0217_5692.html

,