rk4step.m

来自「动态系统仿真例子」· M 代码 · 共 23 行

M
23
字号
% function x=XDOde4Step(funhnd,H,x0,u)
% 四阶龙格库塔算法
% funhnd 函数句柄
% H   仿真步长
% x0  状态
% u   控制

function x=XDOde4Step(funhnd,H,x0,u)

if nargin==3
% 不带控制u时
  k1=feval(funhnd,x0);
  k2=feval(funhnd,x0+k1*H/2);
  k3=feval(funhnd,x0+k2*H/2);
  k4=feval(funhnd,x0+k3*H);
elseif nargin==4
% 带控制u时
  k1=feval(funhnd,x0,u);
  k2=feval(funhnd,x0+k1*H/2,u);
  k3=feval(funhnd,x0+k2*H/2,u);
  k4=feval(funhnd,x0+k3*H,u);    
end
  x=x0+(k1+2*k2+2*k3+k4)*H/6;

⌨️ 快捷键说明

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