关于Vector、Matrix乘法的用途、起源及3D含义的技术咨询
1. 向量-矩阵乘法:用途与起源
核心用途
- 空间坐标变换:这是3D图形、机器人学里最常用的场景——把空间中的点(或方向向量)做旋转、缩放、平移等操作,本质就是用变换矩阵乘该向量。比如游戏里把模型从自身局部坐标系转到世界坐标系,就是用世界矩阵逐个乘模型的顶点向量。
- 高维数据处理:机器学习中,把高维特征向量投影到低维空间,或是计算神经网络层间的输出,都依赖向量-矩阵乘法。比如用权重矩阵乘输入特征向量,得到降维后的新特征。
- 线性组合求解:向量乘矩阵等价于将矩阵的列向量按向量分量做加权求和,比如
v = [a,b,c],矩阵M = [m₁, m₂, m₃](m₁/m₂/m₃为列向量),则v·M = a*m₁ + b*m₂ + c*m₃,这是解线性方程组的核心思路。
起源
向量-矩阵乘法的雏形来自19世纪线性方程组的简化表达。数学家亚瑟·凯莱(Arthur Cayley)在研究线性变换时发现:多个线性方程(如y₁ = a₁₁x₁ + a₁₂x₂、y₂ = a₂₁x₁ + a₂₂x₂)可以用矩阵形式统一写成[y₁; y₂] = [[a₁₁,a₁₂],[a₂₁,a₂₂]] * [x₁;x₂],这种写法把“对变量施加线性变换”转化为“向量与矩阵相乘”,逐渐形成了标准化的乘法规则。
2. 矩阵-矩阵乘法:用途与起源
核心用途
- 变换复合:把多个独立的空间变换合并成一个矩阵。比如先对模型做缩放,再做旋转,最后做平移,这三个变换矩阵相乘后得到一个复合矩阵,用它乘顶点向量,等价于依次执行三个变换,大幅提升计算效率。
- 线性映射叠加:如果矩阵A是从空间X到Y的线性映射,矩阵B是从Y到Z的线性映射,那么
B·A就是从X到Z的复合映射,这是线性代数、泛函分析的基础概念。 - 批量数据运算:机器学习中,当处理批量输入时,把多个输入向量拼成矩阵,再和权重矩阵相乘,就能一次性完成所有样本的计算,避免循环逐个处理。
起源
矩阵乘法同样由凯莱在1858年正式定义,初衷是为了简化线性变换的复合表达。比如两个线性变换T、S分别对应矩阵M、N,先执行S再执行T的复合变换,对应的矩阵就是M·N——用矩阵乘法直接表示变换叠加,不用再写一堆繁琐的线性方程。更早高斯在解线性方程组时已有类似运算思路,但凯莱给出了严格的符号化定义与运算规则。
3. 3D空间中的几何表现
向量-矩阵乘法的几何意义
3D中的向量可以代表空间点或方向,乘矩阵就是对这个点/方向执行预设的空间变换:
- 缩放变换:用矩阵
[[sₓ,0,0],[0,sᵧ,0],[0,0,s_z]]乘向量(x,y,z),结果为(x*sₓ, y*sᵧ, z*s_z),几何上是把点沿三个坐标轴方向拉伸/压缩。 - 旋转变换:比如绕X轴旋转θ角的矩阵
[[1,0,0],[0,cosθ,-sinθ],[0,sinθ,cosθ]],乘向量后,点的X分量不变,Y、Z分量按三角函数关系旋转,实现绕X轴的定向旋转。 - 剪切变换:用矩阵
[[1,k,0],[0,1,0],[0,0,1]]乘向量,结果为(x + k*y, y, z),几何上是把点沿X轴方向,按Y分量的比例做剪切偏移。
简单说,向量-矩阵乘法就是让空间中的点/方向,按照矩阵定义的规则“移动”或“变形”。
矩阵-矩阵乘法的几何意义
两个矩阵相乘,本质是把两个空间变换叠加。比如矩阵A是缩放变换,矩阵B是旋转变换,那么B·A代表“先执行缩放,再执行旋转”(注意矩阵乘法顺序:B·A·v等价于先让v被A变换,再被B变换)。用复合矩阵直接乘向量,和依次执行两个变换的结果完全一致,这在3D渲染中能大幅减少计算量。
矩阵乘法的拆分确认
完全可以拆分。假设矩阵A(m×n)和B(n×p)相乘得到C = A·B(m×p):
- 若把
B拆分为p个n维列向量b₁, b₂, ..., bₚ,则A·B = [A·b₁, A·b₂, ..., A·bₚ]——即C的每一列都是A与B对应列向量相乘的结果,再拼接成矩阵。 - 若把
A拆分为m个n维行向量a₁, a₂, ..., aₘ,则A·B的第i行就是aᵢ·B——即C的每一行都是A对应行向量与B相乘的结果。
这种拆分和直接矩阵乘法的计算结果完全一致,本质上矩阵乘法的规则就是基于向量乘法的组合定义的。
内容的提问来源于stack exchange,提问作者JasperJonathan

