[微分方程]鸭子过河

萌到你眼炸
766次浏览
2021年02月23日 09:23
最佳经验
本文由作者推荐

-

2021年2月23日发(作者:窈窕绅士电影)


鸭子过河



设河边点


O


的正对岸为点


A


,河宽


OA=h


(图


1.1



,水流速度为


a


,有一鸭子从点


A



向点


O



设鸭子


(在静水中)


的游速 为


b



b>a




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


O< /p>



①设


h=10m



a=1m/s



b=2m/s


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

< br>时刻鸭子的位置和鸭子游动的数学模型,并求其解析解。



1.


模型的假设



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



①假设河宽固定,设为


h


,且两岸为平行直线;



②鸭子游速为


b

及水流速度


a


均为常数;



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


O




2.


模型的建立和求解




O


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


x


轴,


y


轴指向 对岸,如图


1.1


所示。


< p>
设时刻


t


鸭子位于点


P< /p>



x



y



,设起点坐标(


x



y



=


(< /p>


0



h



,终点坐标(


0



0



,设


θ


为鸭 子速度方向与


x


轴正向间的夹角,


< /p>



b



(


b


cos



,


b


sin



)





< p>


bOP



OP



b


x



y


2


2


(

< br>


x


,



y


)





a



(


a


,0)



v



a



b


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



bx



dx



b


cos

< p>



a



a




dt

< br>x


2



y


2






dy



b


si n





by



dt


x


2< /p>



y


2



x(0)=0



y(0)=h



1


)模型的数值解



实际上,从上述方程不能求得


x(t)


,< /p>


y(t)


的解析式,但在参数确定的情况下,可以通过

< p>
数值解得到任意时刻鸭子的位置。设


x=(x(1)



x(2))


T


< br>x(1)=x



x(2)=y


, 编写如下的函数


M


文件:



%


鸭子过河、渡河



function dx=duhe(t,x)








%


建立名为


duhe


的函数


M


文件



a=1;b=2;


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


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


以向量形式表示方程组



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


t

< br>的起点及终点步长,可大致估计静水中的渡河时间,


并作试探。

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


6.5~7s


之间)



ts=0:0.5:7;


x0=[0,10];





%x



y< /p>


的初始值



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


%< /p>


调用


ode45


计算


[t,x]






%


输出< /p>


t



x(t)



y(t)


plot(t,x),grid





%


按照数值输出作


x(t)



y(t)


的图形



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


利用鼠标确定字符串位置



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


< /p>


%



y(t)


的 图形



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


得到的数值结果


x(t)


< br>y(t)


为鸭子的位置列入表


1.1


x(t)



y(t)

< p>


y(x)


的图形见图


1 .2(a)



1.2(b)





1.1 h=10



a=1



b=2

时的数值解



t


0.0000


0.5000


1.0000


1.5000


2.0000


2.5000


3.0000


3.5000


10


9


8


7


y(t)


6

< p>
5


4


3


2


1


0


0


1

2


x(t)


x(t)


0.0000


0.4741


0.8929


1.2503


1.5396


1.7535


1.8843


1.9242


y(t)


10.0000


9.0004


8.0039


7.0143


6.0370


5.0791


4.1501


3.2628


t


4.0000


4.5000


5.0000


5.5000


6.0000


6.5000


7.0000




10


9


8< /p>


7


6


5


4


3


2


1


y

< p>
x(t)


1.8663


1.7062


1.4436


1.0860


0.6507


0.1660


0.0000




y(t)


2.4336


1.6834


1.0381


0.5257


0.1759


0.0111


0.0000




x


0


0.2


0.4


0.6


0.8

< br>1


1.2


1.4


1.6


1.8


2


3


4


5


6


7


0




1.2(a)











1.2(b)


< br>2


)模型的解析解



为了得到更 精确的运动轨迹,


还必须对模型作进一步分析以得到其解析解。


鸭子运动速


度为:



v



(


v


x

,


v


y


)



(


故有:



dx


dy


bx



by


,


)



(


a



,


)< /p>



2


2


2


2


dt


dt


x



y


x


< p>
y


dx


v


x




dy


v


y


由此得到微分方程:



a< /p>


x


2



y


2


x


dx


v


x







x(h)=0


dy< /p>


v


y


by


y


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



a


a


1


1





h




y


< /p>


b



y



b



x


< p>







0


y



h


(具体求解参见附录(


1






2




h



h


< br>



-


-


-


-


-


-


-


-