三体运动的matlab演示_第1页
三体运动的matlab演示_第2页
三体运动的matlab演示_第3页
三体运动的matlab演示_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、三体运动的matlab演示figure('name','三体运动');%设置标题名字N=3; %x=zeros(1,N);y=zeros(1,N);vx=zeros(1,N);vy=zeros(1,N);ax=zeros(1,N);ay=zeros(1,N);ke=ones(1,N);x=0,2,3;y=0,2,0;%设置三个质点的初始位置vx=-1.5,1,-0.8;vy=1.2,1,0.6;%设置三个质点的初始速度ax=zeros(1,N);ay=zeros(1,N);ke=1.5,6,2;%设置三个质点的电荷相对值M=1,5,1;%设置三个质点的质量相对值

2、dt=0.005;pausetime=0.002;%设置时间微小元长度,越小演示越精细,但越慢;设置暂停时间; set(gcf,'doublebuffer','on') %消除抖动set(gca,'xlim',-7 7,'ylim',-7 7);%设置坐标轴范围hold on;axis equal;for m=1:N p(m)=plot(x(m),y(m),'color','k','marker','.','markersize',15); %所有质点

3、初始位置以及大小设置endfor jj=1:5000 %设定运行距离for m=1:N ax(m)=0;ay(m)=0; for n=1:N if m=n ax(m)=ax(m)+ke(n)*ke(m)*(x(n)-x(m)*(x(n)-x(m)2+(y(n)-y(m)2)(-1.5)/M(m);%按吸引力的格式写的加速度,如果要改为排斥力,需要将等号后面的m和n交换位置 ay(m)=ay(m)+ke(n)*ke(m)*(y(n)-y(m)*(x(n)-x(m)2+(y(n)-y(m)2)(-1.5)/M(m); else end end x(m)=x(m)+vx(m)*dt+0.5*ax(m

4、)*dt2;%计算质点的新位置 y(m)=y(m)+vy(m)*dt+0.5*ay(m)*dt2; vx(m)=vx(m)+ax(m)*dt; vy(m)=vy(m)+ay(m)*dt; set(p(m),'xdata',x(m),'ydata',y(m);%设置质点的运动过程 plot(x(m),y(m),'color','b');%画出三个质点的运动轨迹 if abs(x(m)>10|abs(y(m)>10 %如果质点已经运动到边框外面则停止运行,跳出该层循环 break; endendif abs(x(m)>10|abs(y(m)>10 %如果质点已经运动到边框外面则停止运行,停止运行 break;end % pause(pausetime); %暂停一会drawnowend运行结果说明:更改不同的参数得到不同的运行结果。以上程序只是平面内的演示,希望读者根据平面内的模拟程序得到空间内的演示程序。也可以添加更多的质点,得到更多体的运动,不过会使得运行变慢,较好的计算机才能做到。如要添加到四个质点,则需要N=4;且x,y,vx,vy,ke,M都要相应的有四个初始值。程序目前存在的问题:当两

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论