資源描述:
《實(shí)驗(yàn)二微分方程與差分方程模型matlab求解》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、實(shí)驗(yàn)二:微分方程與差分方程模型Matlab求解一、實(shí)驗(yàn)?zāi)康腫1]掌握解析、數(shù)值解法,并學(xué)會(huì)用圖形觀察解的形態(tài)和進(jìn)行解的定性分析;[2]熟悉MATLAB軟件關(guān)于微分方程求解的各種命令;[3]通過(guò)范例學(xué)習(xí)建立微分方程方面的數(shù)學(xué)模型以及求解全過(guò)程;[4]熟悉離散Logistic模型的求解與混沌的產(chǎn)生過(guò)程。二、實(shí)驗(yàn)原理1.微分方程模型與MATLAB求解解析解用MATLAB命令dsolve(‘eqn1’,’eqn2’,...)求常微分方程(組)的解析解。其中‘eqni'表示第i個(gè)微分方程,Dny表示y的n階導(dǎo)數(shù),默認(rèn)的自變量為t。(1)微分方程例
2、1求解一階微分方程???(1)求通解輸入:dsolve('Dy=1+y^2')輸出:ans=tan(t+C1)(2)求特解輸入:dsolve('Dy=1+y^2','y(0)=1','x')指定初值為1,自變量為x輸出:ans=tan(x+1/4*pi)例2求解二階微分方程原方程兩邊都除以,得輸入:dsolve('D2y+(1/x)*Dy+(1-1/4/x^2)*y=0','y(pi/2)=2,Dy(pi/2)=-2/pi','x')ans=-(exp(x*i)*(pi/2)^(1/2)*i)/x^(1/2)+(exp(x*i)*exp
3、(-x*2*i)*(pi/2)^(3/2)*2*i)/(pi*x^(1/2))試試能不用用simplify函數(shù)化簡(jiǎn)輸入:simplify(ans)ans=2^(1/2)*pi^(1/2)/x^(1/2)*sin(x)?(2)微分方程組例3求解????df/dx=3f+4g;?dg/dx=-4f+3g。(1)通解:??[f,g]=dsolve('Df=3*f+4*g','Dg=-4*f+3*g')f=exp(3*t)*(C1*sin(4*t)+C2*cos(4*t))g=exp(3*t)*(C1*cos(4*t)-C2*sin(4*t))
4、特解:[f,g]=dsolve('Df=3*f+4*g','Dg=-4*f+3*g','f(0)=0,g(0)=1')f=exp(3*t)*sin(4*t)g=exp(3*t)*cos(4*t)數(shù)值解在微分方程(組)難以獲得解析解的情況下,可以用Matlab方便地求出數(shù)值解。格式為:[t,y]=ode23('F',ts,y0,options)注意:?微分方程的形式:y'=F(t,y),t為自變量,y為因變量(可以是多個(gè),如微分方程組);?[t,y]為輸出矩陣,分別表示自變量和因變量的取值;?F代表一階微分方程組的函數(shù)名(m文件,必須返回
5、一個(gè)列向量,每個(gè)元素對(duì)應(yīng)每個(gè)方程的右端);?ts的取法有幾種,(1)ts=[t0,tf]表示自變量的取值范圍,(2)ts=[t0,t1,t2,…,tf],則輸出在指定時(shí)刻t0,t1,t2,…,tf處給出,(3)ts=t0:k:tf,則輸出在區(qū)間[t0,tf]的等分點(diǎn)給出;?y0為初值條件;?options用于設(shè)定誤差限(缺省是設(shè)定相對(duì)誤差是10^(-3),絕對(duì)誤差是10^(-6));ode23是微分方程組數(shù)值解的低階方法,ode45為中階方法,與ode23類似。例4求解一個(gè)經(jīng)典的范得波(VanDerpol)微分方程:解形式轉(zhuǎn)化:令。則以
6、上方程轉(zhuǎn)化一階微分方程組:。編寫M文件如下,必須是M文件表示微分方程組,并保存,一般地,M文件的名字與函數(shù)名相同,保存位置可以為默認(rèn)的work子目錄,也可以保存在自定義文件夾,這時(shí)注意要增加搜索路徑(FileSetPathAddFolder)???function?dot1=vdpol(t,y);???dot1=[y(2);(1-y(1)^2)*y(2)-y(1)];在命令窗口寫如下命令:[t,y]=ode23('vdpol',[0,20],[1,0]);y1=y(:,1);y2=y(:,2);plot(t,y1,t,y2,'--'
7、);title('VanDerPolSolution');xlabel('Time,Second');ylabel('y(1)andy(2)')執(zhí)行:注:VanderPol方程描述具有一個(gè)非線性振動(dòng)項(xiàng)的振動(dòng)子的運(yùn)動(dòng)過(guò)程。最初,由于它在非線性電路上的應(yīng)用而引起廣泛興趣。一般形式為。圖形解無(wú)論是解析解還是數(shù)值解,都不如圖形解直觀明了。即使是在得到了解析解或數(shù)值解的情況下,作出解的圖形,仍然是一件深受歡迎的事。這些都可以用Matlab方便地進(jìn)行。(1)圖示解析解如果微分方程(組)的解析解為:y=f(x),則可以用Matlab函數(shù)fplot作出
8、其圖形:fplot('fun',lims)其中:fun給出函數(shù)表達(dá)式;lims=[xminxmaxyminymax]限定坐標(biāo)軸的大小。例如fplot('sin(1/x)',[0.010.1-11])(2)圖