0
点赞
收藏
分享

微信扫一扫

四阶Runge-Kutta算法(Matlab实现)

芝婵 2022-08-02 阅读 55


目录

​​1、概述​​

​​2、代码及结果​​

​​(1)代码​​

​​ (2)结果​​

1、概述

   相关知识点我们在前一篇文章中已经总结啦,这里直接上代码和结果。

2、代码及结果

四阶Runge-Kutta算法(Matlab实现)_算法

(1)代码

function Y=R_K(df1,a,b,h) 
m=(b-a)/h;
Y=zeros(3,1);
S=zeros(3,1);
K=zeros(3,4);
x=a;y1=a;y2=a;y3=a;
for n=1:m
K(:,1)=feval(df1,x,y1,y2,y3);
x=x+0.5*h;S(:,1)=Y+0.5*h.*K(:,1);
y1=S(1,1);y2=S(2,1);y3=S(3,1);
K(:,2)=feval(df1,x,y1,y2,y3);
S(:,1)=Y+0.5*h.*K(:,2);
y1=S(1,1);y2=S(2,1);y3=S(3,1);
K(:,3)=feval(df1,x,y1,y2,y3);
x=x+0.5*h;S(:,1)=Y+h.*K(:,3);
y1=S(1,1);y2=S(2,1);y3=S(3,1);
K(:,4)=feval(df1,x,y1,y2,y3);
Y=Y+h.*(K(:,1)+2.*K(:,2)+2.*K(:,3)+K(:,4))/6;
end function Z=df1(x,y1,y2,y3)
Z=zeros(3,1);
Z(1)=0*x+0*y1+0*y2+0*y3+1;
Z(2)=0*x+0*y1+0*y2+1*y3;
Z(3)=0*x+0*y1-1000*y2-100*y3+1000;
End

 (2)结果

                      

四阶Runge-Kutta算法(Matlab实现)_matlab_02

    

举报

相关推荐

0 条评论