鸭子过河设河边点O的正对岸为点A,河宽OA=h(图1.1),水流速度为a,有一鸭子从点A游向点O,设鸭子(在静水中)的游速为b(ba),且鸭子游动的方向始终朝着点O。①设h=10m,a=1m/s,b=2m/s,用数值法求渡河所需时间、任意时刻鸭子的位置及游动曲线。②建立任意时刻鸭子的位置和鸭子游动的数学模型,并求其解析解。1.模型的假设为了使问题确定和简化,实际上已经作了如下假设:①假设河宽固定,设为h,且两岸为平行直线;②鸭子游速为b及水流速度a均为常数;③鸭子游动的方向始终指向O。2.模型的建立和求解取O为坐标原点,河岸朝顺水方向为x轴,y轴指向对岸,如图1.1所示。设时刻t鸭子位于点P(x,y),设起点坐标(x,y)=(0,h),终点坐标(0,0),设θ为鸭子速度方向与x轴正向间的夹角,22(cos,sin)(,)bOPbbbbxyOPxy,(,0)aa,vab于是鸭子游动的迹线满足:2222cossindxbxbaadtxydybybdtxyx(0)=0,y(0)=h(1)模型的数值解实际上,从上述方程不能求得x(t),y(t)的解析式,但在参数确定的情况下,可以通过数值解得到任意时刻鸭子的位置。设x=(x(1),x(2))T,x(1)=x,x(2)=y,编写如下的函数M文件:%鸭子过河、渡河functiondx=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的起点及终点步长,可大致估计静水中的渡河时间,并作试探。(可见,鸭子的渡河时间在6.5~7s之间)ts=0:0.5:7;x0=[0,10];%x、y的初始值[t,x]=ode45(@duhe,ts,x0);%调用ode45计算[t,x]%输出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,%作y(t)的图形gtext('x'),gtext('y')得到的数值结果x(t),y(t)为鸭子的位置列入表1.1。x(t),y(t)及y(x)的图形见图1.2(a)和1.2(b)。表1.1h=10,a=1,b=2时的数值解tx(t)y(t)tx(t)y(t)0.00000.000010.00004.00001.86632.43360.50000.47419.00044.50001.70621.68341.00000.89298.00395.00001.44361.03811.50001.25037.01435.50001.08600.52572.00001.53966.03706.00000.65070.17592.50001.75355.07916.50000.16600.01113.00001.88434.15017.00000.00000.00003.50001.92423.262801234567012345678910x(t)y(t)00.20.40.60.811.21.41.61.82012345678910xy图1.2(a)和图1.2(b)(2)模型的解析解为了得到更精确的运动轨迹,还必须对模型作进一步分析以得到其解析解。鸭子运动速度为:2222(,)(,)(,)xydxdybxbyvvvadtdtxyxy故有:xyvdxdyv由此得到微分方程:22xyaxyvdxxdyvbyy,x(h)=0求解此齐次微分方程得到鸭子游动的轨迹方程为:112aabbhyyxhh,0≤y≤h(具体求解参见附录(1))采用下列Matlab程序,我们可以画出鸭子运动的轨迹(图1.3)。h=10;a=1;b=2;y=h:-0.5:0;x=h/2*((y./h).^(1-a/b)-(y./h).^(1+a/b));plot(x,y,'bO-')legend('duck')xlabel('X');ylabel('Y');00.20.40.60.811.21.41.61.82012345678910XYduck图1.3鸭子运动的轨迹鸭子游动曲线轨迹的弧长可以用公式'21dsxdy求出,也可以用数值方法求解。3.对解以及问题的进一步讨论①关于解可以作进一步分析:如果b<a,由上述轨迹方程当y→0,得到x→∞。因此,这中情况下鸭子是不可能到达对岸的,这与鸭子运动的力学分析结果是一致的。symsy;limit(10/2*(((y/10)^(1-2))-((y/10)^(1+2))),y,0,'left')symsy;limit(10/2*(((y/10)^(1-2))-((y/10)^(1+2))),y,0,'right')结果分别为-Inf和Inf。②很自然地,还可以探讨如下问题:如果鸭子上岸的地点不超过和对岸下游一定位置(比如与正对岸距离为l),鸭子的速度大小与方向不变,问鸭子以怎样的游动方向才能以最少的时间到达上岸地点?鸭子能够按要求到达对岸速度应满足什么条件?如果水流速度变化,进一步可研究2003年全国数学建模竞赛D题:强渡长江。4.建模过程总结这是一个微分方程应用题,整个解题过程已经包含了建立数学模型的基本内容,即①根据问题背景和建模问题作出必要的简化假设——鸭子速度和水流速度均为常数;②用字母和符号表示有关变量(如鸭子速度、水流速度、时间及位置坐标等);③利用相应的物理(或其他)规律——牛顿力学有关规律,列出微分方程;④求解微分方程得到鸭子游动轨迹曲线解析解,此处我们还采用了数值解法得到了任意时刻鸭子的位置(坐标);⑤解的讨论及推广应用等。参考文献[1]李志林,欧宜贵,数学建模及典型案例分析,北京:化学工业出版社,2006.12[2]同济大学应用数学系,高等数学(本科少学时类型)上册(第二版),北京:高等教育出版社,2001附录:(1)鸭子游动轨迹方程的求解将得到的微分方程22axydxxdybyy化成齐次方程dxxdyy的形式,得21dxaxxdybyy(1-1)令xuy,则x=yu,dxduuydydy,代入上述方程,得21duauyuudyb(1-2)化简并分离变量得21duadybyu(1-3)两端积分,得21ln(1)lnauuyCb(其中C1为常数)(1-4)即12221()aCbuuyCCe其中(1-5)将xuy代入上式,得12221()aCbxxyCCeyy其中(1-6)由x(h)=0将y=h,x=0代入上式,得21abhC,求得2abCh。将2abCh代入式(1-5),得21aabbuhyu(1-7)将上式平方并化简,得21()2aaaabbbbhyuhy(1-8)求得11()22aaaaaabbbbbbyyuhyhyhh(1-9)将xuy代入上式,得11222aaaaaabbbbbbyyyhyyyhyyxhhhhhhh,0≤y≤h(1-10)参考文献图书馆索取号及参考页码[1]O141.4/L.Z.LPage2-4[2]齐次方程Page339-344