Segundo grado, miro para dibujar un gráfico de la propagación del virus de la SEIR

El caso más reciente es claro para todos, tenía buena Fiesta de la Primavera, un estudiante puede salir y puede honestamente feliz casa de vacaciones cuando una grasa o sin grasa que ha sido! ! ! Escribir el código de punto de todos los días, el teatro de Chase Chase, echar un vistazo a la sección de opinión estudio, la otra es una estación de cepillo B. Esto no significa, esta tarde cepillo guía completa para enseñar el conocimiento que ocupó el segundo año. Le sugiero que vaya a ver

enlaces ofrecen
Aquí Insertar imagen Descripción

centrarse aquí

A partir llama nuestra atención es su hermoso rostro, junto con una barra de progreso fluencia, fórmulas matemáticas y aparecen varios modelos de propagación viral por lo que no puede dejar de pensar, realmente era un estudiante de la universidad? Junior aprendido estas cosas? Jaja, no es broma, la primera pasada de hecho puede parecer un poco ignorante, pero después de leer lentamente puede pensar o entender, a continuación, debido a la finalización de un piloto desde el código de razón de espera, por lo que la mayoría de las veces sólo sus resultados en la figura capturas de pantalla esta vez, con el tiempo, simplemente nada que hacer sobre conseguir en el modelo de elaboración.
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Cada uno de ver el video, conocer el significado de los parámetros del modelo SEIR, entonces la ecuación diferencial paso a paso de acuerdo con la tasa de cambio de generaciones en los valores calculados obtenidos por mañana, finalmente dibujado este mapa.
Aquí Insertar imagen Descripción

código

Obviamente, el uso de una completa guía de Matlab, Matlab y he usado un par de veces, además de los modelos matemáticos, análisis de datos, basic've sido escrito como una pitón, por lo que esta es una pitón

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()

No muy estandarizado, sería cambiar el punto de especificación

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)

Ese código es más o menos

finalmente

Como estudiante de la Universidad de Wuhan, Wuhan todavía puede esperar recuperar tan pronto como sea posible sobre, Wuhan Vamos, Vamos, China! ! ! Además también podemos buscar la información, con datos más precisos para dibujar el modelo para ver cómo la precisión del modelo en el final.

Publicado 85 artículos originales · ganado elogios 55 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/shelgi/article/details/104108757
Recomendado
Clasificación