|
1
4
你的计算在数值上不稳定。 在你的程序中,事情首先开始破裂的确切位置是加速度计算。例如:
Body_3和Body_2包含大小相似的非常大的数字。它们的差异将是一个非常小的数字。平方这个小数字会使它变得更小。然后你把质量除以这个非常小的数字,得到一个非常非常大的数字。这不好。 在您的情况下,body_3和body_2的数字是偶数 完全相同的 ,所以你在这里真的被0除了,这会直接把你送到 inf 。但是,即使数字只是有点相等,你也可能会在这里遇到问题。 请注意,这主要不是所用浮点数据类型精度有限的问题(尽管可以通过增加更多精度在一定程度上缓解这个问题),而是计算结构的问题。有一个完整的计算机科学学科叫做数值计算,专门处理这样的计算可能出现的微妙问题。 我建议你从对数值积分进行一些研究开始,这正是你在这里试图做的,并看看一些常见的陷阱,比如 catastrophic cancellation 问题 |
|
|
2
0
你的
上的加速度矢量
请注意
|
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |