欧拉法的微分方程求解挺适合刚上手数值计算的你。初始值问题?它搞定;精度不高?它也能接受。像文档里说的那样,只要你知道y0
,按步走下去,欧拉公式就能帮你一步步逼近解。实现思路也蛮清晰的,用的是y(n+1) = y(n) + h * f(xn, yn)
,这种差商法虽然不算精确,但胜在代码短、逻辑直、上手快。
在main()
里,你只要输入初始值和步长,直接跑就能看到结果。核心函数funOL()
定义了你要算的微分方程,比如y' = 1 - x + y
这种形式都能轻松。蛮适合做教学示范或者调试算法逻辑。
要注意,步长 h 选太大,误差就比较;太小的话虽然精度高但计算慢。所以调参数得看你对精度的要求。代码是 C++写的,挺简洁,逻辑也清楚,初学者友好型。
如果你用MATLAB
习惯了,可以看看它的几个相关实现,比如MATLAB 程序代码使用欧拉法解微分方程组,对比下语言之间的差异,也挺有意思的。