runge_kutta4.m

来自「插值matlab源程序,附使用说明,包括拉各朗日插值,牛顿插值,及示例」· M 代码 · 共 19 行

M
19
字号
function [x,y]=Runge_Kutta4(ydot_fun, x0, y0, h, N)
% 标准四阶Runge_Kutta公式,其中
%    ydot_fun ---  一阶微分方程的函数
%    x0, y0   ---  初始条件
%    h        ---  区间步长
%    N        ---  区间的个数
%    x        ---  Xn 构成的向量
%    y        ---  Yn 构成的向量

x=zeros(1,N+1); y=zeros(1,N+1); x(1)=x0; y(1)=y0;
for n=1:N
    x(n+1)=x(n)+h;
    k1=h*feval(ydot_fun, x(n), y(n));
    k2=h*feval(ydot_fun, x(n)+1/2*h, y(n)+1/2*k1);
    k3=h*feval(ydot_fun, x(n)+1/2*h, y(n)+1/2*k2);
    k4=h*feval(ydot_fun, x(n)+h, y(n)+k3);
    y(n+1)=y(n)+1/6*(k1+2*k2+2*k3+k4);
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?