恋愛方程式
非線形・カオスに興味があり、「ストロガッツ 非線形ダイナミクスとカオス」を読んだ。
- 作者: Steven H. Strogatz,田中久陽,中尾裕也,千葉逸人
- 出版社/メーカー: 丸善出版
- 発売日: 2015/01/30
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
この本の5.3節の「恋愛問題」の内容が大変面白かったため、Pythonで検討を行ってみた。
問題設定
ロミオとジュリエットの恋愛の行方(ダイナミクス)を計算する。
具体的には、以下の2つの変数の時間変化を計算する。
= 時刻tでロミオがジュリエットを好きな/嫌いな度合い
= 時刻tでジュリエットがロミオを好きな/嫌いな度合い
ここで、R, Jの正の値は好き、負の値は嫌いを意味する。
このとき、二人の恋愛の数学モデルは以下のようにあらわせる。
ここで、a, b, c, dは正負いずれの値も取りうる。
例えば、一つ目の式でa > 0, b > 0の時、
・ ロミオは自分がジュリエットを好きなほど、よりジュリエットが好きになる。
・ ロミオはジュリエットが自分を好きなほど、よりジュリエットが好きなる。
ということを意味し、かなりロミオは恋愛に燃え上がるタイプだと言える。
横軸にR,, 縦軸にJを取ると以下のような可視化ができる。
第1~4象限がそれぞれ、相思相愛、Juliet片思い、互いに嫌い、Romeo片思いを意味する。
この図(力学系では二次元相空間と呼ぶ)上で、任意の初期状態(恋の始まり)から時間経過とともにどのように二人の関係が変化していくかシミュレーションすることができる。上図では初期状態が原点であり、互いに無関心な状態と言える。
ケース分け
以下のケースを実施してみた。
結果
ケース1(自分の気持ちには無関心)
相思相愛になるのは1/4の周期のみで、二人の気持ちの変遷は同じ軌道を繰り返す。
ケース2(自分の気持ちに慎重な、似たもの同士)
互いに慎重になりすぎて、お互いに無関心な状態に行き着いてしまう。残念。
ケース3(相手の気持ちに敏感な、似たもの同士)
ロミオの片思いの状態から一度気持ちが冷め始めるが、一転最高のクライマックスを迎える。
ケース4(Case 3の初期条件をわずかに変更)
初期条件がケース3とわずかに異なる。(ケース3と比べてロミオの片想い具合はわずかに小さい)
始めはケース3と似た軌道だが、不幸なことに最終的に仲違いしてしまう。