我正在使用C++编写物理模拟器,对其稳健性感到担忧。我已经了解到在浮点数算术中计算两个几乎相等大小的数字之间的差异时,可能会发生灾难性取消。
当计算两个几乎正交的向量的点积时,仿真器可能会出现这种情况。
然而,我查看的参考资料仅讨论通过重新编写相关方程(例如,可以重写二次公式以消除问题)来解决该问题-但似乎不适用于计算点积?
我想知道这是否通常是物理引擎中的一个问题,以及如何解决它。
我正在使用C++编写物理模拟器,对其稳健性感到担忧。我已经了解到在浮点数算术中计算两个几乎相等大小的数字之间的差异时,可能会发生灾难性取消。
当计算两个几乎正交的向量的点积时,仿真器可能会出现这种情况。
然而,我查看的参考资料仅讨论通过重新编写相关方程(例如,可以重写二次公式以消除问题)来解决该问题-但似乎不适用于计算点积?
我想知道这是否通常是物理引擎中的一个问题,以及如何解决它。