読者です 読者をやめる 読者になる 読者になる

幸福の物理

みんなに物理と工作と幸福をお届けするのだァ~!

真・東工大生のための恋愛学入門〜線形系に従う恋の行方〜

訂正

 行列式の計算が誤りであるというご指摘を受けました。これに伴い内容を大きく修正しました。ご迷惑をお掛けして申し訳ございません。

Twitterで割と反応があった

 今週金曜日に東工大で「東工大生のための恋愛学入門」という、なんだかよくわからない講義がありました。受けてないので詳細はわからないのですが、どうやら数式は出てこなかったようです。

 で、恋愛"学"と聞いて真っ先に頭に浮かんだのがStrogatzの恋愛問題(Love Affairs)でした。

ストロガッツ 非線形ダイナミクスとカオス

ストロガッツ 非線形ダイナミクスとカオス

Twitterで上記の本から一部抜粋したところ割とTwitterで反応がありました。

 気になる人はぜひStrogatzのNonlinear Dynamics And Chaos(非線形ダイナミクスとカオス)を手にとってみてください。

もしも恋愛が線形系だったら

恋愛のモデル化

 ここでは線形系の恋愛について解説します。

 Strogatzに習って、登場人物をRomeoとJulietにしましょうか。力学変数R,Jをそれぞれ

  • R(t):時刻tでRomeoがJulietを好きな度合い
  • J(t):時刻tでJulietがRomeoを好きな度合い

とし、R,J > 0 であれば好き、R,J < 0 であれば嫌いであるとしましょう。

 もし、RomeoとJulietの恋が線形系だったら、その恋愛は次の1階線形微分方程式で書けます。
\begin{align}
\dot{R} &= a R + b J \\
\dot{J} &= c R + d J
\end{align}
 ここで、a,b,c,dはそれぞれ実数をとるパラメータです。この微分方程式
\begin{equation}
x = \begin{pmatrix}R\\ J\end{pmatrix}, \
A = \begin{pmatrix}
a& b \\
c &d
\end{pmatrix}
\end{equation}
と書けば次のようにまとめられます。
\begin{equation}
\dot{\bf x} = A \bf x
\end{equation}

火と水の恋人だったら?

 例として、a+d=0, b+c=0を考えましょう。すなわち、
\begin{align}
\dot{R} &= a R + b J \\
\dot{J} &= -b R - a J
\end{align}
です。
 ところでなぜこれが火と水(互いに正反対の気質を持つこと)を表すと言えるのでしょうか。第一式から考えましょう。dR/dtはRomeoがJulietを好きになる速さを表します。正ならばどんどん好きになっていく、負ならばどんどん嫌いになっていくことを表します。a,b,R,J>0とすれば、第一式の右辺は正です。だから第一式全体では「RomeoがJulietを好きでJulietもRomeoが好きならば、Romeoはより強くJulietを好きになる」ことを意味します。相手のことが好きであるという自分の気持ちに気づいたら、相手が自分に好意を持って接してくれたら…。もう恋の迷路に迷い込んでしまった状態ですね。
 一方、第二式では意味が正反対になります。a,b,R,J>0のとき第二式の右辺は負だからです。だから第二式全体では「RomeoがJulietを好きでJulietもRomeoが好きならば、Julietはより強くRomeoを嫌いになる」ことを意味します。相手のことを思ったらますます嫌いになった。相手が自分を良くしてくれたらますます憎しみが増えた。さっきとはうってかわって、人間不信を地で行ってますね。

 同様の考察をすれば、a,b>0の場合にdR/dt, dJ/dtの正負は次のようになるでしょう。
f:id:shitaro2012:20151125164539p:plain
 なるほど、第一、第三象限のダイナミクスは特定できました。一方で第二、第四象限は謎のままです。aRとbJの大小関係で場合分けをする必要がありますからね。しかし大まかなダイナミクスはこんな適当な方法でも分かってしまうのが興味深いです。

解析的に検証

 大雑把な考察の結果、第一、第三象限のダイナミクスは大体わかりました。ではもうちょっともっともらしい解析方法で考察しましょう。必要な知識は線形代数固有値問題です。

 二人の好き好きパラメータ行列は
\begin{equation}
A = \begin{pmatrix}
a& b \\
-b & -a
\end{pmatrix}
\end{equation}
でした。このトレースと行列式はそれぞれ
\begin{equation}
\mathrm{Tr}(A) = 0, \mathrm{det}(A) = -a^2 + b^2
\end{equation}
となります。さあ考察しましょう。
 まず、トレースがゼロなので解の挙動はサドル点(鞍点)センターと呼ばれる、軌道が閉じた渦を描くようになります。次に行列式についてです。
 a < bの場合、行列式は正なので、トレースゼロと合わせると系のダイナミクスはセンターになります。a=1,b=2としたときの数値計算結果はこうなりました。
f:id:shitaro2012:20151125170849p:plain
 おお、確かに渦を巻いていますね!延々と好き嫌いを繰り返すという解釈ができますね。二人にとっての唯一の救いは、1/4周期の間だけ互いを愛することができるということでしょうか。
 a > bの場合、行列式は負なので、トレースゼロと合わせると系は原点にサドル点を持ちます。a=2,b=1としたときの数値計算結果はこうなりました。
f:id:shitaro2012:20151125170802p:plain
 確かに原点にサドル点を持ちます。解釈としては、片思いで終わる…といったところでしょうか。

 結局、この火と水の二人は永遠の愛を誓うことはないのですね。線形な恋愛をする場合は相性が大事ということですね。そして二人の恋の結末より驚くべきは、微分方程式を解かずに解の振る舞いを調べることができたという事実です!微分方程式は解析的に解けなくても解の振る舞いなら分かる、という教訓が得られました。線形代数は救いなのです。

他にパラメータをいじると…?

 以上より、全く正反対な二人が線形な恋愛をすると「好きと嫌いを交互に繰り返す」ということが分かりました。では他の好き好きパラメータではどうなるのでしょうか?皆さんもやってみてください。

 おまけとして、使用したMATLABのコードを載せておきます。東工大生であればMATLABは無料で使用できるので、インストールしてない人は入れましょう。

└(՞ةڼ◔)」<MATLABに†感謝†

線形系に従うロミオとジュリエットの恋の微分方程式