8の字走行の考察

このページでは、「8の字歩行」の際に、どれくらいハンドルを切ればよいか、数式を使いながら考えてみたい。

亀の方向

8の字走行する際、1ステップの歩幅はいつも一定($\Delta s$としよう)として、全部で$N$ステップを要して1周できるよう、角度を調整したい。 $k$番目のステップでのハンドルの切れ角(ラジアン)を $$ \Delta \theta(k) = -A \cos( 2\pi k /N ) $$ としたとき、8の字歩行して元の位置に戻って来ることができるような$A$の値を求めるのが、このページの目標だ。

区分求積法: $$ \lim_{N\to\infty}\frac{1}{N}\sum_{j=0}^k f\left(\frac{j}{N}\right) = \int_0^{\frac{k}{N}} f(t)dt $$

$k$ステップ目に、亀が向いている方向は、最初は$\pi/2$(上)を向いていたのだから $$ \theta(k) = \pi/2 + \sum_{j=0}^{k} \Delta \theta(j) = \pi/2 - A \sum_{j=0}^{k} \cos(2\pi\,j/N) $$ となる。$N$が十分大きければ、総和は積分で近似できるから $$ \begin{eqnarray} \theta(k) & \approx & \pi/2 - A N \lim_{N\to\infty} \frac{1}{N} \sum_{j=0}^{k} \cos\left(2\pi\frac{j}{N}\right) \\ & = & \pi/2 - A N \int_0^{k/N} \cos(2\pi t)dt \\ & = & \pi/2 - \frac{A N}{2\pi} \sin\left(2\pi \frac{k}{N}\right) \end{eqnarray} $$

x方向とy方向の移動量

$k$ステップ目の方向角が解ったら、それを使って$k$ステップ目に亀のx方向、y方向それぞれの移動量が計算できる。 x方向の移動量は $$\Delta x(k) = \Delta s \cos(\theta(k))$$ y方向は $$\Delta y(k) = \Delta s \sin(\theta(k))$$ となる(ここで、歩幅$\Delta s$は一定と仮定している)。

$k$ステップ目の亀の角度の式を使い、$N$が十分大きいとして総和を積分で近似すると、亀が1周歩いた際、出発地点からx方向にどれだけ距離したかは $$ I_x = \sum_{k=0}^N \Delta x(k) \approx \Delta s N \int_0^1 \cos\left(\pi/2 - \frac{A N}{2\pi} \sin(2\pi t)\right)dt $$ で与えられる。y方向についても同様に $$ I_y = \sum_{k=0}^N \Delta x(k) \approx \Delta s N \int_0^1 \sin\left(\pi/2 - \frac{A N}{2\pi} \sin(2\pi t)\right)dt $$ となる。 亀が元の位置に戻ってくるためには、当然$I_x=0$かつ$I_y=0$でなければならない(上の式で、和を積分で近似した)。 すると、解くべき問題は、上の積分が$I_x=0$,$I_y=0$となるような$A$の値を求めること、となる。

横方向の移動量を計算する

$\cos(-x)=\cos(x)$, $\cos(x-\pi/2)=\sin(x)$

まず$I_x$について考えてみよう。$I_x$の積分のところだけ取り出して、三角関数の性質を使って、少し変形すると $$ \int_0^1 \cos\left(\pi/2 - \frac{A N}{2\pi} \sin(2\pi t)\right)dt = \int_0^1 \sin\left(\frac{A N}{2\pi} \sin(2\pi t)\right)dt $$ さらに$2\pi t= t'$と変数変換すると $$ = \frac{1}{2\pi} \int_0^{2\pi} \sin\left(\frac{A N}{2\pi} \sin(t')\right)dt' $$ となる。ここで$t''=t'-\pi$と座標をずらすと $$ = \frac{1}{2\pi} \int_{-\pi}^{\pi} \sin\left(-\frac{A N}{2\pi} \sin(t'')\right)dt'' $$ となるが、この式をよく眺めると、非積分関数は$t''$の奇関数になっている。 つまり、計算するまでもなく、明らかに $$ I_x =0 $$ が言えた。つまり、$N$が十分大きければ、$A$の値に依らず横方向には亀は元の場所に必ず戻って来る(はずだ)。

縦方向の移動量を計算する

$\sin(-x)=-\sin(x)$, $\sin(x-\pi/2)=\cos(x)$

では次に、$I_y$について調べてみよう。 三角関係の性質を使うと、上の積分は $$ I_y = - \Delta s N \int_0^1 \cos\left(\frac{A N}{2\pi} \sin(2\pi t)\right)dt $$ となる。$2\pi t = t'$と変数変換すると、積分のところは $$ \frac{1}{2\pi} \int_0^{2\pi} \cos\left(\frac{A N}{2\pi} \sin(t') \right) dt' $$ と変形できる。

ベッセル関数については、理数系の学部では2年生くらいで学ぶ

上の式は、三角関数の中に三角関数が入り込んだ、ちょっと奇妙な格好の積分だが、これは理工学の分野では しばしば登場する第一種のベッセル関数$J_0(z)$ $$ J_0(z) = \frac{1}{2\pi} \int_0^{2\pi} \cos(z \sin(t)) dt $$ で表すことができる。

ベッセル関数のゼロ点、すなわち$J_0(z)=0$となるような$z$の値は、数表などを調べれば載っていて $$ z = 2.40482, 5.52007, 8.65372, 11.79153, \dots $$ と沢山(無限個)ある。 つまり、 $$ \frac{A N}{2\pi} = 2.40482, 5.52007, 8.65372, 11.79153, \dots $$ であるような$A$の値であれば、亀は縦方向にも同じ位置に戻ってきてくれることになる。

たとえば、最初のゼロ点で試すとすると $$ A = 2.40482 \times 2 \pi / N $$ これを「度」に換算すると $$ A = 2.40482 \times 2 \pi / N \times 180 / \pi = 2.40482 \times 360 / N \;\; \textrm{degree} $$ ということになる。

こうして、$A$の満たすべき条件(必要条件)がわかった。 $A$を大きくすれば、ハンドルを切る角度を急にするわけだから、何度もくるくると回転することになるだろうことは容易に想像できる。 ハンドルを、右→左→また右、と切り返すことによって元の位置に戻って来ることのできるいちばん「単純な」図形が8の字だとすると、 $z=2.40482$のゼロ点がそれに対応するだろうことは、想像に難くない。

補足

8の字型の曲線の例として、ベルヌーイのレムニスケートが 良く(?)知られているが、ここで描こうとしている曲線とは少し形が異なる。

8の時歩行は、ぐるりと回って元の場所に戻って来たときに、亀は0回転したことになる(左回転と右回転がちょうどキャンセルする)。 ところが、ちょうど亀が正味n回転してから元の位置に戻ってくるような周り方も可能なはずだ。 そのような状況では、上の議論のベッセル関数$J_0(z)$のところを、$n$次のベッセル関数$J_n(z)$とすれば、同様な議論が可能である。