如何写出三体的MATLAB程序-理论分析篇

写在前面

之所以写这个程序,是因为某天晚上无聊,室友正在学习MATLAB,于是提议写一个三体运动的物理模拟程序来练练手。就此,我也写一份该程序来为室友做一个参考标准,希望可以帮助室友进步的更快。

做出来的效果图大概这样子

效果图

本系列所有代码均在我的Github中存有备份,可下载后直接运行,点击Github: HanpuLiang/Three-Body-by-MATLAB即可进入。

三体简介

三体一般指的就是三个物体受到相互之间的引力作用的影响而运动。一般来说,因为其运动方程太过于复杂,所以并没有解析解,并且因为对初值的敏感性,略微变化一点初始条件就会对未来长远的结果产生巨大的影响。

在没有解析解的情况下,只能通过数值解的方法对微分方程组求解。所以数值解的误差也受计算步长的影响,计算步长越小越精确,但是因为数据一定会有精度,并不能真正的无穷小,所以实际上在时间足够长以后依旧会产生很大的误差。

综合很多原因,才会有了大刘《三体》的剧情,不然凭借三体人那么厉害的科技水平还怎么还是选择来搞地球。

不过说到底,解不开这样的问题还是目前人类的数学水平不行,或许以后就有办法了呢?

但是我们这里并不用分析力学的方法求解,因为手头没有演草纸,推方程有点麻烦,所以直接用经典力学的方法去模拟整个运动,这样子相信有点物理基础的大家也是可以看懂的。

运动过程分析

我们首先需要思考:

matlab模拟三体运动_如何写出三体的MATLAB程序-理论分析篇相关推荐

  1. matlab模拟三体运动_如何写出三体的MATLAB程序-代码篇

    如何写出三体的MATLAB程序-代码篇 写在前面 在上文当中我们已经对三个物体之间的受力进行了分析,也说明了在时间 下的加速度.速度和位移的计算方式. 本篇中将根据上一篇的公式来写出对应的代码,并且详 ...

  2. 如何写出三体的MATLAB程序-代码篇

    如何写出三体的MATLAB程序-代码篇 写在前面 在上文当中我们已经对三个物体之间的受力进行了分析,也说明了在时间 t t t下的加速度.速度和位移的计算方式. 本篇中将根据上一篇的公式来写出对应的代 ...

  3. python趣味程序_知道了这个,你也能写出 Python 趣味小程序

    原标题:知道了这个,你也能写出 Python 趣味小程序 前两天在 51CTO 看见某篇推荐博文,大概是一个 豆子比较感兴趣,在知乎和 github 上搜索了相关的源代码,发现原来实现起来非常的简单, ...

  4. python恶搞小程序-知道了这个,你也能写出 Python 趣味小程序

    原标题:知道了这个,你也能写出 Python 趣味小程序 前两天在 51CTO 看见某篇推荐博文,大概是一个 豆子比较感兴趣,在知乎和 github 上搜索了相关的源代码,发现原来实现起来非常的简单, ...

  5. python有趣小程序-知道了这个,你也能写出 Python 趣味小程序

    原标题:知道了这个,你也能写出 Python 趣味小程序 前两天在 51CTO 看见某篇推荐博文,大概是一个 豆子比较感兴趣,在知乎和 github 上搜索了相关的源代码,发现原来实现起来非常的简单, ...

  6. 用python编写一个猜年龄的小程序-知道了这个,你也能写出 Python 趣味小程序

    原标题:知道了这个,你也能写出 Python 趣味小程序 前两天在 51CTO 看见某篇推荐博文,大概是一个 豆子比较感兴趣,在知乎和 github 上搜索了相关的源代码,发现原来实现起来非常的简单, ...

  7. matlab模拟三体运动_三体运动的matlab演示.docx

    三体运动的matlab演示 I** 1MX " % F(Xr 心) 6j6)( Xr X J j "r*-疝出制痒十丘忑忑拓1 )民严皿_辿少 ..g席+*仍才芮融訴 取殖翎为Mj ...

  8. python如何写代码_如何写出优雅的Python代码?

    有时候你会看到很Cool的Python代码,你惊讶于它的简洁,它的优雅,你不由自主地赞叹:竟然还能这样写.其实,这些优雅的代码都要归功于Python的特性,只要你能掌握这些Pythonic的技巧,你一 ...

  9. Matlab写出三角波,matlab生成三角波数据

    学习并研究方波和三角波信号的卷积有关理论; 3.利用 Matlab 编程,完成方波和三角波信号的卷积及卷积过程演示课题; 4.写出课程设计报告,打印程序,给出运行结果.... 学习并研究方波和三角波信 ...

最新文章

  1. 臻好黄金百香果苗做一个有脑子的程序员
  2. SAP Spartacus SpartacusB2cConfigurationModule 的使用场景
  3. java中使用jython_将Jython嵌入到您的Java代码库中
  4. tcp状态机-三次握手-四次挥手以及常见面试题
  5. 第八章Transact-SQL程序设计
  6. 如何使用RMAN duplicate搭建12C的Data Guard环境?
  7. 深度学习——CNN的学习笔记
  8. python21天打卡day3
  9. dubbo负载均衡代码分析2(一致性hash策略)
  10. go语言报错:main redeclared in this block
  11. 利用微搭低代码实现公差申请
  12. php 模拟登陆新浪微博,[Javascript] 爬虫 模拟新浪微博登陆
  13. 吴恩达机器学习(十二)—— 机器学习系统的设计
  14. 光子晶体和深度学习结合进行多相流检测
  15. Spring源码分析系列——bean创建过程分析(三)——工厂方法创建bean
  16. matlab如何表示冲激信号,matlab里如何表示冲激信号
  17. Windows10杀毒软件哪个好用点?
  18. JqGrid 表格基本使用(一)
  19. 【博学谷学习记录】超强总结,用心分享 | 产品经理必备技能之Axure RP9(持续更新)
  20. 02. 一元线性回归公式推导

热门文章

  1. 【移动安全】专栏文章汇总
  2. 神起网络游戏如何推广代理?
  3. 【翻译】Bridging the Gap Between Anchor-based and Anchor-free Detection
  4. S3C2440时钟和电源管理:空闲模式:电源管理模块断开CPU时钟FCLK,而只给外设提供时钟,CPU不耗时钟,故而减少功耗,任何中断请求都可将CPU从空闲模式唤醒。
  5. Per-Server/Per-Seat 许可证的区别
  6. 模拟信号和数字信号,直流信号和交流信号
  7. 推荐几个统计数据的网站
  8. 什么是Moodle?
  9. Foehn Phenomena
  10. 多模态深度学习综述总结 与 目标检测多模态融合领域论文推荐