54 面積
翌日、トロワ姫への講義が休みとなった。
ソラは、王都を少し散策し、食料品を購入して王城に戻った。
――王都は物の値段がめちゃくちゃ高いから、あまり買い物をする気にならないな。
ソラは、独り言をつぶやきながら食材を冷蔵庫にしまい、次の講義の題材を考える。
――特異値分解とデータ分析の話も一段落したし。そろそろ、線形代数でこれまで省いてきた補足的な話題を取り上げることにしようか。まずは面積かな。
ソラは、面積に関するジンの講義を思い起こす。
「坊や、平行四辺形の面積の計算はできるかの?」
ジンは、そう言ってその講義を始めた。
ソラは、初等教育で習うような話がいきなり出てきて混乱する。
「えーと、平行四辺形の一つの辺を選び、それに直交する線を伸ばして反対側の辺までの長さを求めて、辺の長さと線の長さを掛ければ、面積になりますよね。初等教育では、底辺、掛ける、高さ、といった形で習うと思います」
ジンは、にやりと笑って、正解じゃ、と告げる。
「では、平面に横軸(1, 0)と縦軸(0, 1)からなる正規直交座標系が入っているとして、原点(0, 0)と、そこからの変位ベクトルがd、eの三点で決まる平行四辺形の面積はどうじゃ?」
ジンの質問に、ソラは少し考えてから答える。
「dをそのノルムaで割った単位ベクトルをpと書きます。pと直交するベクトルで、e引く、t掛けるp、という形をしたものを求めます。このとき、tはeとpとの内積になります。このベクトルのノルムをb、bで割った単位ベクトルをqとすると、平行四辺形の面積は、a掛けるbと表されます」
ソラの回答を受けて、ジンは重ねて尋ねる。
「今、坊やが説明した処理を行列を使って書いたらどうなるかの?」
ソラは、三つの行列を脳内に思い浮かべる。
一つ目の行列A。これは、サイズが2掛ける2で、変位ベクトルd、eをそれぞれ縦一列に並べた行列。
二つ目の行列Q。これは、サイズが2掛ける2で、処理の途中に現れる単位ベクトルp、qをそれぞれ縦一列に並べた行列。p、qは単位ベクトルで直交するので、Qは直交行列である。
三つ目の行列R。これは、サイズが2掛ける2で、左の縦一列が(a, 0)、その右の縦一列が(t, b)の行列。よって、Rは対角要素が正の上三角行列である。
「三つの行列を使うと、さっきの処理は、Aは、Q掛けるR、に等しい、と書けます。平行四辺形の面積は、Rの対角要素をすべて掛けたものです」
ジンは、嬉しそうに、その通りじゃ、と応じた。
平行四辺形の面積が一段落し、講義は、サイズがn掛けるnで、実数を要素とする一般の行列の話に移る。ただし、nは正の整数である。
「一般の正方行列Aを考えようかの。さっきと同様に、うまい直交行列Qと上三角行列Rを取ると、Q掛けるR、がAに等しくなる。Aが正則なら、Rの対角要素をすべて正に選ぶことができ、QとRは一つに決まる。これをどうやって示す?」
ジンの問いかけに、ソラは考え込む。
――さっき、平行四辺形の高さ方向の単位ベクトルqを求めたけど、なんか見覚えがあるんだよね。そうか。行列の三角化のとき出てきた、与えられた単位ベクトルから正規直交基底を作る処理に似ているんだ。
ソラは、記憶を辿りつつ、AからQとRを構成する方法をまとめる。
・出発点 Aの左端の縦一列のベクトルのノルムからなるサイズが1掛ける1の行列をR、ノルムで割った単位ベクトルを縦一列に並べた行列をQとする。Aの左端縦一列の部分行列は、Q掛けるR、に等しい。kを2とする。
・Aの左側からk番目の縦一列のベクトルeの処理 eを使って、QとRに追加するベクトルを作る。そのために、Qの転置、掛けるe、をtと置き、e引く、Q掛けるt、を計算する。このベクトルのノルムbが0でなければ、bで割ってqと置く。qは単位ベクトルで、Qに並べられたすべてのベクトルと直交する。
・QとRの更新 qをQの右端の縦一列に追加する。Rについては、まず下端の横一行すべてに0を追加し、その後、右端の縦一列に、tの要素とbを連結したベクトル(t, b)を追加する。このとき、Aの左側からk個の縦の列からなる部分行列は、Q掛けるR、に等しくなる。kを一つ増やして再びk番目の縦一列のベクトルの処理を繰り返す。
「と、こんな感じで、AからQとRを決められると思います」
ソラはそう言って、ひとまず説明を終えた。
ジンは、鋭い目つきをして、ソラに告げる。
「基本はその通りじゃ。だが、処理が途中で止まらないことも、処理が終了したときに直交行列になることも、QとRが一つに決まることも示せてないがの」
ソラは、恐縮しながら、まず行列Aが正則の場合について答える。
「もし、Aの左端の縦一列のベクトルが0だと、正則にならないので、出発点は問題ないです。また、もし処理の途中でノルムbが0になると、Aのある縦一列のベクトルが他の列の線形結合で表されることになり、正則であることに反します。よって、bは0にならず、さっき述べた処理は最後まで進みます」
処理終了時のQのサイズはn掛けるnなので、直交行列になることは明らかである。Rは対角要素が正の上三角行列になる。
続けて、ソラは、Aが正則なときに、QとRが一つに決まる理由を述べる。
「掛けるとAになるような、別の直交行列と対角要素が正の上三角行列が取れたと仮定します。掛けた結果はともにAです。両者を等しいと置いた式で逆行列を掛けると、ある直交行列Qと、対角要素が正の上三角行列Rが等しくなります。これが成り立つのは、単位行列のときだけです。このことからQとRは一つに決まります」
直交行列Qと対角要素が正の上三角行列Rが等しくなるのは、単位行列だけ、という事実は以下のように示される。
上三角行列の逆行列は一般に上三角行列になる。ここでは、上三角行列の転置でもあるので、下三角行列になる。よって、Rの逆行列は対角行列。ゆえにQも対角行列。対角要素が正の対角行列が、直交行列となるのは単位行列のときだけである。
最後に、ソラは、行列Aが正則でなくても、直交行列Qと上三角行列Rが取れることを説明する。
「Aが正則でない場合には、処理が途中で止まります。このときは、Qに並べられたすべてのベクトルと直交する適当な単位ベクトルをqとして、処理を続行します。終了時にはQは直交行列、Rは上三角行列になります。ただし、Rの対角要素には0が含まれます。また、QとRは一つに決まるとは限りません」
ソラの説明が終わると、ジンは満足そうに、よしよし、とうなずいた。
ジンは続けて言う。
「ちなみに、この処理はQR分解と呼ばれている。nが2の場合が、平行四辺形の面積の計算じゃ。nが3の場合は、平行六面体の体積の計算になる」
ソラが、平行六面体ですか、と聞き返したので、ジンは補足する。
「平行六面体とは、向かい合う面がみな平行で、各面がすべて平行四辺形の立体のことじゃ。平行四辺形の面積と合わせて言えば、平行六面体の体積は、底面積、掛ける、高さ、じゃな」
ソラは、原点と、そこからの変位ベクトルがd、e、fの四点で決まる平行六面体を考え、変位ベクトルを並べた正方行列のQR分解で得られる直交行列を(p, q, r)、上三角行列の対角要素をa、b、cと置いた。
「なるほど。底面の点はpとqの線形結合で表せて、底面積はa掛けるbです。高さ方向の単位ベクトルがr、高さがcだから、平行六面体の体積は、a掛けるb掛けるc、になりますね」
「その通りじゃ。nが4以上の場合も同様に、QR分解で得られる上三角行列の対角要素をすべて掛けた値を体積と呼ぶ。変位ベクトルを並べた行列Aが正則なら体積は正の値で、一つに決まる。そうでない場合、QR分解は一つに決まらないが、体積は0に決まる」
ジンの説明に、ソラは納得の表情を浮かべる。
「現実世界の図形や立体としては表せないけど、体積という考え方を一般化するということですね」
「その通りじゃ」
ジンは、一呼吸おいて、ソラに告げる。
「QR分解は、体積を実際に計算するには有用じゃ。一方で、面積や体積の一般的な性質を示すには向いていない」
ジンの話がよく理解できなかったため、ソラは思わず聞き返す。
「一般的な性質と言いますと?」
「例えば、平行四辺形の面積で言えば、どの辺を底辺に取っても面積が同じになることじゃな。この性質をQR分解で証明するのは、大変そうじゃ」
ジンの説明を受けて、ソラは底辺を取り換えた二種類のQR分解を想像する。二つのQR分解において、上三角行列の対角要素を掛けたものが等しくなる、と証明できるようには思えなかった。
「確かに、証明できるような気がしません」
ソラがしょんぼりとした表情で答えると、ジンはソラを励ますように言う。
「安心せい。適した方法はちゃんとある。行列式と言う。ちょっと休憩したら、その話をしようかの」
ソラは、よろしくお願いします、と応じた。




