学号:060910305 姓名:杜丹丹
《Matlab/Simulink在数学计算与仿真中的应用》大作业
假设地球和火星绕太阳运转的半径分别为和,et指令动画显示从地球到火星的转移轨迹(可以任意取值,要求实时显示探测器、太阳、地球和火星的位置)。
解函数 et(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 = ; end
if nargs == 3, [x,y,p] = deal(args{:}); end
if ~isscalar(p) || ~isreal(p) || p < 0 || p >= 1
error('et:InvalidP', ...
'The input ''p'' must be a real scalar between 0 and 1.');
End
指令%particle_motion
t = 0:5:16013;
r1=;%随便给定参数
%---------------------------
r2=2*r1;
g=;
R=;
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)-*r1;
y_ellipse=b*sin(w*t);
%动画显示运动轨迹
x=[x_inter;x_outer;x_ellipse]';
y=[y_inter;y_outer;y_ellipse]';
comet(x,y)
%---------------------------
动态图像如下:
. 途径一:指令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 )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 )
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
其中,设。若令其初值为,而为机器上可以识别的小常数,如取一个很小的正数,试用尽可能多的方法来求解该微分方程组。
解:方法一:新建文件lorenz
MATLAB期末大作业 来自淘豆网m.daumloan.com转载请标明出处.