使用欧拉地球绕太阳

61(30天)
我不精通matlab,也不是在物理,但我想做一个简单的模拟地球绕太阳,但它似乎并不工作。我想用欧拉计算二维坐标。我想点最终或多或少圆形的情节,但是我刚刚一条直线…我使用美国国家航空和宇宙航行局的数据,我希望太阳在起点。做一些在线阅读之后,我仍然不能图我似乎做错了. .
这是到目前为止我有:
%身体={‘太阳’,‘地球’,‘月亮’};
质量= (1.989 e8 5.972 e2 7.349)。* 1 e22;
%的位置(x, y)
xx = -7.461557189835504 e-01 [0];
yy = 6.451970837257494 e-01 [0];
%的速度(vx, v)
用户体验= -1.154054959303684 e-02 [0];
uy = -1.307896092314608 e-02 [0];
G = 6.67 e-11;
% M =质量(1)*质量(2);
M =质量(1);
x0 = xx (2);y0 = yy (2);vx0 =用户体验(2);vy0 = uy (2);
t0 = 0;
x (1) = x0;
y (1) = y0;
vx (1) = vx0;
v (1) = vy0;
t (1) = t0;
fvx = @ (x, y) - (G * M * x / ((x ^ 2 + y ^ 2) ^ (3/2)));
fvy = @ (x, y) - M (G * * y / ((x ^ 2 + y ^ 2) ^ (3/2)));
步骤= 1000;
dt = 1 /步骤;
k = 1:步骤1
vx (k + 1) = vx (k) + fvx (x (k), y (k)) * dt;
v (k + 1) = v (k) + fvy (x (k), y (k)) * dt;
x (k + 1) = x (k) + vx (k + 1) * dt;
y (k + 1) = y (k) + v (k + 1) * dt;
t (k + 1) = t (k) + dt;
%的阴谋(x (k + 1), y (1 + k) - b);
% drawnow;
结束
持有
情节(x, y,“r”)
drawnow;

答案(2)

沃尔特·罗伯森
沃尔特·罗伯森 2021年2月15日
编辑:沃尔特·罗伯森 2021年2月15日
G s ^ 2的时间单位
你的最长时间(步骤1)/步骤也就是小于1。1 什么 吗?因为你不应用任何扩展G我们必须得出结论“1秒”
因此你有精心策划的轨道在成千上万的第二个一秒钟,你预计可见的曲率。
你的地球从太阳有多远?G的单位包括m ^ 3和你的第一个对象是7 e 1远离第二,所以我们认为你的模拟地球大约是70厘米远离太阳的质心。
不幸的是,如果你集中太阳质量的到小的半径,那么你将有一个黑洞,黑洞的半径将之间的5和6公里。因此如果你想绘制地球轨道75厘米质心的太阳,你要么模型条件在一个黑洞,否则你必须减少太阳的有效质量的,那将是“上面”地球,所以把地球上减少了有效质量。

有个海琳Tveitaskog Vesterøy
编辑:沃尔特·罗伯森 2021年2月16日
啊哈,好吧,我没有意识到我的单位不匹配!我已经添加了AU-data(我没有意识到我是失踪),G。如果我的计算是正确的我固定的价值观在国际标准单位,我宁愿我的轨道不是一个黑洞。现在我的方法似乎是绕太阳,华友世纪!
我也改变了我的步伐,所以我认为这是正确的?:)
我还是想知道,为什么会没有阴谋在循环?这不是很重要,我很好策划向量x和y外循环,但为什么它不是使用直接策划里面的x - y坐标?
%身体={‘太阳’,‘地球’,‘月亮’};
质量= (1.989 e8 5.972 e2 7.349)。* 1 e22;%公斤
非盟= 149597870700;%米
%的位置(x, y)
xx = -7.461557189835504 e-01[0]。*盟;% m
yy = 6.451970837257494 e-01[0]。*盟;% m
%的速度(vx, v) % m / s
用户体验= [0 -1.154054959303684 e-02]。* AU / 86400;%从m / m / s
uy = [0 -1.307896092314608 e-02]。* AU / 86400;
G = 6.67 e-11;% m ^ 3 /(公斤* s ^ 2)
M =质量(1);
x0 = xx (2);y0 = yy (2);vx0 =用户体验(2);vy0 = uy (2);
t0 = 0;
x (1) = x0;
y (1) = y0;
vx (1) = vx0;
v (1) = vy0;
t (1) = t0;
fvx = @ (x, y) - (G * M * x / ((x ^ 2 + y ^ 2) ^ (3/2)));
fvy = @ (x, y) - M (G * * y / ((x ^ 2 + y ^ 2) ^ (3/2)));
T = 20 * 365.25 * 24 * 60 * 60;特遣部队% %时域:0 - - > 10年秒
% T = 365.25 * 24 * 60 * 60;
N = 500;
dt = T / N;
%的阴谋(x (1), y (1),“r”);%第一点
%轴([2 2 2 2]。* 1 e11);
%抓住
k = 1: N
% vx (k + 1) = vx (k) - ((G * M) / ((sqrt (x (k) ^ 2 + y (k) ^ 2)) ^ 3)) * x (k) * dt;
vx (k + 1) = vx (k) + fvx (x (k), y (k)) * dt;
% v (k + 1) = v (k) - ((G * M) / ((sqrt (x (k) ^ 2 + y (k) ^ 2)) ^ 3)) * y (k) * dt;
v (k + 1) = v (k) + fvy (x (k), y (k)) * dt;
x (k + 1) = x (k) + vx (k + 1) * dt;
y (k + 1) = y (k) + v (k + 1) * dt;
t (k + 1) = t (k) + dt;
%的阴谋(x (k + 1), y (k + 1),“r”);
%抓住
% drawnow;
结束
情节(0,0,“o”,“线宽”25岁的“markersize”5,“颜色”,“k”);%的太阳
持有
情节(x, y,“r”)使用欧拉%地球绕太阳
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年2月16日
%的阴谋(x (k + 1), y (k + 1),“r”);
情节,只会一点,和情节()只有情节点之间画线(如果至少有两个连续的有限的端点。如果你有指定的标记,如“r * - - - - - -”然后你就会看到标志。
参见animatedline ()

登录置评。

类别

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

社区寻宝

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

开始狩猎!