四阶龙格库塔法matlab实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

%废话不多说,直接复制就可以运行,文章底部有参考例子,不明白就看看function[yy]=R_K_4(f,y0,x0,xn,hh)%f是inlinefunction的句柄%y0是初始值%[x0xn]是计算范围%hh是步长%%===输入判断===if(4==nargin)%==当没有给步长的时候使用默认步长==h=0.1;elseif(5==nargin)h=hh;end%%===参数初始化(可以修改,可从网上找相关参数的值),以下是通用参数===c=[1/61/31/31/6];r=[0.50.51];u=[0.500.5001];%%===x=x0:h:xn;%==计算节点==y=y0;N=length(x);%==节点数==fork=1:N-1%==以下就直接按书本公式写的,应该容易理解==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)+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:%f\ty:%f\n',x(k),y(k));endelseif(1==nargout)yy=y;elsedisp('error:pleasecheckyourinput');return;endend%%===例子=======%%===input=========%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

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功