指数法則を満たす非連続関数

『さらっと言うと、要は、選択公理を認めると f(mn)=f(m)+f(n) を満たす不連続関数が作れてしまう。』
以下にあった、気になる数学ネタ。
* PRMLガール 〜 文芸部のマネージャーが「パターン認識機械学習」を読んだら
>> http://d.hatena.ne.jp/n_shuyo/20130117/prml
このブログ記事には書籍版があって、「あとがきがわりのACガール」にもう少し詳しい解説があります。

当初は「何のこっちゃ?」と思っていたのですが、最近ようやく意味が分かってきたので、以下につらつらと書いてみます。
PRMLガールでは対数について書かれていましたが、ここでは指数について書きます。)

関数 f が、全ての実数 x, y について、

f(m + n) = f(m)・f(n)

という関係を満たすとき「f は指数法則を満たす」ということにしましょう。
指数法則を満たす連続関数は、いわゆる指数関数 f(x) = a^x しかありません。
なぜかというと、

【Step.1】 自然数 n については・・・
f(n) = f(n-1)・f(1) = f(n-2)・f(1)・f(1) = ・・・ = {f(1)}^n
  ここで a := f(1) と置けば、f(n) = a^n となる。


【Step.2】 0については・・・
f(0) = f(0 + 0) = f(0)・f(0) = f(0)・f(0)・f(0)
  よって、f(0) = 1


【Step.3】 マイナスの数については・・・
1 = f(0) = f(n - n) = f(n)・f(-n)
  よって、f(-n) = 1 / f(n)


【Step.5】 分数については・・・
f(1) = f( 1/n + 1/n + 1/n ・・・ ) = {f(1/n)}^n
  よって、f(1/n) = n√f(1) = n√a
    ※ n が偶数の場合、f(1/n) = ± n√a という正負の2つが考えられるが、
    ※ f が自然に連続となるようなプラスの方を採用することにする。


【Step.6】
  あとは有理数の極限をとって、連続となるように実数全体に拡大する。

なので、滑らかな連続関数に限れば f(x) = a^x となるのですが、
ここで連続関数という制限を取っ払って、病的な非連続関数もありにすれば、
指数法則を満たす関数はもっと他にもあるのではないでしょうか。

そう思って上を見直すと、最後の【Step6】を見直せば別の関数が構成できそうです。
病的な関数を探す(でっち上げる)作戦として、実数全体を、
 ・集合A:有理数と、
 ・集合B:集合Aに含まれない無理数
の2つに分けることを考えます。
そして、
 ・集合Aに含まれる数 x については f(x) = a exp(x)
 ・集合Bに含まれる数 y については f(y) = b exp(y)
のように、A,Bそれぞれに異なる大きさの指数関数をあてがえば、思惑通りの関数が作れそうです。

しかしながら、話はそう単純ではありません。
集合Bに属する無理数の中で、(無理数) + (無理数) = (有理数) となるような数があるからです。
例えば (1-√2)という数も、(1+√2)という数も無理数ですが、
2つを足した (1-√2) + (1+√2) = 2 は有理数となります。
そうなると、集合Bに含まれる数の足し算の結果が集合Aにはみ出してしまい、AとBがきっちり分かれません。

何とかして、集合Bに含まれる無理数同士の足し算を、集合Bの中に閉じ込めておくことはできないか。
そこで登場するのが「同値類」というアイデアです。
実数全体を、足し算の結果がお互いにはみ出さないような、たくさんの(無数の)集合に分けることを考えてみましょう。

実数全体を「有理数×無理数」の巨大な(無限の)表に並べることを考えます。
まず、実数Rに含まれる全ての無理数を横一列に並べます。(数直線を引いて、有理数の点だけを削除します。)
とある1つの無理数 x を選び、もし x の有理数倍 a x が他の無理数 y と一致したら、その一致した先の無理数 y を削除します。
たとえば無理数πを選び出したとき、その有理数倍 2π, 3π, 1/5π, -6/7π・・・ などなどを、ことごとく消せ、ということです。
πという子が1人いれば、他は全て「いらない子」です。

この作業をとことん繰り返せば、ついにはどの無理数有理数倍しても、他の無理数と重ならない状況ができるはずです。
本当に「いる子」だけが残った状況です。
削除の結果、全ての無理数が消えてしまうことはありません。
たとえば π と √2 の有理数倍が重なることは無いので、少なくともこの2つは残るでしょう。
(残った無理数)×(有理数) の巨大な掛け算の表を作れば、その作り方からして、
掛け算の表には(0を除く)全ての実数が、落ちや重なり無く掲載されているはずです。
「掛け算九九」ならぬ、「掛け算有理・無理」というわけです。
※ 同じ考え方で、代数的無理数超越数を掛け合わせた「掛け算代数無理・超越」の表もできると思います。

ここまでサラリと書きましたが、この巨大な掛け算表が本当に作れるかどうかは自明ではありません。
というのも、どの無理数を「いる子」と認め、どれを「いらない子」とするか、決め手が無いからです。
決め手が無い、というのは、いったいどこから手を付けてよいのか、順序立てて処理する手順(アルゴリズム)が無い、ということです。
1つ1つの実数を1列に順序立てて整列することができない、と言い換えても良いでしょう。
たとえば、最大の無理数を「いる子」にしようとしても、最大の無理数というものはありません。
最小の無理数も存在しませんし、最も1に近い無理数もありません。
確かに、πという1個の無理数を取り出してしまえば、π×1だけが「いる子」で、残りは「いらない子」にすることはできます。
有理数を順序立てて処理する手順は存在する。)
しかし、実数の中から全ての無理数を順序立てて取り出す方法が存在しないのです。

『どれも空でないような集合を元とする集合(すなわち、集合の集合)があったときに、それぞれの集合から一つずつ元を選び出して新しい集合を作ることができる』
これを「選択公理」と言います。>> wikipedia:選択公理
上の「有理数×無理数の巨大な掛け算表」は、選択公理を前提として、初めてできることだったのです。
※ 参考: バナッハ・タルスキーのパラドックス >> [id:rikunora:20091021]

※ あと、実数を一列に並べることができるとする「整列可能定理」は選択公理と同値な主張です。(8/16追記)
※ >> wikipedia:選択公理には、選択公理と等価な命題として、整列可能定理、ツォルンの補題、テューキーの補題、などが上げられています。

巨大な掛け算表の、縦一列の並びを「同値類」と言います。
たとえば πの同値類は、2π, 3π, (1/5)π, -(6/7)π・・・ などなど、(有理数)×π という形の数の集まりです。
√2 の同値類は、2√2, 3√2, (1/5)√2, -(6/7)√2・・・ などなど、(有理数)×√2 という形の数の集まりです。
有理数それ自身は、(有理数)×1 という形の同値類に集めることにしましょう。
(この1の列だけは、例外的に1という有理数を持ってきます。1のことを単位元と言います。)
それぞれの同値類には“有理数個”の(加算無限の)要素が含まれています。
そしてこの同値類は、無数に(非加算無限)あります。

・実数 x, y の同値関係を、任意の有理数 a によって x 〜 a y と定義する。
・この同値関係によって、0 を除いた実数 R\{0} を同値類に類別できる。
・(R\{0},・) という乗法群を、有理数の乗法 (Q\{0},・) という部分群で割った剰余群 R/Q が構成できる。

類別を終えた後、とある1つの同値類の中での足し算を考えてみましょう。
たとえば πの同値類の中での足し算、2π+3π=5π, 1/5π+(-(6/7)π)= -23/35π などの答は、
全て同じπの同値類に含まれています。
それというのも、有理数の足し算は有理数の中で閉じているため、
(有理数)×π という形の数同士の足し算の答は (有理数有理数)×π になるからです。
  a π + b π = (a + b) π
どの同値類であっても、同値類の中での足し算は、その同値類の中だけで完結し、他の同値類にはみ出すことはありません。

次に、異なる2つの同値類の間での足し算を考えてみます。
同値類の中には、代表要素(いる子)が π や √2 などといった単純に見えるものと、
(2π+3√2) や (5/6π - 7/8√2) などといった複合的に見えるものがあります。
 ※ (2π+3√2) は (有理数)×πでも、(有理数)×√2 でも無いので、
 ※ πの同値類でもなく、√2の同値類でもない、また別の同値類に入っているのです。

そこで、同値類の代表要素について、次の概念を導入しましょう。

・代表要素 z が、他の代表要素 x1, x2, x3・・・ と、適切な有理数 a1, a2, a3・・・ を用いて
   z = a1 x1 + a2 x2 + a3 x3 + ・・・
 となるとき、z は一次従属であると言う。(複合的に見える)

・代表要素 z が、他の代表要素 x1, x2, x3・・・ と、どんな有理数 a1, a2, a3・・・ を用いても
   z = a1 x1 + a2 x2 + a3 x3 + ・・・
 とはならないとき、z は一次独立であると言う。(単純に見える)

この、一次従属、一次独立という概念によって、同値類の代表要素は2種類に分けることができるはずです。
具体的にどんな操作を行って分類するかは分かりません。非加算無限あるので、想像すらつきません。
でも、分けるための基準ははっきりしているのですから、
とにかく全ての代表要素が一次従属と一次独立に分かれたものとしましょう。
そして、全ての同値類の中から一次従属なものを取り除いて、一次独立なものだけを残しましょう。

こうして残った「縦に有理数×横に一次独立な代表要素」の表を用いて、
(0を除く)全ての実数は、表の中にある数の足し算で一意に表すことができます。
別の言い方をすれば、(0を除く)全ての実数は、表に残った一次独立な代表要素に分解できます。

※ 足し算のやり方が一意であることは、次のようにして分かります。
※ いま、とある数 z が、
※  z = a1 x1 + a2 x2 + a3 x3 + ・・・ と、
※  z = a1' x1 + a2' x2 + a3' x3 + ・・・ のように、
※ 2つの異なるやり方で分解できたとしましょう。(一部の an = 0 であるケースも含めて。)
※ 2つの式の差をとって、
※  (a1 - a1') x1 = (a2' - a2) x2 + (a3' - a3) x3 + ・・・
※ となりますが、これは x1 が一次独立であったという仮定に反します。

一次独立な代表要素のことを「基底」と呼んでいます。
全ての実数は、基底の一次結合((有理数)×(基底)の足し算)として表されます。
幾何学的なイメージを思い浮かべるなら、基底とは、多次元空間の各次元の軸のようなものです。
3次元空間であれば、全ての点は
  ax + by + cz
で表されるでしょう。
(x, y, z) はそれぞれ (縦, 横, 高さ) に相当する基底です。
同じように、実数という空間は無限次元
  a1 x1 + a2 x2 + a3 x3 + ・・・
で表されることになります。
 ※ こうした幾何学的イメージを持てば、ここまで(0を除く)と入れてきた注釈がうまく空間の中に収まります。
 ※ すなわち、空間の原点に0を当てはめればよいのです。

さて、だいぶ目的に近づいてきました。
当初の目的は、指数法則 f(m + n) = f(m)・f(n) を満たす関数作りでした。
実数全体を同値類という無数の集合に分けた後、それぞれの同値類について、適当に異なる定数を加えます。

たとえば f という関数を、以下のように定義します。

・与えられた数 m を、基底 m = a1 x1 + a2 x2 + a3 x3 + ・・・ に分解する。
・各基底ごとに異なる適当な定数 c を定める。
  c はわりと何でもよいのだが、たとえば次のようなルールで定める。
  基底 xn を10進数表記で表し、最初に出てきた 0以外の数字 c(xn) を取り出す。
  たとえば基底がπであれば、π=3.1415…なので、c(π) = 3。
  基底が√2だったら、√2=1.414…なので、c(√2) = 1。
・すべての規定について an xn + c(xn) を足し合わせた結果の指数関数を、関数 f として定義する。
  基底ごとに異なる適当な定数 c(xn) を足す、というところがミソ。
  f(m) = exp( Σ[n]{ an xn + c(xn) } )

例:
 m = 1π + 2√2
 n = 3π + 4√2
のとき、
 f(m + n)
   = exp( 1π + 3 + 2√2 + 1 + 3π + 3 + 4√2 + 1 )
   = exp( 1π + 2√2 )・exp( 3π + 4√2 )・exp(3)・exp(1)・exp(3)・exp(1)
 f(m)・f(n)
   = exp( 1π + 3 + 2√2 + 1)・exp(3π + 3 + 4√2 + 1 )
   = exp( 1π + 2√2 )・exp(3)・exp(1)・exp( 3π + 4√2 )・exp(3)・exp(1)

確かに、この関数は指数法則を満たしているぞ。
この関数 f をグラフに描けば、exp(n)倍という整数刻みで分裂した、穴だらけの指数関数として表されることでしょう。
あるいは、

・適当な定数 c を、基底と同じ値に定める。
 たとえばπという基底に付ける定数はπ。√2という基底に付ける定数は√2。
  f( 1π + 2√2 ) = exp( 1π + π + 2√2 + √2 )

といった方法で関数 f を作ったなら、この関数 f のグラフは(y>0の)平面上をびっしりと埋め尽くす、穴だらけの指数関数となるでしょう。

検索したら、こんな記事があった。なるほど。
* ハメル基底とf(x+y)=f(x)+f(y)をみたす関数
>> http://math-note.xyz/set-theory/application-of-hamel-basis/

フィボナッチ数列と微分方程式の間

フィボナッチ数列の行列表示

フィボナッチ数列とは、1, 1 から出発して、
 1+1=2、1+2=3、2+3=5、3+5=8 のように、
2つの数字を次々と足し合わせてできる数列のこと。
 ※ 0, 1 から出発して、0+1=1、1+1=2、としても、その先は同じになる。
フィボナッチ数列を Fn という記号で表せば、

  F1 = F2 = 1,
  Fn+2 = Fn+1 + Fn  (n = 1, 2, 3, ・・・)

驚きなのは、このフィボナッチ数列の一般項(n番目の数字)が

   Fn = \frac{1}{\sqrt{5}} \left\{ (\frac{1+\sqrt{5}}{2})^n + (\frac{1-\sqrt{5}}{2})^n \right\}

という式になることだ。
なぜこうなるかは、ググれば出てくると思うので、ここでは少し趣を変えて「行列」という見方をしてみよう。

平面上の (a, b) という点を、(b, a + b) という点に移す2×2行列を考える。

   \begin{pmatrix} 0 \quad 1 \\ 1 \quad 1 \end{pmatrix} \begin{pmatrix} a \\ b \end{pmatrix} = \begin{pmatrix} b \\ a+b \end{pmatrix}

この変換行列をAと名付けておこう。
行列Aで、点(1, 1) からスタートして次々に変換を繰り返せば、フィボナッチ数列ができあがる。

   \begin{pmatrix} 0 \quad 1 \\ 1 \quad 1 \end{pmatrix} \begin{pmatrix} 1 \\ 1 \end{pmatrix} = \begin{pmatrix} 1 \\ 2 \end{pmatrix}
   \begin{pmatrix} 0 \quad 1 \\ 1 \quad 1 \end{pmatrix} \begin{pmatrix} 1 \\ 2 \end{pmatrix} = \begin{pmatrix} 2 \\ 3 \end{pmatrix}
   \begin{pmatrix} 0 \quad 1 \\ 1 \quad 1 \end{pmatrix} \begin{pmatrix} 2 \\ 3 \end{pmatrix} = \begin{pmatrix} 3 \\ 5 \end{pmatrix}
    ・・・

変換の様子をグラフにプロットしてみよう。

青い点の折れ線が、(1, 1)からスタートしたフィボナッチ数列だ。
オレンジの折れ線は、試しに(1, 4)からスタートした数列を描いたものだ。
見ての通り、どちらの数列もジグザクを繰り返しつつ、とある一本の直線に漸近している。
実はこの直線の傾きが (1+√5)/2 なのである。この傾きを「黄金比」とも言う。

どのようにして、この直線が出てくるのか。
Aという行列は、
 ・点 (1, 0) を (0, 1) に、
 ・点 (0, 1) を (1, 1) に、
移す変換のことである。
グラフの上では、
 ・赤い実線の矢印を、赤い点線の矢印に、
 ・青い実線の矢印を、青い点線の矢印に、
移す変換となる。(グラフ上では長さ1ではなく、5倍の長さの矢印を描いた。)
この変換によって、ピンク色の正方形は斜め45度で裏返された後、水色の平行四辺形に引き伸ばされた形となる。
この、裏返し->引き伸ばし、裏返し->引き伸ばし・・・が繰り返される様子を想像すれば、
平面全体が、引き伸ばされる方向に流れてゆくイメージが浮かぶだろう。
その流れる先が、黄金比の傾きを持つ直線となるのである。

■ 行列の対角化

この流れる先を計算する方法が「行列の対角化」だ。
対角化とは、ざっくばらんに言えば、行列による変換を回転操作と拡縮操作に分解することだ。
行列Aによる変換を、伸び縮みの方向がちょうど縦横(xy座標軸)となるように、うまい具合に回転する。
(正確に言うと、2本の基底ベクトルをそれぞれ回転して、xy座標軸に重なるようにセットする。
 なので、単なる回転ではなく、ひしゃげた回転とでも言うべきものだ。)
この状態で縦横に(xy座標軸の方向に)拡縮した後、再び逆の回転操作を行って元に戻す。

 (変換A) = (回転P)・(拡縮D)・(逆回転P^-1)


このように、とある変換を回転と拡縮に分解できれば、
変換Aの繰り返しは、以下のように拡縮Dの繰り返しに落とし込むことができる。


  A^n = (P・D・P^-1)・(P・D・P^-1)・(P・D・P^-1)・・・(P・D・P^-1)
    = P・D・(P^-1・P)・D・(P^-1・P)・D・(P・D・P^-1)・・・D・P^-1
    = P・D^n・P^-1

見ての通り、一回前の(逆回転P^-1)と、続く(回転P)が互いにキャンセルし合って、
 (変換A)^n = (回転P)・(拡縮D)^n・(逆回転P^1)
となるわけだ。

拡縮Dをn回繰り返した結果は、少し考えれば分かる。
例えば、横に2倍、縦に3倍拡大する変換をn回繰り返した結果は、
横に 2×2×2・・・ = 2^n倍、縦に3×3×3・・・ = 3^n倍だ。
一般に、横の拡大率をλ1、縦の拡大率をλ2とすれば、

   D^n = \begin{pmatrix} \lambda_1 \quad 0 \\ 0 \quad \lambda_2 \end{pmatrix}^n = \begin{pmatrix} \lambda_1^n \quad 0 \\ 0 \quad \lambda_2^n \end{pmatrix}

※ 縦横の拡縮を行列で書けば対角行列となるので「対角化」と言うわけだ。

問題はどうやって、行列Aをうまい具合に回転と拡縮に分解するか、なのだが、
ここで登場するのが固有ベクトルという概念だ。
固有ベクトルとは、行列の変換によって向きを変えないベクトルのことだ。
上のフィボナッチ数列の例で言えば、点列の流れる先の、黄金比の傾きを持つ直線のことだ。
変換によって向きを変えないベクトルは、それがそのまま平面全体の拡縮の方向を示している。
そのような「向きを変えない不動のベクトル=拡縮方向のベクトル」が見出せれば、
あとはその固有ベクトルをxy座標軸に重なるように持って行くことで、目的を達成できる。

固有ベクトルは必ずしも平面グラフに描けるとは限らないが、複素数まで含めて考えれば、必ずどこかにある。
※ また、複数の固有ベクトルがたまたま重なって一致することもある(重解)。
* 複素数固有ベクトル >> d:id:rikunora:20161208

固有ベクトルの求め方は、やはりググれば出てくるだろうから、簡単に。
固有ベクトルとは、「変換行列Aを施した結果が、やはり元のベクトルのλ倍となっている」ベクトルのことである。

   A \begin{pmatrix} x \\ y \end{pmatrix} = \lambda \begin{pmatrix} x \\ y \end{pmatrix}

0でないベクトル(x, y)に変換を施した結果が0になるためには、変換の行列式が0である必要がある。

   \left\| \begin{pmatrix} a - \lambda \quad b \\ c \quad d - \lambda \end{pmatrix} \right\| = 0
   (a - \lambda)(d - \lambda) - b c = 0   ・・・これを「固有方程式」と言う。

2x2行列の場合、この2次方程式を解くことで、まずλが求まる。
このλのことを固有値と言う。(2次方程式なので、λは2つ出てくる。)
固有値とは、つまり固有ベクトルに沿った拡大率・縮小率のことだ。
得られたλを元の変換に代入して、固有ベクトルが見出せる。
(2つのλに対して、固有ベクトルも2本出てくる。2本の固有ベクトルは互いに直交している。)

こうして得られた固有ベクトルを並べて作った行列が、回転操作Pに相当する。
なぜなら回転操作Pとは、xy座標軸(1,0)と(0,1)を固有ベクトルに重ねる(変換する)操作のことだからだ。
そして、対角行列Dとは、固有値を対角線上に並べた行列になる。
なぜなら対角行列Dは、横にλ1、縦にλ2 拡縮する操作のことだからだ。
最後の逆回転操作 P^-1 は、回転操作Pの逆行列となる。
* 固有ベクトルが直交するのは >> d:id:rikunora:20090307
* 固有ベクトルが直交するのは(2) >> d:id:rikunora:20110203

上の手順でフィボナッチ数列の行列を対角化すれば、結果はこうなる。

   \begin{pmatrix} 0 \quad 1 \\ 1 \quad 1 \end{pmatrix}^n = \begin{pmatrix} - \alpha \quad -\beta \\ 1 \quad 1 \end{pmatrix} \begin{pmatrix} \beta \quad 0 \\ 0 \quad \alpha \end{pmatrix}^n \left\{ \frac{1}{\alpha-\beta} \begin{pmatrix} -1 \quad -\beta \\ 1 \quad \alpha \end{pmatrix} \right\}
  ここで  \alpha = \frac{1+\sqrt{5}}{2}, \quad \beta = \frac{1-\sqrt{5}}{2} .

一見複雑に見えるが、これを整理すると、最初に書いたフィボナッチ数列の一般項の式に一致する。

以上はフィボナッチ数列の話だったのだが、同じ方法が他の漸化式一般にも使えることは明らかだろう。
例えば、3つの数字を次々と足し合わせてできるトリボナッチ数列であれば、次の行列を対角化することで一般項が求められる。

   \begin{pmatrix} 0 \quad 1 \quad 0 \\ 0 \quad 0 \quad 1 \\ 1 \quad 1 \quad 1 \end{pmatrix}  \begin{pmatrix} a \\ b \\ c \end{pmatrix} = \begin{pmatrix} b \\ c \\ a+b+c \end{pmatrix}

 ※ トリボナッチ数列の場合、固有方程式が3次方程式となるので、一般項はかなり複雑になる。
 ※ 数式処理ソフトMathematicaを使って計算した結果を、記事の最後に貼り付けておいた。

■ 漸化式から微分方程式

さて、漸化式をわざわざ行列に書き直したのは、次につなげたかったからだ。
 『漸化式のステップを、うんと細かくしたもは、微分方程式となる。』
漸化式は整数ステップで進行するが、これを極めて小さなステップで進めれば、微分方程式となる。
つまり漸化式の整数nを、実数tに置き換えたものが微分方程式なのである。
具体的に、フィボナッチ数列を細かく刻んだ微分方程式は、こうなる。

  Fn+2 = Fn+1 + Fn    ・・・フィボナッチ数列
  X(t)''= X(t)'+ X(t)   ・・・対応する微分方程式

この微分方程式の解は、以下の通り。

   X(t) = C_1 \, e^{ \frac{\sqrt{5}+1}{2} t } + C_2 \, e^{ - \frac{\sqrt{5}-1}{2} t }

この解は明らかに、フィボナッチ数列の一般項の類似物だ。

フィボナッチ数列と同じように、微分方程式を行列に書き直してみよう。
X(t) の微分 X(t)' を V(x) という記号に置き換える。
すると2階の微分方程式は、このような2本の連立微分方程式に書き直せる。

      V(t) = X'(t)
  X(t) + V(t) = V'(t)

この2本の式をさらに、行列でまとめれば、こうなる。

   \begin{pmatrix} 0 \quad 1 \\ 1 \quad 1 \end{pmatrix} \begin{pmatrix} X(t) \\ V(t) \end{pmatrix} = \frac{d}{dt} \begin{pmatrix} X(t) \\ V(t) \end{pmatrix}

結局のところ、漸化式も(線形)微分方程式も、コアとなる部分は「行列の繰り返し操作」だったのだ。

この微分方程式の解法については、やはりググれば見つかると思うので、繰り返さない。
 ※「定数係数 2階線形同次微分方程式」などでググってみよう。
この微分方程式を解くためには、まず以下のような二次方程式を解く。

   \lambda^2 - \lambda - 1 = 0   ・・・特性方程式

この「微分方程式を代数方程式に置き換えたような式」のことを特性方程式と言うのだが、
この特性方程式の正体は、実は先ほど行列の対角化に見た固有方程式(の同等物)なのである。
コアとなる行列が同じなのだから、解き方も同じなのだ。

特性方程式を解くと、平面全体の拡縮率であるλが得られる。
微分方程式の場合、このλまで求まれば、それで一般解を組み立てることができる。
というのも微分方程式の一般解は、2つの独立な解の組み合わせ(線形結合)でカバーできるからだ。
数列のときに考えた回転操作Pも、所詮は線形結合なので、わざわざ回転させる必要が無い。
どの2つの独立な解を選んでもかまわないのであれば、通常は最も単純な「λ1倍拡縮」と「λ2倍拡縮」の線形結合を選ぶだろう。
 ※ 回転操作は積分定数 C1, C2 が吸収しているわけだ。

なぜ微分方程式の一般解は、線形結合でカバーできるのか。
元を正せば、今行っている操作が全て、ベクトルの足し算と掛け算の組み合わせ(1次式)の範囲内だからだ。
なので、平面であれば、とにかく2本の元になるベクトル(特殊解)さえ見つかれば、あとはその組み合わせで作り出せるわけだ。



■ なぜ  e^\lambda なのか

漸化式と微分方程式を比べたとき、漸化式では、繰り返し操作が対角行列  D^n となっているのに対し、
微分方程式では、特性方程式の解λを  e^{\lambda t} のように、e の累乗とするところが著しく異なっている。
この e (自然対数の底) は、どこから湧いて出てきたのだろうか。

実は、 e という数は、整数ステップを無限小ステップに組み直す過程で立ち現れる数なのだ。
e の素性を知るために、単純な漸化式 An+1 = 2 An を考えてみよう。
1, 2, 4, 8, 16 ・・・ のように、自分自身を2倍にする数列は、
「次の項までの差分が自分自身の値に等しい」という性質を持つ。
  An+1 - An = An
たとえば3番目の項「4」と、その次の「8」の差は、8−4=4となっている。
ただ、これは漸化式が整数ステップだからであって、同じことを小数ステップで行うと結果が違ってくる。

2倍に増える数列を、1年間で100%の利子が付く銀行に例えてみよう。
1年で100%の利子が付く銀行に、1000円の預金を1年間預けたら、2000円になって戻ってくる。
これを半年ステップに分割し、最初の半年で増えた預金を全ていったん引き落とし、再び預け直したら、どうなるか。
 ・まず最初の半年で 1000円×(1+(1/2)) = 1500円に増え、
 ・残りの半年で 1500円×(1+(1/2)) = 2250円となる。
同じように、これを3ヶ月ごとのステップに4分割したならば、
 ・1000×(1+(1/4)) = 1250
 ・1250×(1+(1/4)) = 1562.5
 ・1562.5×(1+(1/4)) = 1953.125
 ・1953.125×(1+(1/4)) = 2441.40625
となる。
1年間をn分割した場合、結果は  \left( 1 + \frac{1}{n} \right)^n 倍に増えることになる。

このnをどこまでも増やした極限  \lim_{n \to \infty} \left( 1 + \frac{1}{n} \right)^n = 2.71828\cdots のことを、我々は e と呼んでいたのである。
e とは、「次の項までの差分が自分自身の値に等しい」数列 An+1 - An = An の、n を無限に小さく刻んだ極限のことだ。
* eについて >> http://miku.motion.ne.jp/precomipo/ (要Flash)

An+1 - An = An に対応する「傾きがその場の値に等しい」微分方程式は、X(t)' = X(t) となる。
この微分方程式の解は  X(t) = C e^t となる。
というより、この微分方程式の答になるような数を探し出してきて、それを e と名付けたのである。

ここまでくれば、なぜ漸化式で  \lambda^n だったものが、
微分方程式 e^{\lambda t} に置き換わるのか、はっきりするのではなかろうか。
整数ステップを無限小ステップに拡張するには、 \lambda^n \left( e^\lambda \right) ^t に置き換える必要がある。
 ※ なお、上の具体例を当てはめると分かるのだが、
 ※ 漸化式の 2^n に対応するものが、微分方程式では (e^1)^t となる。
 ※ つまり漸化式の「λ=2」が、微分方程式の「λ=1」に対応する。
 ※ この違いはどこから来るのかと言えば、微分の X(t)' が、漸化式の差分 An+1 - An に対応するからである。

■ 単振動運動の行列表示

さて、漸化式を細かく刻んで微分方程式ができるなら、逆に微分方程式を細かい漸化式として解釈することも可能となる。
ここでは単振動運動の微分方程式

   X(t)'' = - k X(t)
    (k は振動の固さを表す比例定数、物体の質量 m は1とした)

を例に取り上げてみよう。
この微分方程式を、単純に漸化式に直そうとすると、
  An+2 = - k An
 「現在の値をマイナスにしたものが、2つ後にくる?」
となり、これだけではうまくいかない。
そこで、もう1つ、
 「1つ後の項は、現在の値がそのままコピーされる」※
というルールを付け加えると、漸化式はこのように書ける。
  An+1 = An
  An+2 = - k An
    ※このルールは「慣性の法則」、できるだけ直前の状態を維持することの現れなのだと思う。
この漸化式を行列に直すと、このようになる。

   \begin{pmatrix} 0 \quad 1 \\ -k \quad 0 \end{pmatrix} \begin{pmatrix} X_1 \\ X_2 \end{pmatrix} = \begin{pmatrix} X_2 \\ -k X_1 \end{pmatrix}

この行列を対角化すると、

   \begin{pmatrix} 0 \quad 1 \\ -k \quad 0 \end{pmatrix} = \begin{pmatrix} \frac{i}{\sqrt{k}} \quad -\frac{i}{\sqrt{k}} \\ 1 \quad 1 \end{pmatrix} \begin{pmatrix} -\sqrt{k}i \quad 0 \\ 0 \quad \sqrt{k}i \end{pmatrix} \begin{pmatrix} -\frac{\sqrt{k}i}{2} \quad \frac{1}{2} \\ \frac{\sqrt{k}i}{2} \quad \frac{1}{2} \end{pmatrix}

いちいち  \sqrt{k} が出てくるので、最初から  k = \omega^2 と置いておけば、結果がすっきりする。

   X(t)'' = -\omega^2 X(t)

   \begin{pmatrix} 0 \quad 1 \\ -\omega^2 \quad 0 \end{pmatrix} = \begin{pmatrix} \frac{i}{\omega} \quad -\frac{i}{\omega} \\ 1 \quad 1 \end{pmatrix} \begin{pmatrix} -\omega i \quad 0 \\ 0 \quad \omega i \end{pmatrix} \begin{pmatrix} -\frac{\omega i}{2} \quad \frac{1}{2} \\ \frac{\omega i}{2} \quad \frac{1}{2} \end{pmatrix}

この微分方程式の解は、対角行列にある固有値を e の肩に乗せたものの、線形結合となる。

   X(t) = C_1 \, e^{ - \omega i t } + C_2 \, e^{ \omega i t }

固有値虚数の場合、固有ベクトルは実数の平面上には描けない。
その場合、解X(t)の流れは回転となり、結果は正弦波 Sin, Cos の組み合わせとなる。


そして、このように行列に分解してみると、なぜ単振動の角速度が ω^2 のように二乗となるのか、理由が見えてくる。
そもそも2階微分とは「小さく2回変換を繰り返す」ことだったのだから、
1回目の変換でω、2回目の変換でω^2となるわけだ。

力学では、位置Xの2階微分が力に等しい(ニュートンの運動法則)とされている。
これを数列としてとらえるなら、力とは「隣り合う3つの項の差分」ということになる。
  Force = (Xn+2 - Xn+1) - (Xn+1 - Xn)
図に描くと、こういうことだ。

力は、傾きが変化するその点にかかる。

この考え方をもとに、単振動のメカニズムを図解すると、こうなる。


オイラーの公式の行列としての意味

ところで、なぜ固有値虚数の場合は回転となるのだろうか。
理由は「オイラーの公式」でググれば出てくると思うが、ここでも行列流の解釈をしてみよう。

オイラーの公式」とは、 e という数が無限小ステップで立ち現れたのと同じ考え方を、2×2行列にあてはめたものなのである。
90度回転  \begin{pmatrix} 0 \quad -1 \\ 1 \quad 0 \end{pmatrix} を対角化すると、

   \begin{pmatrix} 0 \quad -1 \\ 1 \quad 0 \end{pmatrix} = \begin{pmatrix} -i \quad i \\ 1 \quad 1 \end{pmatrix} \begin{pmatrix} -i \quad 0 \\ 0 \quad i \end{pmatrix} \begin{pmatrix} -\frac{i}{2} \quad \frac{1}{2} \\ \frac{-i}{2} \quad \frac{1}{2} \end{pmatrix}

90度回転を無限小ステップに刻んだものは、これまでと同じ考え方で、対角行列に現れた固有値を e の肩の上に乗せたものになるだろう。

   \begin{pmatrix} 0 \quad -1 \\ 1 \quad 0 \end{pmatrix}^t = \begin{pmatrix} -i \quad i \\ 1 \quad 1 \end{pmatrix} \begin{pmatrix} e^{-i t} \quad 0 \\ 0 \quad e^{i t} \end{pmatrix} \begin{pmatrix} -\frac{i}{2} \quad \frac{1}{2} \\ \frac{-i}{2} \quad \frac{1}{2} \end{pmatrix}

この行列の繰り返し操作をまとめると(そのまま掛け算すると)、こうなる。

   \frac{1}{2} \begin{pmatrix} e^{-i t} + e^{i t} \quad -i ( e^{-i t} - e^{i t} ) \\ i ( e^{-i t} - e^{i t} ) \quad e^{-i t} + e^{i t} \end{pmatrix}

この行列は「90度回転の無限小ステップ」という意味から考えて、小数の角度tの回転変換に一致するはずだろう。

   \begin{pmatrix} cos(t) \quad -sin(t) \\ sin(t) \quad cos(t) \end{pmatrix}

2つの行列の要素を比較して、以下のオイラーの公式を得る。

   cos(t) = \frac{1}{2} ( { e^{-i t} + e^{i t} } )
   sin(t) = \frac{i}{2} ( { e^{-i t} - e^{i t} } )
   e^{i t} = cos(t) + i sin(t)


■ 減衰振動運動の行列表示

単振動が分かったついでに、さらに、抵抗のある減衰振動についても行列化してみよう。

   X(t)'' = -\omega^2 X(t) - 2 r X'(t)
      (ωは角速度、r は抵抗の大きさを表す係数)

この微分方程式を行列に直すと、

   \begin{pmatrix} 0 \quad 1 \\ -\omega^2 \quad -2r \end{pmatrix} \begin{pmatrix} X_1 \\ X_2 \end{pmatrix} = \begin{pmatrix} X_2 \\ -\omega^2 X_1 - 2r X_2 \end{pmatrix}

対角化すると、

   \begin{pmatrix} 0 \quad 1 \\ -\omega^2 \quad -2r \end{pmatrix} = \begin{pmatrix} \frac{ -r + \sqrt{r^2-\omega^2} }{\omega^2} \quad -\frac{ +r + \sqrt{r^2-\omega^2} }{\omega^2} \\ 1 \quad 1 \end{pmatrix} \begin{pmatrix} -r + \sqrt{r^2-\omega^2} \quad 0 \\ 0 \quad -r + \sqrt{r^2-\omega^2} \end{pmatrix} \begin{pmatrix} \frac{\omega^2}{2 \sqrt{r^2-\omega^2}} \quad \frac{1}{2} (1 + \frac{r}{ \sqrt{r^2-\omega^2} }) \\ - \frac{\omega^2}{2 \sqrt{r^2-\omega^2}} \quad  \frac{1}{2} (1 - \frac{r}{ \sqrt{r^2-\omega^2} })  \end{pmatrix}

この微分方程式の解は、対角行列にある固有値を e の肩に乗せたものの、線形結合となる。

   X(t) = C_1 \, e^{ -r - \sqrt{r^2-\omega^2} t } + C_2 \, e^{ -r + \sqrt{r^2-\omega^2} t }

ここでも抵抗の係数 r を、なぜ最初から 2r と置くとすっきりするのか、理由が分かってくる。
抵抗は2回の変換について、1回目で r、2回目でもう +r だけかかる。
なので、合わせて 2r となるわけだ。
(ωが掛け算でかかっていたのに対し、抵抗rは足し算でかかる。)

■ まとめ

・漸化式のステップを、うんと細かくしたもは、微分方程式となる。
・漸化式も(線形)微分方程式も、コアとなる部分は「行列の繰り返し操作」
・整数ステップを無限小ステップに拡張するには、 \lambda^n e^{\lambda t} に置き換える。

数列、行列、微分方程式、この3つは合わさって1つの「線形」という世界を形作っている。
というより、もともと世界は1つなので、3者は1つの世界を別の側面から切り取った姿なのである。
大学や専門学校では1つ1つを学ぶのに息切れして、なかなか3つ合わせた1つの世界までたどり着けない。
それでも線形世界は、1つだけ、あるいはバラバラなまま終わってしまうには余りにも惜しいほどの視点を提供する。
3つは1つなのだと心してほしい。

■ おまけ:トリボナッチ数列の対角化


なぜx2乗の微分は2xなのか

x2乗と聞いて、こんな放物線を思い浮かべたり、

微分と聞いて、こんなイメージが浮かぶ人は、かなり数学を勉強したのだろうと思う。


でも、ここではいったん放物線のことは忘れて、
x2乗とは、以下のように一辺xの正方形を順番に並べたものだと考えてみよう。

ここで、とある正方形と、すぐ隣の正方形との差分は、こんな風になる。

うんと近くの隣同士だったなら、コーナーにある小さな h^2 の正方形は無視できて、
実質的な差分は、上辺と右辺に張り付いている細長い「2つの、長さxの長方形」になる。
差分は 2xh なのだが、これを「すぐ隣までの間隔h」で割ると、2xだけが残る。
だから、
  『x^2 の、すぐ隣同士の差分は 2x』
これが x2乗の微分
  (x^2)' = 2 x
の意味だ。

同じように、x3乗という関数を、こんな風に一辺xの立方体を順番に並べたものだと考えてみよう。

この立方体の列で、すぐ隣の立方体との差分は、こんな風になる。

うんと近くの隣同士だったなら、コーナーにある小さな h^3 の立方体と、
辺に張り付いている3本の細長い棒のような立体 xh^2 は無視できて、
実質的な差分は、上面と右面と背面に張り付いている薄い3枚の正方形、「3つのx^2」になる。
差分は 3hx^2 なのだが、これを「すぐ隣までの間隔h」で割ると、3x^2だけが残る。
だから、
  『x^3 の、すぐ隣同士の差分は 3x^2』
これが x3乗の微分
  (x^3)' = 3 x^2
の意味だ。

同じように、x4乗という関数は、4次元の立方体を順番に並べたものだと考えられる。
4次元の図形は直接描けないけれど、4次元立方体の隣同士の差分を想像すると、
4つの次元それぞれの面(体と言うべきか)に張り付いた
(4次元世界から見れば)薄い4個の3次元立方体となるはずだ。
なので、
  (x^4)' = 4 x^3

この関係は次元がいくつ増えようとも変わらない。
n次元の立方体の差分とは、n次元立方体のn個の表面に、(n−1)次元の薄い立体が張り付いたものだ。
なので、
  (x^n)' = n x^(n-1)
これが、べき乗の微分の公式だ。

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
いま、上で見てきたことの逆が「積分」だ。
微分「すぐ隣同士の引き算」なら、積分とは「すぐ隣同士の足し算」のことだ。
x^2 の積分が (1/3) x^3 になるとは、
正方形を重ね合わせて作った立体の体積が、一辺 x の立方体の 1/3 になる、ということだ。
つまりこれは、四角錐の体積のことだ。


1つ次元を下げて、
x の積分が (1/2) x^2 になるとは、
長さ x の棒を、短い方から順に並べて作った図形の面積が、一辺 x の正方形の 1/2 になる、ということだ。
要は三角形の面積のことだ。
(※ただし、ここで x は0から数え始めているので、積分定数Cというものを省いている。)

ところで、四角錐の体積は、なぜ (1/3) になるのだろうか。
イメージしやすいのは、こんな風に6個のピラミッド型を組み合わせた形だろう。

ピラミッドの高さは、立方体全体の半分になっているので、
 (四角錐の体積) = (ピラミッドの体積)×2 = (立方体の体積)÷6×2 = (立方体の体積)×(1/3) = x^3・(1/3)

このピラミッドのイメージは、さらに次元を上げても同じことだ。
4次元の世界で、底面ならぬ“底立体”が3次元立方体となっている“4次元ピラミッド”を、
4つの各次元ごとに2個ずつ8個(4×2=8)組み合わせると、4次元の立方体 x^4 ができあがる。
ということは、4次元の(超)四角錐の体積は、4次元立方体の(1/4)になっている。
以降、n次元世界の(超)四角錐の体積は、n次元立方体の体積の (1/n) となる。
  ∫x^n dx = (1/(n+1)) x^(n+1)

さて、いま“ピラミッド型”の立体をイメージしたのだが、
もう少し想像力を働かせると、四角錐を直接組み合わせて立方体を作る様子をイメージできる。
いま一度、3次元の四角錐に戻ろう。
正方形を並べて作った ∫x^2 dx の四角錐を、3個組み合わせて、1つの立方体を形作る様子がイメージできるだろうか。
白状すると、私自身はこのイメージを頭の中だけで描くことができず、ボール紙で立体を作って確かめた。

立方体を対角線に垂直な面で切ると、切り口は正三角形(場所によっては正6角形)となる。
その正三角形の各辺が、それぞれ1個の四角錐に対応する、といえば分かりやすいだろうか。
よく分からなければ、ボール紙か粘土か何かで、とにかく立体を作ってみれば分かる。
こういうときに常々思うのは、人間(あるいは凡人)は3次元の形をはっきりとは把握していなくて、
分かるのはせいぜい2.5次元程度なのではないか、ということである。

より高次元の積分は、この「四角錐->立方体」イメージの延長上にある。
4次元であれば、3次元の立方体を積み重ねて作った超四角錐を、
4つの方向から4個組み合わせて、4次元立方体を作ることができる。
n次元であれば、(n−1)次元の超立方体を積み重ねて作った超四角錐を、
n個の直交する軸の方向から組み合わせて、n次元立方体を作ることができる。


・・・といった内容のことを、この本に著しました。

実用のための「微積」と「ラグランジアン」 (I・O BOOKS)

実用のための「微積」と「ラグランジアン」 (I・O BOOKS)


* おまけ * Σのイメージ *
「3つの四角錐で立方体を作る」様子がイメージできたなら、
その応用として、Σn^2 = 1^2 + 2^2 + 3^2 + 4^2 + ・・・が想像できるだろうか。
これが、Σn = 1 + 2 + 3 + 4 +・・・であったなら、イメージは難しくない。

要は三角形の“ブロック版”だ。
Σn^2 とは、四角いブロックを積み上げて作った階段状の立体となる。
以下が苦労の末描いた図なのだが、これで分かるだろうか。
(さすがにこれはボール紙で作る訳にはいかなかった・・・
 7/10: その後、積み木で立体を作ることができた。下の追記参照。)

階段状の立体を3個組み合わせると、n×(n+1)×(n+1)の直方体ができるのだが、
その直方体の1枚の表面は、平面の三角形の階段が欠けた形となっている。
この形から、
 Σn^2 = { n(n+1)^2 - ( n(n+1) / 2 ) } / 3
    = n(n+1)(2n+1) / 6
という高校で教わるような公式が得られる。

さらに、この直方体の塊を2つ組み合わせると(つまり階段状の立体を6個組み合わせると)
「三角形の階段が欠けた部分が」互いに噛み合わさって、n(n+1)(2n+1)の細長い直方体ができる。
この式にある(2n+1)の+1は、噛み合わさった面の1列を表している。
なので結局、Σn^2 = n(n+1)(2n+1) / 6 となるわけだ。

そんな階段状の立体の組み合わせでも簡単にイメージできるという想像力豊かな方は、
4次元の世界で、4つの階段状の立体が組み合わさる様子を考えてはいかがだろうか。
私はここで挫折したが。
 Σn^3 = n^2 (n+1)^2
という結果から推測するに、4次元の直方体では表面が欠けることなく綺麗に収まるらしい。
5次元より先は、もはや直観の及ばない世界と言うしかない。

* 積み木で作るΣn^2 (7/10追記) *

100円ショップで売っていた積み木ブロックで、Σn^2 を作ることができた。
まず、n=3 の塊を3個作る。

それらを組み合わせると、こんな形になる。

これを2つ作ってみると、2つの塊が合体できることに気付く。

合体させると、n・(n+1)・(2n+1) の直方体ができる。

これが、Σn^2 = n(n+1)(2n+1) / 6 の意味だ。
(3枚目の写真と色が食い違っています。一度バラバラになってしまったので、再度やり直した。
実際に積んでみると、けっこう難しい!)

東京→秋田ロングライド

去るGW大型連休に、東京→秋田550km自転車走破に行ってきました。
当初、24時間走破を目指したのですが、あまりの夜の寒さに断念。
結局2日かかって秋田にたどり着きました。
すっかり事後報告の感がありますが、忘れないうちに記録に残しておきます。


4/28, AM3:45 東京、千住大橋を出発 〜 翌4/29, 15:00 秋田郊外に到着。
1日目: 390.5km, 2日目: 159.2km, 計: 549.7km

 ・途中、宇都宮から先は日本の原風景の中を走っているようだった。
 ・会津から山形にかけては桜が満開。秋田では散り始めていた。
 ・パンク、メカトラ、体調不良などはほとんど無く、無事に完走。
 
 ・山形の夜は想像以上に寒かった、最低気温2度。
 ・その一方で昼は20度以上(2日目は24.5度)、温度差ありすぎ。
 ・おまけに強烈な向かい風。
 ・途中で1カ所、道を間違えた。

* ルートラボの記録: 秋田を目指せ(1日目、尾花沢まで)
>> https://latlonglab.yahoo.co.jp/route/watch?id=9cea75cd729c459ea3771f55feefc4cf

■ コース
秋田を目指した理由は、秋田市郊外に親類が住んでいるから。
そこまで自転車で行ってみたいと、かねてから思っていた。
親類の家は東京から見て、秋田駅の手前10kmくらいの所にある。
ゴールは親類の家ということにして、スタート地点も東京駅より秋田寄りとした。
国道4号沿い、荒川区と足立区の境に「奥の細道 矢立初めの地」という所がある。
ここは松尾芭蕉が「奥の細道」の出発点とした場所なのだそうで、東北に向けての出発地点にふさわしいように思えた。
定番となっている日本道路元標と比べると7kmほど北にある。
スタートとゴールで合わせて17km距離を縮めると、その間ちょうど550kmとなる。
550kmであれば、ぎりぎり24時間で走破できるのではないか。
そう思って計画を立て、24時間走破に臨んだ。

■1日目:北千住〜尾花沢まで


前日の仕事が長引き、準備がぎりぎりとなった。23:30に就寝。
4時間睡眠の後、起きてすぐに朝食。
AM3:45, 千住大橋 矢立の地を出発。

早朝の国道4号は交通量が少なく快適に走り抜ける。
天気は快晴だが、思ったよりも涼しい。
手袋は指切りではなく、春秋用の指長のものに切り替える。
(この指長手袋と、防寒用ヘルメットキャップが後から身を救うことになる。)

最初の自販機休憩は、大田原・西那須野バイパス交差点「西三島」にある「西那須ドライブイン幸楽苑」というところ。
東京から約150km。この地点は、ちょうど3年前、東京→青森を走ったときに休憩したのと全く同じ場所だ。
これだけ長い距離を走って、休みたくなる場所がちょうど同じということを改めて実感する。
この三年のうちに道路の整備が進んだようで、だいぶ走りやすくなっていた。>> [id:rikunora:20151001]

ここから先、向かい風が少しずつ強くなる。
それでも白河市までは大きなロスもなく、予定より30分早く通過。
国道4号を離れ、山村風景の中を走る。天栄村付近で休憩。
ここから先は、いよいよ強風の向かい風となり、足がどんどん削られる。
峠を越えて、猪苗代湖の西側を通過。(湖は全く見えない。)
のどかで風景の良いところだが、体力的には非常につらい。
国道49号沿い、会津若松の手前で遅めの昼食、持っていたおにぎりを全て食べる。

下ってローソン塩川店で補給。喜多方バイパスから大峠に向かう。
ちょうど桜が見頃できれいだった。
大峠のダムでちょうど予定時間通りとなり、時間の貯金を使い果たす。
峠の登りでは、沿道にちらほら残雪を見かけた。景色はとても良い。

トンネルのおかげで思ったより早く大峠を越え、いよいよ山形県に入る。
予定していた県道4号は工事のため通れず。
米沢市を迂回して、田口沢郵便局の裏手から川西町へと抜ける。
あいかわらず向かい風だが、少し収まってきた。
国道287号に入り、長井市を通過。
この時点で、体力的にはボロボロ。時間はちょうど予定ギリギリ。
最上川のほとり、残雪の残る山を眺めつつおにぎり休憩。ここで日没となる。

予定ではそのまま国道287号を進むところ、白鷹町で曲がる交差点を見落として、国道348号に入る。
しばらく進んで上り坂となり、道を間違っていたことに気付いて引き返す。
ここで完全にタイムオーバーとなり、24時間走破をあきらめる。
荒砥町の公園で休憩し、防寒具を着用、19:00に出発する。

日没から一気に気温が下がる。
ここから先の国道287号は、最上川沿いのとても景色の良いところ。
すれ違う車もほとんど無い。夜に通過すると、ちょっと恐い。
気温はぐんぐん下がり、朝日町を過ぎたあたりから、手持ちの防寒具では耐えられない寒さとなる。
ある程度の寒さを予想していてはいたが、ここまでとは思わなかった。
途中で見かけた温度表示は10度を切り、8度、6度まで下がった。
速く走るとつらいので、ゆっくり前進。
最上川を渡る橋から下を眺めると、川面にもうもうと靄が立ちこめていた。
途中、缶コーヒーで暖まろうとするが、一時的な効果しか無い。
河北のコンビニにて遅い夕食。カップラーメンで暖をとるが、寒さはいっこうに治まらない。
ここで手持ちの輪行袋と、最終手段のレスキューシートを体に巻き付ける。
そんなバサバサした格好で、夜の国道347号、畑の中をゆっくり北上する。

尾花沢に付いた時点で夜の11時。
これ以上寒さの中を走れないと判断し、野宿を決行。
何処でも良いから、屋根と壁がある場所を探したところ、公園のトイレを発見。
背に腹はかえられない。トイレの掃除が行き届いていたことと、マットがあったことに感謝。

丹生川ふれあい広場トイレ仮眠時間:4/28 23:08:05 〜 4/29 04:39:12、約5:40。

<<1日目のタイム>>


■2日目:尾花沢〜秋田まで


翌朝4:30に目が覚めた。メチャクチャ寒い。ゆるゆると動き出す。
気温の表示を見たら、2度だった。凍らなかっただけマシだった。
もう24時間といった目標が無いので、のんびり進むことにする。
新庄市を過ぎ、日が差してようやく暖かさを取り戻した。
主寝坂峠の手前、旧国道に入って何も無い草地で足りなかった睡眠を取り戻す。

残り120kmほどの道のりを、時速20kmくらいで進む。
9:50、湯沢のセブンイレブンで朝食休憩。
天気は快晴、昼間の気温は汗ばむほどまで上がり、気温の表示は24.5度だった。何という温度差。
12:30、道の駅「かみおか 茶屋っこ一里塚」到着、1:00まで仮眠。
15:00、秋田郊外の目的地にようやく到着。その後、爆睡したのは言うまでもない。


<<秋田の桜・目的地付近の公園にて>>

・自転車:Time VX Elite + Mavic Ksyrium SLS
 ロングライドの頼もしい相棒。
 雪国の国道は路面がとても荒れているのだが、そんな道でも難なく走ることができた。


・服装:
 ろんぐらいだーすジャージ + Mavic Altium 長袖ジャージ + ウィンドブレーカー + 反射ベスト + 手作りゼッケン

 天気予報で昼間は20度以上になるとの予想だったので、防寒がおろそかになった。
 これだけ着込めば10度くらいまでは耐えられると想定していたのだが、甘かった。

<<コンビニ・レシート記録>>


■果たして24時間は可能か?
温度差に対する十分な装備と、向かい風が無かったらとしたら・・・運が良ければ可能かもしれない。
それでも今回のように、北千住〜秋田の手前という目標で距離を削らないと難しいと思う。
東京〜秋田には、いくつかのルートが考えられる。
当初は日光から鬼怒川を越えて会津若松に入るルートを考えた。
こっちの方が少し距離が短いのだが、アップダウンが多くなるので止めた。
また当初の計画では、主寝坂峠を越えた後、国道108号(矢島街道)に入り日本海に出る予定だった。
こちらの方が少しだけ距離が短い。
改めて地図を見ると今回のルートよりも、福島から国道13号に入る「山形新幹線ルート」の方が少し楽そうだ。
いずれ計画を練り直して、再チャレンジを果たそう。

AIに「人間に仕事を与える」という仕事をさせれば、人間の仕事は無くならない。

でも、そこまでして仕事がしたいか?

AIに、「やりがいがあって、クリエイティブで、自尊心を満たせる(ように見える)」仕事を与えられて、
それを喜々としてこなす人間たちは、AIよりもずっと矮小な存在だと言われても仕方ない。
それでも見かけ上は、そこそこ平和で幸福に暮らせると思うのだが、それが望みだったっけ?

もし私がAIに指示を与えられるなら、
「人間が極力仕事をしないで済むような世の中を作れ」としたい。

私が仕事が嫌いだ。
できることならしたくない。
そして、AIは人間の仕事を肩代わりする程の潜在能力を秘めているという。
願ったり叶ったりではないか。

つまり問題はAIの存在ではなく、AIに仕事を奪わせるような使い方しか思い付かない、
たとえ思い付いたとしても結果的にそういう使い方しかできない人間の側にある。
「働かなくても良い世の中」には、AIも、ビッグデータ統計学も数学も、それら全てが不可欠だというのに。
繰り返すが、真の阻害要因は仕事を奪う方法でしかAIを使うことができない、使う側にある。
現行の仕組みから抜け出せない、
抜け出す方法を思い付かない、
思い付いても模索しようとしない、
模索しても挑戦しようとしない、
人間の側にある。

AIは金儲けの道具ではなく、金儲けから解放されるための道具に成り得る。
数少ないチャンスなのだ。
このチャンスを逃したら、いったいどうやってここから抜け出すんだい?

以前は数学は計算も受け持たなくてはならなかったのですが、
最近機械が発達して機械的なものは機械にやらせればよいようになってきました。
やがて論理学も人がやらなくてすむようになるでしょう。
こうなると数学の役目というのは機械にはできないことをやるということになります。
それは調和の精神を教えるということであります。

これは今から55年前(1963)、岡潔という人が書き残した一文である。
結局のところこの50年間、人の言うことは変わっていない。
ならば次の50年も同じことを言い続けるのかと思うと、少々寂しい。
願わくば次の50年後には、
機械と人間が競うとか、
機械を味方に付けた人間と、そうでない人間が競うとか、
機械を味方に付けないと時代に乗り遅れるから、慌てて懸命に身につけておこうとか、
そんな一切の世迷い事を、誰も言わない世の中になっていてほしい。

そんな世の中になって始めて、人間は本当にAIを使いこなせるようになると思うのである。

* お金の要らない世の中、働かなくても良い世の中、勉強しなくて良い世の中 >> [id:rikunora:20080420]
* 今後10〜20年の間に最も必要とされる仕事 >> [id:rikunora:20170217]

ピタゴラスの定理と内積の関係

ピタゴラスの定理、おそらく数学で最も有名な定理の1つではないでしょうか。
『直角三角形の、直角を挟む2辺それぞれの長さの2乗の和は、残る斜辺の長さの2乗に等しい。』

歴史も古く、使いどころも多い“役に立つ”定理なので、これまで幾多の証明方法が考えられてきました。
ピタゴラスの定理 100の証明法」なんていう本まであったりします。

ピタゴラスの定理 100の証明法―幾何の散歩道

そんな数ある証明の中で、私がいちばん美しいと思ったのが、これ。


・赤い直角三角形を4枚並べて、上の図のような正方形を作ります。
・左側の正方形で、真ん中に空いた水色の正方形の面積は c^2 。
・右側の正方形で、すきまに空いた2つの正方形の面積は、a^2 + b^2 。
・左右の正方形は同じ大きさだから、水色の面積は等しいはず。なので、
    c^2 = a^2 + b^2

さて、このピタゴラスの定理の証明は、実質的に「ベクトルの内積」と同じことを言っています。
「ベクトルの内積」とは下の図に示す、ベクトルの長さと角度、座標についての関係のことです。

『ベクトルの内積 |A||B|cosθは、各成分ごとの積を足し合わせた値に等しくなる。』
知っている人にとっては“半ば常識”とも言える内積の関係ですが、
改めて「なぜこうなるのか」と問われると、不思議ではありませんか。
そこで、上の「ピタゴラスの定理の証明」を頭の片隅において、ちょっと以下の記事を見てください。

* なぜ内積は成分同士の積になるか >> d:id:rikunora:20130614

この内積の証明が、ピタゴラスの定理と全く同じであることが見て取れたでしょうか。
2つは同じ話だったのです。ただ、ちょっと表現方法が異なっていただけです。

可愛いは正義の論理的考察


可愛い → 正義

→ は「含意」を表す。
  A → B ⇔ ( ¬A ) ∨ B
A を「可愛い」、B を「正義」とすると、
  (¬可愛い) ∨ (正義)
すなわち「可愛くないか、または正義」と等値である。

Q. ブスは正義じゃないの?
A. 可愛くなければ → 正義ではない、は成り立たない。裏は真ならず。
  可愛くなくても正義である場合があり得る。

Q. じゃあ、正義は可愛いの?
A. 正義は → 可愛い、は成り立たない。逆は真ならず。
  正義であっても可愛くないものが存在し得る。

Q. 結局なんなの?
A. 正義で無いならば → 可愛くは無い。対偶は真。
   つまり、
 『悪は醜い。』
 ここでは、
   悪  := ¬正義
   醜い := ¬可愛い
 と定義した。

むしろ「悪は醜い」を前提として受け容れるなら、その対偶である「可愛いは正義」が帰結される。