在数值水平和几何水平上理解线性代数有着根本性的差异:
几何水平上的理解能让你判断出解决特定问题需要什么样的工具, 感受到它们为什么有用, 以及如何解读最终结果.
数值水平上的理解能让你顺利应用这些工具.
假如在学习线性代数时, 没有几何上的直观理解作为坚实基础, 问题可能暂时不会浮出水面, 但是当你在你的研究领域中继续钻研时, 问题就会显露出来.
向量加法和向量数乘始终贯穿线性代数, 二者起着很重要的作用.
在二维坐标轴中, 一个向量的坐标由一对数构成, 如[-2, 3]. 这对数指导如何从原点(向量起点)出发到达它的端点(向量终点).
第一个数是指沿着x轴移动的距离, 正数代表向右移动, 负数代表向左移动;
第二个数是指在按照上面的方式移动第一个数的距离后, 沿着平行y轴方向移动的距离, 正数代表向上移动, 负数代表向下移动.
每一对数对应唯一一个向量, 一个向量对应唯一一对数.
同样的, 在三维坐标轴中, 这对数有三个, 如[2, 1, 3]. 此时每个向量与一个有序的三元数对对应, 第一个数是指沿着x轴移动的距离, 第二个数是指移动第一个数的距离后, 沿着平行y轴方向移动的距离, 第三个数是指移动第一个数和第二个数的距离后, 沿着平行z轴方向移动的距离. 同样的, 每一对有序的三元数对对应唯一一个向量.
假如有以下两个向量v和w
为了把它们相加, 平移第二个向量w, 使得它的起点与第一个向量v的终点重合. 然后画一个向量, 从第一个向量v的起点出发, 指向第二个向量w的终点, 得到新的向量是两个向量的和.
为什么这种定义方法是正确的呢?
如果把向量看作一种特定的运动, 即在空间中朝着某个方向迈出一定距离, 那么向量加法可看作, 先沿着第一个向量运动, 然后按照第二个向量运动方式运动, 总体效果与沿着这两个向量的和运动相同.
如果把向量加法看作数轴加法的一种扩展, 如加法2+5, 向右移动2, 再向右移动5, 总体效果与向右移动7相同.
如果从数字的角度看待向量加法, 向量v坐标是[1, 2], 向量w坐标是[3, -1].
当使用向量首尾连接的方法加和时, 可以把该加法看做一个从原点出发, 到第二个向量终点的四步运动: 向右移动1, 向上移动2, 向右移动3, 向下移动1.
可以重新编排移动的顺序, 使得先完成水平方向的运动, 然后再完成竖直方向的运动. 即向右移动(1+3)步, 向上移动(2-1)步.
在向量是有序的数字列表的观点里, 向量加法就是把对应项相加.
向量乘以一个数值, 相当于对向量进行缩放(Scaling), 缩放的数值称为标量(Scalar).
数值在线性代数中起到的主要作用就是缩放向量.
向量与标量相乘是将向量中的每个分量都与标量相乘, 即:
在x-y坐标系中, 有两个非常特别的向量, 一个指向正右方, 长度为1, 通常称为x方向的单位向量或i-hat; 另一个指向正上方, 长度为1, 通常称为y方向的单位向量或j-hat.
当使用描述向量的一对数时, 如[3, -2], 可将每个坐标值看作一个标量, 意味着对x(y)方向的单位向量进行缩放.
i-hat和j-hat单位向量有特殊的名称, 称为x-y坐标系的基向量, 合起来称为该坐标系的基.
当把坐标看作标量时, 基向量实际上是这些标量缩放的对象. 因此使用数值描述向量时, 都依赖于正在使用的基.
两个数乘向量的和称为这两个向量的线性组合(Linear Combination). 即:
$a\bold{v} + b\bold{w}$
让两个标量a, b同时自由变化, 考虑所有可能得到的向量:
大部分情况下, 对于一对初始向量, 能达到平面中的每一个点, 即能得到该平面的所有向量.
当两个初始向量共线时, 所产生的向量始终被限制在一条过原点的直线上.
假如两个向量都是零向量, 那只能得到一直在原点的向量.
所有可以表示为给定向量 线性组合的向量的集合, 称为给定向量 张成(span)的空间.
对于大部分二维向量来说, 它们张成的空间是所有二维向量的集合.
当共线时, 它们张成的空间是其终点始终落在一条直线上的向量的集合.
两个向量张成的空间实际上是仅通过向量加法和向量数乘这两种基础运算, 所能获得的所有可能向量的集合是什么.
两个三维向量张成的空间, 如下图的平面是该两个向量张成的空间:
更确切地说, 所有终点落在这个平面的向量的集合是这两个向量张成的空间.
三个三维向量张成的空间, 如下图所示
这三个向量所有可能的线性组合构成了它们张成的空间. 会有两种情况:
如果第三个向量刚好落在前两个向量所张成的平面上, 那么这三个向量张成的空间并不改变, 还是前两个向量所张成的平面.
如果第三个向量没有落在前两个向量张成的平面上, 由于第三个向量指向不同的方向, 能得到所有的三维向量. 此时, 当你缩放第三个向量时, 它将前两个向量张成的平面沿着第三个向量的方向来回移动, 从而扫过整个空间.
另一种思考方式是, 完全利用了所掌握的自由变化的三个标量, 从而得到空间中所有的三维向量.
至于对第三个向量落在前两个向量张成的平面的情况, 或者两个二维向量共线的情况, 即向量组中, 至少有一个向量是多余的, 没有多张成的空间做出贡献.
假如有多个向量, 并且可以移除其中一个而不减小张成的空间, 此时可称它们是线性相关的.
另一种表述方式是: 其中一个向量可以表示为其他向量的线性组合, 因为这个向量已经落在其他向量所张成的空间中.
另一方面, 如果所有向量都给张成的空间增添了新的维度, 它们被认为是线性无关的.
变换(Transformation)本质上是函数(Function)的一种说法, 接收输入内容, 并输出对应结果.
在线性代数情况下, 考虑的是接收一个向量, 并输出一个向量的变换.
一种理解变换的方法是使用运动去思考, 如果一个变换接收一个向量并输出一个向量, 试着想象这个输入向量移动到输出向量的位置.
线性代数限制在一种特殊类型的变换上, 该类型的变换称为线性变换.
如果一个变换有如下两条性质, 就称它是线性的:
总的来说, 应把线性变换看作是保持网格线平行且等距分布的变换.
那么如何用数值来描述线性变换呢?
只需要记录基向量i-hat和j-hat线性变换后的位置即可, 其他向量都会随之而动.
如下图, 考虑坐标为[-1, 2]的向量v, 即$\bold{v} = -1\bold{i} + 2\bold{j}$
运用变换, 并且跟随途中三个向量的运动, 如下图:
网格线保持平行且等距分布的性质有一个重要的推论: 变换后向量v的位置, 是-1与i-hat之积, 加上2与变换后的j-hat之积.
换句话说, 变换前向量v是i-hat和j-hat的一个特定线性组合, 变换后向量v也是变换后的i-hat和j-hat的同样的线性组合.
这意味着, 可以只根据变换后的i-hat和j-hat, 就推断出变换后的向量v.
如图中所示, 变换后, i-hat变为[1, -2], j-hat变为[3, 0], 因此可得知变换后向量v的坐标为:
只要记录了变换后的i-hat和j-hat, 就可以推断出任意向量在变换之后的位置, 完全不必观察变换本身是什么. 运用下图的公式
一个二维线性变换仅由四个数值完全确定, 即变换后的i-hat坐标和变换后的j-hat坐标. 通常把这些坐标包装在一个2x2的格子中, 称为2x2矩阵. 如下图
可以把该2x2矩阵的列理解为两个特殊的向量, 即变换后的i-hat和j-hat.
如果有一个2x2矩阵的线性变换, 给定一个向量[5, 7], 得到变换后的向量坐标, 此时只需要取出变换前向量的坐标, 将它们分别与矩阵特定的列相乘, 然后将结果相加即可.
更一般的情况下, 如下所示:
完全可以把矩阵的列看作变换后的基向量, 把矩阵向量乘法看作变换后基向量的线性组合.
那么给出一个矩阵, 能推测出该矩阵代表的线性变换是什么样吗? 如下面的矩阵:
首先将i-hat移动到位置[1, 2], 然后将j-hat移动到位置[3, 1], 空间其余部分随着两者一起移动, 以保持网格线平行且等距分布.
如果变换后的i-hat和j-hat是线性相关的, 意味着其中一个向量是另一个的倍数, 那么这个线性变换将整个二维空间挤压到变换后i-hat和j-hat所在的一条直线上, 即这两个线性相关向量(变换后)所张成的一维空间.
线性变换是操纵空间的一种手段, 它保持网格线平行且等距分布, 并且保持原点不动. 这种变换只需要几个数值就能描述, 这些数值就是变换后基向量的坐标.
以这些坐标值为列所构成的矩阵为我们提供了一种描述线性变换的语言, 而矩阵向量乘法就是计算线性变换作用于给定向量的一种途径.
每当看到一个矩阵时, 都可以把它解读为对空间的一种特定变换.
总之, 矩阵就是变换, 变换是王道.
很多时候要描述这样一种作用: 一个变换之后再进行另一个变换. 如下图的, 先进行旋转变换, 然后进行剪切变换:
原始位置
先进行旋转变换
然后进行剪切变换
两个变换的总体作用是另一个线性变换, 这个新的线性变换通常被称为复合变换.
复合变换和其他的线性变换一样, 通过追踪i-hat和j-hat, 使用矩阵描述这个复合变换.
图中得到的新矩阵捕捉到了旋转然后剪切的总体效应, 但该矩阵是一个单独的作用, 而不是两个相继作用的合成.
假如有一个向量[x, y], 先进行旋转变换, 后进行剪切变换, 在数值计算层面, 相当于该向量先乘以旋转变换的矩阵, 乘积的结果(也是向量)再乘以剪切变换矩阵, 如下图所示:
无论所选向量是什么, 应该与复合变换作用的结果完全相同. 因为复合变换矩阵应当捕捉到了旋转然后剪切的相同总体效应.
去除两边向量[x, y], 于是可以将复合变换矩阵称为旋转变换矩阵和剪切变换矩阵的积.
因此可得知, 两个矩阵相乘的几何意义, 是两个线性变换相继作用.
需要注意的时, 这个乘积需要从右向左读, 即首先应用右侧矩阵所描述的变换, 然后再应用左侧矩阵所描述的变换. 从右向左读的规则, 起源于函数的写法, 通常将函数写在变量左侧, 如f(g(x)), 所以每次将两个函数复合时, 总数要从右向左读.
假如有两个线性变换矩阵:
矩阵M1和M2先后作用, 总体效果是一个新的复合变换矩阵, 如何求解新的变换矩阵呢?
基向量i-hat通过M1变换, 坐标变为[1, 1]; 而基向量j-hat通过M1变换, 坐标变为[-2, 0]. 即通过M1变换, 基向量i-hat和j-hat变为新的基向量i'-hat和j'-hat.
i-hat的计算过程:
j-hat的计算过程:
M2变换同样也是作用于经过M1变换后的基向量, 也就是M2矩阵和经过M1变换后的基向量i'-hat和j'-hat分别做矩阵向量乘法(参考上面). 更一般的有:
矩阵相乘时, 先后顺序影响结果吗?
先剪切变换, 后旋转变换的结果, 即 $M_1 M_2$
先旋转变换, 后剪切变换的结果, 即 $M_2 M_1$
可以看到两者结果截然不同, 因此乘积顺序显然会影响结果, 即$M_1 M_2 \neq M_2 M_1$.
通过变换的角度, 能直接在头脑中得出相关问题的直观结果, 比如证明矩阵乘法的结合律, 即$(AB)C=A(BC)$.
如果用变换相继作用的思想去思考矩阵乘积, 可以知道$(AB)C$和$A(BC)$表达是相同的, 即从右向左读, 先应用变换C, 然后应用变换B和A, 也就是说将同样的三个变换用同样的顺序依次作用而已.
一旦掌握了二维空间里的核心概念, 能完美推广至高维空间.
三维空间变换
三维空间变换是以三维向量为输入, 并以三维向量为输出的函数.
三维空间变换是在移动立体空间中的所有点, 并保持网格线平行且等距分布, 且保持原点不动.
三维空间的点同样是用来代表以它为终点的向量, 起点仍是原点.
三维空间变换所做的只是将输入向量移动到对应的输出向量.
三维线性变换由基向量完全决定, 不过单位向量有三个. 将变换后的三个基向量的坐标记录在3x3的矩阵中, 使用9个数值的矩阵就描述了一个线性变换. 同样的, 变换后的三个基向量的坐标成为了描述该线性变换矩阵的三列.
矩阵向量乘法
三维空间向量的每个坐标都可以看作对相应基向量的缩放, 从而使缩放结果的和为该向量.
同样的, 缩放再相加的过程在变换前后均适用.
要得到向量变换后的位置, 将该向量坐标与矩阵对应的列相乘, 再将结果相加即可.
矩阵相乘
两个矩阵相乘也是类似的, 当看到两个3x3矩阵相乘时, 首先应用右侧矩阵代表的变换, 然后应用左侧矩阵代表的变换.
三维矩阵相乘的数值计算和二维类似, 思想仍是两个线性变换相继作用.
一些线性变换将空间向外拉伸, 有的则将空间向内挤压, 那么如何测量线性变换究竟对空间产生了多少拉伸或挤压呢?
更具体一点, 就是测量一个给定区域面积增大或减小的比例.
给定一个线性变换矩阵, 如下图所示.
该变换将i-hat伸长为原来的3倍, 将j-hat伸长为原来的2倍, 如果取以i-hat为低, j-hat为高的方形, 该方形初始面积为1, 经过线性变换后, 方形面积变为6, 可以说这个线性变换将方形的面积变为6倍.
实际上, 只要知道这个单位正方形面积变化的比例, 就能得到其他任意区域的面积变化比例. 因为空间的每个点, 每个方格都进行了相同的变换.
对于不是方格的形状, 可以由很多小方格无限分割, 直到近似. 同样的, 因为所有方格都进行了同比例的缩放, 所以整个形状也进行了相同比例的缩放.
这个特殊的缩放比例, 即线性变换改变(或体积)的比例, 称为这个变换的行列式.
如果一个线性变换的行列式为6, 那么它将一个区域的面积增加为原来的6倍.
如果一个二维线性变换的行列式为0, 它将整个平面压缩到一条线上, 甚至一个点上.
这就是说, 只需要检验一个矩阵的行列式是否为0, 就能了解这个矩阵代表的变换是否将空间压缩到更小的维度上.
完整概念下的行列式允许有负值, 那么一个区域缩放负数倍是什么意思呢?
这和定向的概念相关, 图中的变换在感觉上将整个平面翻转了, 称类似这样的变换改变了空间的定向.
另一种思考行列式负值意义的方式, 是考虑i-hat和j-hat.
在初始状态时, j-hat在i-hat的左边.
如果在变换之后, j-hat位于i-hat的右边, 那么空间的定向就发生了改变.
当空间的定向改变时, 变换的矩阵行列式为负值. 但行列式的绝对值依然表示区域面积的缩放比例.
那么行列式的负值为什么和定向改变相关呢?
考虑i-hat逐渐接近j-hat所形成的一系列变换, 当i-hat靠近j-hat时, 空间被严重的压缩, 这意味着行列式趋近于0. 图中的Det是行列式的值的变化曲线.
当i-hat和j-hat完全重合时, 行列式为0.
如果继续让i-hat沿着图中的方向运动, 行列式继续减小变为负值.
三维空间的线性变换则对应的是体积的缩放. 在变换后, 会形成平行六面体.
三维空间的矩阵行列式为0, 意味着整个空间被压缩为零体积的东西, 一个平面, 一条直线, 甚至一个点. 此时矩阵的列向量线性相关(参考上面).
三维空间的定向, 通过右手定则来描述. 右手食指指向i-hat的方向, 右手中指指向j-hat的方向, 大拇指指向k-hat的方向.
2x2方阵的行列式计算公式为:
那么如何通过几何直观理解呢?
首先考虑b和c都是0的情况, 即是对角矩阵的情况. 此时有
那么a表示的是i-hat在其方向上的伸缩比例, d表示的是j-hat在其方向上的伸缩比例. 如下图所示, ad给出的是单位正方形伸缩后形成的矩形的面积.
其次考虑b或c其中一个为0的情况, 即三角矩阵的情况, 此时有
单位正方形经过变换后, 得到一个平行四边形, 低为a, 高为d, 面积仍旧为ad.
最后考虑b和c都不为0的情况, 那么bc项是平行四边形在对角方向上缩放的程度.
那么bc项的精确含义, 如下图
那么用几何直观的方式一句话解释柯西定理(矩阵乘积的行列式等于矩阵行列式的积).
我自己的解释: 把$M_1 M_2$看作一个复合变换, 复合变换等于先进行M2变换, 再进行M1变换, 即复合变换的缩放效果等于先进行M1缩放, 再进行M2缩放的效果.
根据行列式的值为缩放比例, 可知该复合变换的矩阵行列式(缩放比例)等于M2变换的矩阵行列式(缩放比例)与M1变换的矩阵行列式(缩放比例)的乘积.
线性方程组, 通过矩阵语言描述, 如下图:
把矩阵A看成一个线性变换, 求解$A\bold{x}=\bold{v}$, 即是寻找一个向量x, 使得通过线性变换A后于向量v重合. 此时完全可以只考虑空间的变换, 以及变换前后向量的重叠.
考虑下面简单的线性方程组情况, 如下图
图中的方程组的解依赖于矩阵A所代表的变换. 那么变换A是将空间压缩到一条直接或一个点的低维空间, 还是保持像初始状态一样的完整二维空间(张成空间)?
用行列式的方式分为两种情况: 矩阵A的行列式为0 和 矩阵A的行列式不为0.
首先考虑矩阵A的行列式不为0的情况:
这种情况下, 有且仅有一个向量在变换后和向量v重合, 并且可以通过逆向变换来找到这个向量. 即通过一个逆向变换, 让向量v与该向量重叠.
逆向变换对应另一个线性变换, 通常称为A的逆, 记为$A^{-1}$.
比如, 如果A是逆时针旋转90度的变换, 那么A的逆是顺时针旋转90度的变换.
A的逆是满足下面性质的唯一变换: 首先应用A代表的变换, 再应用A的逆代表的变换, 然后回到初始状态, 即$A^{-1}A$.
这是一个复合变换, 两个变换相继作用在代数上体现为矩阵乘法.
A的逆的核心性质是A的逆乘以A等于一个什么都不做的变换, 这个什么都不做的变换称为恒等变换. 该恒等变换保持i-hat和j-hat不变, 因此该恒等变换的矩阵为:
一旦找到了A的逆, 在$A\bold{x}=\bold{v}$式子两边同乘以A的逆矩阵来求解向量方程, 即:
$A^{-1}A\bold{x}=A^{-1}\bold{v} \ \bold{x}=A^{-1}\bold{v}$
说明: $A^{-1}A$是个什么都不做的变换, 因此可以省略.
$\bold{x}=A^{-1}\bold{v}$的过程在几何上对应于逆向进行变换并跟踪v的动向.
只要变换A不将空间压缩到一个更低的维度上, 也就是A的行列式不为0, 那它就存在逆变换$A^{-1}$, 使得应用A变换再应用A的逆变换后, 结果与恒等变换无异.
求解方程时, 只需要将A的逆和向量v相乘即可.
现在考虑A的行列式为0的情况:
当A的行列式为0时, A变换将空间压缩到更低的维度上, 此时没有逆变换.
目前没有变换能将一条线解压缩为一个平面, 即会要求一个单独的向量变换为终点落在一条直线上的所有向量.
即一个向量映射为多个向量, 而函数只能将一个输入变换为一个输出.
注意: 即便不存在逆变换, 解仍然可能存在.
比如说一个变换将空间压缩为一条直线, 而向量v刚好处于这条直线上, 此时解存在.
除了零行列式之外, 有特定的术语来描述, 即秩(Rank).
当变换的结果为一条直线时, 也就是说结果是一维的, 称这个变换的秩为1.
如果变换的结果落在某个二维平面上, 称这个变换的秩为2.
所以说, 秩代表着变换后空间的维度.
对于2x2的矩阵, 它的秩最大为2, 意味着基向量变换后仍旧能张成整个二维空间, 且矩阵的行列式不为0. 所有可能的变换结果的集合称为矩阵的列空间.
通过矩阵的列得知基向量变换后的位置, 这些变换后的基向量张成的空间就是所有可能的变换结果. 换句话说, 列空间是矩阵的列所张成的空间.
因此更精确的秩的定义是列空间的维数.
当秩达到最大值时, 意味着秩与列数相等, 称之为满秩.
注意: 零向量一定会被包含在列空间中, 因为线性变换必须保持原点位置不变.
对于一个满秩的变换来说, 唯一能在变换后停留在原地的是零向量.
对于一个非满秩的矩阵来说, 该变换将空间压缩到一个更低的维度上, 也就是说会有一系列向量在变换后成为零向量.
即上图中在直线上的向量, 在变换后, 都成为了零向量, 见下图
如果一个二维线性变换将空间压缩到一条直线上, 那么沿着某个不同方向直线上的所有向量都被压缩到原点.
如果一个三维线性变换将空间压缩到一个平面上, 那么会有一整条直线上的向量在变换后落在原点.
如果一个三维线性变换将空间压缩到一条直线上, 那么会有一整个平面上的向量变换后落在原点.
变换后落在原点的向量集合, 称为矩阵的零空间或核.
对应线性方程组, 当向量v恰好为零向量时, 零空间给出的是这个向量方程所有可能的解.
每个线性方程组都有一个线性变换与之联系.
当逆变换存在时, 能利用逆变换求解方程组.
列空间的概念能判别什么时候线性方程组存在解.
零空间的概念有助于理解所有可能的解的集合是什么样的.
上面的讨论都是在方阵的前提下进行讨论的, 如果是非方阵呢? 该如何理解呢?
讨论不同维数之间的变换是完全合理的, 比如一个二维向量到三维向量的变换. 同之前一样, 如果网格线保持平行且等距分布, 且原点保持不变, 那么就称该变换是线性的.
用矩阵代表这样的一个变换和之前的方法相同, 找到每一个基向量变换后的位置, 然后把变换后基向量的坐标作为矩阵的列.
上图所示的3x2矩阵, 是一个把二维向量映射为三维向量的变换. 第一列是i-hat变换后的坐标, 第二列是j-hat变换后的坐标.
上图所示的3x2矩阵的列空间是三维空间中一个过原点的二维平面, 因此秩为2, 而这个矩阵是2列的, 因此这个矩阵是满秩的, 即列空间的维数和输入空间的维数相等.
因此3x2矩阵的几何意义是将二维空间映射到三维空间上. 矩阵有两列, 表明输入空间是二维的, 且有两个基向量; 矩阵有三行, 表明每一个基向量在变换后都用三个独立的坐标来描述.
那么2x3矩阵呢?
同样的, 矩阵有三列, 表明输入空间有三个基向量, 也就是说输入空间是三维的; 矩阵有两行, 表明每一个基向量在变换后使用两个独立的坐标来描述, 因此基向量一定落在二维空间上.
还可以有二维空间到一维空间的变换, 一维空间实际上就是数轴. 通过变换, 接收二维向量, 然后产生一个数.
这种情况下, 形象理解线性性质的含义, 如果在二维空间上一条直线有一系列等距分布的点, 在映射到数轴之和, 仍保持等距分布.
经过变换后, 该直线上的点在数轴上仍等距分布, 如下图所示
这种变换矩阵是1x2矩阵, 如下图
两个维数相同的向量的点积等于将相应坐标配对, 求出每一对坐标的乘积, 然后将结果相加.
点积计算有个优美的几何解释:
两个向量v和w的点积, 将向量w朝着过原点和向量v终点的直线上投影, 将投影的长度与向量v的长度相乘, 就得到了它们的点积.
如果向量w在向量v直线上的投影方向和向量v的方向相反, 则点积为负值.
当两个向量互相垂直时, 意味着一个向量在另一个向量上的投影为零向量, 它们的点积为零.
可以将向量v投影到向量w所在的直线上, 这样点积等于v的投影长度乘以向量v的长度, 和前面的方式得到的结果一致, 这种性质称为点积的顺序无关性.
如何直观地解释点积的顺序无关性呢?
如果向量v和w的长度恰好相同, 可以利用其中的对称性, 假设向量v和w之间有对称轴. [向量w向v上投影, 并将w的投影长度和v的长度相乘]和[向量v向w上投影, 并将v的投影长度和w的长度相乘]互相对称.
如果将其中的一个向量缩放若干倍, 如将向量v长度变成2倍, 这样它们的长度不同, 对称性被破坏. 但是可以按下面的方式重新解读2倍的向量v和向量w的点积:
如果向量w向v上投影, 那么2倍的向量v点乘w应该恰好是v点乘w的两倍, 因为将v放大为原来的两倍并不改变w的投影长度, 而v的长度变为两倍.
如果向量v向w上投影, 由于将v变为原来的两倍, 所以v的投影长度也变为原来的两倍, 而w的长度不变.
两种方式同样使v和w的点积变为原来的2倍. 也就是说, 两种理解方式下, 缩放向量对点积的影响结果是相同的.
那么为什么向量点积运算和投影相关呢? 深层的原因是对偶性(Duality).
如果在二维空间中有一系列等距分布于一条直线上的点, 然后应用变换, 降维到一维空间(数轴), 那么变换后, 这些点依然等距分布在数轴上.
这些线性变换完全由它对i-hat和j-hat的变换决定, 但是这种变换, 导致基向量只落在一个数轴上, 将它们变换后的位置记录为矩阵的列时, 矩阵的每列只是一个单独的数.
变换前, 二维空间上的基向量
变换后, 一维空间上的基向量
下面是向量在这种变换下的变化, 了解这种变换对向量作用的含义. 如下图的向量v
假设有一个线性变换, 把i-hat变换为1, 把j-hat变换为-2.
要跟踪向量v在变换之后的去向, 将这个向量分解为$4\bold{i}+3\bold{j}$.
线性变换后, 向量v依然保持原来的分解方式. 那么可得到变换后向量v的位置:
完全从数值角度进行计算是, 那就是矩阵向量乘法, 即
1x2矩阵与向量相乘这一数值运算过程, 和两个向量的点积一样. 1x2矩阵不正是一个倾倒的向量吗!
1x2矩阵和二维向量有着微妙的关系, 关系在于, 将向量放倒, 从而得到与之相关的矩阵, 或者将矩阵立直, 从而得到与之相关的向量.
将向量转化为线性变换和这个向量本身有着某种关系.
考虑在二维空间中, 把空间压缩为一条直线的线性变换, 将该直线显示在二维空间上, 此时取起点是原点, 且在直线上的, 单位距离的二维向量u-hat:
根据这个投影, 定义了一个从二维向量到数值的线性变换, 然后开始寻找描述这个变换的1x2投影矩阵. 此时需要考虑变换后i-hat和j-hat的位置, 因为它们的位置就是该1x2投影矩阵的列.
使用对称性进行推理, 因为i-hat和u-hat都是单位向量, 将[i-hat向u-hat所在直线的投影]与[u-hat向x-hat(x轴)所在直线的投影]看上去完全对称, 那么根据对称性, 将i-hat向u-hat所在数轴上投影得到的数就是u-hat的x轴坐标.
同样的对j-hat进行对称性推理, 可得知j-hat向u-hat所在数轴上投影得到的数是u-hat的y轴坐标.
所以描述投影变换1x2矩阵的两列, 就是u-hat的两个坐标, 而空间中任意向量经过投影变换的结果, 就是投影矩阵和该向量相乘. 投影矩阵和该向量的乘积与这个向量与u-hat的点积在计算上完全相同.
空间上向量与单位向量的点积可以解读为将向量投影到变换后的单位向量所在的直线上所得的投影长度.
如果是空间上向量与非单位向量的点积呢?
还是变换后的单位向量u-hat, 此时把它放大到原来的3倍, 数值上说, 它的每个坐标都被放大为原来的3倍, 要寻找与这个向量相关的投影矩阵, 实际上就是之前i-hat和j-hat投影得到的值的3倍.
因为投影变换是线性的, 意味着这个新矩阵可以看作将任何向量朝变换后的数轴上投影, 然后将结果乘以3.
因此空间上向量与非单位向量的点积可以解读为首先朝给定向量上投影, 然后将投影的长度值与非单位向量长度相乘.
整体的过程总结:
有一个从二维空间到数轴的线性变换(投影), 并不是由向量数值或点积运算定义得到的, 而只是将空间投影到给定数轴上来定义的.
因为这个变换是线性的, 因此该变换必然可以用某个1x2矩阵描述, 又因为1x2矩阵与二维向量相乘的计算过程与二维向量点积的计算过程相同, 所以这个投影变换矩阵必然与某个二维向量相关.
因此在任何时候看到一个线性变换, 输出空间是一维数轴, 无论该变换是如何定义的, 那么输入空间中会存在唯一的向量与该变换相关. 从这意义而言, 给该向量应用投影变换和与该向量做点积是一样的.
上面的叙述是数学中对偶性(Duality)的一个实例, 对偶性贯穿数学始终, 粗略地说, 指的是两个数学事物之间自然而又出乎意料的对应关系.
一个向量的对偶是由它定义的线性变换; 一个多维空间到一维空间的线性变换的对偶是多维空间中的某个特定向量.
两个向量点积, 是将其中一个向量转化为线性变换.
有时把向量看作线性变换的载体, 会更容易理解向量, 向量仿佛是一个特定变换的概念性记号.
假如有两个向量v和w, 考虑它们张成的平行四边形, 如下图所示:
向量v和w的叉积, 是图中平行四边形的面积.
还需要考虑定向问题, 如果v在w的右侧, 那么v叉乘w结果为正, 且值为平行四边形的面积; 如果v在w的右侧, 那么v叉乘w结果为负, 且值为平行四边形面积的相反数.
因此顺序会影响叉积的结果. 有 $\bold{v}\times\bold{w}=-\bold{w}\times\bold{v}$.
用来记住顺序的方法, 通过i-hat和j-hat两个基向量的叉积, 即$\bold{i}\times\bold{j}=+1$. 基向量的顺序是定向的基础, 因为i-hat在j-hat的右侧, 通过类比, 可得知其余向量叉积的结果正负.
那么如何计算两个向量的叉积呢? 这时需要行列式的知识.
对于二维向量的叉积: $\bold{v}\times\bold{w}$, 需要将向量v的坐标作为矩阵的第一列, 将向量w的坐标作为矩阵的第二列, 然后计算这个矩阵的行列式.
这是因为由向量v和w的坐标为列所构成的矩阵, 与一个将i-hat和j-hat分别移至v和w的线性变换相对应.
由向量v和w的坐标为列所构成的矩阵把以i-hat和j-hat的单位正方形, 变换为向量v和w构成的平行四边形, 而行列式是线性变换前后面积缩放的比例, 因此给出了平行四边形的面积. 如果v在w的左侧, 也就是说变换后定向发生了改变, 行列式为负值.
严格意义上讲, 上面的叙述不是叉积.
真正的叉积是通过两个三维向量生成一个新的三维向量.
在三维空间里, 首先考虑两个向量v和w围成的平行四边形.
而真正的叉积得到的是另一个向量, 即$\bold{v}\times\bold{w}=\bold{p}$.
新向量p的长度是平行四边形的面积, 向量p的方向与平行四边形所在的面垂直.
方向通过右手定则来确定, 右手食指指向v的方向, 右手中指指向w的方向, 那么此时竖起的大拇指所指的方向就是向量p的方向.
那么如何通过数值计算得出新向量p的坐标呢?
使用一个三阶矩阵, 让矩阵的第二列是向量v的坐标, 矩阵的第三列是向量w的坐标, 矩阵的第一列是基向量i-hat, j-hat和k-hat. 通过计算该矩阵的行列式就能得到向量v和w叉积的结果.
为何第一列使用单位基向量呢? 通常认为是符号上的技巧, 当计算该行列式时, 得到下图所示关于i-hat, j-hat, k-hat系数坐标.
这些系数组成的向量是叉积后的向量, 即是唯一一个与v和w垂直, 长度为v和w围成的平行四边形面积, 且遵守右手定则的向量.
为何这样就能得到叉积的结果呢? 行列式重要性的体现并非完全巧合, 基向量作为矩阵元也不是信手而为, 要理解这一切的源头, 需要用到对偶性的思想.
用对偶性的思想理解叉积的步骤:
首先定义一个从三维空间到数轴的特定线性变换, 且该变换是根据向量v和w来定义的.
然后找到该特定线性变换对应的三维空间中的向量(对偶向量).
最后说明这个对偶向量是向量v和w的叉积.
通过下图的方式, 得到一个函数F, 函数的输入是一个向量(x, y, z), 把该向量作为矩阵的第一列, 向量v的坐标作为第二列, 向量w的坐标作为第三列, 得到一个矩阵, 计算该矩阵的行列式得到一个数. 这个函数就是三维空间到数轴的特定线性变换.
这个函数是线性的, 可根据行列式的性质推导出.
因为这个函数是从三维空间到数轴的, 所以会存在一个1x3矩阵来代表这个变换.
根据以前学到的多维空间到一维数轴的变换对应多维空间的一个向量, 使用点积和矩阵乘法的对应关系, 可以知道1x3矩阵对应的向量与输入向量(x, y, z)的点积等于函数的行列式.
要寻找的就是这个1x3矩阵所对应的三维向量p, 使得向量p与任一向量(x, y, z)的点积等于一个3x3矩阵的行列式, 且这个3x3矩阵的第一列为(x, y, z), 矩阵的其余两列分别为v和w的坐标.
先从数值计算的角度理解
通过展开左边的点积, 使用第一列展开右边的行列式, 可得知
于是可以得到向量p的坐标
什么样的向量p满足如下的性质:
从几何直观的角度理解
什么样的向量p满足如下的性质:
将向量p和任一向量(x, y, z)点积, 所得到的结果等于一个由(x, y, z)和v与w所确定的平行六面体的有方向的体积.
向量p和其他向量的点积的几何解释是: 将其他向量投影到向量p上, 然后将投影的长度与p的长度相乘.
而平行六面体的体积, 可以这样思考:
首先获得v和w所确定的平行四边形的面积, 乘以向量(x, y, z)在垂直于该平行四边形方向上的分量(注意不是向量(x, y, z)的长度, 是投影后的向量).
使用的线性函数F(可参考上面), 对于给定向量(x, y, z)的作用, 是将向量(x, y, z)投影到[垂直于v和w所确定的平行四边形的直线]上, 然后将投影长度与[v和w所确定的平行四边形的面积]相乘.
这和[垂直于v和w所确定的平行四边形]且[长度为平行四边形的面积]的向量与向量(x, y, z)点积是同一回事.
图中红色的箭头是[垂直于v和w所确定的平行四边形]且[长度为平行四边形的面积]的向量; 白色的箭头是向量(x, y, z).
如果选择了合适的向量方向, 点积为正的情况会与向量(x, y, z), 向量v, 向量w满足右手定则的情况相吻合.
这意味着找到了一个向量p, 这个向量p就是[垂直于v和w所确定的平行四边形]且[长度为平行四边形的面积]的向量; 使得向量p与向量(x, y, z)点积时, 所得结果等于一个3x3矩阵的行列式, 而3x3矩阵的第一列为(x, y, z), 其余两列为向量v和w的坐标.
Cool, right?
在二维空间的一个向量, 能用坐标表示, 如向量的坐标为(3, 2).
用线性代数的方法来描述该坐标, 将这些坐标值看作缩放的标量. 将第一个坐标看作缩放i-hat的标量, i-hat是指向正右方且长度为1的向量; 第二个坐标看作缩放j-hat的标量, j-hat是指向正上方且长度为1的向量; 两个经过缩放后的向量和是坐标所要描述的向量.
可以把i-hat, j-hat两个特殊的向量, 看作二维空间坐标系中的隐含假设, 上面的叙述都和i-hat和j-hat的选取有密切的联系.
坐标系可看作向量和一组数之间的一种转化, 其中的两个特殊向量i-hat, j-hat称为标准坐标系的基向量.
那么使用不同的基向量会导致什么呢?
假如有另一组基向量b1和b2.
在i-hat和j-hat的坐标系下, 使用[3, 2]来描述向量v.
在b1和b2的坐标系下, 使用[5/3, 1/3]来描述向量v.
在i-hat和j-hat的坐标系下, 用坐标[2, 1]来描述基向量b1, 用坐标[-1, 1]来描述基向量b2.
而在b1和b2的坐标系下, 基向量b1的坐标为[1, 0], 基向量b2的坐标为[0, 1].
因此, 两个不同的坐标系, 相当于两种不同的语言, 关注的是二维空间上的同一个向量, 使用不同的语言和数值来描述这个向量.
但两个不同坐标系的原点是一致的, 在坐标[0, 0]的含义上保持相同.
那么如何在不同的坐标系之间进行转换呢?
假如在b1和b2的坐标系下, 有一向量v的坐标为[-1, 2]. 因此有: $-1\bold{b_1}+2\bold{b_2}=\bold{v}$.
而在i-hat和j-hat的坐标系下, b1的坐标[2, 1], b2的坐标[-1, 1]. 可以通过$-1\bold{b_1}+2\bold{b_2}=\bold{v}$关系式, 得出向量v在i-hat和j-hat的坐标系下的坐标.
这种计算方式和矩阵向量乘法很相似.
矩阵的列代表的是用i-hat和j-hat的坐标系所描述的基向量b1和b2.
几何直观的解释: 这个矩阵可看作一个线性变换, 将基向量i-hat和j-hat转变为基向量b1和b2.
由于线性变换的一个重要特性是变换后的向量仍旧是相同的线性组合, 不过使用的是新的基向量. 在i-hat和j-hat的坐标系下, 有向量坐标为[-1, 2], 转化为在b1和b2的坐标系下的坐标, 该向量的坐标在新的基向量下, 仍是[-1, 2].
上述矩阵的作用把b1和b2的坐标系转化为i-hat和j-hat的坐标系, 如果想把i-hat和j-hat的坐标系转化为b1和b2的坐标系(相反操作), 如何做呢? 使用这个矩阵的逆.
假如在i-hat和j-hat的坐标系下, 有一向量[3, 2], 通过该矩阵的逆, 能翻译成在b1和b2的坐标系下的向量坐标.
矩阵的列代表的是用i-hat和j-hat的坐标系所描述的基向量b1和b2.
以上是对向量的转化, 那么如何转化一个矩阵呢?
在i-hat和j-hat的坐标系下, 描述一个线性变换矩阵(比如下图中的旋转), 跟踪的是i-hat和j-hat基向量, 并且用i-hat和j-hat的坐标系下的坐标来描述.
那么如何在b1和b2的坐标系下描述相同的线性变换呢?
从b1和b2的坐标系下的任一向量出发, 如坐标为[-1, 2]
使用基变换转换成在b1和b2的坐标系下的坐标
然后应用线性变换, 进行旋转变换
线性变换后, 使用基变换的逆转换成在b1和b2的坐标系下的坐标.
如果基变换矩阵符号记为A, 线性变换矩阵记为M, 则表达式$A^{-1}MA$暗示着一种数学上的转移作用. 中间的矩阵M代表所见的线性变换, 外侧的两个矩阵A和A的逆代表着转移, 也就是视角上的转化. 这个表达式仍然代表着同一个变换(和M线性变换相同), 不过是从其他坐标系的角度来看的.
考虑二维空间中的某个线性变换, 如下图的变换, 将i-hat变换到坐标[3, 0], 把j-hat变换到坐标[1, 2].
现在, 关注变换对一个特定向量的作用, 并且考虑这个向量张成的空间. 下图中黄色箭头的是特定的向量, 变换前这个向量张成的空间是通过原点和向量终点的直线.
变换后, 大部分向量在变换中都离开了其张成的空间, 如下图所示
不过, 有些特殊向量还能继续留着其张成的空间里, 如下图所示
意味着矩阵变换对该向量的作用仅仅是缩放而已.
在上面的例子中, 基向量i-hat就是这样的一个特殊向量, 变换前后, 基向量i-hat张成的空间始终是x轴, 变换后i-hat变成了原来的3倍.
因为线性变换的性质, x轴的任何其他向量在变换后只是被拉伸为原来的3倍, 因此也留着其张成的空间里.
有一个不在x轴的特殊向量, 坐标为[-1, 1], 其在变换后仍留在自己张成的空间, 但是被拉伸为原来的2倍.
同样的, 根据线性变换的性质, 处在该向量张成的直线上的其他任一向量, 也被拉伸为原来的2倍.
对于图中的变换而言, 以上是所有拥有这一特殊性质(留着它们张成的空间里)的向量.
这些特殊向量称为变换的特征向量, 每个特征向量有一个所属的缩放值, 称为特征值.
特征值为负值的特征向量, 变换后, 这个特征向量反向, 且被缩放特征值的倍数.
特征向量的作用: 三维空间中的旋转, 如果找到旋转变换的特征向量, 那么这个特征向量所张成的直线就是旋转轴, 注意此时特征值为1, 因为旋转并不缩放任何一个向量.
特征向量的计算表达式: $A\bold{v}=\lambda\bold{v}$. 其中A是变换矩阵, $\lambda$是特征值, $\bold{v}$是特征向量.
表达式左边是矩阵向量乘积, 表达式右边是向量数乘.
把右侧改写为矩阵向量乘积的形式, 该矩阵的作用是将任一向量乘以$\lambda$, 该矩阵的列代表着变换后的基向量, 因此这个矩阵是:
现在可以将表达式右侧移动到左侧, 然后提出向量$\bold{v}$: $$ A\bold{v}-(\lambda\bold{I})\bold{v}=\bold{0} \ (A-\lambda\bold{I})\bold{v}=\bold{0} $$ 于是得到一个新矩阵$A-\lambda\bold{I}$, 即寻找一个向量v, 使得这个新矩阵与v相乘的结果为零向量. 如果向量v是零向量, 则等式恒成立, 但没有什么意义, 想要的是一个非零特征向量.
通过前面的学习, 可知当且仅当矩阵代表的变换将空间压缩到更低的维度时, 也就是矩阵的行列式为零, 才会存在一个非零向量, 使得矩阵和它的乘积为零向量.
假如特征值为$\lambda=1$, 那么意味着新矩阵$A-\lambda\bold{I}$将空间压缩到一条直线上, 即存在一个非零向量$\bold{v}$使得$(A-\lambda\bold{I})\bold{v}=\bold{0}$.
求解特征值$\lambda$, 如下图的例子:
如图所示, 可能的特征值有2和3, 带入到新矩阵$A-\lambda\bold{I}$, 计算向量v, 如下图:
需要注意的是, 二维线性变换不一定有特征向量, 如下图的90度旋转变换:
这个变换没有特征向量, 因为每一个向量都发生了旋转, 并离开了其张成的空间.
通过下图中的计算, 可得知要让行列式为零, $\lambda$需要取虚数i或-i, 没有实数解表明它没有特征向量.
剪切变换的特征值和特征向量:
注意: 可能出现只有一个特征值, 但是特征向量不止在一条直线上的情况. 如下图中的把空间中所有向量变为2倍的矩阵变换, 特征值是2, 平面的每一个向量都是特征向量.
如果基向量恰好是特征向量, 那么特征向量(也是基向量)对应的变换矩阵是对角矩阵.
除了对角元以外的其他元素均为0的矩阵称为对角矩阵, 解读对角矩阵的方法是所有基向量都是特征向量, 矩阵的对角元是对应的特征值, 也就是说对角矩阵变换只对基向量进行了缩放.
对角矩阵的一个重要应用是计算矩阵的幂, 因为对角矩阵仅仅让基向量与对应的特征值相乘, 所以应用n次矩阵乘法, 也只是将每个基向量与对应特征值的n次幂相乘.
相比之下, 计算一个非对角矩阵的n次幂, 如果直接计算, 则十分复杂.
非对角矩阵对应的变换, 如果有多个特征向量, 比如本节使用的矩阵:
该矩阵有两个特征向量, 这两个特征向量张成的空间还是一个二维平面. 因此可以使用这两个特征向量作为基向量, 变换坐标系.
因此非对角矩阵对应的变换, 如果有多个特征向量, 且这些特征向量多到能选出一个张成全空间的集合, 那么就能变换坐标系, 使得这些特征向量变为基向量.
基变换过程:
用特征向量来进行基变换的意义在于这个新变换矩阵$A^{-1}MA$必然是对角的, 并且其对角元为特征值.
原因是该矩阵$A^{-1}MA$在以特征向量作为新基的坐标系下, 对应的变换只是对基向量(也是特征向量)进行了缩放.
一组基向量且同样是特征向量构成的集合称为一组特征基.
如果要计算非对角矩阵的n次幂, 可以先进行基变换, 找到特征基, 在特征基的坐标系下计算n次幂, 然后转换回原来的坐标系.
注意这种方式的先决条件是: 非对角矩阵有多个特征向量, 且这些特征向量多到能选出一个张成全空间的集合.
剪切变换的特征向量就不够多, 只有一个, 不能张成全空间.
回到最简单也最根本的问题: 向量是什么?
比如一个二维向量, 从几何上看, 向量是平面内的一个箭头, 为了方便描述, 因此使用坐标. 从数值上看, 向量是一个实数对, 只是将它形象理解为平面内的一个箭头.
或者, 这两种观点只是更深层次东西的体现?
线性代数中的行列式和特征向量, 似乎不受所选坐标系的影响, 行列式是一个变换对面积的缩放比例, 而特征向量则是在变换中留在其张成的空间中的向量.
从某种意义上说, 函数实际上只是另一种向量.
两个函数的相加是线性的, 函数的数乘同样也是线性的: $$ (f+g)(x)=f(x)+g(x) \ (c \cdot f)(x) = f(c \cdot x) $$ 线性代数中的合理概念和解决问题的手段同样能应用于函数.
函数的线性变换有一个完全合理的解释, 变换接收一个函数, 把它变成另一个函数.
微积分中的导数就是这样的线性变换, 将一个函数变换到另一个函数.
一个函数变换是线性的, 需要下面的定义:
满足上面两条性质的变换是线性的.
可加性意味着[把两个向量v和w相加, 然后对它们的和应用变换得到的结果]和[变换后的向量v和变换后的向量w相加的结果]一致.
成比例意味着[将向量v与标量相乘, 然后应用变换得到的结果]和[变换后的向量v与该标量相乘的结果]一致.
线性变换保持向量加法运算和数乘运算.
前面所说的网格线保持平行且等距分布的规则是线性变换的两条性质在二维空间情况下的体现.
这两条性质的最重要推论是: 一个线性变换可以通过它对基向量的作用来进行描述, 这使得矩阵向量乘法成为可能, 因为任一向量都能表达为基向量的线性组合. 求一个向量变换后的结果, 实际上是求出变换后的基向量以相同方式进行线性组合的结果.
微积分中的求导是线性运算.
可加性
成比例
因此可以使用矩阵来描述求导.
假设全体多项式组成一个空间, 这个空间的每个多项式都只有有限项, 但是整个空间应该包含任意高次的多项式, 需要给这个多项式空间赋予坐标的含义, 因此需要选取基.
多项式是x的不同次幂再做加和的形式, 因此使用x的不同次幂作为基函数.
基函数的作用, 类似于三维空间中i-hat, j-hat, k-hat向量的作用.
多项式的次数可以任意高, 这个基函数集合也可以无穷大; 这说明, 把多项式当作向量处理时, 它们会有无穷个坐标, 比如图中的多项式使用向量描述:
总的来说, 一个多项式都只有有限项, 因此它的坐标是有限长的一串数值, 再加上无限长的一串零, 如下图:
以图中基函数作为坐标系, 求导对应一个线性变换, 这个变换对应一个无限阶的矩阵. 其中绝大部分是零, 次对角线上按序排列着正整数. 如下图:
然后开始使用矩阵的方式求导, 假如有多项式$1x^3+5x^2+4x+5$. 根据上述的方法获得多项式对应的矩阵: [5, 4, 5, 1, 0, 0...]. 然后使用求导矩阵乘以该多项式矩阵:
注意得出的结果也是一个多项式, 因为是在多项式空间的矩阵向量乘法.
那么求导对应的矩阵变换是怎么求出的呢?
通过求每一个基函数的导数, 然后把结果放在对应列. 基函数求导相当于线性代数中的向量应用线性变换.
第一个基函数$b_0(x)=1$:
对其求导后, 产生的坐标放入求导变换矩阵的第一列中:
第二个基函数$b_0(x)=x$:
对其求导后, 产生的坐标放入求导变换矩阵的第二列中:
依次类推, 得到最终的求导变换矩阵.
线性代数中的概念和应用函数时的别名类比:
数学中很多类似向量的事物, 只要处理的对象集有合理的数乘和相加概念, 线性代数中所有有关于向量, 线性变换和其他的概念都能适用于它.
线性代数理论对类似向量的事物具有普适性, 这些类似向量的事物构成的集合, 被称为向量空间.
要让所有已建立好的线性代数理论和概念适用于一个向量空间, 那么它必须满足下面的八条公理:
这些公理并非基础的自然法则, 而是一个媒介, 一边连接着线性代数的理论和概念, 一边连接着把理论和概念应用于向量空间.
如果有新的线性代数理论和概念, 需要根据这些公理进行证明. 假如定义了一个新的向量空间, 只要该定义满足这些公理, 新的线性代数理论和概念就能应用于此.
向量的形式并不重要, 可以是任何东西, 只要向量相加和数乘遵循上面的公理即可.
正如问数学的3是什么一样, 遇到具体情况, 它就代表着三个东西的集合, 而在数学里, 3被看作所有三个东西的集合的抽象概念.
向量也是如此, 它有很多中体现, 数学把它抽象成向量空间这样一个无形的概念.
这就是线性代数如此抽象的原因, 因为普适性. 普适的代价是抽象.
克莱姆法则不是求解线性方程组的最佳方法, 但了解其几何意义十分有意义.
使用下面的线性方程组说明:
可以把这个线性方程组看作对向量[x, y]的一个已知的矩阵变换, 变换的结果是坐标[-4, -2]. 矩阵的列反映了矩阵是如何变换的, 分别对应基向量变换后的位置.
求解方程组变成了, 输入哪个向量[x, y], 在使用矩阵变换后变为[-4, -2]. 注意结果取决于矩阵变换是否降维, 即矩阵的行列式是否为零. 目前只讨论行列式不为零的情况, 即线性变换前后的维数不变.
大多数变换是会改变点积的结果的, 不改变点积结果的矩阵变换称为正交变换矩阵.
正交变换矩阵使基向量在变换后仍然保持单位长度, 且互相垂直(点积为零), 比如旋转矩阵是一个正交变换矩阵.
用正交变换矩阵求解线性系统非常简单, 因为点积保持不变, 因此已知的输出向量(等式右边的)和矩阵的列向量(矩阵的一列)的点积, 分别等同于未知的输入向量(等式左边的向量[x, y])和各个基向量的点积, 也就是输入向量的每一个坐标.
因此x等于第一列向量与已知向量的点积, y等于第二列向量与已知向量的点积.
上述的求解过程给了一个思考方式, 有没有另一种对输入向量坐标值的几何解释, 能在矩阵变换后保持不变呢? 使用基向量和输入向量, 如下图:
基向量i-hat和输入向量[x, y]组成的有向平行四边形的面积等于y.
基向量j-hat和输入向量[x, y]组成的有向平行四边形的面积等于x.
三维空间的情况也类似, 比如得出坐标y的数值, 通过下图的方式:
x和z组成的平行六面体的底面, 且面积为1, 因此y的坐标值是平行六面体的高. 于是可以使用行列式来求得y的坐标值.
行列式在变换前后, 是面积或体积的缩放比例.
考虑矩阵变换后的基向量, 已知的输出向量, 通过计算这两个向量组成的矩阵的行列式可以得出变换后, 变换前的基向量和输入向量组成的平行四边形面积的缩放比例.
下图是计算坐标值y的示例:
Area指的是变换后的基向量i-hat和已知的输出向量组成的矩阵的行列式.
det(A)指的是线性变换的矩阵的行列式.
用同样的方法解出坐标值x, 如下图:
这种线性方程组的解法, 称为克莱姆法则.