資源描述:
《Matlab求解邊值問(wèn)題方法+例題.ppt》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、把待解的問(wèn)題轉(zhuǎn)化為標(biāo)準(zhǔn)邊值問(wèn)題因?yàn)檫呏祮?wèn)題可以多解,所以需要為期望解指定一個(gè)初始猜測(cè)解。該猜測(cè)解網(wǎng)(Mesh)包括區(qū)間[a,b]內(nèi)的一組網(wǎng)點(diǎn)(Meshpoints)和網(wǎng)點(diǎn)上的解S(x)根據(jù)原微分方程構(gòu)造殘差函數(shù)利用原微分方程和邊界條件,借助迭代不斷產(chǎn)生新的S(x),使殘差不斷減小,從而獲得滿(mǎn)足精度要求的解Matlab求解邊值問(wèn)題方法:bvp4c函數(shù)solinit=bvpinit(x,v,parameters)生成bvp4c調(diào)用指令所必須的“解猜測(cè)網(wǎng)”sol=bvp4c(odefun,bcfun,soli
2、nit,options,p1,p2,…)給出微分方程邊值問(wèn)題的近似解sxint=deval(sol,xint)計(jì)算微分方程積分區(qū)間內(nèi)任何一點(diǎn)的解值Matlab求解邊值問(wèn)題的基本指令solinit=bvpinit(x,v,parameters)x指定邊界區(qū)間[a,b]上的初始網(wǎng)絡(luò),通常是等距排列的(1×M)一維數(shù)組。注意:使x(1)=a,x(end)=b;格點(diǎn)要單調(diào)排列。v是對(duì)解的初始猜測(cè)solinit(可以取別的任意名)是“解猜測(cè)網(wǎng)(Mesh)”。它是一個(gè)結(jié)構(gòu)體,帶如下兩個(gè)域:solinit.x是表示初
3、始網(wǎng)格有序節(jié)點(diǎn)的(1×M)一維數(shù)組,并且solinit.x(1)一定是a,solinit.x(end)一定是b。M不宜取得太大,10數(shù)量級(jí)左右即可。solinit.y是表示網(wǎng)點(diǎn)上微分方程解的猜測(cè)值的(N×M)二維數(shù)組。solinit.y(:,i)表示節(jié)點(diǎn)solinit.x(i)處的解的猜測(cè)值。初始解生成函數(shù):bvpinit()sol=bvp4c(odefun,bcfun,solinit,options,p1,p2,…)輸入?yún)?shù):odefun是計(jì)算導(dǎo)數(shù)的m函數(shù)文件。該函數(shù)的基本形式為:dydx=odefu
4、n(x,y,parameters,p1,p2,…),在此,自變量x是標(biāo)量,y,dydx是列向量。bcfun是計(jì)算邊界條件下殘數(shù)的m函數(shù)文件。其基本形式為:res=bcfun(ya,yb,parameters,p1,p2,…),文件輸入宗量ya,yb是邊界條件列向量,分別代表y在a和b處的值。res是邊界條件滿(mǎn)足時(shí)的殘數(shù)列向量。注意:例如odefun函數(shù)的輸入宗量中包含若干“未知”和“已知”參數(shù),那么不管在邊界條件計(jì)算中是否用到,它們都應(yīng)作為bcfun的輸入宗量。輸入宗量options是用來(lái)改變bvp4c
5、算法的控制參數(shù)的。在最基本用法中,它可以缺省,此時(shí)一般可以獲得比較滿(mǎn)意的邊值問(wèn)題解。如需更改可采用bvpset函數(shù),使用方法同odeset函數(shù)。輸入宗量p1,p2等表示希望向被解微分方程傳遞的已知參數(shù)。如果無(wú)須向微分方程傳遞參數(shù),它們可以缺省。邊值問(wèn)題求解指令:bvp4c()輸出參數(shù):輸出變量sol是一個(gè)結(jié)構(gòu)體sol.x是指令bvp4c所采用的網(wǎng)格節(jié)點(diǎn);sol.y是y(x)在sol.x網(wǎng)點(diǎn)上的近似解值;sol.yp是y'(x)在sol.x網(wǎng)點(diǎn)上的近似解值;sol.parameters是微分方程所包含的未
6、知參數(shù)的近似解值。當(dāng)被解微分方程包含未知參數(shù)時(shí),該域存在。邊值問(wèn)題求解指令:bvp4c()原方程組等價(jià)于以下標(biāo)準(zhǔn)形式的方程組:solinit=bvpinit(linspace(0,1,10),[10]);sol=bvp4c(@ODEfun,@BCfun,solinit);x=[0:0.05:0.5];y=deval(sol,x);xP=[0:0.1:0.5];yP=[0-0.41286057-0.729740656...-0.95385538-1.08743325-1.13181116];plot(xP
7、,yP,'o',x,y(1,:),'r-')legend('AnalyticalSolution','NumericalSolution')%定義ODEfun函數(shù)functiondydx=ODEfun(x,y)dydx=[y(2);y(1)+10];%定義BCfun函數(shù)functionbc=BCfun(ya,yb)bc=[ya(1);yb(1)];求解兩點(diǎn)邊值問(wèn)題:令:邊界條件為:邊值問(wèn)題的求解原方程組等價(jià)于以下標(biāo)準(zhǔn)形式的方程組:solinit=bvpinit(linspace(0,1,10),[01]
8、);sol=bvp4c(@ODEfun,@BCfun,solinit);x=[0:0.1:1];y=deval(sol,x);xP=[0:0.1:1.0];yP=[11.07431.16951.28691.4284...1.59651.79472.02742.30042.62143];plot(xP,yP,'o',x,y(1,:),'r-')legend('AnalyticalSolution','NumericalSolution',..