pstate0 vid数值意义_天体运动的简单数值计算

(建议阅读全文)

预备知识 万有引力, 弹簧振子受迫运动的简单数值计算    下面我们来用一种极其简单的算法对单个天体在中心天体的万有引力作用下的运动进行数值计算. 事实上该问题存在解析解(见开普勒三定律), 所以以下的算法只是用于演示数值解常微分方程的大致原理. 这种方法可以轻易地拓展到多个天体的情况, 而多体情况没有一般的解析解. 一种效率更高的常见常微分方程数值算法可参考 “四阶龙格库塔法”.    直角坐标系中, 设中心天体质量为

, 固定在原点不动.根据牛顿万有引力定律,质量为
的行星受到中心天体的力为

其中

为行星的位矢(设行星在
平面上运动). 根据牛顿第二定律, 加速度为

以及
, 其中
看成
的函数. 考虑到
, 可以列出二阶微分方程组(变量上方两点表示关于时间的二阶导数)

假设已知初值条件

. 下面用 “弹簧振子受迫振动的简单数值计算” 中类似的方法求接下来行星的运动轨迹.    1.将初始条件代入式 3 ,得到初始加速度

  

2.设经过一段极微小的时间步长

(例如
, 数值越小误差越小), 根据微分近似(微分近似在这里的物理意义是在
内速度和加速度都近似为常数)

  

3.把

再次代入式 3 , 得到
, 再次利用微分近似求出
如此循环下去就可以得到每隔
的数值解. 代码 1:kepler.m
% 参数设定
GM = 1; % 万有引力常数乘以中心天体质量
x0 = 1; y0 = 0; % 初始位置
vx0 = 0; vy0 = 0.7; % 初始速度
T = 4; Nstep = 4000; % 总时间和步数
dt = T/Nstep; % 步长% 矩阵预赋值
x = nan(Nstep,1); y = x;
x1 = x;  y1 = x;
x2 = x; y2 = x;% 初始位置,速度,加速度
x(1) = x0; y(1) = y0; % 初位置
x1(1) = vx0; y1(1) = vy0; % 初速度
x2(1) = -GM*x(1)/(x(1)^2+y(1)^2)^(3/2); % 代入方程得到 x''(0)
y2(1) = -GM*y(1)/(x(1)^2+y(1)^2)^(3/2); % 代入方程得到 y''(0)% 迭代循环
for ii = 2:Nstepx(ii) = x(ii-1)+x1(ii-1)*dt; % x的微分y(ii) = y(ii-1)+y1(ii-1)*dt; % y的微分x1(ii) = x1(ii-1)+x2(ii-1)*dt; % x' 的微分y1(ii) = y1(ii-1)+y2(ii-1)*dt; % y' 的微分x2(ii) = -GM*x(ii)/(x(ii)^2+y(ii)^2)^(3/2); % 代入微分方程求出 x''y2(ii) = -GM*y(ii)/(x(ii)^2+y(ii)^2)^(3/2); % 代入微分方程求出 y''
end% 画图
plot(x,y); % 画行星轨道
axis equal; % xy坐标长度一致
hold on; % 继续画图
scatter(0,0); % 标出中心天体程序运行结果如图 1  所示. 注意行星轨道并不是一个闭合的椭圆, 这是由于这种算法误差较大, 为了减小误差, 可以增加程序中 Nstep 的值. 

b2951512fc4216fcf3de0a9a80dc73aa.png
图 1:运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

集合框架

集合框架包含的内容: 集合框架的接口: List接口实现类 ArrayList 1 package com.jredu.ch01;3 import java.util.ArrayList;5 import java.util.List;7 public class ArrayListTest {9 public static void main(String[] args) { 10 // TODO…

Java中的类型安全的空集合

我之前曾在Java Collections类的实用程序上进行过博客撰写,并且特别地在使用Usings Collections Methods上的博客emptyList(),emptyMap()和emptySet()上进行了博客撰写。 在本文中&a…

剑指offer二十二之从上往下打印二叉树

一、题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 二、思路 二叉树的层次遍历,可以借助队列实现。具体思路详见注释。 三、代码 import java.util.ArrayList; import java.util.LinkedList; /** public class TreeNode {int val 0;Tree…

arduino i2c 如何写16位寄存器_arduino入门

硬件:Arduino Uno是基于ATmega328P(数据表)的微控制器板。它具有14个数字输入/输出引脚(其中6个可用作PWM输出),6个模拟输入,工作电压5v,输入电压7-12v。串行:0(RX)和1(TX)用于接收(RX)和发送(TX)TTL串行数据。这些引脚…

mysql序列号生成_一文看懂mycat的6种全局序列号实现方式

概述在实现分库分表的情况下,数据库自增主键已无法保证自增主键的全局唯一。为此,MyCat 提供了全局sequence,并且提供了包含本地配置和数据库配置等多种实现方式。下面对这几种实现方式做一下介绍。1、本地文件方式原理:此方式 My…

android.graphics.Paint方法setXfermode (Xfermode x...

[java] view plaincopymPaint new Paint(); mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SCREEN)); 常见的Xfermode(SRC为原图,DST为目标图),把代码中的SRC_IN换成下图指定的模式就会出现对应的效果图…

从零开始的全栈工程师——html篇1

全栈工程师也可以叫web 前端 H5主要是网站 app 小程序 公众号这一块 HTML篇 html(超文本标记语言,标记通用标记语言下的一个应用。) “超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。 超文本标记语言的结构包括“头”部分&am…

苹果mp3软件_优秀的Apple音乐转换器,将任何iTunes M4P,AAX,AA转换为MP3

Macsome iTunes Converter是一款优秀的音频转换工具,这款音频转换软件能够帮助大家快速进行音频格式转换,使得您可以自由的播放和分享自己喜爱的音频文件。同时这款软件与大多数音频转换软件一样,将受到保护DRM的Apple音乐转换转换成MP3, AAC…

虚幻4毛发系统_虚幻引擎复活!苹果与Epic对决,有哪些游戏险些中枪?

最近,苹果和Epic的官司闹得沸沸扬扬。随着Epic旗下热门手游《堡垒之夜》遭苹果火速下架,两大巨头之间的冲突愈演愈烈。苹果似乎并不满足于此,由于Epic公开违反自家规定,苹果计划进一步封禁Epic维护虚幻引擎的开发者账户&#xff0…

01-JAVA语言基础

1.设计思想: 先以字符串的形式输入两个数字,然后将他们转化为int类型,再对两数进行相加,最后输出结果。 2.程序流程图: 3.源程序代码: import java.util.Scanner;public class Addition2 {public static vo…

php签名墙,肺功能检查质量控制网

2017年12月2日,由中华医学会呼吸病学分会/儿科分会、国家呼吸系统疾病临床医学研究中心、国家呼吸疾病医疗质量控制中心、中国肺功能联盟、中国儿童肺功能协作组主办,浙江省中医院承办的"2017年中国肺功能检查规范化培训及应用推广学习班暨肺功能检…

餐饮水单打印软件_开发一款餐饮手机app系统软件什么价格?有哪些方面需要考虑?...

开发一款餐饮手机app系统软件什么价格?有哪些方面需要考虑?近年来,餐饮类的APP如雨后春笋般快速增长,无论是上档次的酒店,还是各大餐厅,都有各自的专属APP。餐饮APP的开发能让大型酒店/餐厅获得更多盈利、销…

Spring-framework应用程序启动loadtime源码分析笔记(二)——@Transactional

Transactional标识类或方法,使方法被执行时使用事务方式执行,这里只讨论PROXY方法增强方法。使用EnableTransactionManagement,默认modelAdviceMode.PROXY,通过Import(TransactionManagementConfigurationSelector.class)来判断在…

具有Spring的简单工作流引擎

几个月前,在处理一个公司项目时,我们需要开发REST服务,该服务用于根据客户端应用程序发送的数据发送电子邮件。 在开发此服务期间,我们决定创建简单的工作流引擎,该引擎将为发送电子邮件收费,但该引擎也可用…

TypeScript学习笔记归纳(持续更新ing)

文章目录 前言 二、TypeScript的优势体现在哪里? 1、执行时间上的区别 2、基础数据类型区别 3、TS优势 三、TypeScript的关键特性 四、TypeScript的类型系统 1、什么是类型注释? 2、类型系统核心 - 常用类型 1) 基本类型&#xff0…

组态王 6.55 启停plc_永宏PLC在远程控制系统中的应用

一、行业介绍本远程控制系统是给石药集团的下属子公司设计的一个控制方案。主要是配套GPRS-DTU产品实现远程plc与plc之间的数据共享。从而达到远程无线数据写入控制和读取监控的目的。二、客户需求(1) 客户可以在监控室控制至少2-3公里外的井上两个水泵的启动和停止。(2) 客户可…

Vue表格中,对数据进行转换、处理

众所周知,后端从Mysql取出的数据,一般是很难单独处理某一个Key的数据的(需要处理的话,可能会浪费大量的性能。而且对页面加载时间有很大的影响),所以,从数据库取出的数据。只能由前端进行处理。…

Java应用程序中的SQL注入

在本文中,我们将讨论什么是SQL注入攻击。 以及它如何影响任何Web应用程序使用后端数据库。 在这里,我专注于Java Web应用程序。 开放Web应用程序安全项目(OWAP)列出了SQL注入是Web应用程序的主要漏洞攻击。 黑客将Web请求中的SQL代…

bluetooth射频已关闭请打开bluetooth射频_希杰大功率射频放大器烧了维修诊断步骤...

如果电阻值过低,说明电源内部存在短路,正常时其阻值应能达到100千欧以上;电容器应能够充放电,如果损坏,则表现为AC电源线两端阻值低,呈短路状态,否则可能是开关管击穿。然后检查直流输出部分脱开负载&#…

java中整数如何表示,在Java中如何在位级别上内部表示整数?

慕瓜9086354Java整数为32位,并且总是带符号的。这意味着,最高有效位(MSB)用作符号位。用an表示的整数int不过是位的加权和。权重分配如下:Bit# Weight31 -2^3130 2^3029 2^29... ...2 2^21 2^10 …