温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Matlab怎么实现新冠病毒传播模拟效果

发布时间:2022-04-16 10:53:23 来源:亿速云 阅读:310 作者:iii 栏目:开发技术

这篇“Matlab怎么实现新冠病毒传播模拟效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Matlab怎么实现新冠病毒传播模拟效果”文章吧。

    1 各种疫苗梳理

    截至2022年3月,中国已经向120多个国家和国际组织提供了超过21亿剂疫苗,占中国以外全球疫苗使用总量的1/3。

    1.1 灭活疫苗

    2020年12月31日,国务院联防联控机制发布,国药集团中国生物新冠灭活疫苗已获得国家药监局批准附条件上市。

    1.2 吸入式新冠疫苗

    2021年11月12日—14日,全球首款可吸入式新冠疫苗亮相“2021第五届海南国际健康产业博览会”。全球首款吸入式新冠疫苗由军事医学研究院陈薇院士团队与康希诺生物股份公司合作研发,二期临床试验已取得阶段性成果,正在推进紧急使用的申请工作。据了解,吸入式新冠疫苗与肌肉注射使用了同种疫苗,其制剂配方未改变,仅采用不同的给药方式。雾化吸入免疫采用雾化器将疫苗雾化成微小颗粒,通过口部吸入的方式进入呼吸道和肺部,从而激发黏膜免疫,而这种免疫是通过肌肉注射所不能带来的。

    1.3 植物蛋白技术疫苗

    2022年2月24日 ,加拿大卫生部宣布,授权该国药企Medicago研制的新冠疫苗Covifenz可用于18至64岁成年人。这是加拿大审批通过的第六款新冠疫苗,也是首款本土研发的新冠疫苗,Covifenz是首个使用植物蛋白技术的新冠疫苗。

    1.4 AI技术开发长效新冠疫苗

    2022年4月11日报道,日本NEC公司8日宣布已开始利用最尖端的人工智能(AI)技术开发新冠疫苗。

    1.5 法国Valneva新冠疫苗

    2022年4月14日,彭博报道,根据一份政府声明,英国药品和保健品管理局(MHRA)批准法国生物技术公司Valneva开发的新冠疫苗。Valneva疫苗成为第六种获得MHRA授权的新冠疫苗。

    2 matlab代码

    Matlab怎么实现新冠病毒传播模拟效果

    %======欢迎关注公众号:电力系统与算法之美=======%
    function spreadingBySir()
        A=load('test.in');
        % node number
        N=size(A,1);   
        %感染概率
        irate=0.3;
        %恢复概率
        rrate=1;
        %初始时节点的状态表,初始时只有节点1为感染状态,其他的都为易感染状态  
        start_node=1;
        %按照图的广度优先的原则来进行病毒传播
        BFSspreading(A,N,start_node,irate,rrate);
    end
     
    function BFSspreading(A,N,start_node,irate,rrate)
    %队列头
    head=1;            
    %队列尾,开始队列为空,tail==head
    tail=1;            
    %向头中加入感染源节点
    queue(head)=start_node;      
    %队列扩展
    head=head+1;  
     
    %感染节点列表 
    infection=start_node;  
    %恢复节点列表  
    recover=[];
    %易感染节点列表
    for i=1:N
        %初始时,start_node为感染状态
        if i==start_node
            %-1表示该节点已经从列表中删除
            susceptible(i)=-1;
        end
        %初始时,除了start_node为感染状态外,其他节点都处于易感染状态
         susceptible(i)=i;
    end
     
    %开始按照广度优先搜索顺序向邻居节点传播
    %判断队列是否为空
    while tail~=head   
        %取队尾节点 
        i=queue(tail);  
        %如果该节点不在移除列表之中
        if isempty(find(recover==i,1))
                for j=1:N
                 %如果节点j与当前节点i相连并且节点j不在感染列表中
                if A(i,j)==1 && isempty(find(infection==j,1))   
                     infection_random=rand(1);
                     if infection_random < irate
                        %新节点入列
                        queue(head)=j;  
                        %扩展队列
                        head=head+1;   
                        %将新节点j加入感染列表
                        infection=[infection j]; 
                        
                        %从易感染节点列表中删除该节点,设置为-1
                        [row,col,v] = find(susceptible==j) ;
                        susceptible(col)=-1;
                        susceptible(find(susceptible==-1))=[];                    
                     end
                end
            end
            %将感染的节点按概率加入恢复节点列表  
            recover_random=rand(1);
            if infection_random < rrate
                %恢复
                recover=[recover i];  
                %从感染列表中删除
                [row,col,v] = find(infection==i) ;
                infection(col)=-1;
                infection(find(infection==-1))=[];
            end
            tail=tail+1; 
            
        end %end if  isempty(find(recover==i,1)
    end %end while
     
    %分别现实最后节点的状态
    infection
    susceptible
    recover
    end

    以上就是关于“Matlab怎么实现新冠病毒传播模拟效果”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI