[微分方程]鸭子过河
-
鸭子过河
设河边点
O
的正对岸为点
A
,河宽
OA=h
(图
1.1
)
,水流速度为
a
,有一鸭子从点
A
游
向点
O
,
设鸭子
(在静水中)
的游速
为
b
(
b>a
)
,
且鸭子游动的方向始终朝着点
O<
/p>
。
①设
h=10m
,
a=1m/s
,
b=2m/s
p>
,用数值法求渡河所需时间、任意时刻鸭子的位置及游动曲线。②建立任意
< br>时刻鸭子的位置和鸭子游动的数学模型,并求其解析解。
1.
模型的假设
为了使问题确定和简化,实际上已经作了如下假设:
①假设河宽固定,设为
h
,且两岸为平行直线;
②鸭子游速为
b
及水流速度
a
均为常数;
③鸭子游动的方向始终指向
O
。
2.
模型的建立和求解
取
O
为坐标原点,河岸朝顺水方向为<
/p>
x
轴,
y
轴指向
对岸,如图
1.1
所示。
设时刻
t
鸭子位于点
P<
/p>
(
x
,
y
)
,设起点坐标(
x
,
y
)
=
(<
/p>
0
,
h
)
,终点坐标(
0
,
0
)
,设
θ
为鸭
子速度方向与
x
轴正向间的夹角,
<
/p>
b
(
b
cos
,
b
sin
)
bOP
OP
b
x
y
2
2
(
< br>
x
,
y
)
,
a
(
a
p>
,0)
,
v
p>
a
b
于是鸭子游
动的迹线满足:
bx
dx
b
cos
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
)模型的数值解
p>
实际上,从上述方程不能求得
x(t)
,<
/p>
y(t)
的解析式,但在参数确定的情况下,可以通过
数值解得到任意时刻鸭子的位置。设
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
%
p>
按照数值输出作
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)
及
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
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
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
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
p>
求解此齐次微分方程得到鸭子游动的轨迹方程为:
a
a
1
1
h
y
<
/p>
b
y
b
x
,
0
≤
y
≤
h
(具体求解参见附录(
p>
1
)
)
2
h
h
< br>