多体问题

在这里插入图片描述

代码:

function SunEarthMoon   % M函数文件load planets;   % 将planets.mat中的变量mass、position、velocity加载过来[sun, earth, moon] = deal(18, 3, 25);   % sun、earth、moon分别是18325行
list = [sun, earth, moon];  % 13列矩阵
G = 6.67e-11; % gravitational constantdt = 24*3600;   % 作图的时间间隔为一天,每天有24*3600秒
N = length(list);   % N=3,三个天体
mass = mass(list);  % N行1列矩阵,N个天体的质量
position = position(list,:);    % N行3列矩阵,N个天体的坐标,坐标是13列的行向量,三个方向的分量
velocity = velocity(list,:);    % N行3列矩阵,N个天体的速度,速度是13列的行向量,三个方向的分量
h = plotplanets(position);  %作图函数for t = 1:365   % 图中总时间为一年,一年365plotplanets(position,h);    % force = zeros(N,3); % N行3列零矩阵,一行表示某个天体在三个方向上的受力for i = 1 : N   % 遍历计算各天体间的万有引力。组合数C(32)Pi = position(i,:); % 某天体坐标Mi = mass(i);   % 某天体质量for j = (i+1):N     %the i+1 is to create diagonal Mj = mass(j);   % 另一天体质量Pj = position(j,:); % 另一天体坐标dr =  Pj - Pi;  % 两天体的相对,13列矩阵forceij = G*Mi*Mj./(norm(dr).^3).*dr;   % 两天体之间的力,13列的向量force(i,:) = force(i,:) + forceij;  % 规定正方向,将力计算进矩阵force(j,:) = force(j,:) - forceij;  % 反作用力与作用力方向相反,将力计算进矩阵% 上两行可替换为force([i,j],:) = force([i,j],:)+[forceij; -forceij];endendvelocity = velocity + force ./ repmat(mass,1,3)*dt;   % v=v+a*dt a=F/mposition = position + velocity*dt;  % r=r+v*dt
end % -------------------------------------------------------------------------function h = plotplanets(pos,h) % 
scale = 50;
total_planets = size(pos,1);
[sun, earth, moon] = deal(1, 2, 3);
radius = [50, 30, 20];
marker = {'.r', 'b.','m.'};
pos(moon,:) = pos(earth,:) + scale*(pos(moon,:)-pos(earth,:));
if nargin==1hold on; axis imageaxis( [-2 2 -2 2]*1e11 );for i = 1:total_planetsif any(i == [sun, earth, moon])h(i) = plot(pos(i,1),pos(i,2),marker{i},'markersize',radius(i));plot(pos(i,1), pos(i,2), marker{i}, 'markersize',5);elseh(i) = plot(pos(i,1), pos(i,2), 'k.', 'markersize', 20);plot(pos(i,1), pos(i,2), 'k.', 'markersize',5);endend
elsefor i = 1:total_planetsset(h(i), 'Xdata', pos(i,1)  , 'Ydata', pos(i,2)  )if any(i == [sun, earth, moon])plot(pos(i,1), pos(i,2), marker{i}, 'markersize',5);elseplot(pos(i,1), pos(i,2), 'k.', 'markersize',5);endenddrawnow
end

效果图
在这里插入图片描述

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

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

相关文章

【CF1179 A,B,C】Valeriy and Deque / Tolik and His Uncle / Serge and Dining Room

还好题很温柔,温柔得我差点没做完 文章目录A:Valeriy and Deque题意题解代码实现B:Tolik and His Uncle题目题解代码实现C:Serge and Dining Room题目题解代码实现A:Valeriy and Deque 题意 给定一个双端队列&#…

YBTOJ:比赛得分(期望)

文章目录题目描述解析代码题目描述 解析 不太难的题 显然本题在AB队员大小关系相反时其对答案的贡献互为相反数。 所以想到把B队队员sort一下后就可以二分找到大小关系相反的分界点 然后维护和与平方和两个前缀数组搞一搞即可O1求出贡献 总复杂度:nlognnlognnlogn …

Matlab与高等数学

曲线与曲面画图 平面 对于不同曲线的表达式,Matlab中有不同的绘图命令,主要有 plot, fplot, ezplot,plot3,polar, 曲面 1.2 曲面画图 曲面的一般方程是F(x,y,z)0,一般需要将曲面的点坐标先表示出来&…

[USACO19JAN,Platinum] Redistricting

[USACO19JAN,Platinum] Redistricting 这道题A了才知道。。并不难a! orz 题目 内存限制:128 MiB 时间限制:1000 ms 题目描述 奶牛们的最大城市Bovinopolis正在重新划分势力范围—生活在那里的主要是两个品种的奶牛(Holsteins和…

.NET Core + JWT令牌认证 + Vue.js 通用动态权限(RBAC)管理系统框架[DncZeus]开源啦!!!...

DncZeus前言关于 DncZeusDncZeus Dnc Zeus"Dnc"--.Net Core 的缩写;"Zeus"--中文译为宙斯,是古希腊神话中的众神之王,奥林匹斯十二主神之首,统治宇宙万物的至高无上的主神(在古希腊神话中主神专…

P5081 Tweetuzki爱取球(期望)(线性求逆元)

文章目录题目描述解析代码题目描述 解析 首先有一个很重要的引理: 若一件事做成的概率是p,则其做成需要次数的期望是1/p 为什么呢? 我们设做成这件事的期望次数是x 就可以列出方程: x1p∗0(1−p)∗xx1p*0(1-p)*xx1p∗0(1−p)∗x …

【 CF1186D,E,F】Vus the Cossack and Numbers/Vus the Cossack and a Field/Vus the Cossack and a Graph

太ex了,哭了哭了orz 后面两道平均一道花了我一天啊! 文章目录D:Vus the Cossack and Numbers题意翻译题解代码实现E:Vus the Cossack and a Field题意翻译题解代码实现F:Vus the Cossack and a Graph题目暴力题解代码实现官方题解…

IdentityServer4与ocelot实现认证与客户端统一入口

关于IdentityServer4与ocelot博客园里已经有很多介绍我这里就不再重复了。ocelot与IdentityServer4组合认证博客园里也有很多,但大多使用ocelot内置的认证,而且大多都是用来认证API的,查找了很多资料也没看到如何认证oidc,所以这里…

YBTOJ:彩球抽取(期望)

文章目录题目描述解析代码题目描述 解析 首先,可以使用dp解决本题 设fi,j,k:操作i轮之后编号j的小球有k个的概率 转移和统计答案就都不难了 但是还有一个问题 不难发现这个题循环下去是可以无穷无尽的 所以限定一个i的上界(如500000&#xf…

魔改森林

题意: 曾经有一道叫做迷雾森林的题目,然而牛牛认为地图中的障碍太多,实在是太难了,所以删去了很多点,出了这道题。 牛牛给出了一个n行m列的网格图 初始牛牛处在最左下角的格点上(n1,1),终点在右上角的格点…

基于IdentityServer4 实现.NET Core的认证授权

IdentityServer4是什么?IdentityServer4是基于ASP.NET Core实现的认证和授权框架,是对OpenID Connect和OAuth 2.0协议的实现。OpenID Connect 和 OAuth2.0是什么OpenID Connect:OpenID Connect由OpenID基金会于2014年发布的一个开放标准, 是建立在OAuth …

[COCI 2018#5]Parametriziran

这道题呢! 算了,不要让这玩意儿活着祸害众生吧!让我们来拯救苍生于苦海之中!! 骚话连篇ing 题目 由小写英文字母和问号组成的字符串成为参数化单词(例如:??cd,bcd,??)。如果两…

P2324 [SCOI2005]骑士精神(迭代加深搜索,dfs)

传送门 文章目录解析解析 很显然,让马走的话状态记录和转移都会比较复杂 所以转化成让空位跳会更好做一点 但这不是重点 初看本题,其实第一感觉是bfs 但是状态数理论上最差可以达到815,(当然基本不可能跑满)&#xff…

NumSharp v0.6 科学计算库发布,新增 LAPACK 的线性库支持

NumSharp(Numerical .NET)可以说是C#中的科学计算库。 它是用C#编写的,符合.netstandard 2.0库标准。 它的目标是让.NET开发人员使用NumPy的语法编写机器学习代码,从而最大限度地借鉴现有大量在python代码的…

[COCI] Zamjena

连这种模拟题都能。。。orz ex,太恶心了! 驰骋坑底这么久了,我明白了 开始吧!我发誓,这个超级兵,我就算用小书包平A都要A了它 题目 Vlatko喜欢使用整数数组,他在一张纸上写下了两个数组&…

P2601 [ZJOI2009]对称的正方形(二维哈希)(二分)

洛谷传送门 文章目录题目描述解析代码题目描述 解析 做三个hash 分一下正方形边长的奇偶性 然后枚举中心点,二分边长即可 有点类似模拟赛那道红十字的题 我一开始觉得分奇偶好麻烦啊 为什么不直接枚举左上方的点二分呢?awa 很遗憾的是… 那样答案就没有…

初赛—错题集

计算机基础知识 LAN:局域网,WAN:广域网,MAN:城域网 汇编语言是(依赖于具体计算机)的低级程序设计语言 计算机操作的最小时间单位是(时钟周期)。 注意所需空间需要 \(\div 8\) !!!…

.NET Core 和 DevOps

关键要点无论你目前使用什么样的技术栈,DevOps 都是值得一试的。闭源、专有软件和构建过程与 DevOps 实践不兼容。.NET Core 是开源的,是基于 DevOps 构思和构建的。.NET Core CLI 和 Roslyn API 让整个交付流程变得更加开放,且具有更强的适应…

Message Decoding密码翻译

这是一道模拟题ex 其实每一道模拟题都很“简单”, 这道题就是难在读英文题!处理输入! 真的我竟然花了几个小时就只是为了看懂样例!!orz 题目大意 考虑下面的01串序列: 0,00,01…

.NET Core开发日志——结构化日志

在.NET生态圈中,最早被广泛使用的日志库可能是派生自Java世界里的Apache log4net。而其后来者,莫过于NLog。Nlog与log4net相比,有一项较显著的优势,它支持结构化日志。结构化日志,也被称为语义化日志。其作用有二&…