Performance comparison of Python, MATLAB and R for numerical solutions of SI and SIR epidemiological models

本文通过对比 Python、MATLAB 和 R 三种软件在求解 SI 和 SIR 流行病模型时采用欧拉法、RK4 及预测校正法的执行时间与数值精度,填补了相关文献空白,并为研究人员选择流行病学建模工具提供了实践指导。

Berkay Özışık, Elif Demirci

发布于 2026-03-05
📖 1 分钟阅读🧠 深度阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文就像是一场**“数学界的赛车比赛”**,只不过参赛的不是法拉利或兰博基尼,而是三种流行的编程语言:Python、MATLAB 和 R

比赛的目的是看谁在预测传染病(比如流感)如何传播时,跑得又快又准。

1. 比赛背景:为什么要算这个?

想象一下,病毒像一群在人群中乱窜的“捣蛋鬼”。科学家需要建立数学模型(比如 SI 模型SIR 模型)来预测:

  • SI 模型:只有“健康人”和“生病的人”。一旦生病,就一直病着(或者被隔离)。
  • SIR 模型:多了个“康复者”。生病的人要么康复,要么继续传染。

这些模型是一堆复杂的数学公式(微分方程)。有些简单的情况可以直接算出答案(就像做简单的算术题),但大多数真实世界的情况太复杂,必须用**“数值方法”**一步步逼近答案。这就好比你要去一个很远的地方,虽然知道大概方向,但必须一步步走(或者开车)才能到达。

2. 参赛选手:三种“走法”

为了算出病毒怎么传播,研究者们用了三种不同的“走法”(数值算法):

  • 欧拉法 (Euler's Method):就像**“盲人摸象”**。每走一步,只看一眼当前的方向就迈一步。简单粗暴,但容易走偏,尤其是在路很陡的时候。
  • RK4 法 (四阶龙格 - 库塔法):就像**“经验丰富的向导”**。每走一步,他会先试探一下前、中、后几个点的情况,综合判断后再迈步。虽然算得慢一点,但走得很准。
  • 预测 - 校正法 (P-C 法):就像**“先猜后改”**。先大概猜一个位置,然后回头检查一下,修正一下再走。

3. 比赛场地:三种“赛车”

这三种“走法”分别在三辆不同的“赛车”上跑:

  • Python:开源、免费,像是一辆改装过的家用轿车,灵活且社区支持多。
  • MATLAB:商业软件,像是一辆专业的赛车,功能强大但需要花钱买票。
  • R:统计学家最爱,像是一辆专门拉货的卡车,在数据分析上很强,但跑起来可能有点笨重。

4. 比赛过程与结果

研究者在同一台电脑(MacBook Air)上,用同样的参数(模拟一个寄宿学校的流感爆发),让这三辆车分别用三种“走法”跑完全程。

🏆 准确性测试(谁算得最准?)

  • SI 模型(有标准答案)
    • RK4 法是绝对的冠军,无论在哪辆车里,它算出来的结果几乎和标准答案一模一样(R² 值接近 1.0)。
    • P-C 法紧随其后,也非常准。
    • 欧拉法表现最差,尤其是步子迈得大(步长 h 大)的时候,容易算偏。
  • SIR 模型(没有标准答案)
    • 因为没有标准答案,研究者用 MATLAB 自带的超级计算器(ODE45)算出一个“参考值”,然后看谁跟它最像。
    • 结果依然是 RK4 法 最靠谱,跟参考值几乎分不出差别。

⏱️ 速度测试(谁跑得最快?)

这是最精彩的部分!

  • Python 是“速度之王”:在几乎所有情况下,Python 跑得最快。特别是当需要算得很细(步长很小,比如 0.01)时,Python 的优势巨大。它就像一辆引擎轰鸣的跑车,越跑越快。
  • MATLAB 是“稳健的中游”:速度中等,比 Python 慢,但比 R 快。它像一辆舒适的轿车,虽然不快,但很稳。
  • R 是“最慢的选手”:在大多数测试中,R 跑得最慢。它就像那辆拉货的卡车,虽然能完成任务,但在需要快速计算时显得有点吃力。

5. 总结:我们该选谁?

这篇论文给科学家的建议非常明确:

  1. 如果你追求速度和性价比选 Python。它既快又准,而且是免费的。对于需要大量计算或实时模拟的疫情模型,Python 是最佳选择。
  2. 如果你已经在用 MATLAB:它依然是一个很好的工具,结果很可靠,只是速度上稍微吃亏一点。
  3. 关于算法:不管用哪种语言,RK4 法(向导型走法)通常是精度和速度的最佳平衡点,比简单的欧拉法更值得信赖。

一句话总结
在预测病毒传播的数学竞赛中,Python 驾驶着 RK4 算法这辆“超级跑车”,以又快又准的优势击败了 MATLAB 和 R,成为了现代流行病学建模的首选工具。