3次元Vicsek modelの実装と相転移
中央大学理工学部物理学科4年
香取研究室所属 宇田川 愛斗
2023年2月7日 卒研発表会
目次
研究概要
aa
←ゼミで主に利用したレビュー論文
集団運動とそのモデリングを主に扱っている
[1]
2次元Vicsek model と
オーダーパラメータのプロット
研究概要
[1]
2次元のVicsek modelの
相転移を確認
Vicsek model を2次元から3次元へ拡張
3次元でも同じような
相転移は起こりうるか?
Vicsek modelとは
集団運動(collective motion)のモデルの代表格
R
Tamás Vicsekによって1995年に提案された
[1]
概要
Vicsek modelとは
R
粒子の進行方向は半径R以内の粒子達の
速度の平均と揺らぎで決まる
<・・・>_Rは半径R内の平均
perturbationは揺らぎ
どのような揺らぎにするかで
振る舞いも変わる
Standard Vicsek Model(SVM)
2次元での実装
R
0
(0≦η≦1)
計算手順
2次元での実装
R
①粒子の向きを算出する
2次元での実装
R
②角度を計算する
逆三角関数によって向きを角度で表す
2次元での実装
R
0
(0≦η≦1)
③角度の揺らぎを定める
2次元での実装
R
0
(0≦η≦1)
④角度に加える(進行方向が確定する)
2次元での実装
R
0
(0≦η≦1)
計算手順
これを全ての粒子について行う
2次元での実装
⇒集団運動を確認
このままだといつか
群れが散らばる
系の性質が徐々に変わり解析ができない
Python で実装
2次元での実装
上から出たら下から入ってくる
左から出たら右から入ってくる
…など
2次元での実装
オーダーパラメータと相転移
「全体として同じ方向に進んでいるか?」
を数値で表したい
=「オーダーパラメータφ」
オーダーパラメータと相転移
〇perturbation
〇phi
オーダーパラメータと相転移
実際にグラフを
再現してみた
Python ではこれ以上
系を大きくすると
計算に数週間かかる
極限をとりたい
二次相転移の傾向を確認
臨界指数の取得
臨界指数を得るための3step
→後述
→有限数のプロットなので目測
→両対数をとると
なのでグラフの傾きから得られる
臨界指数の取得
横軸が「粒子数の逆数」
のグラフでプロット
線形近似をして縦軸との交点
の値をφの極限値と考える
臨界指数の取得
系のサイズが大きいところで急速に落ち込む傾向がある
系のサイズが大きい
データで線形近似する
臨界指数の取得
目測で転移点を得る
臨界指数の取得
転移点近傍の点で
両対数プロット
この傾きの値が、
相転移を特徴づける
臨界指数β
このやり方なら3次元にも適用できる
3次元への拡張
基本的には2次元と同じ
速度を表すための角度が二つに増える
θ
θ
φ
θ:天頂角
φ:方位角
計算手順
一様分布でいいのか?
角度変化はただの足し算でいいのか?
3次元への拡張
一様分布でいいのか?
3次元への拡張
一様分布でいいのか?
3次元への拡張
天頂角θの範囲は
しかし、一様分布にすると
極に集中してしまう
メッシュの面積によって
選ばれる確率を
変えなければならない
単位球の表面積
θの確率密度関数
一様分布でいいのか?
3次元への拡張
確率密度関数(pdf)
累積分布関数(cdf)
U[0,1]
cdfの逆関数
でθを得る
一様分布でいいのか?
3次元への拡張
一様分布
上記の方法
比較
一様分布でいいのか?
こちらを採用
3次元への拡張
方位角方向の円周は
天頂角θによって変わる
とすることで
メッシュの拡大・縮小を防ぐ
一様分布でいいのか?
方位角は一様分布で問題ない
ただし、プログラム的に手は加えた
3次元への拡張
角度変化はただの足し算でいいのか?
うまくいく方法が思いつかなかった
今回は加速度ベクトルを計算して
球面上に乗るようにずらす方法を採用
球面幾何学(非ユークリッド)の知識があればできる?
3次元への拡張
速度ベクトルの時間発展
3次元への拡張
3次元への拡張
3次元への拡張
3次元への拡張
二等辺三角形
3次元への拡張
3次元への拡張
3次元への拡張
実際に動かしてみた
3次元への拡張
3次元への拡張
2次元と同様の手法で
臨界指数βを得た
総括
→半径を変えることによる相転移(茂木綸郁)との比較
参考文献