• 沒有找到結果。

第二讲 常微分方程数值求解

N/A
N/A
Protected

Academic year: 2021

Share "第二讲 常微分方程数值求解"

Copied!
8
0
0

加載中.... (立即查看全文)

全文

(1)

第二讲

常微分方程数值求解

—— 微分方程的应用

(2)

微分方程应用

微分方程应用

—— 猎狗追兔问题

问题描述:

在旷野上有一只野兔和一条猎狗,

猎狗发现野兔并开始追踪,同时野 兔也发现猎狗,开始跑向兔穴。

假定猎狗的追踪方向始终对着野兔,

猎狗和野兔的奔跑速度分别为 u 和 v。

问:猎狗能否在野兔进洞前抓住野兔?

(3)

微分方程应用

分析:

建立坐标系:设兔子的家为原点 (0,0),兔子与猎狗的初始位 置分别为 (0, b) 和 (x0, y0),其中 b<0,x0>0

在时刻 t:兔子位于(0, b+vt),

设猎狗位于 (x(t) , y(t) )

(0,0)

(0,b)

(x0,y0)

由于猎狗的追踪方向始终 对着野兔,故有

d ( )

d

y y b vt

x x

− +

=

(0, b+vt) (x(t) , y(t) )

(4)

微分方程应用

猎狗在 [0, t] 内走过的路程为

0

0

2 2

d d

1 d 1 d

d d

x x

x x

y y

u t x x

x x

   

= +   = +  

   

∫ ∫

其中 u 是猎狗奔跑的速度。

( )

0 2

'

x

1 ' d

x

xy y b v y x

= − − u ∫ +

消去变量 t

两边求导

xy " v 1 ( ) y '

2

= u +

猎狗奔跑的轨迹

(5)

微分方程应用

如何判断猎狗有没有在野兔跑回家前追上兔子?

计算

x

=0

y

的值!

y

<0

追上兔子!

(6)

微分方程应用

微分方程求解:

( )

2

" v 1 '

xy y

= u +

0

0 0 0

0

( ) , '( ) y b

y x y y x

x

= = −

初值条件:

化为方程组:令

z=y'

2

'

' 1

y z

z v z

ux

 =

 

= +



(7)

微分方程应用

% 函数文件

function dy = dog(x,y) global u v;

dy = zeros(size(y(:)));

dy(1) = y(2);

dy(2) = v/u*sqrt(1+y(2)*y(2))/x;

例:设野兔的家为原点 (0,0),兔子与猎狗的初始位置分别为 (0, -60) (70, 15),猎狗和野兔的奔跑速度分别为 5m/s 和 3m/s,问:猎狗能否在野兔进洞前抓住野兔?

(8)

微分方程应用

% 脚本文件 clear all

global u v;

u = 5;

v = 3;

Y0 = [15; 15/14]; % 初值

[T,Y] = ode45(@dog,[70,0],Y0);

if Y(end,1)<=0

disp('猎狗能抓住野兔!') else

disp('猎狗抓不到野兔!') end

fprintf('x=0 时 y=%.4f\n', Y(end,1));

參考文獻

相關文件