116.インフルエンザ

 High Intelligence な我が大学の我が学部では、年に 3 回、構成教員が持ち回りで講演を行う「研究談話会」を行っている。各回 3 人程度お話しを聞かせて貰える。地方大学で、学部がコンパクトなので、専門外の話が色々聞ける。前回は、数学の先生と、防災工学系の先生のお話が聞けた。

 数学の先生は、長距離浸透モデルの話をされた。先生ご自身の研究の話はここでは置いておいて、導入でランダムウーク、日本語では酔っ払いが千鳥足でふらふら歩いている様子に擬して「酔歩」と言われている問題を紹介された。

 

  f:id:uchu_kenbutsu:20200217091823j:plain

 

 上左図は 1 次元の場合で、白丸から始めて、左右に 2分の 1 の確率で次の格子点に動かしていき、これを続ける。上右図は 2 次元の場合で、白丸から始めて前後左右へ 4 分の 1 の確率で隣の格子点に動かしていき、これを続ける。1 次元と 2 次元の場合には、いつか必ず元の点に戻って来るそうだ。しかし、3 次元で格子点を組み、前後左右上下に 6 分の 1 の確率で動かしていくと、もう戻ってこない、非再帰的になるという。

 今度は、例えば 2 次元格子で、格子点間の結合を一部切って、そちらには行けないようにしてみる。下図では、各格子点から 2 本結合を切ってみた。こうして、各格子点から 2 分の 1 の確率でランダムにウォークさせると、果たして長時間たったら無限遠方の格子点に行きつくかどうか、非再帰的かどうかという問題を作ることが出来る。

 最後に先生がコメントしていたが、インフルエンザウィルスの伝搬のモデル化につなげられそうだ。自分の周りに 4 人いたとして、ウィルスが 2 人に伝搬するとして、そのウィルスが無限遠方まで伝搬、要するに酔歩の問題として非再帰的であれば、インフルエンザは蔓延するというわけだ。隣に 4 人は少ないので 6 人にしたければ 3 次元の格子点と結合をいくつか切った図を考え、酔歩させる。8 人にしたければ 4 次元格子を考えればよい。もっと感染させそうな人が近くにいる状況設定したければ、5 次元、6 次元・・・と、次元をあげて同じ問題を考えればよい。

  

          f:id:uchu_kenbutsu:20200217091931j:plain

 話を聞いていて面白いなぁと興味を持ってしまった。

 

 離散格子の問題にすると、やや現実的で面白いのだが難しそうなので、連続的な問題にしてみる。微分方程式系の問題としてモデル化できるそうなので、備忘しておこう。

 

 まず、人に移し得る「感染者」の数を X とする。まだ罹っていないが感染する可能性のある「健常者」の数をYとする。感染したけど回復して免疫が出来てもう罹らない人を「治癒者」として Z とする。残念ながら亡くなった人の数も治癒者に入れておこう。時間を t として、微分方程式を立てる。健常者 Y が、感染により減っていく割合 dY/dt は、すでに感染している者が多ければ多いほど大きくなるであろうし、健常者の母数自身が大きくても大きいだろうから

 

    dY/dt = -v XY     ・・・(1)

 

となるだろう。健常者は感染により減っていくので右辺は負号がある。また、vは [ 1/ 人数・時間 ] という次元を持つ量で、単位時間、単位人数に感染させる「感染の速度」みたいなものだ。実際には v が大きいほど、短い時間で感染させて健常者数 Y が減っていくようになっている。次に、治癒者の数の変化の割合については、感染者に比例して大きくなるだろう。感染者が零になるとそもそも「治癒」しようがないし、感染者が多いほど治癒する人も多いはずだ。よって

 

    dZ/dt = w X      ・・・(2)

 

と置けそうだ。ここで w は感染から「治癒する速さ」みたいな量で、次元は [ 1/時間]。w が大きいほど、治癒者が速く増えることになる量だ。最後に感染者数の変化の割合だが、まずは治癒することで減っていく。これは(2)の右辺に符号をつけたものだ。一方、感染者数は、健常者を感染させることで増えていく。(1)の右辺の符号を変えたものだ。こうして

 

    dX/dt = ― wX + vXY   ・・・(3)

 

(1)(2)(3)を全部足すと、右辺は消えるので

 

    d (X + Y + Z ) /dt = 0

 

が得られ、感染者、健常者、治癒者の総数は変化しないことを意味している。総数を Nと書こう。

 

    N = X + Y + Z 、 dN/dt =0

 

要するに、閉じた集落や島を考え、流入、流出はないとしたというわけだ。流出入まで考慮したら連立微分方程式はもっと複雑になるだろう。ここでは、考えないでおこう。

 (1)と(3)の“比”をとると、

 

    dX/dY = (― wX + vXY) / (― vXY ) = ―1 + ( w / v ) / Y

       = -1 + r / Y                    ・・・(4)

 

となる。ここで、r = w / v と書いた。r の次元は [ 人数 ] だ。 微分の“比をとる”なんて、こういう計算は数学屋さんは眼を剥くが、物理屋は割と平気だ。いや、私だけか・・・。

 (4)から直ちにわかることがある。 r / Y < 1、すなわち r < Y と、健常者数が、感染速度と治癒速度の比 r より大きい時は

 

    dX/dY < 0

 

なので、健常者数 Y が減る( dY < 0 ) と、感染者 X が増える( dX > 0 )ということだ。インフルエンザは拡がっていく。やがて、健常者数 Y が減ってきて r = Y となると

 

    dX/dY = 0

 

なので、感染者数 X が最大値をとる。それを過ぎると r > Y と健常者数が減り、このとき

 

    dX/dY > 0

 

となるので、健常者数 Y が減っても( dY < 0 ) 、感染者数 X も減る( dX < 0 )。要するに治癒者が増えるはずなので、インフルエンザの流行は収束するというわけだ。感染者数が減るということは、やがて X=0 となる。その時の時間を t∞ としておき、X = 0 と書いておく。

 

 (4)は積分できる。

 

    ∫dX = ∫(―1 + r / Y ) dY

      積分して

    X = -Y + r ln Y + C (積分定数)    ・・・(5)

 

時刻 t=0 で、感染者は X(t=0) = X0、健常者は Y(t=0)=Y0 とすると、積分定数 C は

 

    C = X0 + Y0 -r ln Y0

    

となるが、時刻 t=0 ではまだ誰も治癒していないので、治癒者は Z(t=0)=Z0 = 0 なので、総数 N は変わらないことから

 

    N = X0 + Y0 + Z0   = X0 + Y0

 

であり、(5)は

 

     X(t) = -Y(t) + r ln Y(t) + N-r ln Y0   

       = N -Y(t) + r ln ( Y(t) / Y0 )      ・・・(6)

 

と得られる。

 

 さて、健常者数 Y が r に近いとして

  

    Y0 = r + h

 

として、h << r とする。感染者は最初少ないとして、X0 ≒ 0 としておく。こうして

 

    N = X0 + Y0 + Z≒ Y0

 

となる。感染者数が零になる時刻 t のときには X = 0 なので、(6)は

 

    0 = Y0 - Y + r ln ( Y/ Y0 ) 

     = Y0 - Y + r ln ( 1-( 1-Y/ Y0 ))

     = Y0 - Y ― r ( ( 1-Y/ Y0 )―(1 / 2 ) ×( 1-Y/ Y0 )2 + ・・・)

     ≒ ( Y0 - Y )×( 1 ― r / Y0 ―( r / 2 Y0 2 ) ×(Y0 -Y))

 

と近似できる。ここで Y/ Y0 ≒ 1 としている。こうして、上式の右辺の括弧の中が零にならないといけないので

 

    Y0 - Y = ( 2 Y02 / r)× ( 1-r / Y0 )

         = 2 Y0 ( Y0 / r -1 )

         = 2 ( r + h ) ( r + h - r ) / r

         = 2 ( r + h ) h / r

 

となるが、h << r なので右辺の h2 を無視すると、結局

 

    Y0 - Y = 2 h

 

となる。こうして、健常者は最初 Y0 だったものが、感染者が居なくなる時間 t での健常者は Y なので、その間に感染した人の数は、最初の健常者数 Yから最後の健常者数Y∞ を引いて、 2 h となることが分かった。

 

  f:id:uchu_kenbutsu:20200217092006j:plain

 

 

 さて、(1)と(2)の“比”をとると

 

    dY/dZ = - (vXY) / (wX ) = -Y / r

 

となるので、積分すると

 

    Y = Y0 e( ― Z / r )    ・・・(7)

 

と得られる。初めの時間 t=t0 では治癒者はまだ出ていないので Z0=0 だから、係数 Y0 が現れる。

 

(1)と(3)の“比”をとると

 

    dX/dZ = (―wX + vXY ) / (wX)

       = -1 +Y / r

       = -1 + ( Y0 / r )× e( ― Z / r )  

 

となる。ここで、(7)を使った。これも積分できて、(5)から(6)へ積分定数を決めた時と同様のことをすると

 

    X = -Z ― Y0  e( ― Z / r ) + N    ・・・(8) 

 

(6)と(7)と(8)で、X(t)、Y(t)、Z(t) の関係は出たが、時間 t の関数としてあらわに解きたいが、力尽きた。

 

 そこで、極めて大雑把に考えておこう。

 

 (1)式から

 

    dY / Y = ―vX dt

 

となるので、これを積分する。∫ dY / Y = ln Y + (積分定数)なので、

 

    ln Y(t) = - v ∫0 t X(t) dt +(積分定数

 

となる。時間 t=0 までの積分だと右辺の X(t) の積分は零になり、左辺は Y(t=0)=Y0 だったので、積分定数は ln Y0 だ。こうして、

 

    ln Y(t) =  - v ∫0 t X(t) dt +ln Y0

 

よって

 

    Y(t) = Y0 exp( - v ∫0 t X(t) dt )

 

と得られる。ここで、exp(a) = e a と、指数関数のこと。これをすでに計算しておいた(6)式に代入することで

 

    X(t) = N - Y0 exp( - v ∫0 t X(t) dt ) - r v ∫0 t X(t) dt   ・・・(9)

 

のように、X(t) のみで時間 t の関数で閉じた形に書けた。しかし、解けてはいない。

 インフルエンザが蔓延して「全員が罹ってしまう」パンデミック状態を考えてみよう。感染者数 X(t) の時間の推移は解けないので、荒っぽいことをしよう。今、有限の時間で、すべての人、N 人が罹患したとする。最後の感染者が出た時刻以降には、すべての「感染者」はいずれ「治癒者」になるので、零になるはずだ。この瞬間をとらえると(9)の左辺は零になる。積分0 t X(t) dt が出来ないので、全員が有限の時間 τ で感染したとして、

 

    ∫0 t X(t) dt = Nτ

 

と、荒っぽく置いてみよう。また、初期の時刻 t = 0 では、種となる感染者は少なく、ほぼ全員「健常者」だとすると、Y0 ≒ N としてよかろう。そうすると、(9)式から、

 

    0 = N- N exp( - v Nτ ) - r v Nτ

 

となる。r = w / v と書いたことを思い出すと、rv = w だから、ちょっと整理して

 

    ( 1― wτ ) N = N exp(- v Nτ)

 

となり、対数をとると

 

    N = -( 1 / (vτ) ) × ln ( 1-wτ)    ・・・(10)

 

となる。。感染のスピードみたいな v と、治癒するスピードみたいな w が与えられていて、閉ざされた世界の人数 N がわかっていた時に、上の式を成り立たせるような有限の τ があれば、すべての人が感染してしまうということだ。でも、この荒っぽすぎる議論では、右辺の対数の中身、1-wτ が零になれば対数はマイナスで無限大になるので、τ = 1/w の時間で必ず無限大になるので、必ず 1/w までのどこかの時間で N と等しくなり、完全に蔓延してしまうことになる。しかし、もし、かなり大きな τ でなければ条件を満たさないのであれば、実質 τ→∞ とみなせて、感染は蔓延しないということになろう。季節が変わって、v とか w とかの時間依存性まで考慮しないといけないとか。

 でも、もうちょっと、丁寧に解析しないとなぁ。蔓延するかしないかの臨界点となる r ( = w / v ) を見つけたかったのだが・・・。