三体运动的matlab演示(3页).doc

上传人:1595****071 文档编号:35449417 上传时间:2022-08-21 格式:DOC 页数:3 大小:149KB
返回 下载 相关 举报
三体运动的matlab演示(3页).doc_第1页
第1页 / 共3页
三体运动的matlab演示(3页).doc_第2页
第2页 / 共3页
点击查看更多>>
资源描述

《三体运动的matlab演示(3页).doc》由会员分享,可在线阅读,更多相关《三体运动的matlab演示(3页).doc(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-三体运动的matlab演示-第 3 页三体运动的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); %所有质点初始位置以及大小设置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)+k

3、e(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)*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)*d

4、t; 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都要相应的有四个初始值。程序目前存在的问题:当两个质点运动到一点(即发生碰撞时),会产生速度的突变,如何能较好解决这个问题?如果能够,希望能得到空间内的演示。见文库内本人所编写其他的matlab模拟。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁