我在matlab中编写了一个轨道传播器(计算每个时间步的卫星的位置和速度),它非常准确(24小时传播4.5公里)。我不得不用C重写它,我做了它并且它工作正常但是我的结果准确性要低得多(24小时传播450公里),所以我想知道什么可能导致C的精度损失完全相同计算(我比较了脚本以确保我没有忘记任何事情。)?
根据需要,我的所有变量都是双倍或长倍。整体没有分歧。误差随着时间的推移呈线性增长。
我的main函数包含一个while循环,它通过调用计算函数来更新我的位置和速度数组的值,该函数将指向数组的指针作为参数。