SIR传染病模型动态模拟 by Juan Carlos Ponce Campuzano
几何画板及绘图内容加载中,请稍等……
所属专题
SCIE1000
① 本范例通过GeoGebra动态演示经典的SIR传染病模型,展示易感者(S)、感染者(I)和康复者(R)三类人群数量随时间变化的曲线。② 核心数学概念是常微分方程组(S'=-βSI/N,I'=βSI/N-γI,R'=γI)的数值求解,涉及导数、微分方程、参数变化对系统演化的影响。③ 作图要点:使用NSolveODE命令数值求解微分方程,通过SelectedIndex和Element提取解的分量,利用Sequence和If生成曲线,配合Textfield和按钮(button1、button2、button3)交互调整参数(如传播率a、恢复率b、初始感染者I_0),并用Ray、Length等辅助显示比例和动态标记。④ 适合高中至大学阶段的数学建模、微分方程或生物数学课程,也可用于公共卫生科普,直观理解传染病传播规律和干预措施的效果。
GeoGebra 命令及参数
SelectedIndex(LN) → indexElement(LN, index) → NNSolveODE({S', I', R'}, 0, {S_0, I_0, R_0}, 13) → sol_1, sol_2, sol_3Length(sol_1) → lenRay((x(A), 0), A) → rIf(N ≟ 100, 1, If[N ≟ 10000, 10, 100]) → ratioSequence((RandomUniform[0, p], RandomUniform[0, p]), i, 1, N / ratio) → pSrSequence((RandomUniform[0, p], RandomUniform[0, p]), i, 1, N / ratio) → pIrSequence((RandomUniform[0, p], RandomUniform[0, p]), i, 1, N / ratio) → pRrSequence(Vector[(0, 0), Element[pSr, i]], i, 1, N / ratio) → L_1Sequence(Vector[(0, 0), Element[pIr, i]], i, 1, N / ratio) → L_2Sequence(Vector[(0, 0), Element[pRr, i]], i, 1, N / ratio) → L_3Sequence(Translate[pic1, Vector[Element[L_1, i]]], i, 1, y1 / ratio) → L_4Sequence(Translate[pic2, Vector[Element[L_2, i]]], i, 1, y2 / ratio) → L_5Sequence(Translate[pic3, Vector[Element[L_3, i]]], i, 1, y3 / ratio) → L_6Textfield(a) → InputBox1Textfield(b) → InputBox2Textfield(I_0) → InputBox3If(N ≟ 100, 100, If[N ≟ 10000, 10000, 100000]) → maxval