數(shù)學(xué)實(shí)驗(yàn):實(shí)驗(yàn)十二 緝私艇追趕走私船模型實(shí)驗(yàn)_第1頁
數(shù)學(xué)實(shí)驗(yàn):實(shí)驗(yàn)十二 緝私艇追趕走私船模型實(shí)驗(yàn)_第2頁
數(shù)學(xué)實(shí)驗(yàn):實(shí)驗(yàn)十二 緝私艇追趕走私船模型實(shí)驗(yàn)_第3頁
數(shù)學(xué)實(shí)驗(yàn):實(shí)驗(yàn)十二 緝私艇追趕走私船模型實(shí)驗(yàn)_第4頁
數(shù)學(xué)實(shí)驗(yàn):實(shí)驗(yàn)十二 緝私艇追趕走私船模型實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

MathematicsLaboratory阮小娥博士ExperimentsinMathematics數(shù)學(xué)實(shí)驗(yàn)2、了解微分方程數(shù)值解思想,掌握兩種簡單的微分方程數(shù)值解方法。3、學(xué)會根據(jù)實(shí)際問題建立簡單微分方程數(shù)學(xué)模型。實(shí)驗(yàn)?zāi)康?、學(xué)會用MATLAB軟件求解微分方程的初值問題.4、了解計(jì)算機(jī)數(shù)據(jù)仿真、數(shù)據(jù)模擬的基本方法。實(shí)驗(yàn)十二緝私艇追趕走私船模型實(shí)驗(yàn)用MATLAB軟件求微分方程解析解、數(shù)值解理論.編程求解微分方程數(shù)值解.微分方程模型實(shí)驗(yàn):緝私艇追趕走私船.實(shí)驗(yàn)內(nèi)容1.微分方程的解一階常微分方程的初值問題:

用matlab軟件求微分方程的解析解dsolve(‘equation’,‘condition’)

%求方程equation在初始條件condition下的解,自變量默認(rèn)為tdsolve('equation')%求方程equation的通解%一階導(dǎo)數(shù)用Dy表示,二階導(dǎo)數(shù)用D2y表示,

A=dsolve('Dy=5')B=dsolve(‘Dy=x’,‘x’)%求方程的通解,指定自變量為xC=dsolve('D2y=1+Dy')D=dsolve('D2y=1+Dy','y(0)=1','Dy(0)=0')[x,y]=dsolve('Dx=y+x','Dy=2*x','x(0)=0','y(0)=1')%解微分方程組例1

(1)dsolve('D2y=exp(x)','x')dsolve('D2y=exp(x)')dsolve('D2y=exp(x)','y(0)=1,Dy(0)=2','x')

微分方程數(shù)值解的計(jì)算

歐拉方法、歐拉兩步法、改進(jìn)的歐拉方法歐拉方法:是一種求解給定初值的常微分方程的一階數(shù)值解方法。對于方程設(shè)y=y(x)是它的解,則在解y=y(x)的曲線上每一點(diǎn)處的切線的斜率等于f(x,y)在該點(diǎn)處的值。所以,過初始點(diǎn)A0(x0,y0),做切線與直線x=x1交點(diǎn)的縱坐標(biāo)y1近似代替y=y(x)在x=x1處的函數(shù)值y(x1),即然后再過點(diǎn)A1(x1,y1),以f(x1,y1)為斜率做切線,與直線x=x2交點(diǎn)的縱坐標(biāo)y2近似代替y=y(x)在x=x2處的函數(shù)值y(x2),即A0x0x1x2A1A2這樣依次類推得到上述微分方程的解在x=xn+1處函數(shù)值的近似計(jì)算公式,待求的曲線為藍(lán)色,它的折線近似為紅色A0x0x1x2x3A1A2A3A4x4特別地,如果節(jié)點(diǎn)之間是等分的,則有這就是著名的歐拉(Euler)公式。事實(shí)上,上述公式是用函數(shù)y(x)在xn處的向前差商代替函數(shù)在這點(diǎn)處的導(dǎo)數(shù),從而將微分方程離散化。同樣,如果用函數(shù)y(x)在xn+1處的向后差商代替導(dǎo)數(shù)值,就得后退的歐拉公式注意:這兩個(gè)公式雖然具有相同的精度,但也是有區(qū)別的,前者是計(jì)算yn+1的顯示公式,后者是隱式公式。將上兩式算術(shù)平均即得梯形公式:梯形公式消去了歐拉公式和后退的歐拉公式誤差的主要部分,因此比它們具有更高的精度。這是一個(gè)隱式公式,可采用迭代法求解。通常先用歐拉公式提供一個(gè)yn附近的初始迭代值,然后再用梯形公式做迭代。2)歐拉兩步法用函數(shù)y(x)在xn處的中心差商代替微分方程中的導(dǎo)數(shù),這就是歐拉兩步法公式。它比歐拉公式、后退的歐拉公式具有更高的精度。3)改進(jìn)的歐拉公式歐拉公式雖然簡單,但是誤差較大,并且隨著迭代次數(shù)的增加,誤差越來越大。梯形公式雖然提高了精度,但因其是隱式的,所以計(jì)算麻煩,工作量較大。通常將這兩種方法結(jié)合,得到改進(jìn)的歐拉公式,具體如下:步驟1先由歐拉公式得到y(tǒng)(xn+1)的一個(gè)初始近似值,稱為預(yù)測值步驟2對預(yù)測值再用梯形公式校正一次得yn+1,稱為校正值整個(gè)過程(稱預(yù)測-校正系統(tǒng))可以表示成這就是改進(jìn)的歐拉公式。當(dāng)然也可以將歐拉兩步法與梯形方法結(jié)合。再解釋:則用函數(shù)y(x)在區(qū)間[xn,xn+1]上的平均斜率代替了曲線在點(diǎn)xn的斜率。得到啟發(fā):只要對曲線在區(qū)間[xn,xn+1]上的平均斜率提供一種算法,就可以得到一種計(jì)算yn+1的公式。如果設(shè)法在區(qū)間內(nèi)多預(yù)測幾個(gè)點(diǎn)的斜率值,然后將這些點(diǎn)處斜率值的加權(quán)平均值作為曲線在區(qū)間上的平均值,由此構(gòu)造出由yn計(jì)算yn+1的精度更高的計(jì)算公式,這就是龍格-庫塔方法的基本思想。編程計(jì)算微分方程數(shù)值解例2

已知初值問題(1)用MATLAB軟件求解析解,算出解析解在結(jié)點(diǎn)x=pi:0.1:2*pi處的縱坐標(biāo);(2)取步長0.1,用歐拉公式求數(shù)值解;(3)取步長0.1,用改進(jìn)的歐拉公式求數(shù)值解;(4)比較兩種數(shù)值解和解析解,并畫出數(shù)值解和解析解曲線。解:(1)直接在命令窗執(zhí)行命令dsolve('Dy=3/x*y+x^3*(exp(x)+cos(x))-2*x','y(pi)=(exp(pi)+2/pi)*pi^3','x')ans=x^3*exp(x)+x^3*sin(x)+2*x^2clc;clf;szy_eu=[];y=(exp(pi)+2/pi)*pi^3;forx=pi:0.1:2*piy=y+0.1*(3/x*y+x^3*(exp(x)+cos(x))-2*x);szy_eu=[szy_eu,y];endszy_eut=pi:0.1:2*pi;f=t.^3.*exp(t)+t.^3.*sin(t)+2*t.^2;plot(t,szy_eu,'r-','linewidth',2)holdonplot(t,f,'b*--')(2)取步長0.1,用歐拉公式求數(shù)值解zhao1201.mx=pi:0.1:2*pi;h=0.1;y=(exp(pi)+2/pi)*pi^3;szy_imeu=[y];fori=1:length(x)-1jzj=y+h*(3/x(i)*y+x(i)^3*(exp(x(i))+cos(x(i)))-2*x(i));yy=y+h/2*(3/x(i)*y+x(i)^3*(exp(x(i))+cos(x(i)))-2*x(i)+3/x(i+1)*jzj+x(i+1)^3*(exp(x(i+1))+cos(x(i+1)))-2*x(i+1));szy_imeu=[szy_imeu,yy];y=yy;endszy_imeuplot(x,szy_imeu,'r-','linewidth',2)f=x.^3.*exp(x)+x.^3.*sin(x)+2*x.^2;holdonplot(t,f,'b*--')(3)取步長0.1,用改進(jìn)的歐拉公式求數(shù)值解

zhao12022.用MATLAB軟件求微分方程數(shù)值解MATLAB軟件求常微分方程數(shù)值解的指令有ode23,ode23t和ode45,分別表示二三階龍格—庫塔法,二三階龍格—庫塔梯形法和四五階龍格—庫塔法。還有其他命令ode113,ode15i,ode15s,ode23s等,讀者可通過help命令查詢。一般情況下,ode45,ode23,ode113是解決非剛性(non-stiff)問題的命令,ode15s和ode23s是求解剛性(stiff)問題的命令。[xb,yb]=ode23('fname',[xs,xe],sv)返回結(jié)點(diǎn)處的橫坐標(biāo)xb和縱坐標(biāo)yb。ode23('fname',[xs,xe],sv)其中用單引號引起的是存儲微分方程的函數(shù)文件名,xs表示自變量的初始值,xe表示自變量的終止值,sv表示迭代初始向量值。該命令執(zhí)行后自動畫出微分方程數(shù)值解曲線。最簡單的使用格式為注意:(1)命令ode求解的是形如y’=f(t,y)的微分方程,我們稱它為一階導(dǎo)數(shù)可解出的微分方程。而對于一階導(dǎo)數(shù)解不出的形如

f(t,y,y‘)=0

的微分方程,可以用命令ode15i求解,有興趣的讀者可以用help命令獲得。(2)求解微分問題時(shí)必須為其指定初值,即上面的sv。

(3)ode只能直接求解一階微分方程,高階微分方程必須等價(jià)地轉(zhuǎn)化成一階微分方程組,才能用ode命令求解。比如y‘’‘=f(t,y,y’,y‘’),

將y,y‘,y’‘設(shè)為y1,y2,y3,那么如上的三階微分方程就可以表示為如下的三個(gè)一階方程組了。

y1'=y2

y2'=y3

y3'=f(t,y1,y2,y3)例3使用格式:fc.mfunctionf=fc(x,y)f=2*y+x+2;在MATLAB命令窗中執(zhí)行命令ode23('fc',[0,1],1)例4求解微分方程建立m文件fff.mfunctiondy=fff(t,y)dy=zeros(2,1);dy(1)=y(2);dy(2)=1000*(1-y(1)^2)*y(2)-y(1);在MATLAB命令窗中執(zhí)行命令[t,y]=ode15s('fff',[0,3000],[2,0])plot(t,y(:,1),'-')4.模型實(shí)驗(yàn):緝私艇追趕走私船海上邊防緝私艇發(fā)現(xiàn)距c公里處有一走私船正以勻速a沿直線行駛,緝私艇立即以最大速度b追趕,在雷達(dá)的引導(dǎo)下,緝私艇的方向始終指向走私船。問緝私艇何時(shí)追趕上走私船?并求出緝私艇追趕的路線方程。xyco解

(1)建立模型走私船初始位在點(diǎn)(0,0),方向?yàn)閥軸正方向,緝私艇的初始位在點(diǎn)(c,0),在時(shí)刻t,走私船的位置到達(dá)點(diǎn)R(0,at),緝私艇的位置到達(dá)D(x,y)可得緝私艇追擊走私船過程的數(shù)學(xué)模型:(2)模型求解求解析解令:--zhao1203.m表示追趕時(shí)間。表示走私船跑過的距離。取c=3千米,a=0.4千米/分鐘,分別取b=0.6,0.9,1.2千米/分鐘時(shí),緝私艇追趕路線的圖形為定義m文件函數(shù):functiony=zx(t,y)y=0.5*((t/3)^0.5-(3/t)^0.5);ode23('zx',3,0.0005,0)

(3)用MATLAB軟件求數(shù)值解設(shè)c=3千米,a=0.4千米/分鐘,b=0.8千米/分鐘,r=a/b=0.5,用二三階龍格-庫塔算法計(jì)算數(shù)值解:(4)動態(tài)仿真當(dāng)建立動態(tài)系統(tǒng)的微分方程模型很困難時(shí),可以用計(jì)算機(jī)仿真法對系統(tǒng)進(jìn)行分析研究。所謂計(jì)算機(jī)仿真就是利用計(jì)算機(jī)對實(shí)際動態(tài)系統(tǒng)的結(jié)構(gòu)和行為進(jìn)行編程、模擬和計(jì)算,以此來預(yù)測系統(tǒng)的行為效果。走私船初始位在點(diǎn)(0,0),方向?yàn)閥軸正方向,緝私艇的初始位在點(diǎn)(c,0),走私船的位置到達(dá)點(diǎn)緝私艇的位置到達(dá)點(diǎn)

追趕方向可用方向余弦表示為:時(shí)間步長緝私艇的位置:則仿真算法:

第二步:計(jì)算動點(diǎn)緝私艇D在時(shí)刻

時(shí)的坐標(biāo)

計(jì)算走私船R在時(shí)刻

時(shí)的坐標(biāo)第一步:設(shè)置時(shí)間步長,速度a,b及初始位置仿真算法步驟:第三步:計(jì)算緝私艇與走私船這兩個(gè)動點(diǎn)之間的距離:

根據(jù)事先給定的距離,判斷緝私艇是否已經(jīng)追上了走私船,從而判斷退出循環(huán)還是讓時(shí)間產(chǎn)生一個(gè)步長,返回到第二步繼續(xù)進(jìn)入下一次循環(huán);

第四步:當(dāng)從上述循環(huán)退出后,由點(diǎn)列

和可分別繪制成兩條曲線即為緝私艇和走私船走過的軌跡曲線。

取c=3千米,a=0.4千米/分鐘,b=0.8千米/分鐘,r=a/b=0.5顯示船與艇行進(jìn)路線程序clc;clear;clf;c=3;a=0.4/60;b=0.8/60;d=0.01;dt=2;t=0;jstx=c;jsty=0;zscx=0;zscy=0;while(sqrt((jstx-zscx)^2+(jsty-zscy)^2)>d)plot(jstx,jsty,'ro','markersize',15);holdon

plot(zscx,zscy,'b*','markersize',15);pause(0.01)t=t+dt;

jstx=jstx-b*dt*jstx/sqrt(jstx^2+(a*t-jsty)^2);

jsty=jsty+b*dt*(a*t-jsty)/sqrt(jstx^2+(a*t-jsty)^2);

zscy=a*t;endfprintf('追上所需時(shí)間t=%.0f\n',t);fprintf('緝私艇的位置=(%.5f,%.5f)\n',jstx,jsty);fprintf('走私

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論