微分方程鸭子过河

温柔似野鬼°
884次浏览
2021年02月23日 09:57
最佳经验
本文由作者推荐

-

2021年2月23日发(作者:喇叭的拼音)


鸭子过河



设河边点


O


的正对岸为点


A


,河宽


OA=h


(图),水流速度为


a


,有一鸭子从点


A


游向点


O


,设鸭子


(在静水中)的游速为


b



b>a


),且鸭子游动的方向始终朝着点


O


。①设


h=10m



a=1m/s



b=2m/s


,用


数值法求渡河所需时间、任意时刻鸭子的位置及游动曲线。②建立任 意时刻鸭子的位置和鸭子游动的数


学模型,并求其解析解。



1.


模型的假设



为了使问题确定和简化,实际上已经作了如下假设:



①假设河宽固定,设为


h


,且两岸为平行直线;



②鸭子游速为


b

及水流速度


a


均为常数;



③鸭子游动的方向始终指向


O




2.


模型的建立和求解




O


为坐标原点,河岸朝顺水方向为< /p>


x


轴,


y


轴指向 对岸,如图所示。



设时刻


t


鸭子位于点


P



x



y


),设起点坐标(

x



y



=



0



h< /p>


),终点坐标(


0


0


),设θ为鸭子


速度方向与


x< /p>


轴正向间的夹角,



< br>


b



(


b


cos



,


b


sin



)







bOP



OP


b


x



y


2< /p>


2


(



x


,



y


)

< p>




a



(


a


,0)



v



a


b


于是鸭子游动的迹线满足:



x(0)=0



y(0)=h




1


)模型的数值解



实际上,


从上述方程不能求得


x(t)



y(t)


的解析式,


但在参数确定的情况下,可以通过数值解得到任意时刻


鸭子的位置。设


x=(x(1)



x (2))



x(1)=x


< p>
x(2)=y


,编


写如下的函数

< br>M


文件:



%


鸭子过河、渡河



function dx=duhe(t,x) %


建立名



duhe


的函数

< p>
M


文件



a=1;b=2;



s=sqrt(x(1)^2+x(2)^2);


< p>
dx=[a-b*x(1)/s;-b*x(2)/s];%


以向量形式表 示方程组



在编写运行程序时,须设定时间

t


的起点及终点步长,可大致估计静水中的渡河时间,并作试探。

< br>(可见,鸭子的渡河时间在


~7s


之间)



ts=0::7;



x0=[0,10];


[t,x]











%x



y


的初始值





%


输出


t



x(t)



y(t)



%


按照数值输出作


x(t)



y(t)


的图形



%< /p>



y(t)


的图形



[t,x]=ode45(@duhe,ts,x0); %


调用


ode45


计算



plot(t,x),grid


T


g text('x(t)'),gtext('y(t)'),pause %


利用鼠标确定字符串位置



plot(x(:,1),x(:,2)),grid,


gtext('x'),gtext('y')



得到的数值结果


x(t)



y(t)


为鸭子的位置列入表。


x(t)



y(t)



y(x)


的图形见图


(a)



(b)





h= 10



a=1



b=2


时的数值解



t











2


)模型的解析解

< br>


x(t)











(a)




y(t)











t














x(t)












(b)



y(t)










为了得到更精确的运动轨迹,还 必须对模型作进一步分析以得到其解析解。鸭子运动速度为:



故有:



由此得到微分方程:



a


x


2



y

< br>2


x


dx


v

x







x(h)=0


< br>dy


v


y


by

< br>y


求解此齐次微分方程得到鸭子游动的轨迹方程为:


< /p>


a


a


1



1




< p>
h



y



b



y


b


x








< /p>




0



y



h


(具体求解参 见附录(


1


))


2




h




h



< /p>




采用下列


M atlab


程序,我们可以画出鸭子运动的轨迹(图)。



h=10;a=1;b=2;y=h::0;x=h/2*((y./h).^(1-a/b )-(y./h).^(1+a/b));



plot(x,y,'bO-')



legend('duck')



xlabel('X');ylabel('Y');





鸭子运动的轨迹



鸭子游动曲线轨迹的 弧长可以用公式


ds



1



x


'2


dy


求出,也可以用数值方法求解。



3.


对解以及问题的进一步讨论



①关于解可以作进一步分析:如果


b



a


,由上述轨迹方程当


y

< br>→


0


,得到


x

< br>→∞。因此,这中情况下


鸭子是不可能到达对岸的,这与鸭子运动的力学分析结果 是一致的。



syms y;limit(10/2*(((y /10)^(1-2))-((y/10)^(1+2))),y,0,'left')



syms y;limit(10/2*(((y/10)^(1-2))-((y/1 0)^(1+2))),y,0,'right')



结果分别 为


-Inf



Inf

< br>。



②很自然地,还可以探讨如下问题:如果鸭子上岸的 地点不超过和对岸下游一定位置(比如与正对


岸距离为


l




鸭子的速度大小与方向不变,

< p>
问鸭子以怎样的游动方向才能以最少的时间到达上岸地点?


鸭子能够按要求 到达对岸速度应满足什么条件?如果水流速度变化,进一步可研究


2003


年全国数学建


模竞赛


D


题: 强渡长江。



4.


建模过程总结


< br>这是一个微分方程应用题,整个解题过程已经包含了建立数学模型的基本内容,即



①根据问题背景和建模问题作出必要的简化假设——鸭子速度和水流速度均为常数;



②用字母和符号表示有关变量(如鸭子速度、水流速度、时间及位 置坐标等);


-


-


-


-


-


-


-


-