Gram-Schmidt 正規直交化計算機

Gram-Schmidt 法を使って、任意の線形独立ベクトル集合を直交基底または正規直交基底に変換します。

下の欄にベクトルを1行ずつ入力してください。成分はカンマまたはスペースで区切れます。計算機は Gram-Schmidt 法を適用し、直交基底と正規直交基底の両方を作成します。

Gram-Schmidt 正規直交化計算機
Gram-Schmidt 法を使って、任意の線形独立ベクトル集合を直交基底または正規直交基底に変換します。

Gram-Schmidt 計算機について

Gram-Schmidt 法は、線形代数で最も重要なアルゴリズムの1つです。線形独立なベクトル集合が与えられると、それらと同じ部分空間を張る、互いに直交した新しいベクトル集合を体系的に作り出します。さらに各直交ベクトルをその長さで割って単位ベクトルにすると、正規直交基底が得られます。正規直交基底は、射影、回転、反射、分解を含むほとんどすべての計算を簡単にするため、線形代数における最良基準とされています。 アルゴリズムは帰納的に進みます。最初の出力ベクトルは、最初の入力ベクトルをそのまま使います。2番目の出力ベクトルは、2番目の入力ベクトルから1番目の出力ベクトルへの射影を引いたものです。これにより2番目の出力は1番目に垂直になります。3番目の出力は、3番目の入力ベクトルから最初の2つの出力への射影を取り除いたものです。一般に、k番目の出力ベクトルは、k番目の入力ベクトルからそれ以前のすべての出力ベクトルへの射影の総和を引いたものになります。ベクトル v を直交化済みベクトル u に射影する式は (v·u / u·u) × u で、· は内積を表します。 この過程で、すべての射影を引いた結果が零ベクトルになる場合、その入力ベクトルは先行するベクトルに線形従属しているため、単純に破棄されます。計算機はこれを自動で判定し、入力集合の階数、つまり本当に独立なベクトルの数を表示します。実際には、浮動小数点の丸め誤差でほぼ零になるベクトルを拾うために、わずかな数値しきい値も使われます。 正規直交基底は、各直交出力ベクトルをユークリッドノルム(自分自身との内積の平方根)で割ることで得られます。こうして得られるベクトルはすべて長さがちょうど1で、互いに直交します。この正規直交集合は、元の入力が張る部分空間の正規直交フレームを構成します。 Gram-Schmidt 法の応用は、ほぼあらゆる定量分野に及びます。数値線形代数では QR 分解の基礎となり、最小二乗問題の解法や固有値計算に使われます。信号処理では、直交フィルタバンクの構築や独立した信号成分の分離に利用されます。量子力学では、量子系の状態空間はヒルベルト空間であり、物理量は固有ベクトルの正規直交基底に対応します。統計学や機械学習では、主成分分析(PCA)は、データの分散が最大となる方向に沿った正規直交基底を見つけるものと理解できます。コンピュータグラフィックスでは、カメラやオブジェクトの座標系を作るのに、互いに直交する3つの単位ベクトルが必要で、これは Gram-Schmidt 法で自然に求められます。 この計算機は任意次元のベクトルに対応し、線形従属な入力も適切に処理し、中間の直交ベクトルと最終的な正規直交ベクトルを並べて表示するので、変換の各段階を確認できます。

Gram-Schmidt の例

2次元、3次元、および従属ベクトル集合における直交化の流れを示す3つの例です。

入力ベクトル正規直交基底備考
v1 = (1, 0), v2 = (1, 1)e1 = (1, 0), e2 = (0, 1)標準的な2次元の例です。v2 から v1 への射影を引くと (0,1) になり、これはすでに単位ベクトルです。
v1 = (1, 1, 0), v2 = (1, 0, 1), v3 = (0, 1, 1)e1 ≈ (0.707, 0.707, 0), e2 ≈ (0.408, −0.408, 0.816), e3 ≈ (−0.577, 0.577, 0.577)典型的な3次元の正規直交化です。3つの入力ベクトルはすべて独立で、ℝ³ の完全な正規直交基底が得られます。
v1 = (1, 2, 3), v2 = (2, 4, 6), v3 = (1, 0, 0)e1 ≈ (0.267, 0.535, 0.802), e2 ≈ (0.964, −0.148, −0.222)v2 は v1 のスカラー倍(線形従属)なので除外されます。階数は 3 ではなく 2 です。
v1 = (3, 1), v2 = (2, 2)e1 ≈ (0.949, 0.316), e2 ≈ (−0.316, 0.949)整数でない成分を含む2次元の例です。出力ベクトルは互いに垂直な単位ベクトルです。

Gram-Schmidt 計算機の使い方

  1. テキストエリアにベクトルを1行ずつ入力します。成分はカンマまたはスペースで区切ります(例: '1, 2, 3' または '1 2 3')。
  2. すべてのベクトルが同じ数の成分を持っていることを確認してください。次元は先頭行から自動的に推測されます。
  3. 「基底を計算」をクリックします。計算機が Gram-Schmidt 法を適用し、直交基底と正規直交基底を表示します。
  4. 結果に表示される階数を確認してください。入力ベクトル数より小さい場合、一部の入力は線形従属であり、スキップされています。
  5. 「リセット」ボタンで入力を消去し、新しい計算を開始できます。

Gram-Schmidt 計算機 FAQ

Gram-Schmidt 法とは何ですか?
Gram-Schmidt 法は、線形独立なベクトル集合を、同じ部分空間を張る互いに直交したベクトル集合へ変換するアルゴリズムです。必要に応じて各直交ベクトルを単位長に正規化し、正規直交基底を得ることもできます。
直交と正規直交の違いは何ですか?
直交集合では、各ベクトルのペアの内積がすべて0、つまり互いに垂直です。正規直交集合では、さらに各ベクトルの長さが1(単位ベクトル)である必要があります。すべての正規直交集合は直交集合ですが、その逆は成り立ちません。
入力ベクトルが線形従属だとどうなりますか?
あるベクトルが先行するベクトルに線形従属している場合、その射影を引くと零ベクトルになり、正規化できません。計算機はこれを検出してそのベクトルを省略します。表示される階数は入力ベクトル数より小さくなります。
QR 分解とは何で、どう関係しますか?
QR 分解は、行列 A を Q·R の積に分解するもので、Q は正規直交列を持ち、R は上三角行列です。Gram-Schmidt 法は Q を求める古典的な方法の1つです。この分解は最小二乗問題の解法や数値固有値アルゴリズムで広く使われます。
何次元まで使えますか?
メモリと浮動小数点精度の制約を除けば、次元に厳密な上限はありません。2、3、4成分以上のベクトルに対応しています。各ベクトルを1行ずつ入力し、成分数を揃えてください。
手計算と少し違って見えるのはなぜですか?
計算機は IEEE-754 の倍精度浮動小数点演算を使っているため、微小な丸め誤差が生じることがあります。表示用に結果は固定桁数へ丸められます。厳密な記号解が必要な場合は、Wolfram Alpha などの数式処理システムや、記号計算ができる Python ライブラリを使ってください。