天天看點

COVID-19 的數學模型(1):SI 模型

從今天起,我會定期寫些關于 Coronavirus 的數學模型。讀者最好有些微積分基礎,會點簡單的程式設計。不會也沒有關系,會點四則運算(加減乘除)就可以試着去了解模型。強調一點,數學模型是對現實世界的抽象和簡化。真實情況比數學模型複雜多了。

我們把人群分成兩類:和,它們都是時間的函數。

  • 易感人數
  • 感染人數.

數學模組化就是找出這些函數滿足的方程,然後求解方程,進而預測以後的情況。

模型

記為總人口數。這個是已知的,而且是不變的。ODE 方程組是:

初始條件是,,滿足。

這裡用到的參數是感染率,代表感染人數占總人口的比例。

借用化學反應的表達式,可以簡潔的把方程表示成:

解釋

代表感染人數占總人口的比例,也代表遇到感染者的機率。比如說,,那你就有一半的機率碰到感染者。易感人群乘上這個比例就意味着有多少易感者接觸到了生病的人。

但并不是碰到就感染了。有個傳染的機率,這個就是。比如,就是說你(沒生病的人)碰到了生病的人之後,被傳染的可能性是十分之一。

感染人數增加的速度就等于。

這部分人增加到感染人群,自然就要從易感人群中減掉。這就是第一個關于的方程。

數值方法

最簡單的是向前歐拉法。我們先回顧一下導數的定義

在向前歐拉法裡,我們標明一個時間步長,把導數換成差商,代入原方程組。兩邊乘以,就得到了下面的方程組

我們來看一個簡單的例子。取,這個可以代表一天,一個小時或是一個月,取決于具體情況下時間的機關。這裡我們不妨就了解成一天,那麼方程組可以寫成

是易感人群數目,感染人數增加的數目是。明天的感染人數等于今天的人數加上新增的人數。同時易感人數要減掉這部分數目。

是以隻需要簡單的四則運算就能夠了解這個模型。

從初始值開始, 根據差分方程我們能夠計算第一天的,然後用第一天算第二天的,重複下去就能夠計算以後所有時間的。

向前歐拉法主要的問題是穩定性。如果時間步長 太大,求出來的數值解就會偏離真實解,甚至有可能跑到無窮大。

關于 ODE的數值方法,可以參見本公衆号之前的系列文章:

  • ​​ODE 數值方法(1):方法簡介​​
  • ​​ODE 數值方法 (2) :截斷誤差和二階方法​​
  • ​​ODE 數值方法(3):截斷誤差分析​​
  • ​​數值積分公式的推廣:龍格庫塔法(一)​​
  • ​​龍格庫塔法(二)​​

解析解

對于 SI 這個簡單模型是可以把解顯示地寫出來的。首先把兩個方程相加得到,是以。就是說人口總數保持不變。

從這個等式中可以解出,然後代入第二個方程,我們就得到了一個一階常微分方程

用分離變量法可以求得

這個函數是一個标準的 logistic 函數。在機器學習裡,也稱之為 sigmoid 函數。

讓時間跑向無窮,我們得到

這真是一個悲傷的結論:最終所有人都要感染。

COVID-19 的數學模型(1):SI 模型
COVID-19 的數學模型(1):SI 模型

我們取, 對不同的傳染率畫了幾個關于感染人數的圖。第二張圖是的導數的圖。雖然最終都要感染,但不同的感染率,對應的峰值高度和峰值發生的時間是不同的。

這個和 flatten curve 相關,但還不是。在後面的 SIR 模型裡,我們再來講 flatten curve。

讨論

根據對稱性,當時,的二階導數等于0,求解,我們得到高峰時刻的表達式.

感染人數的一階導數總是大于零的,就是說總是增加的,但是增加的速度(一個簡單例子就是每日新增人數)是在變的,在時刻增長達到頂峰.

在後面要讨論的更複雜的模型裡,這一點也差不多是對的。是以預測感染總人數的簡單倍增規律是:當觀察到日增人數(穩定)減少時,把日增人數高峰期的感染人數翻倍就得到總人數了。

注意一定要穩定減少時,因為統計誤差,經常會出現一兩天的回落,然後又漲回去了。要模拟這種漲落,需要用到随機微分方程。

感染的人可能會死掉。我們可以在關于的方程裡加入一個損耗項,其中是死亡率。這樣方程變為

習題  求解上述ODE方程組。

這個時候總人口就不是恒定的了。把兩個方程加起來,我們得到

如果有感染人數,總人口将減少。如果最終所有人都要得病,那麼還意味着,所有人都會得病死去。

是這樣嗎?

建議大家試着去求解這個方程組(解析或者數值都行),看看情況是怎麼樣的。

提示: 對不同的參數和分别進行讨論。

在 SI 模型裡面,所有人都會得病。這看起來有點太悲慘了,也不大可能發生。

問題在哪?

問題之一:得了病的人還可以恢複。是以光有這兩部分還是不夠的,在下一節裡,我們将讨論 SIR 模型,多引入一個函數

也有些病是無法痊愈的,比如艾滋病 ( AIDS )。那麼 SI 模型适合嗎?我們這個社會是存在艾滋病毒攜帶者的,如果用 SI 模型的話,那麼意味着我們都将患上艾滋?

很顯然,這是不可能的。

問題之二:在 ODE 模型裡,我們假設每個人都會遇到其他人,還假設這種傳染病是接觸傳染的。

這個假設對艾滋病是不對的。

要更精确地描述這種連接配接性,我們需要引入圖論和網絡,定義人與人之間的連接配接性。很顯然對艾滋病而言,不是所有人都連接配接在一起的。

繼續閱讀