SteamDOWN 2021-09-11 21:57 采纳率: 50%
浏览 125
已结题

求帮助用matlab对以下微分方程组进行求解作图

这是一个流行病SIR模型的变式ODE组,自己在matlab上尝试了好多次了,由于才刚刚接触matlab,各种各样的问题,欲哭无泪,求解答!

img

其中希腊字母nu,mu和r,l(L小写)都是已知系数可以直接添加数据(不同下标值不一样但都是已知值),Sny,Snn,Iny,Inn,Nny,Nnn也都为已知值可代入数据。beta为感染系数,gamma为康复系数。

  • 写回答

1条回答 默认 最新

  • joel_1993 2021-09-11 22:03
    关注

    同学,你好!我已经找到出问题的原因了,并且帮你更正了。

    clear
    tspan=[0,100];
    y0=[9000,100,0,0,10000,100];
    beta=0.375;
    gamma=0.071;
    l1=1;
    l2=0.5;
    r1=1;
    r2=0.5;
    [T,Y]=ode45(@(t,y)spatialSIRModel(t,y,beta,gamma,l1,l2,r1,r2),tspan,y0);%参数放函数里面
    plot(T,Y(:,1),T,Y(:,2),T,Y(:,3),T,Y(:,4),T,Y(:,5),T,Y(:,6));
    legend('S1','S2','I1','I2','R1','R2')
    
    function dy=spatialSIRModel(t,y,beta,gamma,l1,l2,r1,r2)%dy为输出,t和y为输入
    dy=zeros(6,1);
    dy(1)=beta*y(1)*y(3)/y(6)-l2*y(1)+r2*100;
    dy(2)=beta*y(2)*y(1)/y(6)+l1*10000-r1*y(2);
    dy(3)=beta*10000*y(4)/y(6)-gamma*y(3)-l2*y(3)+r2*10;
    dy(4)=beta*y(2)*y(4)/y(6)-gamma*y(2)-r1*y(4);
    dy(5)=r2*100-l2*y(5);
    dy(6)=l1*10000-r1*y(6);
    end
    

    这样就好了
    图像

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月20日
  • 已采纳回答 9月12日
  • 赞助了问题酬金 9月11日
  • 修改了问题 9月11日
  • 展开全部

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘