数值模拟使用rk4方法逆法的轨道运动

2视图(30天)
我试图模拟使用RK4方法地球和太阳的轨道运动。r ^ 2,我有一个椭圆轨道,但速度不会改变,因为它应该根据开普勒即马克斯在近日点和最小apehelion,取而代之的是周期性变化。我不确定我有错了的地方。我怎么更新速度变化量?
同时,我试着改变它立方体逆法,r ^ 3,轨道应该不稳定但痕迹椭圆路径。
这是我的代码,
% t年非盟和距离
% e = 0.15达峰时间= 1 B = 2
函数inverse_law_elliptical (e、达峰时间、B)
c = [0; 1/2; 1/2; 1];
= [0 0 0 0;1/2 0 0 0 0 5 0 0;0 0 1 0];
w = (1/6 1/3 1/3 1/6);
女士= 2 * 10 ^ 30;%的太阳
G = 4 *π^ 2 /女士;% 6.67 e-11 * (6.68459 e-12) ^ (3) * (3600 * 24 * 365) ^ 2;
h = 0.001;%步长
a0 = (1 / (0.998)) ^ (1/3);%半长轴的地球
x = a0 * e;%协调的阳光
y = 0;
x0 = a0;%初始位置的地球
y0 = 0;
r0 =√(x0-xs) ^ 2 + y0 ^ 2);%初始太阳和地球之间的距离
vx = 0;%的初始速度
v = 2 *π* r0;
t (1) = 0;% initalizing t
i = 1;%初始化我
(:1)= (x0, y0, vx; v);
r = @ (t)√(s (1) - x) ^ 2 + s (2) ^ 2);
F = @ (t, s) [s (3), (4); - g * * s女士(1)/ r (t) ^ (B + 1); - g * *女士s (2) / r (t) ^ (B + 1)];%的功能
%初始化RK4方法
t(我)<最高温度
k = 0(长度(s(: 1)),长度(c));
j = 1:长度(c)
k: j = h * F (t(我)+ c (j) * h, s(:,我)+ k * (j:) ');
结束
(:,i + 1) =年代(:,我)+ k * w ';
t (i + 1) = t(我)+ h;
我=我+ 1;
结束
:x1 = s (1);% x和y的地球
日元= s (2:);
t =长度(s (1:));
% %动画循环
i = 1: t
情节(x, y,“.y”,“Markersize”,70)
持有
情节(x1(1:我),y1(1:我),“k”,“线宽”,2)
持有
轴([2 2 2 2]);
标题(“地球绕太阳的模拟”,“字形大小”,12)
包含(“轴”,“字形大小”,10)
ylabel (“轴”,“字形大小”,10)
暂停(0.01)
结束
2的评论
瑞玛·shrestha
瑞玛·shrestha 2018年11月25日
编辑:madhan拉维 2018年11月25日
vx = 0的初始速度和s(3)是x的位置的速度是存储在数组中。

登录置评。

答案(0)

类别

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

标签

社区寻宝

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

开始狩猎!