看笑话呢 2021-09-11 21:57 采纳率: 50%
浏览 128
已结题

求帮助用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 yolov9的训练时间
  • ¥15 二叉树遍历没有报错但无法正常运行
  • ¥15 在linux系统下vscode运行robocup3d上场球员报错
  • ¥15 Python语言实验
  • ¥15 SAP HANA SQL 增加合计行
  • ¥20 用C#语言解决一个英文打字练习器,有偿
  • ¥15 srs-sip外部服务 webrtc支持H265格式
  • ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动
  • ¥15 大一C语言期末考试,求帮助🙏🙏
  • ¥15 ch340驱动未分配COM