matlab模拟三体运动_Matlab模拟三体运动
m1=1.5e30;%1號(hào)星的質(zhì)量-紅
m2=3.01e30;%2號(hào)星的質(zhì)量-藍(lán)
m3=3.5e30;%3號(hào)星的質(zhì)量-綠
h1=animatedline('MaximumNumPoints',2000,'color','r');%動(dòng)畫
h2=animatedline('MaximumNumPoints',2000,'color','b');
h3=animatedline('MaximumNumPoints',2000,'color','g');
G=6.67e-11;%引力常量
v1=[20,40];%三顆恒星的初始速度
v2=[-30,20];
v3=[27,-30];
pos1=[0,1.5e18];%三顆恒星的坐標(biāo)
pos2=[1.5e18,3e18];
pos3=[3e18,0];
delt=0.1;%觀測(cè)時(shí)間間隔
for i=1:10000
addpoints(h1,pos1(1),pos1(2));
addpoints(h2,pos2(1),pos2(2));
addpoints(h3,pos3(1),pos3(2));
drawnow;
pos1=pos1+v1*delt;%更新位置
pos2=pos2+v2*delt;
pos3=pos3+v3*delt;
r12=normest(pos2-pos1);
r23=normest(pos3-pos2);
r31=normest(pos1-pos3);
f12_len=G*m1*m2/(r12^2);
f23_len=G*m2*m3/(r23^2);
f31_len=G*m3*m1/(r31^2);
f12_dir=(pos2-pos1)/r12;%計(jì)算萬有引力
f23_dir=(pos3-pos2)/r23;
f31_dir=(pos1-pos3)/r31;
f12=f12_len*f12_dir;
f23=f23_len*f23_dir;
f31=f31_len*f31_dir;
v1=v1+(f12-f31)*delt;
v2=v2+(f23-f12)*delt;
v3=v3+(f31-f23)*delt;
end
clear;
總結(jié)
以上是生活随笔為你收集整理的matlab模拟三体运动_Matlab模拟三体运动的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 乐视max2如何打开heic文件,hei
- 下一篇: 离散数学--联结词