实验二 传染病模型的数值模拟分析

本文介绍了使用Matlab进行传染病SIS和SIR模型的数值模拟实验,通过求解常微分方程,分析不同参数和初值条件下疾病传播的变化趋势,以及相应的控制策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验题目 传染病模型的数值模拟分析
实验目的 会编程求常微分方程(组)的数值解,辅助分析传染病的蔓延和控制
实验学时 2
实验软件 Matlab
原理方法 M文件的编写,常微分方程数值解的求解,不同参数、初值情况下解的对比分析。
实验内容 数值解辅助分析常微分方程(组)。
实验步骤:
1.建立传染病的SIS模型
2.计算不同参数和初值情况下的方程数值解并作图,对比分析传染病传播变化趋势。
3.建立传染病的SIR模型
4.计算不同参数和初值情况下的方程组数值解并作图(包括相平面图),对比分析传染病传播变化趋势,及应对策略。
解答:

1.建立传染病的SIS模型

B = 0.6;
gama = 0.4;
N = 1000;
S0 = 800;
I0 = 200;
odefun = @(t, y) [gama*y(2) - B*y(1)*y(2)/N; B*y(1)*y(2)/N - gama*y(2)];
tspan = [0 50];
y0 = [S0; I0];
[t, y] = ode45(odefun, tspan, y0);
figure;
plot(t, y(:,1), 'b', t, y(:,2), 'r', 'LineWidth', 2);
xlabel('时间');
ylabel('人数');
legend('s', 'i');
title('SIS模型');

3.建立传染病的SIR模型

function sir_model()
    beta = 0.3;
    gamma = 0.1;
    S0 = 0.9;
    I0 = 0.1;
    R0 = 0;
    y0 = [S0, I0, R0];
    tspan = [0, 100];
    [t, y] = ode45(@sir_ode, tspan, y0);
    plot(t, y);
    legend('s', 'i', 'r');
    xlabel('时间');
    ylabel('人口数量');
    title('SIR模型');
    grid on;
end
function dydt = sir_ode(t, y)
    beta = 0.3;
    gamma = 0.1;
    S = y(1);
    I = y(2);
    R = y(3);
    dSdt = -beta * S * I;
    dIdt = beta * S * I - gamma * I;
    dRdt = gamma * I;
    dydt = [dSdt; dIdt; dRdt];
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值