需要角动量误差< 1%,不知道为什么错误值不改变w /改变时间步

1视图(30天)
你好所有的,
之前我在跳转到细节——https://pastebin.com/y6wcUHg6。这是我的代码
我正在写一些代码来模拟一个轨道,然后计算动能,潜力和总能量的轨道并显示它们。这最初是为一个类框架代码,我们需要更新的二阶龙格库塔法和欧拉方法计算角动量以及前面提到的能量和阴谋。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
我们知道在一个理想的地球轨道(没有月亮的影响)角动量和总能量是守恒量,因此初始值应该等于最终值。我们正试图找到一个时间步大小的部分这些量的变化小于1%(下面讨论)。现在我负责找我怎么小的步长是必要的为了找不到1%典型的地球轨道的能量变化——使用r0 = 1 AU。v0 = 2 *πAU /年,然后结合nStep步骤(#)和τ(时间步长),这样的产品2总是等于1(即。nStep = 100和τ= . 01)。然后发现小τ我需要为了找到一个角动量的变化不到1%。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
我还没有写任何东西在我的代码来显示这些数量的分数改变{流的一份声明显示,说,100 * abs (L - L(最终)(初始)/ L(初始))}但是我在检验开始nStep = 100和τ= . 01和得到一个势能动能+ 20,-40总-20左右。这些能量在技术上不显示任何错误在他们是常数时间,但最近我们做了一个类似的运动,这不是我们所观察到的,我们观察到的总能量变化越来越接近零增长随着时间步下降。我也可以提供代码,如果必要的。然后我得到1 x100矩阵的角动量值31左右的初始值和最终值约为3.2 * 10 ^ 5。我收到的图反映了这一点。
当我减少时间步的因素10(因此增加nStep由同一因素10)我继续得到相同的值每十倍的能量和减少时间步的角动量的最终价值似乎增加了1000倍。
我不相信增加时间步将给我一个分数角动量变化接近0,我不知道为什么我的能量并不是不同的初始和最终值(或任何)和他们的部分能量变化与时间步长方法无穷收敛于零。非常感谢您的帮助! !有一个可爱的夜晚:)
1评论
凯尔·奥康奈尔
凯尔·奥康奈尔 2017年10月24日
我一直在做一些无用的,我看到的唯一改变初始和最终值的变化改变了for循环运行(即多久。,改变nStep) . .但这似乎微不足道,因为它基本上是说你需要一个初始值迭代,然后一些公式适用于它的步骤,每一步表面上移动远离最初的当前值,从而为更少的时间运行负担更少的“漂移”的初始值。有没有可能是这个简单的要求,我只需要找到一个nStep和τ,允许足够的时间短,这样这些quanitites小于1%的变化?还是我错过一些基本问题(或轨道)?谢谢!

登录置评。

答案(1)

大卫Goodmanson
大卫Goodmanson 2017年10月24日
你好,凯尔,
现在你是计算轨道使用r和v和你不需要任何其他变量。然而,如果你想做一个平行计算L,你会在每一个时间步
L = L +τ* torquemid
类似于你正在做的事情与r和v。
如果有一个力矩作用在地球绕着太阳转,然后角动量会随着时间改变。然而,由于力是一个中央的方向- r,扭矩(r×F)是零。你希望我是一个常数。所以数组“角”应该只是一个检查轨道计算的。有三行代码涉及w0、L和角,如果你更换这些东西
角(iStep) =质量*检波器([rmid;的vmid]);
然后你可以看看你的代码是在保留L。

类别

找到更多的在地球和行星科学帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!