二年生は、私は、ウイルスの拡散のグラフを描画するために見てSEIR

最近のケースは誰にでも明らかである、良い春祭り、学生が外出したときにされている脂肪、または脂肪正直に幸せな休日の家をことができました!毎日のコードポイントを書いて、追いかける追跡劇、調査区間のレビューを見て、他のブラシB駅です。これは、今日の午後は、私たちは二年目に来た知識を教えるための完全なガイドを磨くしません。私はあなたが見に行くことを示唆しています

リンクを提供します
ここに画像を挿入説明

ここにフォーカス

始まりは、私たちの目には、プログレスバーのクリープと一緒に、彼のハンサムな顔で、数式は、私がいないヘルプ思考をすることができますので、私は本当に大学の学生だった表示され、様々なウイルス伝搬モデルをキャッチ?ジュニアは、このようなものを学びましたか?ハハ、何の冗談は、最初のパスは確かに少し無知見ないかもしれませんが、ゆっくりと読んだ後、図のスクリーンショットにあるので、時間のほとんど唯一の彼の結果、その後に起因ホールド理由コードからのパイロットの完了まで、考えるかを理解することができますこの時、時間とともに、モデルまで図面に得ることについて行うだけで何も。
ここに画像を挿入説明
ここに画像を挿入説明
ビデオを見てみんな、SEIRモデルのパラメータの意味を知って、明日によって得られた計算値への世代の変化率に応じて、最終的にはこのマップを描かれたステップバイその後、微分方程式のステップ。
ここに画像を挿入説明

コード

これは、Pythonであるので、明らかに、完全なガイドMathWorks社のMATLABを使用して、MATLABと私は、数学的モデリング、データ解析、Pythonのようなbasic'veして書面に加えて、数回使用しました

import math
import numpy as np
import matplotlib
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = False

# 首先还是设置一下参数,之后方便修改
N=10000        # 人口总数


E=[]           # 潜伏携带者
E.append(0)

I=[]           # 传染者
I.append(1)

S=[]           # 易感者
S.append(N-I[0])

R=[]           # 康复者
R.append(0)

r=20           # 传染者接触人数
b=0.03         # 传染者传染概率
a=0.1          # 潜伏者患病概率
r2=20          # 潜伏者接触人数
b2=0.03        # 潜伏者传染概率
y=0.1          # 康复概率


T=[i for i in range(0,160)]   # 时间

for i in range(0,len(T)-1):
    S.append(S[i]-r*b*S[i]*I[i]/N-r2*b2*S[i]*E[i]/N)
    E.append(E[i]+r*b*S[i]*I[i]/N-a*E[i]+r2*b2*S[i]*E[i]/N)
    I.append(I[i]+a*E[i]-y*I[i])
    R.append(R[i]+y*I[i])

def plot():
    plt.figure()
    plt.title("SEIR-病毒传播时间曲线")
    plt.plot(T,S,color='r',label='易感者')
    plt.plot(T, E, color='k', label='潜伏者')
    plt.plot(T, I, color='b', label='传染者')
    plt.plot(T, R, color='g', label='康复者')
    plt.grid(False)
    plt.legend()
    plt.xlabel("时间(天)")
    plt.ylabel("人数")
    plt.show()

plot()

非常に標準化されていない、それは仕様ポイントを変更します

import math
import numpy as np
import matplotlib
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = False

def calc(T):
    for i in range(0, len(T) - 1):
        S.append(S[i] - r * b * S[i] * I[i] / N - r2 * b2 * S[i] * E[i] / N)
        E.append(E[i] + r * b * S[i] * I[i] / N - a * E[i] + r2 * b2 * S[i] * E[i] / N)
        I.append(I[i] + a * E[i] - y * I[i])
        R.append(R[i] + y * I[i])

def plot(T,S,E,I,R):
    plt.figure()
    plt.title("SEIR-病毒传播时间曲线")
    plt.plot(T,S,color='r',label='易感者')
    plt.plot(T, E, color='k', label='潜伏者')
    plt.plot(T, I, color='b', label='传染者')
    plt.plot(T, R, color='g', label='康复者')
    plt.grid(False)
    plt.legend()
    plt.xlabel("时间(天)")
    plt.ylabel("人数")
    plt.show()

if __name__ == '__main__':
    # 首先还是设置一下参数,之后方便修改
    N = 10000  # 人口总数
    E = []  # 潜伏携带者
    E.append(0)

    I = []  # 传染者
    I.append(1)

    S = []  # 易感者
    S.append(N - I[0])

    R = []  # 康复者
    R.append(0)

    r = 20  # 传染者接触人数
    b = 0.03  # 传染者传染概率
    a = 0.1  # 潜伏者患病概率
    r2 = 20  # 潜伏者接触人数
    b2 = 0.03  # 潜伏者传染概率
    y = 0.1  # 康复概率

    T = [i for i in range(0, 160)]  # 时间
    calc(T)
    plot(T,S,E,I,R)

このコードはかなりあります

遂に

武漢大学の学生として、武漢はまだできるだけ早く以上のように回復することを望むことができ、武漢は、さあさあ、中国!さらに、我々はまた見るためにモデルを描画するために、より正確なデータで、情報を検索することができますどのように最終的にはモデルの精度。

公開された85元の記事 ウォン称賛55 ビュー20000 +

おすすめ

転載: blog.csdn.net/shelgi/article/details/104108757