Fermi Dの学問&技術ブログ

物理、機械学習、プログラミングについて書きます

【WSL2 + docker + CUDA】Kaggle docker imageでGPU環境構築

前提

Microsoftのインストールガイド

docs.microsoft.com

を参考に

  • Windows Insider Program への参加
  • Windows 10 のpreview build (OS ビルド 20262 以降) のインストール

は済んでいるものとします。

1.実行環境

2.Linuxディストリビューションのインストール

コマンドプロンプトを開いて以下のコマンドを入力するとUbuntu-18.04がインストールされます。

$ wsl --install -d Ubuntu-18.04

終了すると、Ubuntu-18.04のターミナルが自動的に起動するのでユーザー名とパスワードを入力してください。

f:id:chozoko:20210502232200p:plain
ユーザー名とパスワード入力

このコマンドで以下の処理が実行されます。

f:id:chozoko:20210520140352p:plain

3. CUDA on WSLのインストール

以下のリンクからお手持ちのGPUのシリーズ(Gerforce or Quadro)に合わせたインストーラーをダウンロードできます。

GPU in Windows Subsystem for Linux (WSL) | NVIDIA Developerdeveloper.nvidia.com

これが済んだら、インストーラーを開くとインストールされていきます。
※ゲーミングPCなどを持っていて最初からNVIDIAまわりのソフトが入っている場合はカスタムインストールを選択してクリーンインストールを選ぶと上手くいきます。

4.CUDA Toolkitのインストール

2でインストールしたUbuntu18.04で以下のコマンドを実行していきます。
ここで、cuda-toolkitのバージョンはPower Shellなどを開いてnvidia-smiから確認してください。

$ apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
$ sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
$ sudo apt-get update
$ sudo apt-get install -y cuda-toolkit-11-3

5.CUDAアプリケーションの実行

ここまでの作業でWSL上でCUDAプログラムを動かせる確認するために以下のコマンドを実行してください。

$ cd /usr/local/cuda/samples/4_Finance/BlackScholes
$ sudo make
$ ./BlackScholes

f:id:chozoko:20210520140143p:plain
CUDAアプリケーションの実行

図のようにTest passedと出れば問題なく実行できています。

5.dockerのインストール

以下のコマンドでdockerがインストールされます。

$ curl https://get.docker.com | sh

実行すると、docker desktop for windowsをおススメします的な文が表示されますが無視してください。
NVIDIAのドキュメントによると。docker desktopはWSLはサポートしていますが、GPU関連はまだサポートしていないようです。

6. NVIDIA Container Toolkitのインストール

普通にインストールすると、GPGキーが安定版を選んでしまうのでプレビュー版をインストールするように以下のコマンドを実行します。

$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
$ curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container-experimental.list | sudo tee /etc/apt/sources.list.d/libnvidia-container-experimental.list
$ sudo apt-get update
$ sudo apt-get install -y nvidia-docker2

7.CUDAコンテナのビルド

これでdocker上でGPUが使えるはずなので、試しにCUDAコンテナを実行してみます。

$ sudo service docker start
$ sudo docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark

普通はこれで無事にビルドされるのですが、私の場合は以下のエラーがでました。。。

$ sudo docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"process_linux.go:432: running prestart hook 0 caused \\\"error running hook: exit status 1, stdout: , stderr: nvidia-container-cli: initialization error: driver error: failed to process request unknown.
ERRO[0000] error waiting for container: context canceled

このエラーはNVIDIA側も認知しているようで、CUDA on WSL2フォーラムを読みまくったところ次のようにすれば無事にビルドできました。

$ apt-get install \
    libnvidia-container1=1.3.3~rc.2-1 \
    libnvidia-container-tools=1.3.3~rc.2-1 \
    nvidia-container-toolkit=1.4.1-1 \
    nvidia-container-runtime=3.4.1-1 \
    nvidia-docker2=2.5.0-1
$ sudo docker service stop
$ sudo docker service start
$ sudo docker run -it --gpus all --env NVIDIA_DISABLE_REQUIRE=1 nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark

8.Kaggle docker imageのビルド

ここまでくれば後は簡単です。次のコマンドで最新のkaggle notebookと同様の環境構築ができます。

$ sudo docker run -it --gpus all --env NVIDIA_DISABLE_REQUIRE=1 gcr.io/kaggle-gpu-images/python:latest

参考記事

docs.nvidia.com forums.developer.nvidia.com github.com

【超伝導量子回路】LC並列共振器の量子化

超伝導回路の基本的な構成要素であるLC並列共振器を量子的に扱うためにこの計算が必要になります。ここからの説明は解析力学量子力学, 簡単な電気回路の知識を前提として書いています。
まず、図のようなLC回路を考えることにします。

LC並列回路

回路に流れる電流の大きさをI、電圧をVキャパシタに蓄えられている電荷Q、コイルを貫く磁束を\Phiとし、それぞれの素子について以下の式が成り立ちます。


\begin{align}
Q &= CV \tag{1} \\
V &= \frac{d\Phi}{dt} \tag{2} \\
\Phi &= LI \tag{3} \\    
\frac{dQ}{dt} &= -I \tag{4}                                                        
\end{align}

(1)、(2)より、


\begin{align}
\frac{d\Phi}{dt} &= \frac{Q}{C} \tag{5}
\end{align}

が得られ、(5)をさらに時間微分すれば、(3)、(4)より、\Phiに関する微分方程式が得られます。


\begin{align}
C\frac{d^2 \Phi}{dt^2} &= -I  \nonumber \\
C\frac{d^2 \Phi}{dt^2}  &= -\frac{1}{L}\Phi \tag{6}
\end{align}

ここで、(2)で出てきた磁束\Phiは無限の過去で\Phi (-\infty) = 0として、


\begin{align}
\Phi &= \int_{-\infty}^t V dt \tag{7}
\end{align}

を満たす物理量です。
また、共振周波数\omega_rを求めておきます。図1のインピーダンスZは、虚数単位、誘導性リアクタンス、容量性リアクタンスをそれぞれj, Z_L=j\omega L, Z_C=1/j\omega Cとして、


\begin{align}
    Z &= \frac{Z_L Z_C}{Z_L + Z_C} \nonumber \\
      &= \frac{j\omega L \cdot \frac{1}{j\omega C}}{j\omega L + \frac{1}{j\omega C}} \nonumber \\
      &= \frac{\frac{L}{C}}{j(\omega L - \frac{1}{\omega C})} \nonumber \\
      &= -j\frac{\omega L}{\omega^2 LC - 1} \tag{8}
\end{align}

LC並列回路の共振条件はインピーダンスZが最大、つまり、Zの虚部が無限大になる場合なので、以下の方程式を\omega_rについて解けば、


\begin{align}
    {\omega^2}_r LC - 1 &= 0 \nonumber \\
    \omega_r &= 1/\sqrt{LC} \tag{9}
\end{align}

共振角周波数\omega_rが得られます。
次に式(6)を満たすラグランジアン\mathcal{L}を求めます。調和振動子におけるニュートン運動方程式


\begin{align}
    m\frac{d^2 x}{dt^2} &= -kx \nonumber
\end{align}

と式(6)を比較します。 \Phi \rightarrow xC \rightarrow m\frac{1}{L} \rightarrow kだと思えば、\mathcal{L}は、


\begin{align}
    \mathcal{L} &= \frac{1}{2}C\dot{\Phi}^2 - \frac{1}{2L}\Phi^2 \tag{10}
\end{align}

と表すことができます。ここから、\Phiの正準共役変数を求めると、


\begin{align}
    \frac{\partial \mathcal{L}}{\partial \dot{\Phi}} &= C\dot{\Phi} \nonumber \\
    &= Q \tag{11}
\end{align}

となり、ハミルトニアン\mathcal{H}は、


\begin{align}
    \mathcal{H} &= \frac{Q^2}{2C} + \frac{\Phi^2}{2L} \tag{12} \\
                &= \frac{1}{\hbar}\frac{\hbar}{\sqrt{LC}}\left(\frac{1}{2}\sqrt{\frac{L}{C}}Q^2 + \frac{1}{2}\sqrt{\frac{C}{L}}\Phi^2\right) \nonumber \\
                &= \hbar \omega_r\left(\frac{1}{2\hbar}\sqrt{\frac{L}{C}}Q^2 + \frac{1}{2\hbar}\sqrt{\frac{C}{L}}\Phi^2\right) \nonumber \\
                &= \hbar \omega_r \left\{ \left(\frac{1}{2\hbar}\right)^{\frac{1}{2}}\left(\frac{L}{C}\right)^{\frac{1}{4}}Q + i\left(\frac{1}{2\hbar}\right)^{\frac{1}{2}}\left(\frac{C}{L}\right)^{\frac{1}{4}}\Phi \right\} \left\{\left(\frac{1}{2\hbar}\right)^{\frac{1}{2}}\left(\frac{L}{C}\right)^{\frac{1}{4}}Q - i\left(\frac{1}{2\hbar}\right)^{\frac{1}{2}}\left(\frac{C}{L}\right)^{\frac{1}{4}}\Phi \right\} \nonumber \\
                &= \hbar \omega_r \left\{ \left(\frac{1}{2\hbar}\right)^{2 \cdot \frac{1}{2} \cdot \frac{1}{2}}\left(\frac{L}{C}\right)^{\frac{1}{4}}Q + i\left(\frac{1}{2\hbar}\right)^{2 \cdot \frac{1}{2} \cdot \frac{1}{2}}\left(\frac{C}{L}\right)^{\frac{1}{4}}\Phi \right\} \left\{\left(\frac{1}{2\hbar}\right)^{2 \cdot \frac{1}{2} \cdot \frac{1}{2}}\left(\frac{L}{C}\right)^{\frac{1}{4}}Q - i\left(\frac{1}{2\hbar}\right)^{2 \cdot \frac{1}{2} \cdot \frac{1}{2}}\left(\frac{C}{L}\right)^{\frac{1}{4}}\Phi \right\} \nonumber \\
                &= \hbar \omega_r \left\{ \left(\frac{L}{4\hbar^2C}\right)^{\frac{1}{4}}Q + i\left(\frac{C}{4\hbar^2L}\right)^{\frac{1}{4}}\Phi \right\} \left\{\left(\frac{L}{4\hbar^2C}\right)^{\frac{1}{4}}Q - i\left(\frac{C}{4\hbar^2L}\right)^{\frac{1}{4}}\Phi \right\} \tag{13}
\end{align}

となります。後に出てくる生成・消滅演算子の導入で必要になるので上のように式変形をしました。
Q \rightarrow \hat{Q}\Phi \rightarrow \hat{\Phi}として演算子に置き換えると、ハミルトニアン\mathcal{H} \rightarrow \hat{\mathcal{H}}となり、


\begin{align}
    \hat{\mathcal{H}} &= \frac{\hat{Q}^2}{2C} + \frac{\hat{\Phi}^2}{2L} \tag{14}
\end{align}

で表されます。また、具体的に演算子\hat{Q}\hat{\Phi}は、


\begin{align}
    \hat{Q} &= -i\hbar \frac{\partial}{\partial \Phi} \tag{15} \\
    \hat{\Phi} &= \Phi \tag{16}
\end{align}

となるので、運動量演算子\hat{p}と座標演算子\hat{x}の交換関係と同様に、


\begin{align}
    \left [ \hat{\Phi}, \hat{Q}\right ] &= i\hbar \tag{17}
\end{align}

を満たします。次に生成・消滅演算子\hat{a}^{\dagger}\hat{a}を定義する.式(13)の{}の部分をそれぞれ、


\begin{align}
    \hat{a}^{\dagger} &= \left\{\left(\frac{L}{4\hbar^2C}\right)^{\frac{1}{4}}\hat{Q} + i\left(\frac{C}{4\hbar^2L}\right)^{\frac{1}{4}}\hat{\Phi} \right\} \tag{18} \\
    \hat{a} &= \left\{ \left(\frac{L}{4\hbar^2C}\right)^{\frac{1}{4}}\hat{Q} - i\left(\frac{C}{4\hbar^2L}\right)^{\frac{1}{4}}\hat{\Phi} \right\} \tag{19}
\end{align}

とおいて、\hat{a}^{\dagger}\hat{a}を計算すると、


\begin{align}
 \hat{a}^{\dagger}\hat{a} &= \left\{\left(\frac{L}{4\hbar^2C}\right)^{\frac{1}{4}}\hat{Q} + i\left(\frac{C}{4\hbar^2L}\right)^{\frac{1}{4}}\hat{\Phi} \right\} \left\{ \left(\frac{L}{4\hbar^2C}\right)^{\frac{1}{4}}\hat{Q} - i\left(\frac{C}{4\hbar^2L}\right)^{\frac{1}{4}}\hat{\Phi} \right\} \nonumber \\
&= \sqrt{\frac{L}{4\hbar^2C}}\hat{Q}^2 + i\left(\frac{L}{4\hbar^2C} \cdot \frac{C}{4\hbar^2L}\right)^{\frac{1}{4}}\hat{\Phi}\hat{Q} - i\left(\frac{C}{4\hbar^2L} \cdot \frac{L}{4\hbar^2C}\right)^{\frac{1}{4}}\hat{Q}\hat{\Phi} + \sqrt{\frac{C}{4\hbar^2L}}\hat{\Phi}^2 \nonumber \\
&= \sqrt{\frac{L}{4\hbar^2C}}\hat{Q}^2 + i\left( \frac{1}{16\hbar^4}\right)^{\frac{1}{4}}\hat{\Phi}\hat{Q} - i\left( \frac{1}{16\hbar^4}\right)^{\frac{1}{4}}\hat{Q}\hat{\Phi} + \sqrt{\frac{C}{4\hbar^2L}}\hat{\Phi}^2 \nonumber \\
&= \sqrt{\frac{L}{4\hbar^2C}}\hat{Q}^2 + \frac{i}{2\hbar} \left(\hat{\Phi}\hat{Q} - \hat{Q}\hat{\Phi}\right) + \sqrt{\frac{C}{4\hbar^2L}}\hat{\Phi}^2 \nonumber \\
&= \sqrt{\frac{L}{4\hbar^2C}}\hat{Q}^2 + \frac{i}{2\hbar} \left [\hat{\Phi}, \hat{Q}\right ] + \sqrt{\frac{C}{4\hbar^2L}}\hat{\Phi}^2 \nonumber \\
&= \sqrt{\frac{L}{4\hbar^2C}}\hat{Q}^2 + \sqrt{\frac{C}{4\hbar^2L}}\hat{\Phi}^2 - \frac{1}{2} \tag{20}
\end{align}

となる.両辺に\hbar \omega_rを掛ければ、


\begin{align}
    \hbar \omega_r \hat{a}^{\dagger}\hat{a}
    &=
    \hbar \omega_r \left( \sqrt{\frac{L}{4\hbar^2C}}\hat{Q}^2 + \sqrt{\frac{C}{4\hbar^2L}}\hat{\Phi}^2 - \frac{1}{2}\right) \nonumber \\
    &= \frac{\hbar}{\sqrt{LC}}\left( \sqrt{\frac{L}{4\hbar^2C}}\hat{Q}^2 + \sqrt{\frac{C}{4\hbar^2L}}\hat{\Phi}^2 \right) - \frac{1}{2}\hbar \omega_r \nonumber \\
    &= \left(\frac{\hat{Q}^2}{2C} + \frac{\hat{\Phi}^2}{2L}\right) - \frac{1}{2}\hbar \omega_r \nonumber \\
    &= \hat{\mathcal{H}} - \frac{1}{2}\hbar \omega_r \nonumber \\
     \therefore \hat{\mathcal{H}} 
    &= \hbar \omega_r \left(\hat{a}^{\dagger}\hat{a} + \frac{1}{2}\right) \tag{21}
\end{align}

よって、LC並列共振回路のハミルトニアンを生成・消滅演算子で式(21)のように表すことができます。
また、式(18), (19)を用いて、\hat{Q}、\hat{\Phi}\hat{a}^{\dagger}、\hat{a}で以下のように書くことができます。
(18) + (19)より、


\begin{align}
    \hat{a}^{\dagger} + \hat{a}
    &= 2 \cdot \left(\frac{L}{4\hbar^2C}\right)^{\frac{1}{4}}\hat{Q} \nonumber \\
    \therefore \hat{Q}
    &= \left(\frac{\hbar^2C}{4L}\right)^{\frac{1}{4}} \left(\hat{a}^{\dagger} + \hat{a}\right) 
    = \left(\sqrt{\frac{\hbar^2}{LC}} \cdot \sqrt{\frac{LC^2}{4L}}\right)^{\frac{1}{2}} \left(\hat{a}^{\dagger} + \hat{a}\right)
    = \sqrt{\frac{\hbar \omega_r C}{2}}\left(\hat{a}^{\dagger} + \hat{a}\right) \tag{22}
\end{align}

(18) - (19)より、


\begin{align}
    \hat{a}^{\dagger} - \hat{a}
    &= 2i \cdot \left(\frac{C}{4\hbar^2L}\right)^{\frac{1}{4}}\hat{\Phi} \nonumber \\
    \therefore \hat{\Phi} 
    &=
    \left(\frac{\hbar^2L}{4C}\right)^{\frac{1}{4}} \left(\hat{a}^{\dagger} - \hat{a}\right)
    = \left(\sqrt{\frac{\hbar^2}{LC}} \cdot \sqrt{\frac{L^2C}{4C}}\right)^{\frac{1}{2}} \left(\hat{a}^{\dagger} - \hat{a}\right) 
    = \sqrt{\frac{\hbar \omega_r L}{2}}\left(\hat{a}^{\dagger} - \hat{a}\right) \tag{23}
\end{align}

ここから、\hat{I}、\hat{V}


\begin{align}
    \hat{I} &= \hat{\Phi}/L = \sqrt{\frac{\hbar \omega_r}{2L}}\left(\hat{a}^{\dagger} - \hat{a}\right) \tag{24} \\
    \hat{V} &= \hat{Q}/C = \sqrt{\frac{\hbar \omega_r}{2C}}\left(\hat{a}^{\dagger} + \hat{a}\right) \tag{25}
\end{align}

として表すことができます。以上の計算でLC並列共振器の量子化ができました。

【統計力学】1変数のキュミュラント展開

1変数のキュミュラント展開

\xiをパラメータ, xを確率変数として,


\begin{align}
C(\xi) &= \langle e^{\xi x} \rangle \tag{1}                                                                 
\end{align}

としてC(\xi)を定義する.ここで確率変数xの取りうる範囲は-\infty \leq x \leq \infty, 確率分布関数をf(x)とすると(1)の右辺は,


\begin{align}
\langle e^{\xi x} \rangle &= \int_{-\infty}^{\infty} e^{\xi x} f(x) dx \tag{2}                                                                 
\end{align}

で表される.(1)の右辺をx = 0近傍でテイラー展開すると,


\begin{align}
C(\xi) &= \langle 1 \rangle + \xi  \langle x \rangle + \frac{1}{2} \xi^2 \langle x^2 \rangle + \cdots \\ 
           &= \sum_{n=0}^{\infty} \frac{\xi^n}{n!} \langle x^n \rangle = \sum_{n=0}^{\infty} \frac{\xi^n}{n!} \mu_n \tag{3}                                       
\end{align}

\mu_nn次のモーメントと呼ばれる.
選ぶ確率分布によって\mu_nが無限大になることもあるが, そのような場合は除外して今後の計算をしていく(例えばローレンツ分布を選べば\mu_2, \mu_4, \mu_6, ...の偶数次のモーメントが無限大になる).
次に, (3)に自然対数を底とする対数をとって,


\begin{align}
logC(\xi) &= \sum_{n=1}^{\infty} \frac{\xi^n}{n!} \lambda_n \tag{4}                 
\end{align}

と書けるとする.このとき, \lambda_nn次のキュミュラント, (4)の展開をキュミュラント展開と呼ぶ.また,n次のモーメントのようにn次のキュミュラントは以下のように表される.


\begin{align}
\lambda_n &= \langle x^n \rangle_c \tag{5}                 
\end{align}

ところで, (3)で対数をとったときに(4)の右辺にlogがどこにいったのかが疑問なると思うので, その部分を考慮しつつ, キュミュラント展開したときの最初の数項を書き下していく.
(3)を(4)の左辺にに代入すると,


\begin{align}
logC(\xi) &= log(1 + \xi \mu_1 + \frac{1}{2!} \xi^2 \mu_2 + \frac{1}{3!} \xi^3 \mu_3 + \cdots)    
\end{align}

となる. log(1+x)x=0近傍でのテイラー展開


\begin{align}
log(1+x) = \sum_{n=1}^{\infty} \frac{(-1)^{n-1}}{n} x^n   
\end{align}

を使う.


\begin{align}
x =  \xi \mu_1 + \frac{1}{2!} \xi^2 \mu_2 + \frac{1}{3!} \xi^3 \mu_3 + \cdots
\end{align}

だと思って展開し, \xiでまとめると,


\begin{align}
logC(\xi) &= \xi \mu_1 + \frac{\xi^2}{2!} (\mu_2 - \mu_1^2) +  \frac{\xi^3}{3!} (\mu_3 - 3 \mu_1 \mu_2 + 2 \mu_1^3) + \cdots \tag{6}     
\end{align}

(6)と(4)の各項を比較していくと, 1次から3次のキュミュラントは以下のようになる.


\begin{align}
\langle x \rangle_c &= \langle x \rangle \\
\langle x^2 \rangle_c &=  \langle x^2 \rangle -  \langle x \rangle^2 \\
\langle x^3 \rangle_c &= \langle x^3 \rangle - 3 \langle x \rangle \langle x^2 \rangle + 2  \langle x \rangle^3
\end{align}

4次以降のキュミュラントは(6)の第4項以降を計算すれば得られる.

まとめ

結論としては, exp()の平均の対数はキュミュラント平均が分かれば計算できることが分かりました.統計力学では分配関数や大分配関数の対数から様々な物理量(ヘルムホルツの自由エネルギーなど)が導かれるので、この展開は必要だなと感じました(1変数では使い道は限られますが...).
多変数に拡張したキュミュラント展開の記事も今後書きたいと思います.

大阪大学基礎工学研究科 院試過去問 2019年物性物理科学I 解析力学

過去問の入手はこちらからどうぞ

大阪大学大学院基礎工学研究科物理系専攻・物性物理科学分野 過去の入試問題
http://www.gmp.mp.es.osaka-u.ac.jp/mpdept/gschoolexam/gexam.html

問1

ラグランジアン\displaystyle{\mathscr{L}}は運動エネルギーTとポテンシャルUを用いて,

\displaystyle{\mathscr{L}} = T - U

と表される.
各質点の運動エネルギーは\frac{1}{2}m\dot{x_1}^2, \frac{1}{2}m\dot{x_2}^2となるので,

T = \frac{1}{2}m\dot{x_1}^2 + \frac{1}{2}m\dot{x_2}^2

また, 各バネのポテンシャルは\frac{1}{2} k_1 {x_1}^2, \frac{1}{2} k_2 {(x_2 - x_1)}^2, \frac{1}{2} k_1 {x_2}^2となるので,


\begin{aligned}
U &= \frac{1}{2} k_1 {x_1}^2 + \frac{1}{2} k_2 {(x_2 - x_1)}^2 + \frac{1}{2} k_1 {x_2}^2 \\
    &= \frac{1}{2}(k_1 + k_2)({x_1}^2 + {x_2}^2) - k_2 x_1 x_2 
\end{aligned}

それぞれをまとめるとラグランジアン\displaystyle{\mathscr{L}}は,


\begin{aligned}
\displaystyle{\mathscr{L}} = \frac{1}{2}m\dot{x_1}^2 + \frac{1}{2}m\dot{x_2}^2 - \frac{1}{2}(k_1 + k_2)({x_1}^2 + {x_2}^2) + k_2 x_1 x_2 
\end{aligned}

問2

\displaystyle{\mathscr{L}} = \displaystyle{\mathscr{L}}(x_1, x_2, \dot{x_1}, \dot{x_2})ラグランジュの運動方程式に代入して,


\begin{aligned}
\frac{d}{dt} (\frac{\partial \displaystyle{\mathscr{L}}}{\partial \dot{x_1}}) - \frac{\partial \displaystyle{\mathscr{L}}}{\partial x_1} &= 0 \\
-k_1 x_1 - k_2 x_1 + k_2 x_2 &= m \ddot{x_1} \\
-(k_1 + k_2)x_1 + k_2 x_2 &= m \ddot{x_1}                                                                                           
\end{aligned}



\begin{aligned}
\frac{d}{dt} (\frac{\partial \displaystyle{\mathscr{L}}}{\partial \dot{x_2}}) - \frac{\partial \displaystyle{\mathscr{L}}}{\partial x_2} &= 0 \\
-k_1 x_2 - k_2 x_2 + k_2 x_1 &= m \ddot{x_2} \\
-(k_1 + k_2)x_2 + k_2 x_1 &= m \ddot{x_2}                                                                                           
\end{aligned}

となり, ニュートン運動方程式に帰着される.

問3

与えられた解x_1, x_2を問2で示した方程式に代入する. そのまま代入するとcosの部分が冗長なので,  A = acos(\omega_1 t + \alpha), B = bcos(\omega_2 t + \beta)とおいて計算する.
問2の第1式は,


\begin{align}
m(-{\omega_1}^2 A - {\omega_2}^2 B) &= -(k_1 + k_2)(A + B) + k_2 (A - B) \\
A(m {\omega_1}^2 - k_1) + B(m {\omega_2}^2 - k_1 - 2k_2) &= 0 \tag{1}                                                      
\end{align}

第2式は,


\begin{align}
m(-{\omega_1}^2 A + {\omega_2}^2 B) &= -(k_1 + k_2)(A - B) + k_2 (A + B) \\
A(m {\omega_1}^2 - k_1) - B(m {\omega_2}^2 - k_1 - 2k_2 &= 0) \tag{2}                                                                 
\end{align}

(1)+(2)より,


\begin{align}
2acos(\omega_1 t + \alpha)(m {\omega_1}^2 - k_1) &= 0 \\
\omega_1 &= \sqrt{\frac{k_1}{m}}                                                
\end{align}

(1)-(2)より,


\begin{align}
2bcos(\omega_2 t + \beta)(m {\omega_2}^2 - k_1 - 2k_2) &= 0 \\
\omega_2 &= \sqrt{\frac{k_1 + 2k_2}{m}}                                                
\end{align}

問4

各質点の角振動数が \omega_1の場合は2つの質点とも同じ向きに振動し,  \omega_2の場合は違い逆向きになる.

問5

平衡位置からの変位は,  x_1 = rsin{\theta_1}, x_2 = rsin{\theta_2}となる. また,  \theta_1, \theta_2 \ll 1であれば sin{\theta_1}, sin{\theta_2} \simeq \theta_1, \theta_2と近似できる.
問1と同様にポテンシャル Uは,


\begin{align}
U &= \frac{1}{2}(k_1  + k_2)(r^2 sin^2 \theta_1 + r^2 sin^2 \theta_2) - k_2 r^2 sin \theta_1 sin \theta_2 \\
    & \simeq \frac{1}{2} r^2 (k_1 + k_2)({\theta_1}^2 + {\theta_2}^2) - k_2 r^2  \theta_1  \theta_2                                   
\end{align}

また, 2つの円盤の回転エネルギー Tは慣性モーメント[tex: I = \frac{1}{2} M r2]を用いて,


\begin{align}
T &= \frac{1}{2} I ({\omega_3}^2 + {\omega_4}^2) \\
   &= \frac{1}{4} M r^2 ({\omega_3}^2 + {\omega_4}^2)                  
\end{align}

よってラグランジアン\displaystyle{\mathscr{L}}は,


\begin{align}
\displaystyle{\mathscr{L}} = \frac{1}{4} M r^2 ({\omega_3}^2 + {\omega_4}^2) - \frac{1}{2} r^2 (k_1 + k_2)({\theta_1}^2 + {\theta_2}^2) + k_2 r^2  \theta_1  \theta_2          
\end{align}

問6

問1と問5で求めたラグランジアンを比較する.


\begin{align}
\displaystyle{\mathscr{L}}_1 &= \frac{1}{2}m(\dot{x_1}^2 + \dot{x_2}^2) - \frac{1}{2}(k_1 + k_2)({x_1}^2 + {x_2}^2) + k_2 x_1 x_2 \\
\displaystyle{\mathscr{L}}_5 &= \frac{1}{4} M r^2 ({\omega_3}^2 + {\omega_4}^2) - \frac{1}{2} r^2 (k_1 + k_2)({\theta_1}^2 + {\theta_2}^2) + k_2 r^2  \theta_1  \theta_2          
\end{align}

ここで, [tex: \dot{x_1} = \omega_3, \dot{x_2} = \omega_4, x_1 = \theta_1, x_2 = \theta_2, m = M r2 / 2, k_1 = r2 k_1, k_2 = r2 k_2]と置き直せば2つのラグランジアンは等価なので,


\begin{align}
\omega_3 &= \sqrt{\frac{k_1}{m}} = \sqrt{\frac{2}{Mr^2 } \cdot r^2 k_1} = \sqrt{\frac{2k_1}{M}} \\
\omega_4 &= \sqrt{\frac{k_1 + 2k_2}{m}} = \sqrt{\frac{2}{Mr^2}(r^2 k_1 + 2r^2k_2)} = \sqrt{\frac{2(k_1 + 2k_2)}{M}}                                                 
\end{align}

次回

次は電磁気の解答を載せようと思います.
ミスがあったら指摘して頂けると助かります。