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

求帮助用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 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助