matlab期末大作业twsk8gqa.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
matlab期末大作业twsk8gqa

学号:060910305 姓名:杜丹丹 《Matlab/Simulink在数学计算与仿真中的应用》大作业 假设地球和火星绕太阳运转的半径分别为和,利用comet指令动画显示从地球到火星的转移轨迹(可以任意取值,要求实时显示探测器、太阳、地球和火星的位置)。 解 函数 function comet(varargin) [ax,args,nargs] = axescheck(varargin{:}); error(nargchk(1,3,nargs,struct)); % Parse the rest of the inputs if nargs 2, x = args{1}; y = x; x = 1:length(y); end if nargs == 2, [x,y] = deal(args{:}); end if nargs 3, p = 0.10; end if nargs == 3, [x,y,p] = deal(args{:}); end if ~isscalar(p) || ~isreal(p) || p 0 || p = 1 error(MATLAB:comet:InvalidP, ... The input p must be a real scalar between 0 and 1.); End 指令 %particle_motion t = 0:5:16013; r1=6.7e6;%随便给定参数 %--------------------------- r2=2*r1; g=9.8; R=6.378e6; m=g*R^2; %内轨道 v_inner=sqrt(m/r1); w_inner=v_inner/r1; x_inter=r1*cos(w_inner*t); y_inter=r1*sin(w_inner*t); %外轨道 v_outer=sqrt(m/r2); w_outer=v_outer/r2; x_outer=r2*cos(w_outer*t); y_outer=r2*sin(w_outer*t); %控制器转移轨道 a=(r1+r2)/2; E=-m/(2*a); V_near=sqrt(m*(2/r1-2/(r1+r2)));%转移轨道在近地点的速度V_far=sqrt(m*(2/r2-2/(r1+r2)));%转移轨道在远地点的速度 h=r1*V_near;%由于在近地点的速度垂直于位置失量, h是转移轨道的比动量矩 e=sqrt(1+2*E*h^2/m^2);%e为椭圆轨迹的偏心率 TOF=pi*sqrt(a^3/m);%转移轨道是椭圆的一半及飞行时间是周期的一半(开普勒第三定律) w=pi/TOF;%椭圆轨迹的角速度 c=a*e; b=sqrt(a^2-c^2); x_ellipse=a*cos(w*t)-0.5*r1; y_ellipse=b*sin(w*t); %动画显示运动轨迹 x=[x_inter;x_outer;x_ellipse]; y=[y_inter;y_outer;y_ellipse]; comet(x,y) %--------------------------- 动态图像如下: 2.利用两种不同途径求解边值问题的解. 途径一:指令syms f g [f,g]=dsolve(Df=3*f+4*g,Dg=-4*f+3*g,f(0)=0,g(0)=1); disp(f=);disp(f) disp(g=);disp(g) 结果(Matlab 7.8版本)f= i/(2*exp(t*(4*i - 3))) - (i*exp(t*(4*i + 3)))/2 g=exp(t*(4*i + 3))/2 + 1/(2*exp(t*(4*i - 3))) (Matlab 6.5版本) f=exp(3*t)*sin(4*t) g=exp(3*t)*cos(4*t) 途径二:%problem2 function dy=problem2(t,y) dy = zeros(2,1); dy(1) = 3*y(1)+4*y(2); dy(2) = -4*y(1)+3*y(2); [t,y] = ode45(problem2,[0 2],[0 1]); plot(t,y(:,1),r,t,y(:,2),b); 图2 3.假设著名的Lorenz模型的状态方程表示为 其中,设。若令其初值为,而为机器上可以识别的小常数,如取一个很小的正数,试用尽可能多的方法来求解该微分方程组。 解:方法一:新建文件lorenzeq.m 源程序: function xdot=lorenzeq(t,x) xdot=[-8/3*x(1)+x(2)*x(

文档评论(0)

beoes + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档