Code makes the world a better place

傳染病 SIR 模型與機率模型介紹與簡易模擬

1. 簡介

最近武漢肺炎人心惶惶,有台大教授發表化學動力論來模擬傳染變化,而其實我高中時也做過類似的事,就是我的「傳染病之數學模型與個體導向模擬」科展。啟發於科學人雜誌《虛擬城市:天花來了》,文中藉由科學模擬來進行流行病預測與防治,我覺得十分有趣,那陣子對伊波拉病毒想深入研究加上也覺得寫程式好玩,因此就做了那個科展,本篇大致將我高中時的科展報告重新整理。

本文介紹 SIR 模型來做大尺度傳染病預測,同時也用機率函數來做個體導向的微觀尺度模擬,用兩種方式來模擬傳染病的擴散狀況。

公共衛生對傳染病研究有很多理論模型,其中隔間模型(Compartmental Model)藉由假設整個人口被區分成幾個群體,並且在同一群體中所有個體皆有一樣的特性,藉由這幾個假設可以簡化傳染病的社學模型。

在隔間模型中,易感受-感染者-康復者模型(SIR Model)是指由人口由易感受族群(Susceptible, $S$)、已感染族群(Infectious, $I$)、已康復族群(Recovered, $R$)三個部分組成的傳染病模型。模型假設傳染病可以藉由直接接觸傳染,並且每個人會隨機接觸其他人。模型中有兩個重要參數,分別是感染族群傳染給健康族群的傳染力(transmission rate)$β$,以及感染族群恢復的康復力(rate of recovered) $γ$。

機率模型則是本文藉由分布函數去模擬個體互動是否造成感染的簡易模型。

Continue reading

在 Windows 上編譯 Chromium

Chromium 是 Chrome 的開源版本,與 Chrome 差異是 Chrome 多了一些 Google 服務,並且介面設計上也會不太一樣。Chromium 因為是開源軟體,所以被許多其他瀏覽器開發商拿來改造,像是 MicroSoft Edge、Opera、Puffin 等瀏覽器,而 Chromium 底下的 V8 JavaScript 引擎則被 NodeJS 使用。

Continue reading

我與女友相遇的故事

現代人不聯誼了,以前抽鑰匙如今改抽卡,我與現任女友是在交友軟體上認識的,說說去年夏天以來的故事。

命運非常奇妙,當你越認為這個人和你的人生沒關係,你們彼此的牽絆就越強烈。一開始,我從來沒想過這女生會變成我女友。

Continue reading

簡明 CGI 原理與實作

CGI 介紹

Common Gateway Interface, CGI 讓伺服器(Server)將路由(Route)轉給轉外部程式(CGI 程式),使外部程式可以直接和客戶端(通常為瀏覽器) 互動。在 WEB 剛興起的時候,主要還是處於靜態伺服階段,單純傳送檔案或文字資訊而已。如果想要有表單之類的互動,也就是動態網站的話,就要靠呼叫外部程式來幫忙。隨著網路科技的發達,CGI 至今仁廣泛使用,像是 PHP 搭配 Apache。不過同時也有其他架構興起,例如以 Python、NodeJS、PHP、Java 等語言為基礎的網頁框架,像是 Flask 或 Express,抑或著實現前後端分離的 RESTful API 架構。

Continue reading

簡明 Shell 原理與實作

Shell 介紹

不管使用本地端 Unix、Windows 或是連線到伺服器,我們都會打開終端機(Terminal),而連線等入進去的起使畫面會是 Shell,然後開發者可以輸入指令來跑程式。某方面來說,當我們在講「使用終端機」就等同「使用 Shell」,即便他們原本代表意思其實不一樣。關於 Shell 的詳細介紹可以參考「C Sehll」英文維基。

Continue reading