科學(xué)工程計(jì)算與matlab編程5-2_第1頁
科學(xué)工程計(jì)算與matlab編程5-2_第2頁
科學(xué)工程計(jì)算與matlab編程5-2_第3頁
科學(xué)工程計(jì)算與matlab編程5-2_第4頁
科學(xué)工程計(jì)算與matlab編程5-2_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、5.2 微分方程問題的數(shù)值解法5.2.1 算法概述0.( , ), ( )dxf t xatbdtx ax 微分方程求解的誤差與步長問題:000121( )1,2,.,:nkkkkatx tattttbyknhtth時(shí)刻系統(tǒng)狀態(tài)向量的值為數(shù)值解法:即求微分方程初值問題的解在若干點(diǎn) 的近似值 ()的方法。步長(一般取等步長 )應(yīng)用差商近似導(dǎo)數(shù)舍入誤差10000( ,)xxhf txR0( )x t提高數(shù)值解精度的方法之一: 減小步長h的值; function outx,outy=MyEuler(fun,x0,xt,y0,PointNum) % fun 表示f(x,y); x0,xt:自變量的初值

2、和終值; %y0:函數(shù)在x0處的值,其可以為向量形式; %PointNum表示自變量在x0,xt上取的點(diǎn)數(shù)if nargin=4 | PointNumf1=(x,y)sin(x)+y; 2*pi/0.4 % 計(jì)算 xt=2pi 時(shí)應(yīng)取得點(diǎn)數(shù)ans = 15.7080 x1,y1=MyEuler(f1,0,2*pi,1,16); %h=0.4 歐拉法所的的解x11,y11=MyEuler(f1,0,2*pi,1,32); % h=0.2 歐拉法所的的解h=0.2和h=0.4的數(shù)值解。y=dsolve(Dy=y+sin(t),y(0)=1); %該常微分方程的解析解for k=1:33t(k)=x

3、11(k);y2(k)=subs(y,t(k); %求其對應(yīng)點(diǎn)的離散解endplot(x1,y1,+b,x11,y11,og,x11,y2,*r)legend(h=0.4的歐拉法解,h=0.2的歐拉解,符號(hào)解)誤差判斷:改進(jìn)的Euler算法 ( , )dxf t xdt1 kkttdt11()( )kkkkx tx txx1 kkttdt11( ,)(,)2kkkkhf txf tx1111( ,)( ,)(,)2kkkkkkkkkkxxhf txhxxf txf tx改進(jìn)Euler迭代公式Euler公式梯形公式function Xout,Yout=MyEulerPro(fun,x0,xt,y

4、0,PointNumber) %MyEulerPro 用改進(jìn)的歐拉法解微分方程if nargin=4 | PointNumber5.2.2 四階定步長Runge-Kutta算法及Matlab實(shí)現(xiàn)Euler算法:一階Taylor多項(xiàng)式近似函數(shù)基本思想:2()O h誤差:RK一般算法:推廣:高級Taylor多項(xiàng)式近似函數(shù)提高數(shù)值解精度11111( ,)(,) (2,3,4,.)nniininijjpjnnjjkf txkf ta h xb kixxhkp為展開的項(xiàng)數(shù)例如:p4,即Matlab 實(shí)現(xiàn):實(shí)現(xiàn): function tout,yout=rk_4(odefile,tspan,y0) y0初值

5、列向量 t0=tspan(1); th=tspan(2); if length(tspan) comet3(x(:,1),x(:,2),x(:,3) 描述微分方程是常微分方程初值問題數(shù)值求解的關(guān)鍵。 f1=inline(-8/3*x(1)+x(2)*x(3); -10*x(2)+10*x(3);,. -x(1)*x(2)+28*x(2)-x(3),t,x); t_final=100; x0=0;0;1e-10; t,x=ode45(f1,0,t_final,x0); plot(t,x), figure; plot3(x(:,1),x(:,2),x(:,3); axis(10 42 -20 20

6、 -20 25);得出完全一致的結(jié)果。5.2.3.3 MATLAB 下帶有附加參數(shù)的微分方程求解 例: 編寫函數(shù)function xdot=lorenz1(t,x,flag,beta,rho,sigma) % flag變量是不能省略的 xdot=-beta*x(1)+x(2)*x(3); -rho*x(2)+rho*x(3); -x(1)*x(2)+sigma*x(2)-x(3);3/8,10,28 t_final=100; x0=0;0;1e-10; b2=3/8; r2=10; s2=28;%變量名不必一定為 等 t2,x2=ode45(lorenz1,0,t_final,x0,b2,r2

7、,s2); plot(t2,x2), %options位置為,表示不需修改控制選項(xiàng) figure; plot3(x2(:,1),x2(:,2),x2(:,3); axis(10 42 -20 20 -20 25);例:求解時(shí)的Lorenz微分方程 t_final=100; x0=0;0;1e-10; b2=2; r2=5; s2=20;%變量名不必一定為 等 t2,x2=ode45(lorenz1,0,t_final,x0,b2,r2,s2); plot(t2,x2), %options位置為,表示不需修改控制選項(xiàng) figure; plot3(x2(:,1),x2(:,2),x2(:,3); axis(0 72 -20 22 -35 40);f2=inline(-beta*x(1)+x(2)*x(3); -rho*x(2)+rho*x(3);,. -x(1)*x(2)+sigma*x(2)-x(3), t,x,flag,beta,rho,sigma); flag變量是不能省略t_final=100; x0=0;0;1e-10; b2=2; r2=5; s2=20;%變量名不必一定為 等 t2,x2=ode45(f2,0,t_final,x0,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論