数学建模实验报告二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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),'*')