矩阵和向量乘法的几何意义
当向量和矩阵都在同一坐标系(如世界坐标系)下表示时,矩阵乘法是对向量进行变换,结果向量仍在同一坐标系下表示。这种变换可以是旋转、缩放、平移等。
当矩阵的列向量作为基向量,向量在矩阵为基向量所在的局部坐标系中表示时,向量乘以矩阵后,结果是在矩阵所在的坐标系下的表示。
当在世界坐标系下表示的向量,乘以矩阵的逆矩阵,相当于将向量转换到矩阵定义的局部坐.系中。
第1点描述的是向量变换,变换后仍在同一坐标系下,向量的方向或长度发生了变化;第2和第3点描述的是坐标系转换,向量在世界坐标系中的物理位置或方向不变,但其表示方式在不同坐标系下发生变化。
总的来说,向量和矩阵的乘法几何性质上不是唯一的,有可能是对向量本身的变换,也有可能是坐标系视角的切换,这取决于两者所在的坐标系空间。
向量变换:如果向量和矩阵在同一坐标系中,那么矩阵乘法是对向量进行变换,比如旋转、缩放、平移等。变换后的向量仍然在同一坐标系中,但其方向或长度发生了变化。
坐标系切换:如果矩阵的列向量表示一个局部坐标系的基向量,而向量在这个局部坐标系中表示,那么矩阵乘法的结果是将这个向量从局部坐标系转换到世界坐标系中。
我们以符合学名的用语来进行最后总结
线性变换:矩阵和向量在同一个坐标系中,矩阵作用于向量进行各种变换。
改变基底:涉及向量和矩阵在不同的坐标系中,通过基底转换矩阵实现向量表示的转换。
矩阵对向量的降维
想要用矩阵对向量降维,使用小于向量秩的矩阵对其进行乘法即可。
但是在实际表现过程里面,这个矩阵的外貌可能各种各样,我们假设有个3维的向量。
那么,只需要一个行为3,列为2的矩阵,即可对这个向量进行二维降维,行为3,列为1则可以进行一维降维。
可以看出,行必须和向量数相同,列是目标维度。
需要强调的是,即使格式上满足了降维的行列数量,但仍然可能出现几何意义上的更低维度。例如,一个2×2 的矩阵可能只能获得一维效果,即变换结果被固定在了一条直线上。
比如一个常见的例子2X2矩阵(1,1,1,1),虽然这是一个2×2 的矩阵,但它的秩实际上是 1,因为它的两行是线性相关的。这意味着它只能将向量投影到一个一维直线上。
因此,不能仅仅凭借M×N 的行列数来判断矩阵的秩,而是需要通过检查矩阵的线性无关性来确定其真正的秩。
注意事项
降维不是删除坐标:
降维的本质并不是将被降维的坐标系删除,而是将其相应的坐标分量设置为 0。这样可以随时通过运算恢复原来的坐标信息。
补零操作:
基于第一点,你会发现,为了方便某些矩阵运算,常常会允许在向量的某些维度上补零或者删去0。例如,将一个三维向量降维到二维时,可以使用一个3×2 的矩阵进行乘法,结果是一个二维向量,但第三个维度信息被丢弃或设置为零。
矩阵乘法不满足消去律
消去律:AXB=AXC,B=C
为什么不满足:
原因是矩阵 A 的计算可以包含降维操作。
假设矩阵 A 将某个维度压缩为零(即降维),那么 B 和 C 在该维度上的不同信息将被忽略。这意味着,即使 B 和 C 在这个维度上不同,结果 AXB 和 AXC 仍然可能相同。因此,矩阵乘法不满足消去律。
但是,假如 A 的计算不构成降维操作(即 A 是满秩的且可逆),那么消去律可以成立。
例子
考虑矩阵 A 为 2×2 矩阵:
𝐴=(1,1,1,1)
这个矩阵虽然看起来是二维的,但是它的秩只有1,不构成满秩,这导致它最终只能把向量变换到一个一维直线上。
几何意义上来说,矩阵 A 将所有向量投影到直线 (1,1)的倍数上。因此,任何在这个直线以外的向量分量在经过 A 的作用后都会被压缩到零。
因此,在 A 矩阵所张成的直线以外的向量分量,最终都会被 A 降维后传递给 B 或 C 进行变换,所以 B 和 C 与之有关的向量数据可以随意取值,这就导致AXB=AXC不一定意味着 B=C,从而不构成消去律。
向量平移,旋转和缩放
Unity内,向量在矩阵运算里面的默认顺序是先缩放,在旋转,后平移。
缩放和平移顺序会影响最终结果很好理解,但是旋转和缩放的顺序其实是有一些细节的:如果缩放是所有轴均匀缩放,那顺序可以调换。
均匀缩放和旋转的顺序互换:当使用均匀缩放时,由于缩放在所有方向上是一致的,先进行旋转或缩放通常不会影响最终结果。这意味着,无论缩放还是旋转先进行,对象的最终视觉状态应该是相同的。
非均匀缩放的顺序:在非均匀缩放的情况下,先后顺序会影响对象的最终形状。例如,如果你先在一个轴上非均匀缩放,再进行旋转,那么旋转将基于已经被缩放的形状,这会导致不同的视觉效果。反之亦然,如果先旋转再非均匀缩放,旋转后的对象将在新的方向上进行缩放,这也会产生不同的效果。
缩放本质应该各条基向量的缩放,如果看成向量本身的缩放,很容易陷入思维陷阱,因为非均匀缩放实际上是会导致旋转发生的。
所以为了保证效果统一,建议一切按照默认顺序。
向量点乘投影概念理解的推导逻辑
问题:点乘可以理解为两个二维向量的互相投影得到的长度,但是为什么它既可以代表投影,又允许互相交换投影?(不受顺序影响)
点乘公式为什么可以代表投影
1.线性变化的本质可以认为是对基向量(x,y基坐标)的变化乘上它的系数(即二维向量的坐标)
2.点乘显然是一个二维到一维的线性变化(向量变值),运算顺序为:x和y的基坐标投影到目标单位投影向量上得到x值和y值,然后系数分别乘以得到的两个值,得到点乘结果,而这个投影过程得有一个公式来对向量进行计算,这个公式我们记作A。
3.我们不妨设一个目标单位投影向量,模长为1的单位向量,我们希望把一个向量投影到它身上,二维坐标里面的基向量大部分情况下显然是x(1,0)和y(0,1),我们分别把两个基向量通过三角函数投影到目标单位投影向量上,会发现值都是cos夹角角度X模长1。
5.且由于对称性,我们惊人的发现目标单位投影向量投影到x和y,与x和y投影到目标单位投影向量的结果是一样的!
6.经过计算,由于目标单位投影向量投影到x和y的值本来就是目标单位投影向量向量意义上的x和y,我们很容易得出投影公式A就是目标单位投影向量坐标本身,点积公式就是(x系数,y系数)X 目标投影向量自身坐标,显然成立了。
7.那假如目标单位投影向量是非单位向量呢?显然,A公式(即目标投影向量的坐标)既然被放大了系数倍,那结果直接乘上其系数即可,这就是点乘公式的推广了。
为什么可以互相交互投影(不受顺序影响)
由点乘公式|a| * |b| cosθ证明
由于点乘公式的性质在上面被证明了,那说明两个向量之间可以被互相投影,又由于
它们之间的夹角本来就是相同,天然有三角函数的对偶性
可以得出它们如果长度相同,互相投影长度本来就相同,只收到双方模长的影响,自然可以得出两种投影结果永远相同的结论。
重点
1.理解点乘是二维向一维空间的线性变化,而被投影的向量对象本身坐标就是变化公式。
2.线性变化的本质可以看成对基坐标的变化,系数(坐标)即使进行线性变化了也永远不会改变,直接乘上变化后的基坐标即可得到新坐标。
所以我们在证明点乘公式的时候,把注意力放到了基坐标上,证明了基坐标可以投影后,原向量的投影便自动成立。
3.二维向量本身和自身所在一维向量变化公式有微妙的联系。