matlab恶狼追兔问题,饿狼追兔问题-数学建模.doc
實(shí) 驗(yàn) 報(bào) 告
專(zhuān)業(yè):美術(shù) 班級(jí):(1)班 指導(dǎo)老師:牛老師
姓名:某某某 學(xué)號(hào):123456789 實(shí)驗(yàn)室:110
實(shí)驗(yàn)名稱(chēng): 餓狼追兔問(wèn)題 時(shí)間:2012年10
一、實(shí)驗(yàn)?zāi)康募耙?/p>
理解二階微分法在建模過(guò)程中的應(yīng)用,熟悉利用MATLAB軟件求解微分方程的方法。注意模型的普遍性和模型的廣泛性
二、問(wèn)題的分析
現(xiàn)有一只兔子、一匹狼,兔子位于狼的正西100米處,假設(shè)兔子與狼同時(shí)發(fā)現(xiàn)對(duì)方并一起起跑,兔子往正北60米處的巢穴跑,而狼在追兔子。已知兔子、狼是勻速跑且狼的速度是兔子的兩倍。問(wèn)兔子能否安全回到巢穴?
(1)分析餓狼追野兔的運(yùn)動(dòng)模型。餓狼追野兔過(guò)程中,野兔的目的是要在餓狼捉住自己之前跑到自己的巢穴,假如惡狼知道野兔巢穴的具體位置,根據(jù)題目所給,餓狼完全可以先兔子跑到其巢穴,然后在那里守株待兔,野兔則難逃餓狼之口。那樣餓狼的軌跡就是一條直線,只需簡(jiǎn)單的數(shù)學(xué)計(jì)算就可以完成。
(2)但這是一個(gè)理想化的實(shí)際問(wèn)題,在這個(gè)問(wèn)題中由于餓狼不可能知道兔子巢穴的具體位置,因此它的速度的方向永遠(yuǎn)是朝著兔子的,兔子一直向北跑,相對(duì)于餓狼來(lái)說(shuō)兔的角度在時(shí)刻的變化,所以最終餓狼的軌跡是一條曲線。而兔子能否活下來(lái),還是一個(gè)需要經(jīng)過(guò)具體較復(fù)雜計(jì)算的問(wèn)題。
三、模型的建立與求解
初始時(shí)刻(t=0)兔子位于原點(diǎn)(0,0),餓狼位于(100,0);兔子以常速度v0沿y軸跑,餓狼在t時(shí)刻的位置為(x,y),其速度為v1=2v0;餓狼在追兔子過(guò)程中一直向著兔子的方向,則:
餓狼在t時(shí)刻其追趕曲線的切線方程為
Y-y=(dy/dx)*(X-x)=[(dy/dt)/(dx/dt)]*(X-x)
其中(X,Y)為切線上動(dòng)點(diǎn)。
又餓狼在追兔子過(guò)程中一直向著兔子的方向,則t時(shí)刻兔子(0,v0t)在切線上,所以v0t-y=[(dy/dt)/(dx/dt)]*(0-x)
從而餓狼追趕軌跡由下方程組確定
(dx/dt)*( v0t-y)= (dy/dt)*(-x) (1)
(dx/dt)2+(dy/dt)2=v12 (2)
由(1)有(dy/dx)*(-x)= v0t-y,兩邊對(duì)t求導(dǎo)并化簡(jiǎn)
(d2y/dx2)* (dx/dt) *(-x)= v0 (3)
由(2)有 (dx/dt)2{1+[(dy/dt)/(dx/dt)]2}=v12
即dx/dt=-v1/[1+(dy/dx)2]1/2 (注這里取負(fù)號(hào),是由這個(gè)追趕曲線——上圖,決定的)
代入(3),并把v1=2v0代入并化簡(jiǎn)得
(d2y/dx2)*x=[1+(dy/dx)2]1/2/2 (4)
這是一個(gè)二階微分方程,它滿足初始條件y(100)=0
令p= dy/dx,這dp/dx= d2y/dx2,這(4)化為
(dp/dx)*x=[1+p2]1/2/2,可分離變量求得
ln{p+[1+p2]1/2/2
又p(100)=0,所以c=-ln10,從而
p+[1+p2]1/2/2=x1/2/10
這p=( x1/2/10-10/x1/2)/2
即dy/dx=( x1/2/10-10/x1/2)/2,從而
y=(x-300)*x1/2/30+c,又y(100)=0
則
y=(x-300)*x1/2/30+200/3
令x=0,得
y(0)=200/3>60
故兔子沒(méi)有有危險(xiǎn)
常微分方程高階初值問(wèn)題的MATLAB庫(kù)函數(shù)為:ode45。
語(yǔ)法為:[t,Y] =ode45(odefun,tspan,y0)
例如函數(shù): function dy = rigid(t,y)
dy = zeros(3,1); % a column vector
dy(1) = y(2) * y(3);
dy(2) = -y(1) * y(3);
dy(3) = -0.51 * y(1) * y(2);
設(shè)置選項(xiàng):
options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e-5]);
求解得:
[t,Y] = ode45(@rigid,[0 12],[0 1 1],options);
畫(huà)出解函數(shù)曲線圖形:
plot(T,Y(:,1),'-',T,Y(:,2),'-.',T,Y(:,3),'.')
但是我們決定不用題目中給的函數(shù),而是采用另一個(gè)函數(shù):
r = dsolve('eq1,eq2,...', 'cond1,cond2,...', 'v'),這個(gè)函數(shù)的作用是把常微分方程(無(wú)論是一階還是高階)轉(zhuǎn)化成不帶有求導(dǎo)的一般性方程,但是一般情況下經(jīng)過(guò)這種函數(shù)轉(zhuǎn)化之后,得到
總結(jié)
以上是生活随笔為你收集整理的matlab恶狼追兔问题,饿狼追兔问题-数学建模.doc的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 原生JS制作缤纷色彩板
- 下一篇: matlab 阿伦方差,GitHub -