700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > MATLAB-实现太阳 地球 月亮三者之间运转关系的模拟

MATLAB-实现太阳 地球 月亮三者之间运转关系的模拟

时间:2023-11-24 14:46:17

相关推荐

MATLAB-实现太阳 地球 月亮三者之间运转关系的模拟

例题:宇宙中存在着诸多的天体,以行星地球为例,地球绕着太阳进行公转,同时自身进行着自转。同样的,月亮在围绕地球旋转的同时自身也在自转。为了问题的简单化,假设太阳处于固定位置,且自身只有自转,只考虑太阳、地球、月亮三者的相互影响,请基于MATLAB 绘制出三者运动的三维模型。

MATLAB程序源代码

clear;clc; n=1000;t=linspace(0,2*pi,n);hold on;[x,y,z]=sphere;k=0; view(3);axis equal; axis([-17 17 -17 17 -10 10]);title('Sun, Earth & Moon') theta=[pi/2.3 pi/3];r=[15 2];w=[1 12]; trace=nan+[t;t;t];for j=t k=k+1;cla; surf(5*x,5*y,5*z,'AmbientStrength',1);shading interp i=1; T=[sin(theta(i)),0,cos(theta(i));0,1,0;-cos(theta(i)) 0 sin(theta(i))]; O=r(i)*T*[cos(t);sin(t);zeros(1,n)]; o=r(i)*T*[cos(j*w(i));sin(j*w(i));0]; plot3(O(1,:),O(2,:),O(3,:),':'); surf(x+o(1),y+o(2),z+o(3),'FaceLighting','gouraud','AmbientStrength',.5); i=2; T=[sin(theta(i)),0,cos(theta(i));0,1,0;-cos(theta(i)) 0 sin(theta(i))]; O=repmat(o,1,n)+r(i)*T*[cos(t);sin(t);zeros(1,n)]; o=o+r(i)*T*[cos(j*w(i));sin(j*w(i));0]; surf(x/i+o(1),y/i+o(2),z/i+o(3),'FaceLighting','gouraud','AmbientStrength',.5); plot3(O(1,:),O(2,:),O(3,:),':'); trace(:,k)=o;plot3(trace(1,:),trace(2,:),trace(3,:),'r');shading interp;light('position',[0 0 0],'style','local'); drawnowend

MATLAB程序运行结果

运行结果视频链接:MATLAB-实现太阳、地球、月亮三者之间运转关系的模拟-CSDN直播

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。