MATLAB求解微分方程實驗ppt課件_第1頁
MATLAB求解微分方程實驗ppt課件_第2頁
MATLAB求解微分方程實驗ppt課件_第3頁
MATLAB求解微分方程實驗ppt課件_第4頁
MATLAB求解微分方程實驗ppt課件_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1實驗實驗Experiments in Mathematics微微 分分 方方 程程 求求 解解2實驗?zāi)康膶嶒災(zāi)康膶嶒瀮?nèi)容實驗內(nèi)容MATLAB2、學(xué)會用、學(xué)會用Matlab求微分方程的數(shù)值解求微分方程的數(shù)值解.實驗軟件實驗軟件1、學(xué)會用、學(xué)會用Matlab求簡單微分方程的解析解求簡單微分方程的解析解.1 1、求簡單微分方程的解析解、求簡單微分方程的解析解. .2、求微分方程的數(shù)值解、求微分方程的數(shù)值解.3微分方程的解析解微分方程的解析解 求微分方程組的解析解命令:dsolve(方程方程1, 方程方程2,方程方程n, 初始條件初始條件, 自變量自變量)留意: y Dy,y D2y 自變量名可以省

2、略,默許變量名t。例11)0(,12yydxdy輸入:y=dsolve (Dy=1+y2) y1=dsolve(Dy=1+y2,y(0)=1,x)輸出:y= tan(t-C1) 通解 y1= tan(x+1/4*pi) 特解MATLAB軟件求解5例2 常系數(shù)的二階微分方程0)0( , 1)0(, 032 yyyyyy=dsolve(D2y-2*Dy-3*y=0,x)y=dsolve(D2y-2*Dy-3*y=0,y(0)=1,Dy(0)=0,x)輸入:y = C1*exp(-x)+C2*exp(3*x)y = 3/4*exp(-x)+1/4*exp(3*x)結(jié)果:6x=dsolve(D2x-(

3、1-x2)*Dx+x=0, x(0)=3,Dx(0)=0)例3 非常系數(shù)的二階微分方程0)0( , 3)0(, 0)()( )(1 ()( 2xxtxtxtxtx無解析表達式!7x=dsolve(Dx)2+x2=1,x(0)=0)例4 非線性微分方程0)0(, 1)()( 22xtxtxx = sin(t) -sin(t)假設(shè)欲求解的某個數(shù)值解,如何求解?t=pi/2; eval(x)MATLAB軟件求解8輸入:x,y=dsolve(Dx=3*x+4*y,Dy=-4*x+3*y) x , y = d s o l v e ( D x = 3 * x + 4 * y , D y = -4*x+3*

4、y,x(0)=0,y(0)=1)例51)0(0)0(3443yxyxdtdyyxdtdx輸出: x =-exp(3*t)*(C1*cos(4*t)-C2*sin(4*t) y =exp(3*t)*(C1*sin(4*t)+C2*cos(4*t) x =exp(3*t)*sin(4*t) y =exp(3*t)*cos(4*t)MATLAB軟件求解9解解 輸入命令輸入命令 : x,y,z=dsolve(Dx=2*x-3*y+3*z, . Dy=4*x-5*y+3*z,. Dz=4*x-4*y+2*z, t); x=simple(x) % 將將x簡化簡化 y=simple(y) z=simple(

5、z)結(jié) 果 為:x =C3*exp(2*t)+exp(-t)*C1 y =C2*exp(-2*t)+C3*exp(2*t)+exp(-t)*C1 z =C2*exp(-2*t)+C3*exp(2*t)10微分方程的數(shù)值解微分方程的數(shù)值解一常微分方程數(shù)值解的定義一常微分方程數(shù)值解的定義 在消費和科研中所處置的微分方程往往很復(fù)雜且大多得不出普通解。而在實踐上對初值問題,普通是要求得到解在假設(shè)干個點上滿足規(guī)定準確度的近似值,或者得到一個滿足準確度要求的便于計算的表達式。因此,研討常微分方程的數(shù)值解法是非常必要的。因此,研討常微分方程的數(shù)值解法是非常必要的。的相應(yīng)近似值求出準確值,值處,即對的若干離散

6、的開始其數(shù)值解是指由初始點,:對常微分方程nnnyyyxyxyxyxxxxxxyxyyxfy, )(,),(),( )(),( 2121210000返 回11二建立數(shù)值解法的一些途徑二建立數(shù)值解法的一些途徑001)()( , 1, 2 , 1 , 0 , yxyx,yfynihxxii解微分方程:可用以下離散化方法求設(shè)1、用差商替代導(dǎo)數(shù)、用差商替代導(dǎo)數(shù) 假設(shè)步長h較小,那么有hxyhxyxy)()()( 故有公式:1-n,0,1,2,i )(),(001xyyyxhfyyiiii此即歐拉法。122、運用數(shù)值積分、運用數(shù)值積分對方程y=f(x,y), 兩邊由xi到xi+1積分,并利用梯形公式,有

7、:)(,()(,(2)(,()()(11111iiiiiixxiixyxfxyxfxxdttytfxyxyii實踐運用時,與歐拉公式結(jié)合運用:, 2 , 1 , 0 ),(),(2),()(11)1(1)0(1kyxfyxfhyyyxhfyykiiiiikiiiii的計算。然后繼續(xù)下一步,取時,當滿足,對于已給的精確度)( y y 2i111i)(1)1(1kikikiyyy此即改良的歐拉法。故有公式:)(),(),(200111xyyyxfyxfhyyiiiiii133、運用泰勒公式、運用泰勒公式 以此方法為根底,有龍格-庫塔法、線性多步法等方法。4、數(shù)值公式的精度、數(shù)值公式的精度 當一個數(shù)

8、值公式的截斷誤差可表示為Ohk+1時k為正整數(shù),h為步長,稱它是一個k階公式。k越大,那么數(shù)值公式的精度越高。歐拉法是一階公式,改良的歐拉法是二階公式。龍格-庫塔法有二階公式和四階公式。線性多步法有四階阿達姆斯外插公式和內(nèi)插公式。返 回14三用三用Matlab軟件求常微分方程的數(shù)值解軟件求常微分方程的數(shù)值解t,x=solverf,ts,x0,optionsode45 ode23 ode113ode15sode23s由待解方程寫成的m-文件名ts=t0,tf,t0、tf為自變量的初值和終值函數(shù)的初值ode23:組合的2/3階龍格-庫塔-芬爾格算法ode45:運用組合的4/5階龍格-庫塔-芬爾格算

9、法自變量值函數(shù)值用于設(shè)定誤差限(缺省時設(shè)定相對誤差10-3, 絕對誤差10-6),命令為:options=odesetreltol,rt,abstol,at, rt,at:分別為設(shè)定的相對誤差和絕對誤差.15 1、在解n個未知函數(shù)的方程組時,x0和x均為n維向量,m-文件中的待解方程組應(yīng)以x的分量方式寫成。 2、運用Matlab軟件求數(shù)值解時,高階微分方程必需等價地變換成一階微分方程組。留意留意:( )(1)(1)( , , ,)(0), (0),(0)nnnyf t y yyyyy 選擇一組形狀變量(1)12,nnxy xyxy 122312,( ,)nnxxxxxf t x xx16留意1

10、、建立、建立M文件函數(shù)文件函數(shù) function xdot = fun(t,x,y) xdot = x2(t);x3(t);f(t, x1(t), x2(t),xn(t);2、數(shù)值計算執(zhí)行以下命令、數(shù)值計算執(zhí)行以下命令 t,x1,x2,xn=ode45(fun,t0,tf,x1(0),x2(0),xn(0)122312,( ,)nnxxxxxf t x xx17解解: 令令 y1= x,y2= y1= x1、建立m-文件vdp1000.m如下: function dy=vdp1000(t,y) dy=zeros(2,1); dy(1)=y(2); dy(2)=1000*(1-y(1)2)*y(

11、2)-y(1); 2、取t0=0,tf=3000,輸入命令: T,Y=ode15s(vdp1000,0 3000,2 0); plot(T,Y(:,1),-)3、結(jié)果如圖050010001500200025003000-2.5-2-1.5-1-0.500.511.5218解解 1、建立、建立m-文件文件rigid.m如下:如下: function dy=rigid(t,y) dy=zeros(3,1); dy(1)=y(2)*y(3); dy(2)=-y(1)*y(3); dy(3)=-0.51*y(1)*y(2);2、取t0=0,tf=12,輸入命令: T,Y=ode45(rigid,0 1

12、2,0 1 1); plot(T,Y(:,1),-,T,Y(:,2),*,T,Y(:,3),+)3、結(jié)果如圖024681012-1-0.8-0.6-0.4-0.200.20.40.60.81圖中,y1的圖形為實線,y2的圖形為“*線,y3的圖形為“+線.19例例9 Van der pol 方程:方程:0)0( , 3)0(0)()( )(1 ()( 2xxtxtxtxtx令令 y1=x (t), y2 = x(t) 0)0(3)0()1(211221221yyyyyyyy該方程無解析解!201編寫M文件 ( 文件名為 vdpol.m): function dy = vdpol(t,y); dy

13、=zeros(2,1); dy(1)=y(2); dy(2)=(1-y(1)2)*y(2)-y(1); % 或 dy=y(2);(1-y(1)2)*y(2)-y(1);2編寫程序如下:vdj.m t,y=ode23(vdpol,0,20,3,0); y1=y(:,1); % 原方程的解 y2=y(:,2); plot(t,y1,t,y2, - ) % y1(t),y2(t) 曲線圖 pause, plot(y1,y2),grid % 相軌跡圖,即y2(y1)曲線21 藍色曲線 y1;原方程解 紅色曲線 y2;05101520-3-2-10123Time,Secondy(1)and y(2)Va

14、n Der Pol Solution 計算結(jié)果22-3-2-10123-3-2-10123y1y2相軌跡圖23例10 思索Lorenz模型:)()()()()()()()()()()()(321233223211txtxtxtxtxtxtxtxtxtxtxtx其中參數(shù)=8/3,=10,=28解:1編寫M函數(shù)文件(lorenz.m); 2) 數(shù)值求解并畫三維空間的相平面軌線; (ltest.m)241、 lorenz.mfunction xdot=lorenz(t,x)xdot=-8/3,0,x(2);0,-10,10;-x(2),28,-1*x;2、ltest.mx0=0 0 0.1;t,x=

15、ode45(lorenz,0,10,x0);plot(t,x(:,1),-,t,x(:,2),*,t,x(:,3),+)pauseplot3(x(:,1),x(:,2),x(:,3),grid on250246810-20-10010203040500204060-20020-20-100102030圖中,x1的圖形為實線(藍,x2的圖形為“* 線(綠),x3的圖形為“+線紅。取t0,tf=0,10。計算結(jié)果如以下圖:計算結(jié)果如以下圖:26曲線呈震蕩發(fā)散狀三維圖形的混沌狀05101520-200204060050-20020-50050010203040-40-200204060050-20020-50050假設(shè)自變量區(qū)間取0,20、0,40,計算結(jié)果如下:27察看結(jié)果: 1、該曲線包含兩個“圓盤,每一個都是由螺線形軌道構(gòu)成。某些軌道幾乎是垂直地分開圓盤中一個而進入另一

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論