数学建模实验报告二

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

贵州师范大学数学与计算机科学学院学生实验报告

课程名称:数学建模 班级:08数本(2)班 实验日期: 2011-05-27 学 号:080702010081 姓名: 王瑞祥 指导教师: 周晓军

实验成绩:

一、实验名称

用微分方程建立数学模型

二、实验目的及要求

1. 学会用Matlab 求简单微分方程的解析解

2学会用Matlab 求微分方程的数值解.

三、实验环境

每人一台计算机,要求安装Windows XP 操作系统,Microsoft office2003、MATLAB6.5(或7.0)。

四、实验内容

一个慢跑者在平面上沿椭圆以恒定的速率v=1跑步,设椭圆方程为:

x=10+20cost, y=20+5sint. 突然有一只狗攻击他. 这只狗从原点出发,以恒定速率w 跑向慢跑者,狗的运动方向始终指向慢跑者.分别求出w=20,w=5时狗的运动轨迹.

五、算法描述及实验步骤

1. 模型建立

设时刻t 慢跑者的坐标为(X(t),Y(t)),狗的坐标为(x(t),y(t)).

则X=10+20cost, Y=20+15sint, 狗从(0,0)出发,与导弹追踪问题类似,建立狗的运动轨迹的参数方程:

2. 模型求解

(1) w=20时,建立m-文件eq3.m 如下:

function dy=eq3(t,y) dy=zeros(2,1);

dy(1)=20*(10+20*cos(t)-y(1))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t )-y(2))^2);

⎪⎪⎩⎪⎪⎨⎧==-+-++-+=-+-++-+=0)0( ,0)0()sin 1520()sin 1520()cos 2010()cos 2010()sin 1520()cos 2010(2222y x y t y t x t w dt dy x t y t x t w dt dx

dy(2)=20*(20+15*sin(t)-y(2))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t )-y(2))^2);

取t0=0,tf=10,建立主程序chase3.m如下:

t0=0;tf=10;

[t,y]=ode45('eq3',[t0 tf],[0 0]);

T=0:0.1:2*pi;

X=10+20*cos(T);

Y=20+15*sin(T);

plot(X,Y,'-')

hold on

plot(y(:,1),y(:,2),'*')

在chase3.m,不断修改tf的值,分别取tf=5, 2.5, 3.5,…,至3.15时,

狗刚好追上慢跑者.

(2) w=5时

建立m-文件eq4.m如下:

function dy=eq4(t,y)

dy=zeros(2,1);

dy(1)=5*(10+20*cos(t)-y(1))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t) -y(2))^2);

dy(2)=5*(20+15*sin(t)-y(2))/sqrt((10+20*cos(t)-

y(1))^2+(20+15*sin(t)-y(2))^2);

取t0=0,tf=10,建立主程序chase4.m如下:

t0=0;tf=10;

[t,y]=ode45('eq4',[t0 tf],[0 0]);

T=0:0.1:2*pi;

X=10+20*cos(T);

Y=20+15*sin(T);

plot(X,Y,'-')

hold on

plot(y(:,1),y(:,2),'*')

在chase3.m,不断修改tf的值,分别取tf=20, 40, 80,…,

可以看出,狗永远追不上慢跑者.

六、调试过程及实验结果

(1) w=20时

(2) w=5时

七、总结

1.学会了用Matlab求简单微分方程的解析解

2.学会用了Matla b求微分方程的数值解.

3.在求狗追赶跑步者时,当狗的速度不够快时,如w=5时,它将永远追不上

人,说明此问题与狗的追赶速度有关。

八、附录(源程序清单)

ep3.m

function dy=eq3(t,y)

dy=zeros(2,1);

dy(1)=20*(10+20*cos(t)-y(1))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t)-y(2))^2);

dy(2)=20*(20+15*sin(t)-y(2))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t)-y(2))^2);

chase3.m

t0=0;tf=3.15;

[t,y]=ode45('eq3',[t0 tf],[0 0]);

T=0:0.1:2*pi;

X=10+20*cos(T);

Y=20+15*sin(T);

plot(X,Y,'-')

hold on

plot(y(:,1),y(:,2),'*')

ep4.m

function dy=eq4(t,y)

dy=zeros(2,1);

dy(1)=5*(10+20*cos(t)-y(1))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t)-y(2))^2);

dy(2)=5*(20+15*sin(t)-y(2))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t)-y(2))^2);

chase4.m

t0=0;tf=100;

[t,y]=ode45('eq4',[t0 tf],[0 0]);

T=0:0.1:2*pi;

X=10+20*cos(T);

Y=20+15*sin(T);

plot(X,Y,'-')

hold on

plot(y(:,1),y(:,2),'*')

相关文档
最新文档