• 沒有找到結果。

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

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)

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

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

d ( )

d

y y b vt

x x

(4)

微分方程应用

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

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

消去变量 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

   

             

 

0 2

' x 1 ' d

x

xy y b v y x

   u

 

2

" v 1 '

xy y

u

(5)

微分方程应用

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

计算 x=0 y

值!

y <0 追上兔子 !

(6)

微分方程应用

微分方程求解:

初值条件:

化为方程组:令 z=y'

 

2

" v 1 '

xy y

u

0

0 0 0

0

( ) , '( ) y b

y x y y x

x

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));

參考文獻

相關文件