施密特正交化

Posted back-to-the-past

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了施密特正交化相关的知识,希望对你有一定的参考价值。

对于一组向量,有时候我们需要对其进行正交化处理,也就是说,该组向量中任意两个向量都是互相垂直的。那么,要怎么做呢?

假设只有两个向量,(vec v_0)(vec v_1),正交化的几何示意图如下所示。

技术图片

假设正交化之后的向量为(vec w_0)(vec w_1),那么由图可知,可得(vec w_0 = vec v_0),且有:

(vec w_1 = vec v_1 - dfrac{vec v_1 cdot vec w_0}{|vec w_0|})

这里减去的部分是向量(vec v_1)在向量(vec w_0)上的投影。然后将(vec w_0)(vec w_1)进行归一化,就得到了最终的结果。

那么,如果有三个向量,(vec v_0)(vec v_1)(vec v_2),这种情况要如何处理呢?同样地,正交化的几何示意图如下所示。

技术图片

假设正交化之后的向量为(vec w_0)(vec w_1)(vec w_2),由图可知,可得(vec w_0 = vec v_0),且有:

(vec w_1 = vec v_1 - dfrac{vec v_1 cdot vec w_0}{|vec w_0|})

(vec w_2 = vec v_2 - dfrac{vec v_2 cdot vec w_0}{|vec w_0|} - dfrac{vec v_2 cdot vec w_1}{|vec w_1|})

从图中可以看出向量(vec w_2)即为向量(vec v_2)减去在(vec w_0)(vec w_1)上的投影。将这三个向量进行归一化即可得到最终的结果。

那么,假如我们有一组向量({ vec v_0, vec v_1, vec v_2, ..., vec v_n }),要想求得它们正交化后的向量组({ vec w_0, vec w_1, vec w_2, ..., vec w_n }),步骤如下:

  1. (vec w_0 = vec v_0)
  2. 计算(vec w_i = vec v_i - sum_{j = 0}^{i - 1} dfrac{vec v_i cdot vec w_j}{|vec w_j |};1 leq i leq n)
  3. 将得到的({ vec w_0, vec w_1, vec w_2, ..., vec w_n })进行正交化。

以上是关于施密特正交化的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB中施密特正交化的实现

《本科-线性代数笔记-精简汇总》,纯手工!

机器学习|数学基础Mathematics for Machine Learning系列之线性代数(15):向量的内积长度及正交性

《Linear Algebra and Its Applications》-chaper6-正交性和最小二乘法- 格拉姆-施密特方法

线性代数笔记

如何保证切线空间矩阵正确