Gram-Schmidt 正交化計算器

使用 Gram-Schmidt 程序,將任何一組線性獨立向量轉換為正交基底或正交規一基底。

請在下方輸入向量,每行一個,分量之間以逗號或空格分隔。計算器會套用 Gram-Schmidt 程序,產生正交基底與正交規一基底。

Gram-Schmidt 正交化計算器
使用 Gram-Schmidt 程序,將任何一組線性獨立向量轉換為正交基底或正交規一基底。

關於 Gram-Schmidt 計算器

Gram-Schmidt 程序是線性代數中最重要的演算法之一。給定一組線性獨立向量,它會系統性地產生一組彼此正交、且張成相同子空間的新向量。若再將每個正交向量除以其長度,使其成為單位向量,得到的結果就稱為正交規一基底。正交規一基底被視為線性代數中的黃金標準,因為它幾乎能簡化所有涉及投影、旋轉、鏡射與分解的計算。 此演算法以歸納方式進行。第一個輸出向量就是第一個輸入向量,保持不變。第二個輸出向量是第二個輸入向量減去其在第一個輸出向量上的投影,這樣第二個輸出就會垂直於第一個。第三個輸出向量則是第三個輸入向量減去其在前兩個輸出向量上的投影。一般而言,第 k 個輸出向量等於第 k 個輸入向量減去它對所有前面輸出向量投影的總和。向量 v 投影到已正交化向量 u 上的公式為 (v·u / u·u) × u,其中 · 表示內積。 如果在這個過程中,扣除所有投影後的結果是零向量,表示該輸入向量與前面的向量線性相依,應直接捨棄。計算器會自動處理這種情況,並回報輸入集合的秩,也就是實際上線性獨立的向量數量。實務上,還會使用一個較小的數值閾值來捕捉因浮點四捨五入而接近零的向量。 正交規一基底的取得方式,是將每個正交輸出向量除以其歐幾里得範數(也就是它與自身內積的平方根)。這樣得到的一組向量長度都恰為 1,且彼此互相垂直。這組正交規一向量構成原始輸入所張成子空間的正交規一框架。 Gram-Schmidt 程序的應用幾乎遍及所有定量領域。在數值線性代數中,它是 QR 分解的基礎,而 QR 分解常用於求解最小平方問題與計算特徵值。在訊號處理中,它用來建構正交濾波器組並分離獨立的訊號分量。在量子力學中,量子系統的狀態空間是希爾伯特空間,而物理可觀測量對應於特徵向量的正交規一基底。在統計學與機器學習中,主成分分析(PCA)可理解為尋找一個與資料集中最大變異方向對齊的正交規一基底。在電腦圖學中,建立相機或物件座標系需要三個彼此垂直的單位向量,而 Gram-Schmidt 正好能自然完成這項工作。 這個計算器接受任意維度的向量,能妥善處理線性相依輸入,並將中間的正交向量與最後的正交規一向量並排顯示,讓你清楚看到整個轉換過程。

Gram-Schmidt 範例

三個完整範例,分別展示 2D、3D,以及線性相依向量組的正交化過程。

輸入向量正交規一基底說明
v1 = (1, 0), v2 = (1, 1)e1 = (1, 0), e2 = (0, 1)標準的 2D 情況。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)經典的 3D 正交規一化。三個輸入向量彼此獨立,因此得到 ℝ³ 的完整正交規一基底。
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 的純量倍數(線性相依),因此被捨棄。秩為 2,而非 3。
v1 = (3, 1), v2 = (2, 2)e1 ≈ (0.949, 0.316), e2 ≈ (−0.316, 0.949)包含非整數分量的 2D 範例。輸出向量是彼此垂直的單位向量。

如何使用 Gram-Schmidt 計算器

  1. 在文字區輸入向量,每行一個向量,分量之間以逗號或空格分隔(例如 '1, 2, 3' 或 '1 2 3')。
  2. 確保所有向量都有相同數量的分量——維度會根據第一行自動推斷。
  3. 點擊「計算基底」。計算器會套用 Gram-Schmidt 程序,並顯示正交基底與正交規一基底。
  4. 查看結果中回報的秩。如果它小於輸入向量的數量,表示有些輸入向量線性相依,已被略過。
  5. 使用「重設」按鈕清除輸入並開始新的計算。

Gram-Schmidt 計算器常見問題

什麼是 Gram-Schmidt 程序?
Gram-Schmidt 程序是一種演算法,會將一組線性獨立向量轉換為一組彼此正交、且張成相同子空間的向量。也可以將每個正交向量正規化為單位長度,從而得到正交規一基底。
正交與正交規一有什麼差別?
正交集合中的向量兩兩內積都為零,也就是彼此垂直。正交規一集合還要求每個向量的長度為 1(單位向量)。每個正交規一集合都是正交的,但反過來不一定成立。
如果我的輸入向量線性相依會怎樣?
當某個向量與前面的向量線性相依時,扣除其投影後會得到零向量,而零向量無法正規化。計算器會偵測到這一點並省略該向量。回報的秩會小於輸入向量的數量。
什麼是 QR 分解,它有什麼關係?
QR 分解會將矩陣 A 分解為 Q·R 的乘積,其中 Q 的欄向量是正交規一的,而 R 是上三角矩陣。Gram-Schmidt 程序是計算 Q 的經典方法之一。這種分解廣泛用於求解最小平方問題以及數值特徵值演算法。
我可以使用多少維?
除了記憶體與浮點精度限制之外,計算器沒有硬性的維度上限。支援 2、3、4 或更多分量的向量。只要每個向量各自占一行,且分量數量一致即可。
為什麼結果看起來和手算略有不同?
計算器使用 IEEE-754 雙精度浮點運算,可能會產生微小的四捨五入誤差。為了顯示,結果會四捨五入到固定的小數位數。若需要精確的符號解,可使用 Wolfram Alpha 之類的電腦代數系統或符號 Python 函式庫。