資源描述:
《四階龍格庫塔法matlab實(shí)現(xiàn).docx》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、%廢話不多說,直接復(fù)制就可以運(yùn)行,文章底部有參考例子,不明白就看看function[yy]=R_K_4(f,y0,x0,xn,hh)%f是inlinefunction的句柄%y0是初始值%[x0xn]是計(jì)算范圍%hh是步長%%===輸入判斷===if(4==nargin)%==當(dāng)沒有給步長的時(shí)候使用默認(rèn)步長==h=0.1;elseif(5==nargin)h=hh;end%%===參數(shù)初始化(可以修改,可從網(wǎng)上找相關(guān)參數(shù)的值),以下是通用參數(shù)===c=[1/61/31/31/6];r=[0.50.51];u=
2、[0.500.5001];%%===x=x0:h:xn;%==計(jì)算節(jié)點(diǎn)==y=y0;N=length(x);%==節(jié)點(diǎn)數(shù)==fork=1:N-1%==以下就直接按書本公式寫的,應(yīng)該容易理解==kk(1)=f(x(k),y(k));kk(2)=f(x(k)+r(1)*h,y(k)+u(1)*h*kk(1));kk(3)=f(x(k)+r(2)*h,y(k)+u(2)*h*kk(1)+u(3)*h*kk(2));kk(4)=f(x(k)+r(3)*h,y(k)+u(4)*h*kk(1)+u(5)*h*kk(2)+
3、u(6)*h*kk(3));y(k+1)=y(k)+h*(c(1)*kk(1)+c(2)*kk(2)+c(3)*kk(3)+c(4)*kk(4));end%%===輸出處理===if(0==nargout)fork=1:Nfprintf('x:%fty:%f',x(k),y(k));endelseif(1==nargout)yy=y;elsedisp('error:pleasecheckyourinput');return;endend%%===例子=======%%===input=========%
4、f=inline('x+y','x','y');%R_K_4(f,1,0,1,0.2)%%===output========%x:0.000000y:1.000000%x:0.200000y:1.242800%x:0.400000y:1.583636%x:0.600000y:2.044213%x:0.800000y:2.651042%x:1.000000y:3.436502