基底と成分


意味がわからないながらも、とにかく行列の計算だけはできるようにトレーニングを積んできた人も多いと思う。 さあ、ここからが本番だ。 計算のやり方はわかっても、それがどんな意味を持っているのかを理解しないままでは応用が全く効かない。 これから、線形代数では一体何を操作しているのかを説明していこうと思う。 最終目的は、計算練習の最後でやった「対角化」の意味を理解することだ。 意味を理解したら、様々な教科書で現れる対角化のシーンで、「そりゃあ、ここでは対角化して議論するよな」と思えるようになるし、線形代数を実務でも役に立てることができるようになるだろう。

基底の導入:電話で幾何を伝える

いきなりだけど、こんな場面を想像してみよう。 自分の手元にある図形を、電話(つまり音声のみ。絵を見せることはできない。)で相手に正確に伝えようとするシーンだ。伝えたいのは、図.1 の赤い矢印である。

f:id:FakeOwl:20180908153655p:plain
図1

数学の知識を使ってはいけない、という縛りがあったら、こんな感じだろうか。

自分:「右に向かって、矢印があるんだ。 長さはね、2 cm。」
自分:「それとは別にもう一本矢印があって、それは、さっきの矢印の左手に90度の方向に3cmのやつね。」
自分:「それで、最初の矢印の先に、2番目の矢印を継ぎ足してみて。」
相手:「オッケー」
自分:「最初の矢印のスタート地点から、継ぎ足した後の矢印のゴール地点を結んだ矢印を描いてほしい。」

まあ、標準的な伝え方だと思う。

次に、線形代数的に伝えてみたい。まず事前準備を書いておこう。

幾何ベクトルの基底、足し算、スカラー倍の定義

  • 矢印(幾何ベクトル)を太字で  {\mathbf{x, y}} 書く。
  •  {\mathbf{x}} の先頭に  {\mathbf{y}} を継ぎ足す操作を  {\mathbf x} + {\mathbf y} と書く。
  •  {\mathbf{x}} の長さを  a 倍に伸ばす操作を  a {\mathbf x} と書く。

成分表示

基底と呼ぶある幾何ベクトル  {\mathbf{E_1, E_2}} があるとき、  a {\mathbf E_1} + b {\mathbf E_2} を、成分表示として  (a, b) と書く。

上の定義を事前に了承している人同士なら、先ほどと同じ状況を次のように伝えることができる。

自分:「1つめの基底として、原点から水平に長さ1cmの矢印を書いて、これを {\mathbf{E_1}}と呼ぶことにする。」

自分:「2つ目の基底には、原点から垂直方向、つまり、 {\mathbf{E_1}}の左手90度方向に長さ1cmの矢印を書いてほしい。これを  {\mathbf{E_2}} と呼ぶことにするよ。」

自分:「僕が書いてほしい矢印は、  2 {\mathbf E_1} + 3 {\mathbf E_2} ,つまり 起点が  (0, 0)で、終点が  (2 \times 1 + 0, 0 + 3 \times 1)=(2, 3) の矢印だよ。」

f:id:FakeOwl:20180908154101p:plain
図.2

ふりかえり:代数との遭遇

さてここで、小さな、しかし重要なふりかえりをしておこう。

まず、定義としての「矢印ベクトル」の「足し算」とは、矢印ベクトルをしりとりのように継ぎ足していくことであった。これは、小学校以来使っている、いわゆる「足し算」とは違う。小学校で習った足し算は、数どうしの足し算だ。だから本当は、矢印ベクトル同士の足し算の記号には、数字の足し算を表す記号 " +" とは別の記号(例えば、 \oplus とか)を割り当てるべきだったのかもしれない。 でも、ほとんどの人は、いまここで言われるまで、矢印の継ぎ足しを表すのに" +"という記号を使ってきたことに対して特に違和感を感じてなかったと思う。 それはおそらく、数同士の足し算の持っているイメージと、矢印ベクトル同士の足し算(継ぎ足し)とに共通する概念を無意識に見いだしていたからだと思う。 同じことは、スカラー倍にも言える。ある矢印ベクトルの横につける数字はその矢印を伸ばす意味であり、ある数字の横に書いた数字(と、時には省略されてしまう  \times 記号)はその数字を何倍かにするという意味であって、本来全く別の操作である。

さて、なぜこんな細かい点をふりかえっているのか。じつは、この記号の違いに隠されていることこそが、非常に重要なのである。矢印の継ぎ足しと、数を加えるという操作とは、異なる操作である。なのにだ、ベクトル同士の足し算(継ぎ足し)を成分表示で見た時、そこに現れている操作は、「数の計算」なのである。成分表示のカッコの中に入っている足し算の記号: +、これは、正真正銘、小学校以来慣れ親しんだ数同士の足し算を表す記号だ。もちろん、途中の掛け算の操作も数同士の掛け算の操作だ。 つまりこれは何が起きているのかというと、矢印を引き伸ばしたり継ぎ足したりといった純粋に幾何学的な操作を、算術に翻訳してしまえているということだ。

これは、すごい。地味だがすごい。地味すぎて、ほとんどの人がスルーしてしまう点である。これが「代数」である。本来、算術とは無関係であったものが、算術の世界に翻訳されて取り込まれてしまったのである。一旦、算術の正解に入ってしまえば、これまでに人類が溜め込んできた様々な計算テクニックが全て使い放題だ。 線を伸ばしたり、継ぎ足したりといった操作を定規と鉛筆でシコシコと作図していてはなかなか得られないような知識も、算術という世界に翻訳したら見やすいことだってあるだろう。

いったい、この魔法のような翻訳を起こした一番の立役者は誰だろうか。 「基底」である。
基底があればこそ、成分表現が生まれたのである。成分とは、それぞれの基底が何個あるかを書いてあるだけだ。表したい矢印を基底を使ってあらわすために必要な、基底を足し合わせるブレンド比率(重み)を並べたのが成分だ。
矢印に対する操作(例えば継ぎ足し、回転)を決めたら、その操作の結果として出来る矢印もまた成分で書けるはずである。操作前の成分と、操作後の成分は当然数字なのだから、この操作に対応する数字の対応関係は関数でかけるはずだ。矢印という幾何学的な対象に対する操作が、関数という数字の計算に置き換わるのだ。

いま考えた例では矢印ベクトルに対する操作であったが、基底さえ導入できれば、つまり、考えている対象を基底の重ね合わせで書けるのであれば、どんなものでも成分表示に持ち込める。そしてそれは、成分という数に翻訳されてしまうがゆえに、算術の対象とできるのである。

この話題に触れるのは、今はこの辺にまでにしておこう。線形代数が持つ「代数」という側面は、この投稿シリーズの重要なテーマであり、続きの投稿でも気にしていく行く予定だ。