seegongsik
単語帳
工業数学

グラム・シュミットは歪んだ基底をまっすぐにする

歪んだ基底から射影を引いて直交正規基底を作る、QR の Q がまさにこれだ

二つのベクトルが斜めに並んでいるとしましょう。同じ平面を張りはしますが、互いに直角でもなく長さもまちまちで、計算にはとても不便です。グラム・シュミットは、この歪んだ基底をまっすぐ整える手順です。最初の方向はそのまま生かし、二つ目のベクトルからは、一つ目へ落とす影(射影)を引きます。すると一つ目とぴったり直角な成分だけが残ります。最後に両方を長さ1にそろえれば、直角で交わる整った単位フレームが出てきます。最初のウィジェットで段階を一つずつ踏みながら、傾いた二つのベクトルがどう正規直交になるかを追ってみてください。これがまさに次の講の QR 分解の Q です。

ボタンで段階を一つずつ踏んでみてください。段階0は斜めの入力 a1, a2 そのものです。段階1は a1 を長さ1に縮めて、最初の単位ベクトル u1 を作ります(緑)。段階2は a2 が u1 へ落とす影、すなわち射影 (a2·u1)u1 を金色で描きます。a2 の中に u1 方向がどれだけ含まれるかですね。段階3は a2 からその射影を引いて、残った直角な成分 w を橙色で作り、長さを1にそろえて二つ目の単位ベクトル u2 を得ます。これで u1 と u2 はちょうど直角で交わります。歪んだ二つが、整った正規直交の一組にまっすぐ伸ばされたのです。

グラム・シュミットの核心の動作だけを取り出して、自分の手に取ってみましょう。u1 を x 軸上の単位ベクトルに固定し、青いベクトル a2 を好きに動かしてみてください。金色の矢印は a2 が u1 に落とす射影 (a2·u1)u1 です。a2 の中の u1 成分だけを抜き出したものですね。橙色の矢印はその射影を引いた残り、a2 − 射影 です。a2 をどこへ動かしても、この橙の残りはつねに u1 とちょうど直角を成します。射影を引くと平行な成分が消え、直角な成分だけが残るからです。この一回の引き算こそ、歪んだ二つ目のベクトルをまっすぐ立てるグラム・シュミットの心臓です。

今度は、入力がどれだけ歪んでいても出力はつねにまっすぐだと確かめます。a1 は固定し、スライダーで a2 の傾き角をあれこれ回してみてください。薄い二つのベクトルが斜めの入力 a1, a2 で、濃く描かれた直角の単位フレーム u1, u2 が、グラム・シュミットで伸ばした出力です。入力をどれだけ傾けても、出力 u1 と u2 はつねに長さ1で互いに直角を保ちます。ただ一つ危ない場所があります。a2 を a1 とほぼ平行にすると、二つが同じ向きになり、張るべき平面が消えて直角な成分が0に近づきます。その瞬間、正規直交フレームは作れず警告が出ます。ほぼ平行な基底はまっすぐ伸ばせない、ということです。

グラム・シュミットは、どのベクトルから始めるかで結果が変わります。最初のベクトルの方向だけはそのまま保たれるからです。トグルで出発の順序を変えてみてください。a1 を先にすると u1 が a1 の方向をそのまま追い、u2 がそれに直角に立ちます。a2 を先に変えると、今度は u1 が a2 の方向を追い、u2 がその直角になります。同じ二つの入力で同じ平面を張るのに、できる正規直交フレームは違う向きに回っています。どちらも等しく正しい正規直交基底です。ただグラム・シュミットは最初の方向を錨にする手順なので、誰を一番目と呼ぶかが答えを決めます。

今度は、伸ばした二つの単位ベクトルを一つの行列に集めます。トグルで u1, u2 を一つずつ点けると、それぞれ行列 Q の1列目と2列目に収まります。下の数字板にその 2×2 の Q が出ます。緑の列が u1、橙の列が u2 です。Q の二つの列は互いに直角な単位ベクトルなので、Q は長さも角度も変えない純粋な回転(直交行列)です。だから Qᵀ Q = I が成り立ちます。こうして集めた Q が、まさに次の講の QR 分解の Q です。どんな行列 A も A = QR に分かれ、Q はグラム・シュミットで伸ばしたこの正規直交の列、R は途中で抜き出した射影係数を収めた上三角行列です。

実際に使うグラム・シュミットは、斜めの基底 a1, a2, … を正規直交基底 u1, u2, … に伸ばす手順です。最初のベクトルは長さだけ1に縮めて u1 とし、次のベクトルごとに、すでに作ったすべての u 方向への射影を引いてから正規化します。射影を引くこの一動作が平行成分を消し、直角な成分だけを残して、直角で交わる単位フレームを作ります。結果は出発ベクトルによって変わり、最初の方向だけは保たれます。二つの入力がほぼ平行なら張る次元がなく、手順は崩れます。伸ばした u を列に集めれば直交行列 Q(Qᵀ Q = I)になり、これがまさに QR 分解の Q です。最小二乗、QR アルゴリズム、数値線形代数の安定性は、すべてこの一つの手順の上に立っています。歪んだ基底も、結局はまっすぐ伸ばせます。
工業数学
このページがお役に立ったなら支援する