学学matlab动画,三体运动还是有点问题

clc;clear;close;
figure('name','三体运动');
axis equal
grid on
hold on
colordef black
view(3)
xlabel('x')
ylabel('y')
zlabel('z')
hold on
%初始化参数设置(质量、初始位置、初始速度、万有引力常数、时间步长)
m1=rand()*10^23;
m2=rand()*10^23;
m3=rand()*10^23;pos1=[rand()*10^7,rand()*10^7,rand()*10^7];
pos2=[rand()*10^7,rand()*10^7,rand()*10^7];
pos3=[rand()*10^7,rand()*10^7,rand()*10^7];v1=[rand()*1000,rand()*1000,rand()*1000];
v2=[rand()*1000,rand()*1000,rand()*1000];
v3=[rand()*1000,rand()*1000,rand()*1000];
G=6.67*10^(-11);
dt=0.005;%行星和轨迹(定义行星位置和轨迹变量)
planet1=plot3(pos1(1),pos1(2),pos1(3),'b:.','markersize',20);
planet2=plot3(pos2(1),pos2(2),pos2(3),'r:.','markersize',20);
planet3=plot3(pos3(1),pos3(2),pos3(3),'y:.','markersize',20);h1=animatedline('color','b');
h2=animatedline('color','r');
h3=animatedline('color','y');
frame=0;
while true%不断循环计算距离、相互作用力、速度、加速度、位置r12=normest(pos2-pos1);r23=normest(pos3-pos2);r13=normest(pos3-pos1);F12_val=G*m1*m2/(r12^2);F23_val=G*m2*m3/(r23^2);F13_val=G*m1*m3/(r13^2);F12_dir=(pos2-pos1)/normest(pos2-pos1);F23_dir=(pos3-pos2)/normest(pos3-pos2);F13_dir=(pos3-pos1)/normest(pos3-pos1);a1=((F12_val)*(F12_dir)+(F13_val)*(F13_dir))/m1;a2=((-F12_val)*(F12_dir)+(-F23_val)*(F23_dir))/m2;a3=((-F13_val)*(F13_dir)+(-F23_val)*(F23_dir))/m3;v1=v1+a1*dt;v2=v2+a2*dt;v3=v3+a3*dt;pos1=pos1+v1*dt+1/2*a1*dt^2;pos2=pos2+v2*dt+1/2*a2*dt^2;pos3=pos3+v3*dt+1/2*a3*dt^2;frame=frame+1;if frame==10000frame=0;% set(planet1,'position',[pos1(1),pos1(2),pos1(3)]);%set(planet3,'position',pos3(1),'YData',pos3(2),'ZData',pos3(3));addpoints(h1,pos1(1),pos1(2),pos1(3));addpoints(h2,pos2(1),pos2(2),pos2(3));addpoints(h3,pos3(1),pos3(2),pos3(3));drawnowendif r12==0||r23==0||r13==0       %判断是否相撞breakend
end

matlab三体运动(仿真动画)相关推荐

  1. matlab仿真动画,用matlab制作简单仿真动画

    用matlab制作简单仿真动画,并生成.avi格式的电影文件 MATALB知识点2008-05-01 13:17:54 阅读152 评论0 字号:大中小订阅 第一种形式:利用for循环,在一定时间内控 ...

  2. matlab行星运动轨迹仿真动画,利用Matlab可视化功能实现微分方程求解行星运动轨迹...

    利用Matlab可视化功能实现微分方程求解行星运动轨迹 1.背景 在物理学璀璨的发展史上,物理学家花了很长时间研究我们头顶浩瀚的星空,试图探究星星的运行模式,以及地球自身的运动模式.其中不乏像亚里士多 ...

  3. MATLAB | 经典力学框架下的三体运动数值模拟软件

    经典力学框架下的三体运动数值模拟软件 1 背景说明 2 实验目的 3 基本原理及思路 4 成果展示 4.1 用户界面展示 4.2 所需文件 4.3 软件运行效果 4.3.1 不等质双星 4.3.2 近 ...

  4. matlab 图片制作动画制作,MATLAB作图之制作动画:单摆运动仿真

    MA TLAB作图之制作动画:单摆运动仿真%制作动画 %挂摆横梁 plot([-0.2;0.2],[0;0],'color','y','linestyle','-',... 'linewidth',1 ...

  5. MATLAB 模拟三体运动教程

    MATLAB 模型三体运动Three_body_movement(无行星) clear all close all clc%--------data--------% m1 = rand() * 10 ...

  6. matlab模拟三体运动_matlab三体运动

    闲的蛋疼,学学matlab动画,三体运动还是有点问题(提示line没xdate属性,脑瓜也疼了),不多废话上代码 clc;clear;close; figure('name','三体运动'); axi ...

  7. matlab与vrep联合仿真,基于MATLAB与V-REP的机器人加工轨迹生成与运动仿真.PDF

    基于MATLAB与V-REP的机器人加工轨迹生成与运动仿真 第 卷 第 期 ( ) 57 5 厦门大学学报 自然科学版 Vol.57 No.5 年 月 ( ) 2018 9 Se.2018 Journ ...

  8. matlab平行因子_基于MATLAB某客车悬置系统优化与运动仿真

    本文对一CNG燃气客车悬置系统建立6阶振动数学模型,基于MATLAB分析振动频率与解耦率并对系统固有频率的配置以及解耦率设计优化程序,运用NX CAE运动仿真校核MATLAB分析结果的准确性,为悬置系 ...

  9. 【机械仿真】基于matlab GUI曲柄摇杆机构运动仿真【含Matlab源码 1608期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[机械仿真]基于matlab GUI曲柄摇杆机构运动仿真[含Matlab源码 1608期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...

最新文章

  1. java html提取_如何用JAVA从HTML源代码中提取有用的文本信息?
  2. 伟世盾安助国电高级培训中心实现一网双管
  3. MYSQL批量插入数据库实现语句性能分析
  4. Delphi字符串处理函数
  5. PWN-PRACTICE-BUUCTF-22
  6. 面试官系统精讲Java源码及大厂真题 - 06 LinkedList 源码解析
  7. JavaScript删除数组里的某个元素
  8. python选择排序算法_Python - 排序算法
  9. 数学与泛型编程(7)置换算法
  10. JEECG集成ACTIVITI
  11. document 常用事件
  12. 什么是DirectX?什么是OpenGL?API的作用
  13. 济南软件测试行业提出千亿级市场的战略布局
  14. 亲民地理35期-雨中登泰山_我是亲民_新浪博客
  15. BSC 再现闪电贷攻击 BUNNY 闪崩
  16. AcWing 1017 怪盗基德的滑翔翼
  17. 二维等离子体输运与反应动力学求解器PASSKEy中的数值和物理参数说明(附视频链接)
  18. Android进程间通信 - 几种方式的对比总结
  19. MJ评-[波斯王子*时之刃]-9.5分
  20. TZC 高中信息技术(Python)必修题单————题解

热门文章

  1. JVM 三色标记 增量更新 原始快照
  2. 智慧地产.美的·云与湖科技潮玩体育公园
  3. 简述php中文件包含语句以及各自的异同点,PHP简述题
  4. asp.net学生选课系统_网上选课系统_教师管理系统_ 学生管理系统_教务管理系统
  5. IDEA的Maven Show Dependency使用心得
  6. cout一位小数_C++怎样输出一个小数点后有10位的小数?
  7. oracle常用端口7799,TCP注册端口号大全【7】
  8. java 小球运动轨迹_Js实现简单的小球运动特效
  9. php 微信时间,微信开发中如何进行时间转换代码实例介绍
  10. 字符串首字母大写方法