Matlab仿真对行星运动
4视图(30天)
显示旧的评论
已经有一些尝试模拟行星运动,但我认为我是直接通过求解
和更新位置通过
与欧拉克罗默方法:
t = 0;
而t < 10
pos1 = (1 2 3);
pos2 = (4 5 6);
m1 = 1;
m2 = 2;
G = 1;
r1 = pos1-pos2;
r2 = pos2-pos1;
F1 m1 = G * *平方米/规范(r1) ^ 2。* r1 /规范(r1);
F2 m1 = G * *平方米/规范(r2) ^ 2。* r2 /规范(r2);
dt = 0.1;
p1 = (100 0);
p2 = (100 0);
p1 = p1 + F1。* dt;
p2 = p2 + F2。* dt;
pos1 = pos1 + p1 / m1;
pos2 = pos2 + p2 /平方米;
t = t + dt;
持有所有;
pos1 plot3 (pos1 (1) (2), pos1 (3),“处方”)
pos2 plot3 (pos2 (1) (2), pos2 (3),“软”)
结束
但是我真的不接收多个数据点的情节,剩余2穿过静止的。我也得到一个二维图,即使我回归
plot3
接受的答案
答案(1)
KSSV
2022年3月16日
t = 0;
m1 = 1;
m2 = 2;
G = 1;
pos01 = (1 2 3);
pos02 = (4 5 6);
pos1 = 0 ([], 3);
pos2 = 0 ([], 3);
iter = 0;
而t < 10
iter = iter + 1;
r1 = pos01-pos02;
r2 = pos02-pos01;
F1 m1 = G * *平方米/规范(r1) ^ 2。* r1 /规范(r1);
F2 m1 = G * *平方米/规范(r2) ^ 2。* r2 /规范(r2);
dt = 0.1;
p1 = (100 0);
p2 = (100 0);
p1 = p1 + F1。* dt;
p2 = p2 + F2。* dt;
:pos1 (iter) = pos01 + p1 / m1;
:pos2 (iter) = pos02 + p2 /平方米;
:pos01 = pos1 (iter);
:pos02 = pos2 (iter);
t = t + dt;
结束
图
持有在
plot3 (pos1 (: 1) pos1 (:, 2), pos1 (:, 3),“处方”)
plot3 (pos2 (: 1) pos2 (:, 2), pos2 (:, 3),“软”)
视图(3)