二阶龙格库塔法的 MATLAB 实现,挺适合拿来练手系统建模的。你如果在搞控制系统、建模仿真那一块,尤其是在用 Simulink 的时候,这类数值方法的程序模板就显得方便。思路清晰,公式明确,拿来套你的模型分分钟搞定,适合直接跑一遍结果,顺便对比下手算的误差,嗯,验证效果还挺直观的。

二阶龙格库塔法的那个迭代公式不复杂,核心思想就是:先猜一步,再修正一下,再往下走。你只要记住两个系数怎么来的,程序实现其实就几行代码。

MATLAB 程序也不难写,大致就这么个思路:

h = 0.1;
t = 0:h:1;
y = zeros(size(t));
y(1) = 1;

for i = 1:length(t)-1 k1 = f(t(i), y(i)); k2 = f(t(i)+h/2, y(i)+h/2*k1); y(i+1) = y(i) + h*k2; end

函数f(t,y)你可以按你的系统方程自己写,形式上都差不多。

你如果想延伸学点别的数值解法,像四阶龙格库塔Adams 方法这些也可以看一看,参考下面这些资料,直接拿来比对学习效率高:

如果你想结合 Simulink 验证建模效果,可以把数值解结果导出成数组,再丢进 Simulink 里的From Workspace模块,配合 Scope 就能直观看波形了,挺方便。