- 题目描述
有只鸭子想游到河对岸的某个位置O,如果它的方向始终朝着目标O。求这只鸭子的游动曲线。 - 问题分析
由于水流速度会对运动产生影响,此时小鸭朝向对岸的方向是一个随时变化的,合速度的方向和大小也是变化的,小鸭的运动轨迹将不会是一条直线,即该运动轨迹的方程不会是线性的,那么其运动轨迹必然是一条曲线。通过分别求小鸭在x和y轴上的分速度就可以在坐标系上求出小鸭的游动曲线
- 模型假设
假设河的两岸平行,河宽为h;
鸭子游动的速率为b,水流速率为a;
鸭子的初识位置为A;
鸭子游动方向始终指向对岸的O点。
-
符号定义
-
模型的建立与求解
- 模型评价与推广
模型的优点:本题所用到的微分方程模型,用x和y轴上的分速度与时间的乘积来近似小鸭游动的位置,以此画出它的游动曲线。用此模型不需要太复杂和大量的计算量,就能很好的绘制出小鸭游动的曲线。我们通过将小鸭每个时间步长在坐标系上的位置点连结起来,型成一条曲线。
模型的缺点:当时间步长过大时将会导致画出的轨迹不光滑,出现模型误差。
模型的推广:该模型很好地解决了在渡河问题中当一个物体的方向始终朝着某个点的问题,计算简洁。对渡河登陆点的选取有很好的参考价值。
附件一:小鸭过河问题数值解的MATLAB程序
clc
a=1;b=2;h=10;dt=0.1;
i=1;
P=[0,h];
while P(i,2)>0
i=i+1;
v=[a-b.*P(i-1,1)./sqrt(P(i-1,1).^2+P(i-1,2).^2),-b.*P(i-1,2)./sqrt(P(i-1,1).^2+P(i-1,2).^2)];
P(i,:)=P(i-1,:)+v.*dt;
end
P
plot(P(:,1),P(:,2))
xlabel('x')
ylabel('y')
附件二:小鸭过河问题解析解的MATLAB程序
function x=yz(y)
k=0.3;
x=1/2*(-0.01).^(-k).*y.^(-k+1)-1/2.*(-0.01).^(k).*y.^(k+1);
end
clc
clear all
y=[0:0.1:100];
for i=0:1:1000
x(:,i+1)=yz(-i/10);
end
plot(x,y);
title('鸭子过河 ');
xlabel('x轴');
ylabel('y轴');
- 参考文献
[1]党嘉熙.小船过河问题的最值分析[J].中学物理教学参考,2017,46(20):30-31.
[2]张一敏.微分方程在数学建模中的应用[J].数学学习与研究,2017(13):30+32.
[3]温鸿航,任晓莉,温鸿翔.渡河问题的矩阵表示与迭代算法[J].电子科技,2012,25(10):101-105.
[4]陈磊.渡河问题阿当姆斯法的Matlab求解[J].科教文汇(下旬刊),2011(06):96+98.
[5]郑晶,战长志.小船渡河问题的探究[J].中学物理教学参考,2010,39(Z1):28-29.
[6]高进青,赵国伟.齐次方程及其求解[J].湖州师范学院学报,2009,31(02):122-126.