Scratchで伝染病の感染の微分方程式(SIRモデル)を計算してみる。
インフルエンザがまた流行ってきたのと、Facebookの衰退の解析にも使われたのでSIRモデルがまた少しだけ話題。
Facebookが衰退するという論文って、感染病のSIRモデル(irSIRモデル)で解析してたのか!
そこでScratchで計算してみよう。
感受性保持者(Susceptible)、感染者(Infected)、免疫保持者(Recovered) の頭文字を取ったモデル。
感受性保持者と感染者が接触すると感染するということは、感受性保持者の変化量は感受性保持者と感染者の積に比例して減る(∝-S*I)。その分感染者の変化量は上がる(∝S*I)が、一旦罹って免疫ができた人の分が減る(∝-γI)。
ということで
dS/dt = -β*S*I
dI/dt = β*S*I-γ*I
dR/dt = γ*I
となる。βは感染率、γが回復率。
でこれをRunge Kutta法で計算して、そして、、、グラフにするより猫の数にしよう。
Sがオレンジ、Iが青、そしてRが緑。最初のオレンジから感染した青が増えて、その後は免疫持った緑が増える。
http://scratch.mit.edu/projects/17162019/
ターボモードじゃないと遅すぎる、、、
ルンゲクッタのScratchでの実装はこちら。
Scratch(プログラム言語)でルンゲクッタ法(4段4次)を実装した。まずはローレンツ方程式を計算。
« スーパーのうずらの卵はひなが孵るって。 | トップページ | なんじゃこりゃ!寿司が魚に戻るガシャポン、寿司モドル。かっぱ巻きとたまごに爆笑。 »
「パソコン・インターネット」カテゴリの記事
- Interface2025年8月号Pythonで体験!はじめての暗号を買った。上杉暗号からRSA、AES、DHなど、特に楕円曲線暗号についてはコードも実際に動かすところまで詳しくかかれていた。耐量子暗号や聞いたことなかったY-00暗号や関数型暗号も記載。(2025.07.10)
- Gemini CLIが使えるようになっていたので早速VSCodeのターミナルから使って、JavaScriptで連立一次方程式を計算するコードを書いてもらった。普通にガウスの消去法で計算するhtmlを作ってくれた。(2025.06.27)
- Google ColabのJulia言語で1次元のGray-Scottモデル(∂u/∂t=u²v-(F+k)u+Du∂²u/∂x²,∂v/∂t=-u²v+F(1-v)+Dv∂²v/∂x²)を計算してパルスが次々分裂する様子を見る。空間6次の差分、時間8次のルンゲクッタ法で計算。(2025.07.08)
« スーパーのうずらの卵はひなが孵るって。 | トップページ | なんじゃこりゃ!寿司が魚に戻るガシャポン、寿司モドル。かっぱ巻きとたまごに爆笑。 »
コメント