資源描述:
《龍格庫塔方法matlab實現(xiàn).doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、龍格庫塔方法matlab實現(xiàn)~functionff=rk(yy,x0,y0,h,a,b)%yy為y的導(dǎo)函數(shù),x0,y0,為初值,h為步長,a,b為區(qū)間c=(b-a)/h+1;i1=1;%c為迭代步數(shù);i1為迭代步數(shù)累加值y=y0;z=zeros(c,6);%z生成c行,5列的零矩陣存放結(jié)果;%每行存放c次迭代結(jié)果,每列分別存放k1~k4及y的結(jié)果forx=a:h:bifi1<=ck1=feval(yy,x,y);k2=feval(yy,x+h/2,y+(h*k1)/2);k3=feval(yy,x+h/2,y+(h*k2)/2);
2、k4=feval(yy,x+h,y+h*k3);y=y+(h/6)*(k1+2*k2+2*k3+k4);z(i1,1)=x;z(i1,2)=k1;z(i1,3)=k2;z(i1,4)=k3;z(i1,5)=k4;z(i1,6)=y;i1=i1+1;endendfprintf(‘結(jié)果矩陣,第一列為x(n),第二列~第五列為k1~k4,第六列為y(n+1)的結(jié)果')z%在命令框輸入下列語句%yy=inline('x+y');%>>rk(yy,0,1,0.2,0,1)%將得到結(jié)果%結(jié)果矩陣,第一列為x(n),第二列~第五列為k1~k4第
3、六列為y(n+1)的結(jié)果%z=%01.00001.20001.22001.44401.2428%0.20001.44281.68711.71151.98511.5836%0.40001.98362.28202.31182.64602.0442%0.60002.64423.00863.04513.45322.6510%0.80003.45103.89613.94074.43923.4365%1.00004.43654.98025.03455.64344.4401