「ある流行(服でも靴でもいい)がどのように時間的に流行していくかを方程式で示す」を微分方程式として考えてみよう。全人口のy倍がすでにその流行に乗っている(つまり服を着るなり靴を履くなりしている)としよう。変数yの意味は、y=0なら「誰も着てない」、y=1なら「全員が着ている」という状態である実際には女性用の服なら男性が着ることはあまりないから、その場合はyを全人口ではなく女性人口の割合にする、などの修正は必要である。。単純に考えると「回りの人が着ていたら自分も着たくなるだろう」と考えると、

dydt=ky

という「回りにいる人が着ている率に比例して着る人が増えていく」という式にしたくなる。ところがこれだとyはどんどん上昇して1を超えてしまう(全人口より着ている人の方が多い??)。なぜこうなったかというと、「すでに着ている人は影響を受けない」ということを考えてなかったからである。つまり、「今から着よう」と決断することができるのは、まだ着ていない人(全体の1y倍の人)だけである。そう考えると微分方程式は

dydt=ky(1y)

となる。これを解くには、

dyy(1y)=kdt

のように変数分離する(ここで、y(1y)0を仮定したことに注意)。この積分は

1y(1y)=10y+yy(1y)=1y+11y

と分数を書き直すことで

dyy+dy1y=kdtlog|y|log|1y|=kt+C

と積分できる(Cは積分定数)。この段階では0y1という状況で考えているので、本来は絶対値を取るという操作は不要である前にも書いたが、Cが複素数であってよければ、そもそもこの絶対値は必要ない。が、後で使うので今はつけてある。

これを整理すると

log|y1y|=kt+Cy1y=±ekt+C  (±)y=±(1y)ekt+Cy(1±ekt+C)=±ekt+Cy=±ekt+C1±ekt+C=11±ektC

となる。この結果をグラフにすると次のようになる(下のスライダでkCを調節できる)。

k=

C=

途中で複号±をつけたが、これはy1yが正のとき+、負のときである。よって本来解こうとしていた問題においては+をとっておけばよい(グラフもそうしている)。

ここでは、y=0からy=1までの範囲だけを考えた(もともとのyという変数の意味からするとそれで十分である)。少し話を一般的にすることにして、dydt=ky(1y)という微分方程式の解が一般的にどのような形を取るかを考察しておこう。

傾きdydty=0y=1で0となり、その間の範囲で正、それ以外の場所で負である。よって時間経過した時の変化を考えると、0<y<1では増加し、それ以外では減少する。結果としてyの値はy=1へと集まっていく(そして、yからは離れていく)という傾向を示す。

ここでもう一つ注意しておこう。今求まったy=11e±ktCという解には実は厳密には「抜け」がある。y=0y=1(定数で、このままずっと変化しない)というのも、もともとの微分方程式の解であるが、それは今求めた解の複号±と積分定数Cの値をどう決めても出てこない。つまり、今求めた解は非常に微妙なところで「一般解」になり損なっている。


FAQ:C=±とすればいいのでは?

y=11e±ktCC=±とすればy=1y=0になる---ように見えるかもしれないが、これは正しい計算ではない。というのは、そもそもというのは代入できる数ではない。Cをどんどん大きくしていく極限」として定義される量である。Cをどんどん大きくすると分母のe±ktCが0に近づくかと思われるが、定数であるCがいくら大きくとも、前にある±ktの項がCを打ち消すほどに小さくなることができる(この項は変数tを含んでいることに注意)から、e±ktC=0とは言えないのである(逆にCがどんどん小さくなる場合も同様)。よってy=11e±ktCy=0y=1を含まない。


「抜け」が生じてしまった理由は明白で、その原因は式変形の途中において両辺をy(1y)で割ったところにある。割算する時には、割る数が「0でないかどうか」を確認しなくてはいけない。つまりy(1y)で割ったことにより、そこから後の式はy(1y)0の場合に限る話になっているのである。よって、y(1y)=0の場合を別に考慮しなくてはいけない(もちろん、それが解になってないならその可能性を捨てればよい)。

この場合、y=0y=1と一定になる場合は右辺も左辺(dydx)も0になるから、これも解となる。この二つは今求めた解y=11e±ktCに含まれない解となっていた。このような解を「特異解」と呼ぶこともある。

「一般解」という言葉を文字通りに取れば「一般的な解」なのだから、一般解の中に特異解も含まれるべきであるが、任意定数(積分定数など)を含んでいる解を「一般解」と呼び、特異解は「一般解」とは別、という解釈をしている本もあるようである。

今の場合の(文字通りの)一般解は、

y=11e±ktCC    y=0    y=1

ということになる。

消耗品だと式は変わりますか?
変わりますね。右辺に「減っていく」効果を入れないといけません。たとえばyに比例して減る効果として、ayみたいなのを加えるとか。
さて、ここで上の考え方では入っていない「物が流行する時に大事なこと」を考えてみよう。何があるかな???

↑ちなみに私はこれを聞いた時は「CMなどの広告」という答を予想していた。

ライバル他社の存在ですか?
なるほど、それもあったな。それがある場合を考えると、変数が二つになります。
X社とY社の商品がそれぞれx,yずつ普及しているとすると、X社の商品の増加がxに比例するのはさっきと同じ。一方、まだ持ってない人は1xyになるから、
dxdt=kx(1xy)
という式と
dydt=ky(1xy)
という式が「連立微分方程式」になって、これを解きなさい、ということになります。

連立の場合はまだやってないので、ここでは式を立てるだけにする。

さて、もう一つ考えるべきことがあります。上でやった計算では「周りの人が買っている」という動機で欲しがったわけだけど、実際にはそれ以外に「TVのCMで見た」とか「歩いてたら立て看板を見た」という理由で買いたくなる場合がある。そこで、そういう場合の微分方程式を立ててみよう。

↑この問題を今日の小テストにしました。

ヒントとして、口コミの場合のky(1y)のうちyの微分は「周りが持っている割合」だけど、CMで見る場合は周りが持っているかどうかは無関係だとして、このyがなくなると考えればよい。一方、「すでに買ってしまった人は買わない」というのは本当だろうから、(1y)はこの場合でもあるだろう、というところまでは説明しました(ヒント出しすぎたかもしれない)。

回答
まず微分方程式は、
dydt=M(1y)
となる。 つまりまだ買ってない人の割合である1-yに比例して増えるとして計算する。
これを変数分離して積分すると、
dy1y=Mdt
log(1y)=Mt+C
整理して、
y=1eMtC
である。これはy=1にどんどん近づいていく関数。
だいたいの人はちゃんと解けていたが、積分定数を忘れる、符号を忘れるという定番のケアレスミスもいくつか見られた。ヒントがだいぶあったにもかかわらず微分方程式が立てられなかった人は、テキストをよく読んで復習しておくこと。