多体运动的matlab动画演示_第1页
多体运动的matlab动画演示_第2页
多体运动的matlab动画演示_第3页
多体运动的matlab动画演示_第4页
多体运动的matlab动画演示_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、多体运动的matlab动画演示1问题说明当考虑的体系中的对象超过两个时(比如三个),由于其相互作用的复杂性,使得多体动力学问题变得极其复杂,要用解析的办法通过求解动力学微分方程来求得多体系统的每个对象的运动状态几乎是不可能的。不过,如果只是为了获得多体系统的粗略而简要的认知,那么可以利用matlab等软件在数值上求解多体系统的动力学微分方程,从而给出多体系统的大致运动状况。需要说明的是,matlab求解动力学微分方程所得到的结果毕竟是存在误差的,这些误差主要来自于其算法的迭代过程,即舍入误差和截断误差。并且随着迭代次数增加,所产生的误差会不断累积,使得求解的时间尺度越大,后面的误差也就越大。所

2、以要想获得比较可靠的计算结果,则所求解的时间尺度不能太大。另外,该文档中所采用的动画演示方法是先用ode45在初始条件下求解出所有粒子的运动状态,包括速度和位置,然后按照所求解出来的位置,在每个对应的时间下在图中画出该粒子,从而形成可以连续演示的动画。由于不是在求解微分方程的同时给出粒子的运动,这种方法演示更加流畅;但是依然能看出在长时间演示后期,动画演示也会迟滞,这是需要改进的地方。2理论求解在这里,所考虑的多体系统可以包括3个粒子,4个粒子甚至更多粒子,只要计算机足够强大,可以放入100个粒子也行。所考虑的粒子分为两类,一种是以质子为原型,一种以中子为原型。所考虑的作用力包括了两种:强相互

3、作用力,电磁相互作用力。01只|r_?!瑚骚解!的砒扎为鬥帀(肝刃匚丹:F敘険宗闵為I祕的保蚤蜂;/肥林剧用沧列私、;犹松難轨:T第H松奴也柱&啊射(妮粒壊似)h二1丄泌一31丄钟I池Q金1_订)包并-圧迅J克頤F比。i対響沁为(轴祢爻故)TOC o 1-5 h z1叫竝-一二(丄z1应昱乔订話斥皿冷%命C-一$严辰需赢:耐忆血-沪F耽nJf盂怎冈汀小八青佬咼庄离X宀汨f诰(就)护(沖沪软论启珂-初_%出r皋二春;物二缶以;酿机啊1力为兴誇希;釦恆报姬桶綿影4站松攻似)卜晟忒金讣血誥仲心十北叩沁術L训点锻鄭乂)疋喺二血转厂十录弩Eg十皿炊严歯7F,町切十诵脊犷伽虹普川;粘苗芸f耶?|S九;監二

4、轨以_空一I站护二,fj!E-两7财訓li人歸帧遥外夕牟他;在需直申求睥讷丹越站场方程嗽i缶;怡曲切以5严舛;lILkb-在程序中求解时,需要把两种作用力加起来(具体见求解微分方程的m文件)。这里只处理了平面中的运动情况,也可以将其更改为立体空间中的运动,那样会更加复杂。程序已经写为多体(N体)的通用形式,改变N的大小时,不需要再去更改求解微分方程的m文件的内容,而只需要在参数设置区更改相应的粒子数以及每个粒子的具体信息。注意,Rx,Ry,m,ke这几个代表着每个粒子信息的量,这几个变量所包含的数值个数(向量维度)应该等于N(n+p)的值,否则将出现不匹配的情况而无法运行。比如:n=3;p=3

5、;Rx=0,1,1,1,1/2,0;Ry=0,0,1/2,1,1/2,1;m=1.0012,1.0012,1,1.0012,1.0012,1;ke=0,0,1,0,1,0;%Rx,Ry,m,ke都应该包含6个数值,注意理清6个粒子对应的参量。n=3;p=2;Rx=0,1/2,1/2,1/2,1;Ry=1/2,0,1/2,1,1/2;m=1,1.0012,1.0012,1.0012,1;ke=1,0,0,0,1;%Rx,Ry,m,ke都应该包含5个数值3matlab程序注:如果要copy该段程序直接放入matlab,需要调整注释(绿色的字体部分)文件1figure(name,多体运动演示);%设

6、置标题名字globalNmker0%定义全局变量,使得求解微分方程的m文件可以使用这些变%*%n,p分别为中子和质子数%Rx和Ry分别为起始位置%m以质子的质量为单位1的参数设置区*%n=3;p=3;Rx=0,1,1,1,1/2,0;Ry=0,0,1/2,1,1/2,1;的坐标m=1.0012,1.0012,1,1.0012,1.0012,1;相对质量值ke=0,0,1,0,1,0;%ke为以e为单位的电荷值%*N=n+p;r0=0.4;%N为所有的粒子总数,r0为坐标尺度相对值,可调整pausetime=.01;%设置暂停时间set(gca,xlim,-22,ylim,-22);%设置图形窗

7、口的坐标显示范围(可根据实际情况进行更改。)set(gcf,doublebuffer,on)%消除抖动axisequalholdonx0=zeros(4*N,1);%x0为求解方程组的初始值fori=1:Nx0(4*i-2)=Rx(i);x0(4*i)=Ry(i);ifke(i)=1pp(i)=plot(x0(4*i-2),x0(4*i),color,r,marker,.,markersize,15);%p为红色点elsepp(i)=plot(x0(4*i-2),x0(4*i),color,k,marker,.,markersize,15);%n为黑色点endendt0=0;tf=15;%求解

8、的时间范围t,x=ode45(dohezi,t0,tf,x0);%调用m文件求解微分方程len=length(t);fori=1:len%在图中作出运动状况forj=1:Nset(pp(jxdata,x(i,4*j-2),ydata,x(i,4*j);plot(x(i,4*j-2),x(i,4*j);endpause(pausetime);%暂停一会drawnowend下面是求解微分方程时调用的m文件的内容:注:如果要copy该段程序进matlab,其文件名需要命名为dohezi.m保存,同时注意调整注释(绿色部分)。文件2functionsolhe=dohezi(t,x)globalNmke

9、r0solhe=zeros(4*N,1);%x(4*j-3),x(4*j-2),x(4*j-1),x(4*j)分别为第j个粒子的vx,x,vy,y;solhe(4*j-3),solhe(4*j-2),solhe(4*j-1),solhe(4*j)分别对应vx,x,vy,y四个值对时间t的导数;forj=1:N%j对应每个粒子solhe(4*j-3)=0;solhe(4*j-1)=0;fork=1:Nifj=k%第j个粒子受到除了第j个粒子之外的其他所有粒子的作用力,所以要把其他粒子施加的作用全部求和。这里的作用力又分为两种:强相互作用的力和电磁相互作用的力。r=(x(4*j2)x(4*k2)入

10、2+(x(4*j)x(4*k)入2)0.5%r为第j个粒子和第k个粒子的相对距离solhe(4*j-3)=solhe(4*j-3)+15/m(j)/rA2*(1/r0-1/r)*exp(-r/r0)*(x(4*k-2)-x(4*j_2)+ke(j)*ke(k)/m(j)/137*(x(4*j_2)_x(4*k_2)/”3;solhe(4*j-1)=solhe(4*j-1)+15/m(j)/rA2*(1/r0-1/r)*exp(-r/r0)*(x(4*k)-x(4*j)+ke(j)*ke(k)/m(j)/137*(x(4*j)_x(4*k)/rA3;elseendendsolhe(4*j_2)=

11、x(4*j_3);solhe(4*j)=x(4*j_1);end4运行结果三个粒子的运动其中有两个p粒子(红色),一个n粒子(黑色)。从运动轨迹可以看出,三体运动是极其复杂的。三个粒子的运动相互交错融合,毫无规律可循。Gi-1.4-I-J8-IH34-J2-32-05235115(2)四个粒子的运动其中有两个p粒子(红色),两个n粒子(黑色)。由于初始位置的对称,在开始一段时间四个粒子的运动几乎各自表现为简谐振动,但后来由于求解微分方程不断累积误差,使得各个粒子的轨迹不断偏离理论值,最后呈现出杂乱无章的状态。(3)六个粒子的运动其中有两个p粒子(红色),四个n粒子(黑色)。六个粒子的运动状态最初很有规律,但随着时间增加,运动轨迹

温馨提示

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

最新文档

评论

0/150

提交评论