标准4级4阶R-K方法MATLAB代码
时间: 2023-06-17 14:02:51 浏览: 57
以下是一个标准的4级4阶R-K方法的MATLAB代码:
```
function [t,y] = rk4(f, tspan, y0, h)
% Input:
% f - function handle for the ODE (dy/dt = f(t,y))
% tspan - time interval [t0, tf]
% y0 - initial condition y(t0) = y0
% h - step size
% Output:
% t - vector of time points
% y - vector of approximate solutions y(t)
t0 = tspan(1);
tf = tspan(2);
t = t0:h:tf;
y = zeros(length(y0), length(t));
y(:,1) = y0;
for i = 1:length(t)-1
k1 = h*f(t(i), y(:,i));
k2 = h*f(t(i)+h/2, y(:,i)+k1/2);
k3 = h*f(t(i)+h/2, y(:,i)+k2/2);
k4 = h*f(t(i)+h, y(:,i)+k3);
y(:,i+1) = y(:,i) + (k1 + 2*k2 + 2*k3 + k4)/6;
end
end
```
其中,输入参数 `f` 是一个函数句柄,它表示ODE的右侧,即dy/dt=f(t,y);`tspan` 是一个包含开始时间和结束时间的向量;`y0` 是初始条件;`h`是步长。输出参数 `t` 是一个包含时间点的向量,`y` 是一个包含近似解的矩阵,每一列对应于时间点 `t` 中的一个值。