我应该使用哪种方法来确定 2D、3D 和 4D(四元数)向量的相似性?

Which method should I use to determine the similarity of 2D, 3D and 4D (quaternions) vectors?

我正在为数学库编写一些简单的单元测试。

为了确定库是否产生了好的结果,我必须将它们与预期的结果进行比较。由于四舍五入等原因,即使是好的结果也会与预期的结果有 一点 的差异(例如 0.701,而预期 0.700)。

问题是,我必须确定两个向量的相似程度。我想将这种相似性描述为错误比例(对于数字,例如 errorScale(3.0f /* generated */, 1.0f /* expected */) = 3.0f/1.5f = 2.0f == 200%)。

我应该使用哪种方法来确定 2D、3D 和 4D(四元数)向量的相似性?

没有普遍适用的衡量标准。特别是,对于加法,绝对误差更好,而对于乘法,相对误差更好。

对于向量,"relative error"也可以考虑长度和方向。如果您考虑一下,"acceptable outcomes" 会在确切结果周围形成一个小区域。但是这个区域是什么形状的呢?它是轴对齐的正方形(x 和 y 方向的绝对误差)吗?这赋予了特定的矢量基础特权。圆形可能是更好的形状。