06.08.2013 Views

内容简介作者简介 - 科学与工程计算系

内容简介作者简介 - 科学与工程计算系

内容简介作者简介 - 科学与工程计算系

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

(3)<br />

[dYdt.m]<br />

function Yd=DYdt(t,Y)<br />

% t<br />

% Y<br />

global G ME %<br />

xy=Y(1:2);Vxy=Y(3:4); %<br />

r=sqrt(sum(xy.^2));<br />

Yd=[Vxy;-G*ME*xy/r^3]; %<br />

(4)<br />

global G ME % <br />

G=6.672e-11;ME=5.97e24;vy0=4000;x0=-4.2e7;t0=0;tf=60*60*24*9;<br />

tspan=[t0,tf]; %<br />

Y0=[x0;0;0;vy0]; %<br />

[t,YY]=ode45('DYDt',tspan,Y0);% <br />

X=YY(:,1); %<br />

Y=YY(:,2); %<br />

plot(X,Y,'b','Linewidth',2); hold on<br />

axis('image') %<br />

[XE,YE,ZE] = sphere(10); %<br />

RE=0.64e7; %<br />

XE=RE*XE;YE=RE*YE;ZE=0*ZE; %<br />

mesh(XE,YE,ZE),hold off %<br />

8<br />

6<br />

4<br />

2<br />

0<br />

-2<br />

-4<br />

-6<br />

-8<br />

x 10 7<br />

0 5 10 15 20<br />

x 10 7<br />

图 4.14-2<br />

【例 4.14.2.1-2】上例中,程序间的参数(如 G 和 ME)传送,是依靠全局变量形式实现的。<br />

一般说来,编写程序时,应尽量少用全局变量,以免引起混乱。本例演示参数如何在指令间<br />

直接传送。<br />

(1)<br />

[DYDt2.m]<br />

function Yd=DYDt2(t,Y,flag,G,ME)<br />

% flag<br />

%<br />

switch flag<br />

case '' %<br />

X=Y(1:2);V=Y(3:4);r=sqrt(sum(X.^2));Yd=[V;-G*ME*X/r^3];<br />

35

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!