三体问题的仿真与实现讲解

上传人:hs****ma 文档编号:564395251 上传时间:2023-09-14 格式:DOCX 页数:42 大小:225KB
返回 下载 相关 举报
三体问题的仿真与实现讲解_第1页
第1页 / 共42页
三体问题的仿真与实现讲解_第2页
第2页 / 共42页
三体问题的仿真与实现讲解_第3页
第3页 / 共42页
三体问题的仿真与实现讲解_第4页
第4页 / 共42页
三体问题的仿真与实现讲解_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《三体问题的仿真与实现讲解》由会员分享,可在线阅读,更多相关《三体问题的仿真与实现讲解(42页珍藏版)》请在金锄头文库上搜索。

1、1前言1.1 论文的背景在太阳系内的天体都可以近似看做球形,并且与他们之间的距离相比,他们的 的大小就可以忽略不计,因而他们能被看做质点。因此,可以用现代动力天文学 的基础理论来研究这个问题。这部分的天体力学以牛顿的万有引力理论开始。从 1687 年的数学原理出版之时开始,证实牛顿的理论是否能够独立的提供一 个完整的关于天体如何在太空中运动的认识是非常重要的。沿着这个思路进行研 究,我们需要根据牛顿的万有引力定律来确定彼此吸引的 n 体之间的相对运动。牛顿曾经用几何学原理解决了只存在相互引力作用的两个球的运动这一两体问题。在1710年,Johann Bernoulli证明,在两体问题中,一个粒

2、子相对于另外 一个粒子的运动可以被描述为一个圆锥曲线。在 1734 年, Daniel Bernoulli 因为 他关于分析处理两体问题的研究获得了法国科学院奖。在1744年,这个问题被 Euler 完全的解决了。同时对多维问题的研究也已经在进行中。在需要关于月球 运动知识的驱动下,研究人员研究了太阳,地球和月亮构成的三体系统,并且月 球理论很快就成为了早期研究的问题。在经典力学,量子力学和天文学中,三体问题是一个出名的,还没有解决的问 题,它被Whittaker描述为在所有动力学问题中最出名的问题,Hilbert认为它是 一个完美数学问题的标准。天体物理中的三体问题可以简单的被描述为:三个天

3、 体在他们之间的相互之间的万有引力作用下,给出各个天体的初始条件,包括三 个天体的质量、初始位置和初始速度,确定它们的后续运动,包括位置和速度随 时间的变化。像许多数学问题一样,简单的问题声明后面往往覆盖了问题解决方法的复杂 性。虽然一体和两体的问题能够以封闭的形式通过初等函数方式来解决,但是三 体问题是一个复杂的线性问题,没有相似的解决方法存在。探究三体问题的方式 大抵能够分为三类:第一类是分析方法,其基本原理是把天体的坐标和速度展开 为时间或其它小参数的级数形式的近似解析表达式,讨论天体的坐标和轨道要素 随时间的变化规律;第二类是定性方法,选用微分方程的定性理论来研究很长一 段时间内三体运

4、动的宏观运动规律和全局性质;第三类是数值方法,这是直接依 据微分方程的计算方式得出天体在特定时刻的详细位置和速度。这三类方法各有 利弊。因为求解三体问题的困难在于它的不确定性和不可预测性,可以考虑计算机在迭代计算中的优势,选择第三类方法,基于受力分析和经典力学,求其数值解。1.2 论文相关的国内外动态及研究价值从三体问题被提出的 300 年间,人们只发现 3 族周期性特解。在十八和十九世 纪,几乎所有著名的数学家们都曾试图解决这个问题,但是问题的进展不大。截 止到目前为止,三体问题特解的族数被扩充到了16 族。与此同时,在失败的尝 试中,微分方程的理论不断地发展成为数学的一门更成熟的分支。作为

5、一个能被简单描述的问题,除了其内在的吸引力,三体问题与太阳系统稳 定性有着密切的联系,这使得对三体系统的研究成为潜在的解决太阳系统稳定性 问题的解决方案。多年来,人们对这个问题进行了大量的研究,从1750 年到 20 世纪初,关于这个问题有 800 多篇援引了许多杰出的数学家和天文学家成果的论 文发表。因此,除了解决一个重要的难题,更重要的是在解决问题的过程当中产 生了好几种崭新的数学思想。这些数学理论的进步已经深入到不同的领域,包括 近代动力学问题的理论。三体问题的研究加深了人们对天体运动的认识,激励了 天体力学和数学物理的进一步成长,尤其是对人们研究太空火箭轨道和双星演变 很有帮助。1.3

6、 本文的研究内容本文决定通过计算机的数值运算,利用经典力学中的牛顿三大定律和万有引力 定律迭代求解天体运动中的三体问题。同时,本文利用 MATLAB 的 GUI 功能,设计出简洁友好的界面,并且通过动画 的方法将天体的位置和速度在空间直角坐标系上实时的表示出来,作出了天体物 理实验用计算机模拟来进行的尝试。1.4 本文的创新之处首先:通过理论与实践相结合的方式生动的展示了原本静态的文字概念。其次:通过MATLAB的GUI界面,可以让用户在不必了解程序内部实现的情况 下,给出三个天体的初始条件,包括三个天体的质量、初始位置和初始速度,就 可以知道随着时间的推移其宏观的位置和速度以及运动的宏观规律

7、和全局性质。 同时,还可以在不同的观察角度了解它们的运动过程。2 模型假设1)忽略相对论效应的影响;2)不考虑其它天体对系统的作用,所处宇宙空间是各向同性的;3)忽略宇宙空间粒子、潮汐力的影响;4)假设运动过程中没有能量损失;5)将天体视为质点,不考虑它们在运动的过程中彼此之间的相互碰撞3 模型建立3.1 具体时刻的状态因为三个天体的位置和速度是随时间变化的,现在取很短的时间间隔t假 定这段时间间隔内系统参数没有变化,则可以考虑从系统每一时刻的状态计算 后下一时刻的状态。在每一时刻,每一个天体都有各自的位置与速度,三个天 体总共有六个未知量,每两个天体之间应用万有引力定律和牛顿第二定律可以 列

8、出两个方程,总共六个方程,这六个方程组成的方程组足可以求解这六个未 知量。如果分割的时间间隔无限小,则可以求出精确解,但是在现实中这是没 法完成的。因此,我们可以将时间分成许多小部分,用计算机迭代求解,得到 随时间变化的系统的各个参量和系统的末状态。3.2 受力分析如图 3-1 所示,每个天体都受到其他两个天体的万有引力作用。为方便计算, 将天体1对天体2的作用,天体2对天体3的作用,天体3对天体1的作用分别 按直角坐标系分解为 f , f , f , f , f , f , f , f , f 。由于 f =f , 12x 12y 12z 23x 23y 23z 31x 31y 31z 12

9、 21 f =f , f =f ,可以用式子右边等效表示左边。23 32 31 13在万有引力f、作用下,天体1、天体2、天体3的加速度分别为.,122331观二, 。机$AF劉32图3-1三体问题受力分析3.3 运动规律及迭代方程万有引力定律f =g 2尸+(丹兀尸十(A 占予二、牛顿第二定律三、速度迭代p2 =p2 a2Xt= p3 -F a3 X t四、位置迭代ci1 =cf1-|-p-LXt-|- XaxXtd2 = d2 p2 X ta2 X t2 d3 = d3 p3 X t -|- X a3 X t2求解时还须将加速度a,速度迭代方程,位置迭代方程按直角坐标系分解如附 录 1 。

10、用计算机编程求解,即可得任意时刻三个天体的位置和速度。4 模型求解与系统仿真4.1 编码与运行(1)系统所需的软、硬件系统所用的硬件是普通的PC机。本程序的编码和界面设计部分用MATLAB 进行开发。(2)三体问题的编码1。三个天体各个参数的初始化部分。函数 ThreeBodyProblem_OpeningFcn(hObject, eventdata, handles, varargin)是该程 序的启动函数。初始化各个天体参数的部分已在程序代码中标注: function ThreeBodyProblem_OpeningFcn(hObject, eventdata, handles, vara

11、rgin) ThreeBodyProblem 的创建函数,此函数没有返回值,详情请参见 OutputFcn hObject图形句柄eventdata保留在MATLAB里面的参数,它的作用是方便后面的程序使用handlesGUI 界面的句柄,可以通过它获取整个界面的信息varargin ThreeBodyProblem 的启动参数(详情请参见 VARARGIN)初始化第一个天体的质量,位置和速度handles.FirstBodyMData = 0;handles.FirstBodyXData = 0;handles.FirstBodyYData = 0;handles.FirstBodyZDat

12、a = 0;handles.FirstBodyUData = 0;handles.FirstBodyVData = 0;handles.FirstBodyWData = 0;初始化第二个天体的质量,位置和速度handles.SecondBodyMData = 0;handles.SecondBodyXData = 0;handles.SecondBodyYData = 0;handles.SecondBodyZData = 0;handles.SecondBodyUData = 0;handles.SecondBodyVData = 0; handles.SecondBodyWData = 0

13、;初始化第三个天体的质量,位置和速度 handles.ThirdBodyMData = 0;handles.ThirdBodyXData = 0;handles.ThirdBodyYData = 0; handles.ThirdBodyZData = 0;handles.ThirdBodyUData = 0;handles.ThirdBodyVData = 0; handles.ThirdBodyWData = 0;handles.output = hObject;此前指令更改了 handles,必须靠guidata指令才能把更新了的handles加以保存, 以供后续使用guidata(hOb

14、ject, handles);默认值按钮的回调函数,用于设置三个天体的默认参数值,并且将设置的默认参 数值显示到图形界面上:function default_Callback(hObject, eventdata, handles)hObjectdefault 控件的句柄(详情请参见 GCBO)eventdata 保留在MATLAB里面的参数,它的作用是方便后面的程序使用 handles GUI 界面的句柄,可以通过它获取整个界面的信息(详情请参见 GUIDATA )在图形界面的第一个天体的文本输入框内显示默认的输入值,此输入值为太阳的 参数。set(handles.FirstBodyM,St

15、ring,19.89); set(handles.FirstBodyX,String,0);set(handles.FirstBodyY,String,0);set(handles.FirstBodyZ,String,0);set(handles.FirstBodyU,String,0);set(handles.FirstBodyV,String,0); set(handles.FirstBodyW,String,0);将太阳的参数保存为“GUI数据”形式,以便共享handles.FirstBodyMData = 19.89*10人29;handles.FirstBodyXData = 0;handles.FirstBodyYData = 0;handles.FirstBodyZData = 0;handles.FirstBodyUData = 0;handles.FirstBodyVData = 0;handles.FirstBodyWData = 0;在图形界面的第二个天体的文本输入框内显示默认的输入值,此输入值为地球的 参数。set(handles.SecondBodyM,String,59.742); set(handles.Sec

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

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号