数学基础 -- 线性代数之格拉姆-施密特正交化

格拉姆-施密特正交化

格拉姆-施密特正交化(Gram-Schmidt Orthogonalization)是一种将一组线性无关的向量转换为一组两两正交向量的算法。通过该过程,我们能够从原始向量组中构造正交基,并且可以选择归一化使得向量组成为标准正交基。

算法步骤

假设我们有一组线性无关的向量 { v 1 , v 2 , ... , v n } \{v_1, v_2, \dots, v_n\} {v1,v2,...,vn},其目标是将这些向量正交化,得到一组两两正交的向量 { u 1 , u 2 , ... , u n } \{u_1, u_2, \dots, u_n\} {u1,u2,...,un}。

步骤 1:初始化第一个向量

第一个正交向量 u 1 u_1 u1 直接取为 v 1 v_1 v1:
u 1 = v 1 u_1 = v_1 u1=v1

步骤 2:递归构造正交向量

对于每个 k ≥ 2 k \geq 2 k≥2 的向量 v k v_k vk,我们通过从 v k v_k vk 中去除它在前面所有正交向量上的投影,来构造与前面向量正交的向量 u k u_k uk。

  1. 计算投影 : v k v_k vk 在之前所有正交向量 u 1 , u 2 , ... , u k − 1 u_1, u_2, \dots, u_{k-1} u1,u2,...,uk−1 上的投影为:
    Proj u i ( v k ) = ⟨ v k , u i ⟩ ⟨ u i , u i ⟩ u i \text{Proj}_{u_i}(v_k) = \frac{\langle v_k, u_i \rangle}{\langle u_i, u_i \rangle} u_i Projui(vk)=⟨ui,ui⟩⟨vk,ui⟩ui

    其中 ⟨ ⋅ , ⋅ ⟩ \langle \cdot, \cdot \rangle ⟨⋅,⋅⟩ 表示内积。

  2. 去投影 :从 v k v_k vk 中减去它在所有 u 1 , u 2 , ... , u k − 1 u_1, u_2, \dots, u_{k-1} u1,u2,...,uk−1 上的投影,得到与之前向量正交的新向量 u k u_k uk:
    u k = v k − ∑ i = 1 k − 1 Proj u i ( v k ) u_k = v_k - \sum_{i=1}^{k-1} \text{Proj}_{u_i}(v_k) uk=vk−i=1∑k−1Projui(vk)

  3. 归一化 (可选):如果需要正交归一基,可以将 u k u_k uk 归一化:
    u k = u k ∥ u k ∥ u_k = \frac{u_k}{\|u_k\|} uk=∥uk∥uk

通过递归执行这些步骤,最终得到一组正交(或正交归一)的向量 u 1 , u 2 , ... , u n u_1, u_2, \dots, u_n u1,u2,...,un。

使用案例

我们来看一个二维空间中的具体例子。

给定两个向量:
v 1 = ( 1 1 ) , v 2 = ( 1 0 ) v_1 = \begin{pmatrix} 1 \\ 1 \end{pmatrix}, \quad v_2 = \begin{pmatrix} 1 \\ 0 \end{pmatrix} v1=(11),v2=(10)

步骤 1:初始化第一个正交向量

第一个正交向量 u 1 u_1 u1 为 v 1 v_1 v1:
u 1 = v 1 = ( 1 1 ) u_1 = v_1 = \begin{pmatrix} 1 \\ 1 \end{pmatrix} u1=v1=(11)

归一化后:
u 1 = 1 2 ( 1 1 ) u_1 = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \end{pmatrix} u1=2 1(11)

步骤 2:构造第二个正交向量

第二个向量 v 2 v_2 v2 需要去掉它在 u 1 u_1 u1 上的投影:

  1. 计算投影
    Proj u 1 ( v 2 ) = ⟨ v 2 , u 1 ⟩ ⟨ u 1 , u 1 ⟩ u 1 = 1 2 ( 1 1 ) \text{Proj}_{u_1}(v_2) = \frac{\langle v_2, u_1 \rangle}{\langle u_1, u_1 \rangle} u_1 = \frac{1}{2} \begin{pmatrix} 1 \\ 1 \end{pmatrix} Proju1(v2)=⟨u1,u1⟩⟨v2,u1⟩u1=21(11)

  2. 去投影
    u 2 = v 2 − Proj u 1 ( v 2 ) = ( 1 0 ) − 1 2 ( 1 1 ) = ( 1 2 − 1 2 ) u_2 = v_2 - \text{Proj}_{u_1}(v_2) = \begin{pmatrix} 1 \\ 0 \end{pmatrix} - \frac{1}{2} \begin{pmatrix} 1 \\ 1 \end{pmatrix} = \begin{pmatrix} \frac{1}{2} \\ -\frac{1}{2} \end{pmatrix} u2=v2−Proju1(v2)=(10)−21(11)=(21−21)

  3. 归一化
    u 2 = u 2 ∥ u 2 ∥ = 1 2 ( 1 − 1 ) u_2 = \frac{u_2}{\|u_2\|} = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ -1 \end{pmatrix} u2=∥u2∥u2=2 1(1−1)

因此,经过正交化后的正交向量组为:
u 1 = 1 2 ( 1 1 ) , u 2 = 1 2 ( 1 − 1 ) u_1 = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \end{pmatrix}, \quad u_2 = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ -1 \end{pmatrix} u1=2 1(11),u2=2 1(1−1)

应用

格拉姆-施密特正交化广泛应用于以下场景:

  1. 正交基构造:将线性无关的向量转换为正交向量,便于简化计算。
  2. QR分解:将矩阵分解为正交矩阵和上三角矩阵。
  3. 数值计算:在解决最小二乘问题时,正交化可提高数值稳定性。
相关推荐
littleM7 分钟前
OpenClaw vs HermesAgent 对比分析系列
人工智能·架构·ai编程
AI医影跨模态组学9 分钟前
Research(IF=10.9)南方医科大学珠江医院汪洋教授等团队:深度学习在脊柱MRI诊断中的应用:AI辅助与人工的多中心对比研究
人工智能·深度学习·论文·医学影像·影像组学
Zldaisy3d14 分钟前
上交大特材所 l 增材制造多层级功能结构综述
人工智能
缝艺智研社17 分钟前
誉财 YC - 16 POLO 衫智能自动钉扣机:POLO 衫钉扣新变革
人工智能·新人首发·自动化缝纫机·线上模板机·无人自动化产线
带电的小王19 分钟前
【动手学深度学习】8.4. 循环神经网络
人工智能·pytorch·rnn·深度学习
yigan_Eins19 分钟前
Transformer|残差连接的技术演进:从CNN到ResNet
人工智能·深度学习·cnn·transformer
道可云20 分钟前
道可云人工智能&OPC每日资讯|《广东省加快推进人工智能全域全时全行业高水平应用行动方案》发布
人工智能
0xR3lativ1ty22 分钟前
每周AI新工具速览:Kiln与OpenRA-RL登场
人工智能·ai
精益数智工坊24 分钟前
拆解制造业仓库物料管理流程:如何通过标准化仓库物料管理流程解决账实不符难题
大数据·前端·数据库·人工智能·精益工程
大龄程序员狗哥31 分钟前
第46篇:语音识别入门——让AI“听懂”人类语言(概念入门)
人工智能·语音识别