44 神器の槍
相変わらずソラは、目の前の仕事から逃避していた。
――あ~、やりたくない。そう言えば、師匠は行列の固有ベクトルを槍にたとえていたな。気分転換に、固有値と固有ベクトルの講義でも振り返るか。
ソラは、ジンの講義を思い起こす。
「複素数を導入すると、どんな正方行列も固有値と固有ベクトルを持つようになる。これによって、得体の知れない巨大行列でも、その性質の一部を明らかにできる。いわば、固有ベクトルはなんでも貫ける神器の槍じゃ。今日はこの話をしようかの」
ジンは、そう言ってその講義を始めた。
「正方行列の固有値や固有ベクトルの計算は魔導具を使えばよいが、なぜ存在するかを知ることで、より深く理解できる。原理に加え応用などに触れていると、固有値と固有ベクトルが視えるようになるぞ。数覚スキルを伸ばすいい訓練じゃな」
ジンの発言に、ソラは、よろしくお願いします、と応じた。
最初に、準備として、ジンは多項式を取り上げる。
「まず、多項式を定義しようかの。これは、数と不定元を足したり引いたり掛けたりしたものじゃ。ここでは不定元が一つの場合を考える」
ジンの説明が理解できず、ソラは割り込んで尋ねる。
「師匠、ちょっと待ってください。不定元て何ですか? 変数や未知数とは違うのですか?」
ジンは苦笑して、ソラの質問に答える。
「まあ、そこで悩むわな。不定元というのは変数や未知数と同じように扱えるが、単なる記号じゃ。変数や未知数のように数を表してはいない。不定元と不定元を掛けた結果は、不定元の2乗という記号になる。キロとかメガといった単位の補助記号に少し似ているかのお」
ソラは、おそるおそる例を挙げる。
「例えば、3キロ2メートルと、1キロ2メートルを掛けると、3メガ8キロ4平方メートルになるようなものですか」
ジンは、ソラに同意しつつ、補助記号との違いを述べる。
「その通りじゃ。補助記号との違いは、不定元に掛かる定数がどんな数でもいいことと、決して繰り上がりが起こらないことじゃな。だから、二つの多項式が等しくなるのは、対応する不定元の次数の係数がすべて等しい場合だけじゃ」
ソラは、少し安堵しつつ、浮かんだ疑問を口にする。
「わざわざ関数と多項式を使い分ける理由が分かりません。例えば、関数のtの2乗、引く、1と、多項式のtの2乗、引く、1で、実質的な違いは何ですか?」
ジンは、嬉しそうな表情をして答える。
「いい質問じゃな。今日の話をする上では、関数と多項式の二つの違いが問題となる。一つは、割り算じゃ」
ジンは、割り算の例題として、ソラが挙げた例をt、引く、1で割る問題を取り上げる。
「関数は数に対して数が返るものじゃから、tが1のときは割る数が0になって割れない。じゃから、結果は、t、足す、1、ただしtが1のときを除く、となる。一方、多項式で考えると、t、引く、1は、0と異なる。よって、場合分けは発生せず、結果は、t、足す、1という多項式になる」
ソラは、なるほど、と思わず声を上げた。
ジンは、関数と多項式のもう一つの違いについて話し始める。
「もう一つの違いは正方行列の代入じゃ」
ジンは、ソラの挙げた例をf(t)、また、(t、足す、1)、掛ける、(t、引く、1)をg(t)と表した。
「このf、gを関数と見なす場合から行こうかの。関数としてfとgは等しくなる。これは、tがどんな数であっても、f(t)とg(t)の値が数として等しいことを意味している」
ジンは、正方行列Aをf、gに代入する操作について解説する。
「f、gにおいて、不定元tを正方行列A、定数項を単位行列Iの定数倍に置き換えた式をそれぞれf(A)、g(A)と表し、行列の代入と呼ぶ。具体的には、f(A)はAの2乗、引く、I。g(A)は、(A、足す、I)、掛ける、(A、引く、I)じゃ。f(A)とg(A)はともに行列で、行列として等しくなる」
ジンは、関数としての等しさから、行列としての等しさを導くには、追加条件が必要となる可能性に言及する。
「関数として等しい、つまりどんな数を入れても同じ数が返る、ということと、正方行列を代入したときに等しくなることは、一応、別の性質じゃ。通常の状況であれば、前者から後者が導かれるが、それは証明を必要とすることがらじゃ」
ジンは、続けて、f、gを多項式と見なす場合について述べる。
「次に、f、gを多項式と見なす場合を考えようかの。多項式としてfとgは等しくなる。これは、展開して整理したときに、両者のtの2次の項の係数、tの1次の項の係数、定数項がすべて等しいことを意味している。f(A)とg(A)が等しくなることは明らかじゃ」
ジンの説明に対して、ソラは、納得した表情で、なるほど分かりました、と返した。
多項式の定義が終わり、講義は多項式の割り算の話に移る。
「正の整数の割り算を筆算で計算する方法は知っているよな。あれと同じ方法で、多項式の割り算が計算できる」
ジンの話を受けて、ソラは、tの2乗、引く、1をt、引く1で割ることを試みる。
「まず、商としてtを立てます。割る多項式と掛けると、tの2乗、引く、tです。割られる多項式から引くと、t、引く、1になるので、商に1を立てます。割る多項式と掛けると、t、引く、1になるので、余りは0です。これより、商はt、足す、1、余り0で、正しい結果となっています。整数の割り算よりも簡単ですね」
ジンは、満足そうにうなずき、補足する。
「割られる多項式をf(t)、割る多項式をg(t)、商の多項式をq(t)、余りの多項式をr(t)とする。数の割り算と同様に、f(t)は、g(t)、掛ける、q(t)、足す、r(t)、に等しくなる。余りr(t)が0でないときは、その次数は割る多項式g(t)の次数よりも小さくなる」
「ということは、1次式t、引く、αで割るときは、余りの多項式は定数rになるということですね」
ソラが確認すると、ジンは、同意し、さらに定数rの求め方を述べる。
「その通りじゃ。さっきの関係式は多項式として両辺が等しいことを表しているから、tにαを代入しても等しくなる。このことから、rはf(α)に等しいことが分かる」
f(α)が0の場合には、余りが0になり、f(t)は(t、引く、α)、掛ける、q(t)と表せる。ソラは、具体例でこれが成り立っていることを確認する。
「例えば、f(t)がtの2乗、引く、1で、αが1のときは、f(α)は0となり、f(t)は(t、引く、α)、掛ける、(t、足す、1)です。確かに、成り立っています」
「ちなみに、この性質は、因数定理と呼ばれている」
ジンが、定理の名称を紹介して、多項式の話は終わった。
次に、ジンは代数方程式について話し始める。
「代数方程式は、対応する多項式f(t)を使って表すことができる。すなわち、代数方程式とは、f(z)が0に等しくなる数zを求める問題じゃ。ここでは、f(t)の次数をn、nは1以上とする」
代数学の基本定理から、少なくても一つの数αで、f(α)は0になることが保証される。ジンは、このことと、因数定理を組み合わせて、f(t)を変形する。
「因数定理を使うことで、多項式f(t)は、(t、引く、α)、掛ける、q(t)の形に表せる。q(t)の次数は、f(t)よりも一つ小さくなる。次数が正のうちは、この操作を繰り返すことができる。結局、f(t)は、(t、引く、α)、掛ける、……、掛ける、(t、引く、γ)、掛ける、0でない定数の形になる」
ジンは、f(t)の変形から、分かることを二つ挙げる。
「一つは、n次の代数方程式はn個の解を持つことじゃ。ただし、重複があるかもしれないので、異なるものはn個以下になるがの。もう一つは、次数が1以上の多項式は、1次式を掛けた形で表せるということじゃ」
ソラは、結果に感心し、複素数の恩恵はすごいですね、と感想を述べた。
講義は、行列に関する核心の話に移る。
「これで準備は終わり。いよいよ、どんな正方行列でも固有値と固有ベクトルが存在することの証明を始めようかの」
ジンの宣言に対して、ソラは、はい、お願いします、と応じた。
最初に、ジンは、固有値と固有ベクトルの存在を証明する上で、鍵となる補題(補助的な定理)を紹介する。
「対象とする正方行列をAとする。サイズは、n掛けるnじゃ。次の補題が成り立つ。この証明は最後じゃ」
補題1:単位行列I、A、Aの2乗、Aの3乗、……を適当な重みを付けて足し合わせると、全要素が0の行列Oに等しくできる。ただし、少なくても一つの重みは0ではない。
「補題1は、いわば得体の知れない巨大行列が見せる隙じゃな。何度も掛けることで変身し続けようとしても、それらの間には、どうしてもある関係が成り立ってしまうのじゃ。そこを突く」
ジンはニヤリと笑って続ける。
「補題1より、0でないある多項式f(t)が存在して、f(A)がOに等しくなることが分かる。これは、多項式への行列の代入そのものだから、明らかじゃろう。行列Aを代入したときにOとなるような0でない多項式の中で、次数が最も小さい多項式をφ(t)とする」
ソラが、割り込んで質問する。
「次数が最も小さい多項式が存在するのは、なぜですか?」
単位行列IからAのk乗まで、それぞれに重みを掛けて足し合わせたものがOという式は、重みを未知数とする連立一次方程式になる。ジンは、この事実を使い、ソラの疑問に答える。
「少なくても一つの重みが0でないという条件で、この連立一次方程式が解けるかどうかをkを1、2、……とだんだん大きくしながら調べていけばよい。最初に解けたときのkとそのときの重みによって、次数最小の多項式が定まる。補題1から、kを大きくする処理はどこかで停止することが保証される」
ここで、ジンは、次数が1以上の多項式は1次式を掛けた形で表せることを利用する。
「φ(t)に含まれる1次式の一つをt、引く、αとする。残りを掛けたものをq(t)とすると、φ(t)は、(t、引く、α)、掛ける、q(t)、に等しくなる。行列Aを代入すると、φ(A)はOじゃから、(A、引く、α、掛ける、I)、掛ける、q(A)、はOになる」
ジンは、A、引く、α、掛ける、I、をBと置き、Bが正則行列にはならないことを示す。
「Bが正則行列と仮定すると、Bの逆行列をφ(A)に掛けることで、q(A)がOになる。q(t)の次数はφ(t)よりも一つ小さい。このことは、φ(t)がAを代入したときにOとなる次数最小の多項式であることに反する。よって、Bは正則行列ではない」
ジンの解説に、ソラは感動して声を上げる。
「なるほど! 最小なものを選んで、ある性質を仮定するとおかしなことが起こるから、その性質が成り立たないという論法ですね。ルート2や代数方程式の解など、色々なところで出てきますね」
ジンは、そうじゃな、と返し、続けて二番目の補題を紹介する。
補題2:正則でない正方行列Bに対して、0でないベクトルxが存在し、B、掛ける、x、は0になる。ただし、0でないベクトルとは、少なくても一つの要素が0でないベクトル、ベクトルの0とは全要素が0のベクトルを表す。
「Bが正則でないから、補題2が使える。つまり、(A、引く、α、掛ける、I)、掛ける、x、が0になるようなxが存在する。これは、A、掛ける、x、がα、掛ける、x、に等しいと表せる。つまり、αはAの固有値、xは対応する固有ベクトルじゃ」
ジンは、固有値と固有ベクトルが存在する証明をまとめる。
「行列Aを代入すると、Oになるような多項式の中で次数が最小のものを選ぶのがポイントじゃな。このような多項式は定数倍しても構わないので、最高次の係数を1にするのが便利じゃ。これは、Aの最小多項式と呼ばれている。最小多項式から決まる代数方程式の解は、すべてAの固有値じゃ。それぞれの固有ベクトルは補題2を使って求められる」。
講義の最後に、ジンは、補題1、補題2は、行列のLDU分解を使えば簡単に証明できると告げ、説明を始める。
「補題1では、まず単位行列Iのn掛けるn個の要素を縦一列に並べた行列を作る。次に、Aの要素をその右の縦一列に並べる。さらに、Aの2乗の要素をその右の縦一列に並べる。これをAの(nの2乗)乗まで繰り返す。すると、nの2乗、掛ける(nの2乗、足す、1)のサイズの巨大行列ができる。これをLDU分解する」
上記の巨大行列は横長なので、巨大行列、掛ける、未知ベクトルが0という連立一次方程式は、0でない解を持つ。この解が求める重みになる。
「補題2では、BをLDU分解する」
Bは正則でないので、対角行列Dも正則にならない。これより、D掛けるy、が0になるような、0でないベクトルyを作ることができる。Uの逆行列をyに掛けたベクトルをxと置けば、これが求めるものになる。
ソラは、しみじみと感想を伝える。
「こんなところで使われるなんて、さすがLDU分解は奥義というだけはありますね」
ジンは、そうじゃな、と応じた。
行列の固有値と固有ベクトルの存在を証明する講義は、こうして終わった。




