mathlab的SEIR模型问题

272次(过去30天)
乔雅各布
乔雅各布 2020年3月20日
你好,
我是mathlab的新手,我正在尝试测试SEIR模型,但是我无法运行它。我在运行代码时遇到问题。
我正在使用这个github存储库来计算它。 https://github.com/ECheynet/SEIR网站 还有这个来自文件交换的文件
https://la.mathworks.com/matlabcentral/fileexchange/74545-generalized-seir-eplication-model-fitting-and-computation
我试着用所有的文件运行示例3(在github中),但是当我运行它时,我得到了输出:
使用时出错 SEIQRDP公司
输入参数太多。
错误 例3 ( 第38行 )
[S,E,I,Q,R,D,P]=SEIQRDP(字母1,beta1,gamma1,delta1,Lambda1,Kappa1,Npop,E0,I0,Q0,R0,D0,t);
我把示例3文件放在下面,
也许你能帮我找到问题所在?可能很简单。。。
示例3文件。
清除;关闭全部的;中电;
装载('数据.mat','表格恢复','桌面死亡','表格确认','时间')
indLocation=查找(包含(tableRecovered.CountryRegion,'意大利')=1个)
恢复的表格(indLocation,1:2)
indLocation=indLocation(1)
恢复=表2排列(表恢复(indLocation,5:end));
死亡人数=table2array(TableDeasures(indLocation,5:end));
Confirmed=table2array(tableConfirmed(indLocation,5:end));
%如果确诊病例较少,很难知道
%检疫是否严格执行。另外,这个
%表明感染的数量远远大于
%确诊病例
最小值=40;
恢复(确认<=minNum)=[];
死亡人数(确认人数<=minNum)=[];
时间(确认<=minNum)=[];
确认(确认<=minNum)=[];
Npop=120e6;%人口
猜测=[0.06,1.2,1/5,1/40,0.01,0.02,0.01,0.02];%我猜合适
E0=确认(1);%初始暴露病例数(我们不知道,所以设为零)
I0=确认(1);%感染病例的初始数量(我们不知道,所以是隔离的数量)
Q0=确认(1);
R0=恢复(1);
D0=死亡人数(1);
[字母1、beta1、gamma1、delta1、Lambda1、Kappa1]=...
fit_SEIQRDP(确认恢复的死亡,恢复的,死亡,Npop,E0,I0,时间,猜测);
dt=0.1;%时间步长
time1=日期时间(time(1)):dt:日期时间(2020,3,25,0,0,0);
N=纽梅尔(时间1);
t=[0:N-1].*dt;
[S,E,I,Q,R,D,P]=SEIQRDP(字母1,beta1,gamma1,delta1,Lambda1,Kappa1,Npop,E0,I0,Q0,R0,D0,t);
图形
符号学(时间1,Q,“r”,时间1,R,“b”,时间1,D,“k”);
持有
符号学(时间,确认恢复的死亡,“滚”,时间,恢复,“波”,时间,死亡,'ko');
%叶利姆([0,1.1*Npop])
伊拉贝尔('案例数')
xlabel公司('时间(天)')
%leg={'易感','暴露','传染性','隔离','恢复','死亡','不可抵抗'};
支腿={“已隔离(确认感染)”,'恢复','死亡'};
图例(leg{:},'位置',“南外”)
设置(gcf,'颜色',“w”)
网格
紧的
%叶利姆([1,8e4])
设置(gca,'yscale',“林”)

0条评论

登录发表评论。

接受的答案

E、 切尼特
E、 切尼特 2020年3月21日
你好,
我无法再现你的错误。该文件在我的Matlab版本上正常运行,有一个实时脚本和一个普通脚本。我看到一种可能的错误:您使用的是旧版本的SEIQRDP。以前版本的SEIQRDP接受的输入比新版本少。

5条评论

显示 2条旧评论
查尔斯·阿乌德
查尔斯·阿乌德 2020年3月23日
好吧,我想这是个许可证问题,我没有lsqcurvefit工具
有办法绕过这个吗?还是我要买?
我用的是r2018a
提前感谢你的帮助
特点:优化工具箱
许可证路径:C:\Users\user\AppData\Roaming\MathWorks\MATLAB\R2018a_licenses\License_DESKTOP-29BVPTL_40680735_R2018a.lic;C:\程序
文件\MATLAB\R2018a\licenses\许可证.dat;C:\程序文件\MATLAB\R2018a\licenses\*.lic
授权错误:-5357。
拟合误差(第69行)
[Coeff]=lsqcurvefit(@(para,t)modelFun1(para,t),。。。
seim错误(第23行)
[alpha1,beta1,gamma1,delta1,Lambda1,Kappa1]=fit_SEIQRDP(Q,R,D,Npop,E0,I0,time1,guess);
乔雅各布
乔雅各布 2020年3月23日
我正在网上试用MATLAB。你的问题可能与版本有关。我已经解决的问题是使用最新的可用文件,而不修改它们。只需下载原始的.mlx和.m文件,然后单击run。
如果你有许可证,也许你可以在线使用这个软件?或者下载最新版本。我在用r2020a
当做!
查尔斯·阿乌德
查尔斯·阿乌德 2020年3月23日
您好,jacobo Thanx回复我正在使用r2018我会再试一次,也许这个命令只适用于2020版本?

登录发表评论。

更多答案(0)

登录来回答这个问题。