向量表达什么
向量可以表达位置、速度、特征或一组系数。相同维数不代表相同物理意义,计算前还要核对坐标系和单位。点积常用于投影和相似程度,范数用于描述大小;归一化前需要处理零向量。
矩阵可以看作线性变换,也可以看作数据排列。使用列向量约定时,矩阵 A 乘向量 x 得到新的向量。矩阵乘法通常不交换,连续变换的书写顺序必须与应用顺序一致。
平面上的旋转和平移
def transform(point, rotation, translation):
x, y = point
return (
rotation[0][0] * x + rotation[0][1] * y + translation[0],
rotation[1][0] * x + rotation[1][1] * y + translation[1],
)
r = ((0, -1), (1, 0))
assert transform((1, 0), r, (2, 3)) == (2, 4)
这个例子先将点逆时针旋转 90 度,再平移。若交换旋转和平移的顺序,一般会得到不同结果。描述传感器到机器人底盘的变换时,应明确“从哪个坐标系转换到哪个坐标系”。
求解而不是盲目求逆
线性方程组 Ax=b 的解是否存在、是否唯一,与秩和约束有关。实际数值程序通常调用适合问题结构的求解器,不显式计算逆矩阵。数据噪声下可以求最小二乘,但病态矩阵会放大误差,需要观察条件和残差。
特征向量说明某些方向经过变换后只改变尺度;奇异值分解提供更一般的分解视角。这些概念用于降维、拟合和稳定性分析,学习时应先理解几何意义,再记计算步骤。
练习
手工计算上述变换的逆过程,验证回到原点。给一组带噪声的直线数据拟合参数,分别观察残差和参数偏差,说明“残差小”为什么还不等于模型适合所有新数据。