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

倭算数理研究所

科学・数学・学習関連の記事を、「倭マン日記」とは別に書いていくのだ!

「2つのボールをぶつけると円周率がわかる」のをしつこく確かめてみた・・・解析的に

前回の記事「「2つのボールをぶつけると円周率がわかる」らしいのでシミュレーションしてみた」の続き。 この記事では、衝突回数が円周率(の適当に桁をズラした値)になることを解析的に導いてみます。

目次

  • 問題設定
  • { n } 回衝突後の速度 { \textbf{v}^{(n)} } を求める(行列を用いた表式)
  • { C^m } を求める
  • { \textbf{v}^{(n)} } を求める
  • { N } と衝突回数 { n } との関係

問題設定

質量がそれぞれ { 100^Nm,\,m } の2つの質点 { m_1,\,m_2 } を考え、以下のような初期状態から運動が開始されるとします:

f:id:waman:20140414055439p:plain

{ m_1,\,m_2 } の初速度はそれぞれ { v,\,0 } とします(つまり質点2は最初静止している)。 質点同士の衝突と質点2と壁との衝突はどちらも完全弾性衝突(反発係数 { e = 1 })であるとし、衝突が起こらなくなるまでその衝突回数をカウントすると、その回数が { [10^N \pi] } になることを示します。 ここで角括弧 [ ] はガウス記号*1です。

{ n } 回衝突後の速度 { \textbf{v}^{(n)} }

回数をカウントする衝突には2種類あります:

  • { C_1 } : 質点同士の衝突
  • { C_2 } : 質点2と壁との衝突

前回見たように、この2種類の衝突は交互に起こります。 奇数回目の衝突は { C_1 }、偶数回目の衝突は { C_2 } です。

{ n } 回衝突した後の { m_1,\,m_2 } の速度をそれぞれ { v_1^{(n)},\,v_2^{(n)} } とおきましょう(速度は2つの質点から壁の方向を正):


f:id:waman:20140414060430p:plain

これらを成分とした2成分のベクトルを考えます(要は速度空間を考える):

  { \displaystyle
\begin{align*}
    \textbf{v}^{(n)} = \begin{pmatrix} v_1^{(n)} \\ v_2^{(n)} \end{pmatrix}
\end{align*}
}


{ \textbf{v}^{(n)} } の漸化式と初期条件
前回の結果から、2つの衝突 { C_1,\,C_2 } はこのベクトルに作用する行列として表すことができます。 奇数回目と偶数回目で衝突が異なるのでちょっと面倒ですが、{ C_1,\,C_2 } を行列と同一視して、以下のような { v^{(n)} } の漸化式が得られます:

  { \displaystyle
\begin{align*}
    \textbf{v}^{(2m+1)} &= C_1 \textbf{v}^{(2m)} \\
    \textbf{v}^{(2m)} \quad &= C_2 \textbf{v}^{(2m-1)}
\end{align*}
}

行列 { C_1,\,C_2 }前回計算していて

  { \displaystyle
\begin{align*}
    C_1 &= 
    \begin{pmatrix}
        \tfrac{r-1}{r+1} & \tfrac{2}{r+1} \\
        \tfrac{2r}{r+1} & -\tfrac{r-1}{r+1}
    \end{pmatrix}
    = \frac{1}{r+1}
    \begin{pmatrix}
        r-1 & 2 \\
        2r & -r+1
    \end{pmatrix} \\
    C_2 &= \begin{pmatrix}
        1 & 0 \\
        0 & -1
    \end{pmatrix}
\end{align*}
}

で与えられます。 ちなみに初期条件は

  { \displaystyle
\begin{align*}
    \textbf{v}_0 = \begin{pmatrix} v \\ 0\end{pmatrix}
\end{align*}
}

となります。

{ \textbf{v}^{(n)} } の一般項(行列を用いた表式)
行列 { C }

  { \displaystyle
\begin{align*}
    C = C_2C_1 = 
    \begin{pmatrix}
        \tfrac{r-1}{r+1} & \tfrac{2}{r+1} \\
        -\tfrac{2r}{r+1} & \tfrac{r-1}{r+1}
    \end{pmatrix}
    = \frac{1}{r+1}
    \begin{pmatrix}
        r-1 & 2 \\
        -2r & r-1
    \end{pmatrix}
\end{align*}
}

で定義すると、上記の初期条件と漸化式より

  { \displaystyle
\begin{align*}
    \textbf{v}^{(2m)} \quad
        &= C_2C_1C_2C_1C_2C_1 \cdots C_2C_1\textbf{v}_0 \\
        &= (C_2C_1)^m \textbf{v}_0 \\
        &= C^m \textbf{v}_0 \\[2mm]
    \textbf{v}^{(2m+1)}
        &= C_2^{-1} \textbf{v}^{(2m+2)} \\
        &= C_2 C^{m+1} \textbf{v}_0 & \left(\because C_2^{-1} = C_2\right)
\end{align*}
}

となります。 { \textbf{v}^{(2m+1)} }{ \textbf{v}^{(2m)} }{ C_1 } を作用させても得られますが、上記の方が簡単。 よって、次に { C^m } を求めましょう。

{ C^m } を求める

この節では { C^m } のもう少し簡単な形を求めます。

{ C_1,\,C } の書き換え
質点同士の衝突での速度の変換を表す行列 { C_1 } について、(1, 1) 成分と (2, 2) 成分が単に符号が異なるだけであることと、行列式

  { \displaystyle
\begin{align*}
    \left|C_1\right|
    &= \frac{1}{(r+1)^2}
        \begin{vmatrix}
            r-1 & 2 \\
            2r & -r+1
        \end{vmatrix} \\
    &= \frac{1}{(r+1)^2}\left\{-(r-1)^2-4r\right\} \\
    &= -1
\end{align*}
}

のように常に { -1 } になることを踏まえると、

  { \displaystyle
\begin{align*}
    \sin\theta &= \frac{2\sqrt{r}}{r+1}, &
    \cos\theta &= \frac{r-1}{r+1} &
    \left(\therefore \tan\theta = \frac{2\sqrt{r}}{r-1} \right)
\end{align*}
}

を満たす { \theta \; (0 < \theta \le \tfrac{\pi}{2}) }{ a = \sqrt{r} } を用いて、{ C_1 }

  { \displaystyle
\begin{align*}
    C_1 &= \begin{pmatrix}
        \cos\theta & \tfrac{1}{a}\sin\theta \\
        a\sin\theta & -\cos\theta
    \end{pmatrix} &
    \left( \tan \theta = \frac{2\sqrt{r}}{r-1},\, a = \sqrt{r}\right)
\end{align*}
}

と書けます({ r= 1 } のときは { \theta = \frac{\pi}{2} })。 もともと { C_1 }{ r } だけで書けてたので、この { \theta }{ a } は独立ではありませんが、それは後ほど。 { C_1 } をこの形に書いたとき、行列 { C }

  { \displaystyle
\begin{align*}
    C = C_2C_1 = \begin{pmatrix}
        \cos\theta & \tfrac{1}{a}\sin\theta \\
        -a\sin\theta & \cos\theta
    \end{pmatrix}
\end{align*}
}

のように回転行列みたく書くことができます。

{ C^m } を求める
上記の { C } の表式を用いると { C^m } が回転行列の冪乗のように簡単に計算できて

  { \displaystyle
\begin{align*}
    C^m = \begin{pmatrix}
        \cos m\theta & \tfrac{1}{a}\sin m\theta \\
        -a\sin m\theta & \cos m\theta
    \end{pmatrix}
\end{align*}
}

となります。 証明は数学的帰納法で。 { m=1 } のときは成り立つのは明らか({ m=0 }単位行列になるので成り立ちますが)。 { m= k } のときに成り立つと仮定すると

  { \displaystyle
\begin{align*}
    C^{k+1} &= C^k C \\ 
    &= \begin{pmatrix}
        \cos k\theta & \tfrac{1}{a}\sin k\theta \\
        -a\sin k\theta & \cos k\theta
    \end{pmatrix}
    \begin{pmatrix}
        \cos \theta & \tfrac{1}{a}\sin \theta \\
        -a\sin \theta & \cos \theta
    \end{pmatrix} \\
    &= \begin{pmatrix}
        \cos k\theta \cos \theta - \sin k\theta \sin \theta & \tfrac{1}{a}\cos k\theta \sin \theta + \tfrac{1}{a}\sin k\theta \cos \theta \\
        -a\sin k\theta \cos \theta - a \cos k\theta \sin \theta & -\sin k\theta \sin\theta + \cos k\theta\cos\theta
    \end{pmatrix} \\
    &= \begin{pmatrix}
        \cos (k+1)\theta & \tfrac{1}{a}\sin (k+1)\theta \\
        -a\sin (k+1)\theta & \cos (k+1)\theta
    \end{pmatrix}
\end{align*}
}

よって { m = k+1 } のときも成り立ちます。

{ \textbf{v}^{(n)} } を求める

以上をまとめると、{ n } 回衝突した後の速度 { \textbf{v}^{(n)} } が以下のように求まります:

  { \displaystyle
\begin{align*}
    \textbf{v}^{(2m)} \quad
        &= v\begin{pmatrix} \cos m\theta \\ -a\sin m\theta \end{pmatrix} \\[2mm]
    \textbf{v}^{(2m+1)}
        &= v\begin{pmatrix} \cos (m+1)\theta \\ a\sin (m+1)\theta \end{pmatrix}
\end{align*}
}

これで { n } 回衝突した後の速度が求まりました。 次は、{ N } (これは { r = 100^N } によって { r } と関係していて、{a,\,\theta }{ r } を使って定義されていた)と衝突回数 { n } の関係を導きます。

{ N } と衝突回数 { n } との関係

以下の手順によって、この関係を求めましょう:

  1. 衝突が起こらなくなる条件を求める
  2. ベクトル { \textbf{u}^{(n)} } を導入
  3. この条件から衝突回数 { n } と角度 { \alpha } (後述)の間の関係を求める
  4. 衝突回数 { n }{ N \; (r = 100^N) } との関係を求める

衝突が起こらなくなる条件
この条件は前回見ました。

  { \displaystyle
\begin{align*}
    v_1 \le v_2 \le 0
\end{align*}
}

衝突が { n } だけ起こるとき、{ \textbf{v}^{(n)} } が初めて上記の条件を満たせばいいことが分かります。

ベクトル { \textbf{u}^{(n)} }
ベクトル { \textbf{u}^{(n)} }

  { \displaystyle
\begin{align*}
    \textbf{u}^{(n)}
    = \begin{pmatrix} u_1^{(n)} \\ u_2^{(n)} \end{pmatrix}
    = \begin{pmatrix} v_1^{(n)} \\ \tfrac{1}{a}v_2^{(n)} \end{pmatrix}
\end{align*}
}

で定義しましょう。 このとき

  { \displaystyle
\begin{align*}
    \textbf{u}^{(2m)} \quad
        &= v\begin{pmatrix} \cos m\theta \\ -\sin m\theta \end{pmatrix} \\[2mm]
    \textbf{u}^{(2m+1)}
        &= v\begin{pmatrix} \cos (m+1)\theta \\ \sin (m+1)\theta \end{pmatrix}
\end{align*}
}

となり、これらは { u_1u_2 }-空間で円周

  { \displaystyle
\begin{align*}
    u_1^2 + u_2^2 = v^2
\end{align*}
}

上にあることが分かります。 また、衝突が起こらなくなる条件は

  { \displaystyle
\begin{align*}
    u_1 \le a u_2 \le 0
\end{align*}
}

となります。 これらを図に描くと

f:id:waman:20140415025658p:plain

となります。 角度 { \alpha }{ a = \sqrt{r} }

  { \displaystyle
\begin{align*}
    \tan \alpha = \frac{1}{a}
\end{align*}
}

で関係しています({ 0 < \alpha < \frac{\pi}{2} })。 { \textbf{u}^{(n)} } について、{ n } が奇数のものを見ていくと、{ \textbf{u}^{(0)} } から円周の上半分を反時計回りに { \theta } ずつ回転していきます。 また、{ n } が偶数のものは、その1つ前の({ n } が奇数の) { \textbf{u}^{(n)} } の真下に位置します。 つまり、円周の下半分を時計回りに { \theta } ずつ回転していきます。 衝突が起こらなくなる条件は、この円周上の点が図で示した青色の領域(境界を含む)に入ることです。

補足
前節で { \theta,\,a }{ r }

  { \displaystyle
\begin{align*}
    \tan \theta &= \frac{2\sqrt{r}}{r-1} & a = \sqrt{r}
\end{align*}
}

と関係しているので { \theta,\,a } は互いに独立ではないと書きましたが、{ a } の代わりに { \alpha }{ \theta } との関係を見ておきましょう。 正接の倍角の公式(こちらを参照)より

  { \displaystyle
\begin{align*}
    \tan 2\alpha &= \frac{2\tan\alpha}{1-\tan^2\alpha}
         = \frac{2a}{1-\frac{1}{a^2}}
         = \frac{\frac{2}{\sqrt{r}}}{1-\frac{1}{r}}
         = \frac{2\sqrt{r}}{r-1} \\
         &= \tan\theta
\end{align*}
}

となって、{ \theta = 2\alpha } であることがわかります。 したがって、行列 { C } は以下のように { \theta,\,\alpha } いずれかだけで書けます:

  { \displaystyle
\begin{align*}
    C = 
    \begin{pmatrix}
        \cos\theta & \sin\theta \cot\tfrac{\theta}{2} \\
        -\sin \theta \tan \tfrac{\theta}{2} & \cos \theta
    \end{pmatrix}
    =
    \begin{pmatrix}
        \cos 2\alpha & \sin 2\alpha \cot\alpha \\
        -\sin 2\alpha \tan \alpha & \cos 2\alpha
    \end{pmatrix}
\end{align*}
}

まぁ、この表式を使うわけではありませんが。

衝突回数 { n }{ \alpha } の関係を求める
まずは { n = 2m+1 }、つまり { n }奇数の場合。 { \textbf{u}^{(2m+1)} }偏角{ u_1 } 軸の正の部分から反時計回りに測った動径の角度)は { (m+1)\theta = 2(m+1)\alpha } です。 このとき衝突が起こらなくなる条件は

  { \displaystyle
\begin{align*}
    & \pi \le 2(m+1)\alpha < \pi + \alpha \\[2mm]
    \therefore & \frac{\pi}{\alpha} - 1 \le 2m+1 ( = n ) < \frac{\pi}{\alpha}
\end{align*}
}

偏角{ \pi + \alpha } に等しくなる場合、2回前の { 2m-1 } 回衝突したときの偏角{ \pi - \alpha } となり、その次の { 2m } 回衝突したときの偏角{ \pi + \alpha } となるので、この時点で衝突が終わります。

次は { n = 2m }、つまり { n }偶数の場合。 { \textbf{u}^{(2m)} } が円周の下半分にあることに注意して、これの偏角{ 2\pi - m\theta = 2\pi - 2m\alpha } です。 このとき衝突が起こらなくなる条件は

  { \displaystyle
\begin{align*}
    & \pi < 2\pi - 2m\alpha \le \pi + \alpha \\[2mm]
    \therefore & \frac{\pi}{\alpha} - 1 \le 2m ( = n ) < \frac{\pi}{\alpha}
\end{align*}
}

偏角{ \pi } に等しくなる場合、その1回前の { 2m } の衝突の時点で偏角{ \pi } になるので、それ以上衝突は起こりません。

以上をまとめると、衝突回数が偶数、奇数どちらの場合もまとめて書けて

  { \displaystyle
\begin{align*}
    \frac{\pi}{\alpha} - 1 \le n < \frac{\pi}{\alpha}
\end{align*}
}

もしくはガウス記号 [ ] を用いて

  { \displaystyle
\begin{align*}
    n = \left[\frac{\pi}{\alpha}\right]
\end{align*}
}

となります。

衝突回数 { n }{ N } との関係を求める
{ \alpha } が充分小さいとき({ N } が充分大きいとき)、

  { \displaystyle
\begin{align*}
    \alpha \sim \tan \alpha = \frac{1}{a} = \frac{1}{\sqrt{r}} = \frac{1}{10^N}
\end{align*}
}

が成り立つので、結局衝突回数 { n }

  { \displaystyle
\begin{align*}
    n = \left[10^N \pi \right]
\end{align*}
}

で与えられます。 前回行ったシミュレーションでは、{ N } が充分大きいという条件は必要なく、0以上の自然数で成り立っていましたが、評価が面倒なのでこの辺で終了。

まとめ

思ったより長い導出になりましたが(最後の近似の評価は投げたけど)、一応高校の数学と物理の知識で大体出せましたね。 と言いつつ、行列は高校の数学からなくなったらしいですが。 まぁこういう話は、導出はある程度理解できても、そもそも「衝突回数が円周率を与える」ということに気付くなんてことがそう簡単にできねぇよ、という結論になってしまうんですが。 原論文とか読めばそのあたりのことも書かれてるのかもしれませんが、あんまり読む気しない・・・ ビリヤードっぽい基本的な力学系なら、量子ビットか何かの関連で量子系への拡張することを念頭においてまずは古典系でやってみた、みたいなもんじゃないかと推測してみたり。

ちなみに
この記事は海外では1ヶ月前くらいに雑誌に掲載されたとか書いてましたが、3月といえば3月14日の円周率の日にネタとして載ってたのかな?
不思議な数πの伝記

不思議な数πの伝記

*1:挟まれた数を超えない最大の整数を与える。