我正在嘗試基于二維位置陣列繪制橢圓軌道,從p= [5 0]. 該圖繪制了時間范圍內的位置t,此處介于 0 和 100 之間。計算使用公式 F = -(p/||p||)(m*M/(p^2) 來近似加速度和速度。結果應該如下所示:

這是我當前的代碼。它繪制了一個完全不同的形狀。我解釋力方程的方式有問題嗎?
非常感謝任何其他幫助和評論。
t = 0; p = [50 0]; v = [0 8]; %Initial conditions
dt = 0.05;
M = 10000; m= 1;
tmax = 100;
figure, hold on
d = 0.001
clf;
while t < tmax
F = -(p./norm(p)).*(m*M./(p*p'));
a = F./m - d*v;
v = v a*dt;
p = p v*dt;
t = t dt;
plot(p(1),t,'o','MarkerSize',0.5);
hold on;
plot(p(2),t,'o','MarkerSize',0.5);
end

uj5u.com熱心網友回復:
您希望p(1)在x軸和p(2)y軸上,以t作為引數。所以你需要用(保持)替換這兩plot行:plot(p(1),p(2),'o','MarkerSize',0.5);hold on
t = 0; p = [50 0]; v = [0 8]; %Initial conditions
dt = 0.05;
M = 10000; m= 1;
tmax = 100;
figure, hold on
d = 0.001
clf;
while t < tmax
F = -(p./norm(p)).*(m*M./(p*p'));
a = F./m - d*v;
v = v a*dt;
p = p v*dt;
t = t dt;
hold on
plot(p(1),p(2),'o','MarkerSize',0.5); %%% modified line
end

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/469218.html
上一篇:引導輪播不作業。不是滑的嗎?
