sir节点matlab模型,SIR模型实现(matlab)
matlab代码
clc
clear
close all;
A = 0.4;
B = 0.1;
I = 0.4;
S = 0.5;
%ode
tspan = [0 50];
y0 = [I S];
[t, y] = ode45(@(t,y)odefun(t,y,A,B), tspan, y0);
r = 1-y(:,1)-y(:,2);
%euler
n = size(r,1);
h = 50 / (n-1);
t_0 = [0:h:50]‘;
y_i = zeros(n,1);
y_s = zeros(n,1);
y_i(1) = I;
y_s(1) = S;
for i = 1:n-1
y_i(i+1) = h*[A*y_i(i)*y_s(i) - B*y_i(i)]+y_i(i);
y_s(i+1) = h*[-A*y_i(i)*y_s(i)]+y_s(i);
end
r_0 = 1 - y_i(:,1) - y_s(:,1);
%画图
subplot(2,2,1);
plot(t,y(:,1),‘-o‘,t,y(:,2),‘-.‘,t,r,‘g‘);
hold on;
legend(‘生病人数:i(t)‘,‘健康人数:s(t)‘,‘移除人数:r(t)‘,‘Location‘,‘Best‘);
ylabel(‘占人口比例%‘);
xlabel(‘时间t‘);
str = [‘接触数λ/μ:‘,num2str(A/B),‘ 初始生病人数:‘,num2str(I),‘,初始健康人数:‘,num2str(S)];
text(15,0.4,str,‘FontSize‘,10);
title(‘SIR模型(ode)‘);
subplot(2,2,2);
plot(t_0,y_i,‘-o‘,t_0,y_s,‘-.‘,t_0,r_0,‘g‘);
hold on;
legend(‘生病人数:i(t)‘,‘健康人数:s(t)‘,‘移除人数:r(t)‘,‘Location‘,‘Best‘);
ylabel(‘占人口比例%‘);
xlabel(‘时间t‘);
str = [‘接触数λ/μ:‘,num2str(A/B),‘ 初始生病人数:‘,num2str(I),‘,初始健康人数:‘,num2str(S)];
text(15,0.4,str,‘FontSize‘,10);
title(‘SIR模型(euler)‘);
subplot(2,2,3);
plot(t_0,y_i,‘r-‘,t,y(:,1),‘-.‘);
diff = sum(abs(y_i - y(:,1)));
str1 = [‘生病人数对比图i(t), 误差:‘,num2str(diff)];
title(str1);
legend(‘euler‘,‘ode‘,‘Location‘,‘Best‘);
ylabel(‘占人口比例%‘);
xlabel(‘时间t‘);
subplot(2,2,4);
plot(t_0,y_s,‘r-‘,t,y(:,2),‘-.‘);
diff = sum(abs(y_s - y(:,2)));
str1 = [‘健康人数对比图s(t), 误差:‘,num2str(diff)];
title(str1);
legend(‘euler‘,‘ode‘,‘Location‘,‘Best‘);
ylabel(‘占人口比例%‘);
xlabel(‘时间t‘);
function dydt = odefun(t,y,A,B)
dydt = zeros(2,1);
dydt(1) = A*y(1)*y(2) - B*y(1);
dydt(2) = -A*y(1)*y(2);
end
结果
原文:https://www.cnblogs.com/shish/p/12685865.html
sir节点matlab模型,SIR模型实现(matlab)相关推荐
- 【数学建模】Matlab实现SEIR模型
1974年Hoppensteadt首先在文[1]中建立和研究了具有年龄结构的传染病模型.至今,具有年龄结构的 传染病模型的研究已有许多成果(见[2]-[5]等),但这些模型大多不考虑染病年龄.潜伏期等 ...
- arima模型matlab代码_PSTR面板平滑转换模型简介(附Matlab代码分享)
写论文的时候用到的~相关的资料太少了,做一些简单内容和资料的分享.(PSTR模型的Matlab代码分享在最后)本文主要为简单理论和粗暴实操~ 有用的话可以点个赞哟(知乎小白卑微求赞) 嘻嘻下面进入正题 ...
- matlab求迟滞,MATLAB PI迟滞模型问题
之前我用matlab进行迟滞模型建模,误差非常大,我之前怀疑是自己的参数辨识出问题了,所以我用论文中的阈值向量和权重向量进行建模,输入数据也是用论文数据,但是出来的拟合的线误差非常大,和文献中相差太大 ...
- matlab 传感器的迟滞,MATLAB PI迟滞模型问题
之前我用matlab进行迟滞模型建模,误差非常大,我之前怀疑是自己的参数辨识出问题了,所以我用论文中的阈值向量和权重向量进行建模,输入数据也是用论文数据,但是出来的拟合的线误差非常大,和文献中相差太大 ...
- 用matlab简单电路模型,基于MATLAB的电路模型仿真应用
基于MATLAB的电路模型仿真应用实验指导书 一.实验目的 1.掌握采用M文件及SIMULINK对电路进行仿真的方法. 2.熟悉POWERSYSTEM BLOCKSET 模块集的调用.设置方法. 3. ...
- matlab传函零极点形式,2013实验一 MATLAB 中控制系统模型的建立与仿真
实验一 MATLAB 中控制系统模型的建立与仿真 一. 实验目的 (1)熟悉MATLAB 控制系统工具箱中线性控制系统传递函数模型的相关函数. (2)熟悉SIMULINK 模块库,能够使用SIMULI ...
- matlab加热模型,基于MATLAB钢丝感应加热模型及其温度场特性的研究
<工业加热>第 卷 年第 期 11 热能工程 前 言 自 20 世纪 30 年代,感应加热技术大量应用于工业生产以来,由于感应加热自身的优点和感应加热理论和技术的不断进步,迄今已成为一项节 ...
- 数学规划模型总结(附MatLab代码)
数学规划模型总结(附MatLab代码) 概述 定义 一般形式 分类 线性规划(linear programming) 非线性规划(nonlinear programming) 整数规划(integer ...
- arch模型 matlab,ARCH模型(arch模型干嘛的)
1.ARCH模型(Autoregressive conditional heteroskedasticity model)全称"自回归条件异方差模型",解决了传统的计量经济学对时间 ...
- 语音信号调制matlab,第二章 语音信号的数字模型 数字语音处理及MATLAB仿真 教学课件.ppt...
第二章 语音信号的数字模型 数字语音处理及MATLAB仿真 教学课件 第二章 语音信号的数字模型 2.1 概述 本章重点介绍语音信号产生的数字模型,对语音信号的特性和听觉特性做一般介绍. 2.2 语音 ...
最新文章
- 软件测试面试总结——常见的面试问题
- 陆奇:不确定的世界需要更多对话,人工智能需要人监督
- c语言 坐标系转换 axistoradius,dynamo编程语言翻译.pdf
- 【转载】用JS控制输入内容
- unity, GL.TexCoord or GL.Color must put before GL.Vertex!!!
- OCR系列——总体概述
- net java互相调用_Java与.NET的WebServices相互调用
- 速修复!Netgear交换机曝3个严重的认证绕过漏洞
- DOM(一):节点层次-Node类型
- Java ListIterator 与 Iterator 异同
- Python中创建守护进程
- 无形资产计算机软件包括哪些,什么软件属于无形资产
- PSP实机用虚拟机wifi网卡联机
- bcm5396交换机级联配置_工业以太网交换机的专业术语汇总
- office picture manger图片处理工具下载与安装教程
- 做一个商业网站需要准备什么,需要多少钱?
- 怎么把PPT压缩到最小?
- 前后端齐全的扫码点餐小程序(后端Java)
- 计算机图形图像学的专业特性,计算机图形学第1_5章课后习题参考答案
- 《数学之美》读书记录【思维导图记录】:第五章,隐含马尔可夫模型