您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 四阶龙格库塔法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
本文标题:四阶龙格库塔法matlab实现
链接地址:https://www.777doc.com/doc-1730662 .html