多体问题

在这里插入图片描述

代码:

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"--中文译为宙斯,是古希腊神话中的众神之王,奥林匹斯十二主神之首,统治宇宙万物的至高无上的主神(在古希腊神话中主神专…

[gdoi2018 day1]小学生图论题【分治NTT】

正题 题目大意 一张随机的nnn个点的竞赛图,给出它的mmm条相互无交简单路径,求这张竞赛图的期望强联通分量个数。 1≤n,m≤1051\leq n,m\leq 10^51≤n,m≤105 解题思路 先考虑m0m0m0的做法,此时我们考虑一个强联通块的贡献,注意到…

背包问题 DP

各种各样的基础背包 0-1 背包 非常朴素&#xff0c;复杂度 \(O(nV)\) void z_o_pack(int c,int v) {for(int iV;i>c;i--)dp[i]max(dp[i],dp[i-c]v); } 完全背包 复杂度 \(O(nV)\) void comp_pack(int c,int v) {for(int ic;i<V;i)dp[i]max(dp[i],dp[i-c]v); } 多重背包 单…

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

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

Matlab与线性代数

文章目录多项式求解1.2 多项式四则运算1.3 多项式的分解与合并行列式求解3、矩阵基本运算➢ 3.2 矩阵的取块和变换➢ 3.3 矩阵的基本运算4、求解线性方程组多项式求解 ➢ 1.1 多项式表达式与根 有关多项式函数表达式与根的Matlab命令&#xff1a; poly2sym 返回由多项式系数转…

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

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

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

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

CF1556D-Take a Guess【交互】

正题 题目链接:https://codeforces.com/contest/1556/problem/D 题目大意 现在有nnn个你不知道的数字&#xff0c;你有两种询问操作 询问两个下标的数字的andandand询问两个下标的数字的ororor 要求在2n2n2n次操作以内求出第kkk小的数字 1≤n≤104,0≤ai≤1091\leq n\leq 1…

YBTOJ:彩球抽取(期望)

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

魔改森林

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

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

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

常见存储、查找算法

存储 散列存储&#xff1a;即哈希的存储方式。 顺序存储&#xff1a;数组的存储方式 链式存储&#xff1a;链式前向星、vector<> 压缩存储 索引存储 查找 常见查找算法 顺序查找 一个一个往下找&#xff0c;复杂度 \(O(\dfrac{n1}{2})\) 。 适合顺序存储&#xff0c…

CF1556E-Equilibrium【栈,树状数组】

正题 题目连接:https://codeforces.com/contest/1556/problem/E 题目大意 两个长度为nnn的序列a,ba,ba,b&#xff0c;qqq次询问一个区间[l,r][l,r][l,r]。 在这个区间中你每次可以选择一个长度为偶数的下标递增的序列&#xff0c;让奇数位置的aaa加一&#xff0c;偶数位置的…

[COCI 2018#5]Parametriziran

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

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

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

AcWing 1402. 星空之夜 1月28

AcWing 1402. 星空之夜 1月28 题意&#xff1a; 一个星群是指一组非空的在水平&#xff0c;垂直或对角线方向相邻的星星的集合。 一个星群不能是一个更大星群的一部分。 星群可能是相似的。 如果两个星群的形状、包含星星的数目相同&#xff0c;那么无论它们的朝向如何&#…