matlab四阶龙格库塔代码
时间: 2024-04-25 11:19:01 浏览: 166
四阶龙格-库塔(RK4)是一种常用的数值积分方法,用于求解常微分方程(ODE)。下面是MATLAB中实现四阶龙格-库塔方法的代码示例:
```matlab
function [t, y] = rk4_solver(f, tspan, y0, h)
% 输入参数:
% f:ODE的右侧函数,即dy/dt = f(t, y)
% tspan:时间范围,格式为[t0, tf]
% y0:初始条件,即t = t0时的y值
% h:步长
t0 = tspan(1);
tf = tspan(2);
% 计算步数
N = round((tf - t0) / h);
% 初始化时间和解向量
t = zeros(N+1, 1);
y = zeros(N+1, length(y0));
% 设置初始条件
t(1) = t0;
y(1, :) = y0;
% 迭代计算
for i = 1:N
ti = t(i);
yi = y(i, :);
% 计算k1, k2, k3, k4
k1 = h * f(ti, yi);
k2 = h * f(ti + h/2, yi + k1/2);
k3 = h * f(ti + h/2, yi + k2/2);
k4 = h * f(ti + h, yi + k3);
% 更新解向量
t(i+1) = ti + h;
y(i+1, :) = yi + (k1 + 2*k2 + 2*k3 + k4) / 6;
end
end
```
使用该函数,你需要提供一个ODE的右侧函数 `f(t, y)`,时间范围 `tspan`,初始条件 `y0`,以及步长 `h`。函数将返回时间向量 `t` 和解向量 `y`。
阅读全文