Gram-Schmidt 正交归一化计算器

将一组线性无关的向量转换为正交或正交归一基。

在下方输入您的向量,每行一个向量。向量中的数字可用逗号或空格分隔。计算器将应用 Gram-Schmidt 过程生成两组基向量。

维度数量将根据第一行向量自动推断。

示例

点击任意示例将其加载到计算器中。

基础二维向量

基础二维向量

二维空间中两个向量的简单案例。

向量:\n3, 1
2, 2

标准三维基

标准三维基

对三维空间中的三个向量应用该过程。

向量:\n1, 1, 1
1, 0, 1
-1, 1, 0

四个四维向量

四个四维向量

四维空间中更复杂的示例。

向量:\n1, 0, 1, 0
1, 1, 1, 1
0, 1, 2, 1

线性相关集合

线性相关集合

包含线性相关向量的示例,展示该过程的处理方式。

向量:\n1, 1, 0
2, 2, 0
1, 0, 1
其他标题
理解 Gram-Schmidt 正交归一化:全面指南
深入探讨 Gram-Schmidt 过程、其数学基础、应用及逐步计算。

什么是 Gram-Schmidt 过程?

  • 将一组向量转换为正交或正交归一组的方法。
  • 线性代数中用于创建简化向量基的基石。
  • 将基变换为更结构化、更有用的形式。
Gram-Schmidt 过程是一种用于线性代数的算法,可以“整理”一组向量。对于内积空间中有限的线性无关向量组,它会生成一组正交向量(所有向量两两垂直)和一组正交归一向量(正交向量且长度为 1)。
这种变换非常有用,因为使用正交或正交归一基可以简化许多数学计算,从解线性方程组到使用 QR 分解等技术进行数据分析。
核心思想:向量投影
该过程通过迭代地取一个向量并减去其在先前处理过的向量上的投影来实现。这会去除当前向量在前面向量方向上的分量,确保新向量与所有前面的向量正交。

基本概念

  • 基 {v1, v2} 变为 {u1, u2},其中 u1 · u2 = 0。
  • 如果 v1 = (3, 1), v2 = (2, 2),该过程得到正交向量如 u1 = (3, 1), u2 = (-0.4, 1.2)。
  • 将正交向量归一化后得到长度为 1 的向量。

Gram-Schmidt 计算器使用步骤指南

  • 了解向量的正确输入格式。
  • 理解如何解读正交和正交归一结果。
  • 排查线性相关等常见问题。
我们的计算器将 Gram-Schmidt 过程简化为几个简单步骤,让您专注于结果而非手动计算。
输入指南:
  • 向量输入:在文本区域每行输入一个向量。例如,输入三个三维向量时应有三行文本。
  • 数字格式:每个向量内的数字(分量)可用逗号(,)或空格分隔。例如“1, 2, 3”和“1 2 3”都有效。
  • 维度一致性:确保所有向量具有相同的分量数。计算器会根据您输入的第一个向量确定维度。
结果解读:
  • 正交基:第一组结果为两两正交的向量(点积为零),但未归一化。
  • 正交归一基:第二组结果为既正交又归一(长度为 1)的向量。这通常是大多数应用所需的结果。
  • 线性相关警告:如果输入向量线性相关,过程会产生至少一个零向量。我们的计算器会发出警告。

实际用例

  • 输入: 1,1 1,0 输出(正交归一): [0.707, 0.707] [0.707, -0.707]
  • 输入: 1,0,0 1,1,0 1,1,1 输出(正交): [1,0,0] [0,1,0] [0,0,1]
  • 输入线性相关向量如“1,1”和“2,2”会得到零向量。

Gram-Schmidt 的实际应用

  • 计算机图形与三维建模。
  • 机器学习与数据科学。
  • 信号处理与通信。
Gram-Schmidt 过程不仅是抽象的数学工具,更是众多科学与工程领域的主力。
QR 分解
最重要的应用之一是 QR 分解,其中矩阵 A 被分解为正交矩阵 Q 和上三角矩阵 R 的乘积。Q 的列就是对 A 的列应用 Gram-Schmidt 过程得到的正交归一向量。这种分解广泛用于解线性系统和特征值问题。
机器学习与统计
在主成分分析(PCA)等降维技术中,正交基对于找到数据集中最大方差方向至关重要。Gram-Schmidt 可用于构建这些基。
计算机图形学
在三维图形中,相对于物体创建坐标系或“相机视图”需要正交归一基(如上、右、前向量)。Gram-Schmidt 是从非正交起始向量创建此基的理想工具。

行业应用

  • 在子空间中找到距离某点最近的点。
  • 生成函数的多项式近似。
  • 为 CDMA 移动通信创建正交码。

常见误区与正确方法

  • 向量顺序非常重要。
  • 几乎相关向量的数值不稳定性。
  • 区分正交与正交归一。
虽然强大,但 Gram-Schmidt 过程有一些细节,若理解不当可能导致混淆或错误结果。
误区一:向量顺序无关紧要
这是错误的。改变输入向量的顺序 {v1, v2, ..., vk} 会导致最终的正交/正交归一基不同。虽然两个基张成的子空间相同,但各向量会不同。输出基的第一个向量总是与输入的第一个向量对齐。
误区二:适用于任意向量组
标准 Gram-Schmidt 过程要求输入向量线性无关。如果相关,算法会尝试找到前面向量的线性组合,结果为零向量。虽然我们的计算器会处理,但这说明初始集合有问题。
误区三:正交与正交归一等同
正交表示所有向量两两垂直(点积为 0)。正交归一则要求正交且每个向量长度为 1。正交归一基通常更有用,但需要额外归一化步骤。
常见问题是数值不稳定。当向量“几乎”线性相关时,减法会导致精度损失。高精度软件中常用改进版 Gram-Schmidt 过程。

澄清示例

  • 处理 {v1, v2} 得到的结果与处理 {v2, v1} 不同。
  • 输入 {(1,0), (0,1), (1,1)},第三个输出会是零向量。
  • 正交向量 (2,0) 归一化后变为 (1,0)。

数学推导与公式

  • 过程核心的投影公式。
  • 构建正交基的迭代算法。
  • 最终归一化步骤。
Gram-Schmidt 过程的优雅之处在于其直接的迭代构造,核心是向量投影。
投影公式
向量 v 在向量 u 上的投影公式为:proj_u(v) = ((v · u) / (u · u)) * u。该公式计算 v 在 u 定义的直线上的“影子”。
算法步骤
设初始线性无关向量组为 {v1, v2, ..., vk}。正交基 {u1, u2, ..., uk} 的求法如下:
1. u1 = v1
2. u2 = v2 - proj_u1(v2)
3. u3 = v3 - proju1(v3) - proju2(v3)
4. ...
5. uk = vk - Σ(from j=1 to k-1) proj_uj(vk)
每一步都取下一个原始向量(vi),减去其在所有已求得正交向量(u1, ..., ui-1)上的投影。结果是一个与所有前面向量正交的新向量(ui)。
归一化
要得到正交归一基 {e1, e2, ..., ek},只需将每个正交向量除以其模长(范数):ei = ui / ||ui||,其中 ||ui|| = sqrt(ui1^2 + ui2^2 + ...)。