# Gram-Schmidt Process for orthonormalizing
#归一化向量 u
#正交化和归一化向量 v :正交化步骤 (Ortogonalization):通过从 v 中减去在 u 上的投影,来确保 v 和 u 是正交的:
u = u / np.linalg.norm(u)#linalg.norm,范数,ord=None:默认情况下,是求整体的矩阵元素平方和,再开根号。
v = v - np.dot(v, u) * u
v = v / np.linalg.norm(v)
w = np.cross(u, v)
不进行归一化的影响
-
影响方向矩阵精度和稳定性 :
- 如果向量没有标准化或归一化,生成的方向矩阵(或其他几何转换矩阵)将不会维持统一的尺度。这导致矩阵在应用变换时放大会随方向而变化,输出结果可能因尺度的不同而变形。
-
几何失真 :
- 未归一化的向量将导致不一致的缩放因子。矩阵行列式不为1将意味着这不是一个纯旋转矩阵,可能导致旋转后的数据尺度不一致。
-
累积误差和运算稳定性 :
- 在多次几何运算时,未归一化的向量会使数值误差放大,影响模型的鲁棒性和计算中几何变换的稳定性。
-
相对方向影响 :
- 未归一化可能使得两个(或更多)向量之间的相对角度误差被放大,尤其是在运用复杂空间变换时,如斜切或任意轴旋转。
通过归一化,这些向量的方向得以保持一致,尺度统一,从而确保其在几何变换中的精确和稳定性。对于斜切矩阵,始终保持单位尺度和正交性是保证正确物理变换的关键。