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

为了确定库是否产生良好的结果,我必须将它们与预期结果进行比较。由于四舍五入等原因,即使是良好的结果,与预期的也将有所不同(例如,预期为0.7010.700)。

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

我应使用哪种方法确定2D,3D和4D(四元数) vector 的相似性?

最佳答案

没有普遍适用的措施。特别地,对于加法,绝对误差更好,而对于乘法,相对误差更好。

对于 vector ,还可以在长度和方向上考虑“相对误差”。如果您考虑一下,“可接受的结果”会在精确结果周围形成一小块区域。但是这个区域的形状是什么?它是轴对齐的正方形(x和y方向的绝对误差)吗?这将赋予特定的 vector 基础特权。圆形可能是更好的形状。

关于c++ - 我应使用哪种方法确定2D,3D和4D(四元数) vector 的相似性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33948665/

10-12 12:36
查看更多