【线性代数】正交矩阵和格兰姆-施密特正交化

释放双眼,带上耳机,听听看~!

本文目录

引言

一组线性无关的向量可以张成一个向量子空间,比如向量\\(\\overrightarrow{e_1} = \\left[ \\begin{matrix} 1 \\\\ 2 \\end{matrix} \\right]\\)\\(\\overrightarrow{e_2} = \\left[ \\begin{matrix} 1 \\\\ 0 \\end{matrix} \\right]\\)。它们线性无关,并且能张成一个二维平面。既然如此,那么为什么我们众所周知的二维坐标系是用\\(\\overrightarrow{i} = \\left[ \\begin{matrix} 1 \\\\ 0 \\end{matrix} \\right]\\)\\(\\overrightarrow{j} = \\left[ \\begin{matrix} 0 \\\\ 1 \\end{matrix} \\right]\\)表示,明明任意一组线性无关的2维向量都可以表示二维平面。这就引入了今天这篇笔记要讲的正交矩阵,得益于正交矩阵的性质,很多运算都可以被化简。

正交矩阵

之前的笔记中已经提到过正交向量,比如在\\(R^n\\)空间中两个n维向量\\(\\overrightarrow{e_1}、\\overrightarrow{e_2}\\)垂直,称这两个向量正交。而且显然,互为正交的一组向量(除去非零向量)必然线性无关,为此如果将一组n维正交向量放在一个矩阵中,比如\\[A= \\begin{equation} \\left[ \\begin{matrix} e1 \\ e2 \\end{matrix} \\right] \\end{equation} \\]
那么很显然,对于矩阵A,它有如下性质:\\[ \\begin{equation} A^TA=\\left[ \\begin{matrix} e1 \\\\ e2 \\end{matrix} \\right]\\left[ \\begin{matrix} e1 \\ e2 \\end{matrix} \\right]=D \\end{equation} \\]
矩阵\\(D\\)是一个对角矩阵,主对角线上的值分别对应着矩阵\\(A\\)中每一个列向量的模。那如果我们对矩阵A的要求更加严格一点,要求矩阵\\(A\\)中每一个列向量都是单位向量,那么对于新的矩阵A,它有如下性质:\\[ \\begin{equation} A^TA=I \\end{equation} \\]
矩阵\\(I\\)是2维单位矩阵,注意,这里的矩阵\\(A\\)并不方阵。既然提到方阵,我们对矩阵\\(A\\)的要求更加严格一些,即要求它为方阵,我们记为\\(Q\\).对于\\(Q\\)
\\[ \\begin{equation} \\left \\{ \\begin{array}{lr} Q^TQ=I \\\\ Q^T=Q^{-1} \\end{array} \\right. \\end{equation} \\]
我们称(4)中的矩阵\\(Q\\)正交矩阵它是一个方阵,并且列向量之间两两正交,每个列向量都是单位向量。

正交矩阵举例

下面举几个正交矩阵的例子,\\[ \\left[ \\begin{matrix} 1 & 0 \\\\ 0 & 1 \\end{matrix} \\right] \\]
又或者\\[ \\frac{1}{2}\\left[ \\begin{matrix} 1 & 1 & 1 & 1\\\\ 1 & -1 & 1 & -1\\\\ 1 & 1 & -1 & -1\\\\ 1 & -1 & -1 & 1 \\end{matrix} \\right] \\]

如何获得一个正交矩阵

因为一些原因,我们通常希望能够获得一个正交矩阵,但是很不巧,我们只有那个矩阵的\"低级版本\",所有我们应该做些什么工作来获得一个正交矩阵。

将一个普通的方阵\\(A\\)转成正交矩阵,意味着要将\\(A\\)中的列向量变成线性无关的单位向量。所以主要流程就是两步:正交化和单位化

比较好用的一种办法是格兰姆-施密特正交化,下面以一个例子来演示它的流程。

二维空间

先来个简单点的情况,假设有一个2x2的矩阵\\[A= \\left[ \\begin{matrix} 3 & 2 \\\\ 4 & 1 \\end{matrix} \\right] \\]

第一步:正交化

矩阵\\(A\\)中包含两个列向量,\\(\\overrightarrow{e_1} = \\left[ \\begin{matrix} 3 \\\\ 4 \\end{matrix} \\right]\\)\\(\\overrightarrow{e_2} = \\left[ \\begin{matrix} 2 \\\\ 1 \\end{matrix} \\right]\\)

【线性代数】正交矩阵和格兰姆-施密特正交化

我们希望转化后的2个列向量正交,那么我可以从原来的2个列向量中先任取一个向量比如\\(\\overrightarrow{e_1} = \\left[ \\begin{matrix} 3 \\\\ 4 \\end{matrix} \\right]\\)固定为\\(\\overrightarrow{q_1}\\),那么剩下的目标就是将另外一个向量\\(\\overrightarrow{e_2}\\)转化为与\\(\\overrightarrow{q_2}\\),令它与\\(\\overrightarrow{q_1}\\)正交。所以,我们先来写出正交化的第一步,即确定一个\"固定\"向量\\[ \\begin{equation} \\overrightarrow{q_1} = \\overrightarrow{e_1} \\end{equation} \\]

然后现在怎么得到一个\\(\\overrightarrow{q_2}\\)?其实图上已经画出来了,如果将向量\\(\\overrightarrow{e_2}\\)往向量\\(\\overrightarrow{e_1}\\)投影先得到一个向量\\(\\overrightarrow{f}\\),那么向量\\(\\overrightarrow{e_2} - \\overrightarrow{f}\\)是不是显然与\\(\\overrightarrow{e_1}\\)正交。那么第二步就是:\\[ \\begin{equation} \\overrightarrow{q_2} = \\overrightarrow{e_2} - \\overrightarrow{f},\\ \\ 其中\\overrightarrow{f}为\\overrightarrow{e_2}往\\overrightarrow{q_1}的投影向量 \\end{equation} \\]
相信这个已经十分熟悉了,忘记的话可以回顾如何得到一个投影矩阵这篇笔记。\\[ \\begin{equation} f = \\frac{e_1^{\\mathrm{T}}e_2}{e_1^{\\mathrm{T}}e_1}e_1 \\end{equation} \\]
由(6)、(7)可以确定向量\\(\\overrightarrow{q_2}\\)\\[ \\begin{equation} q_2 = e_2 - \\frac{q_1^{\\mathrm{T}}e_2}{q_1^{\\mathrm{T}}q_1}q_1 \\end{equation} \\]
正交化到这里就结束了,我们代入例子算一下,得到变化后的矩阵为:\\[ A\' = \\left[ \\begin{matrix} 3 & \\frac{4}{5} \\\\ 4 & \\frac{-3}{5} \\end{matrix} \\right] \\]
可以验证两个列向量是正交的了。

第二步:单位化

这步就是将每个列向量的模变为1,拿\\(\\overrightarrow{q_1} = \\left[ \\begin{matrix} 3 \\\\ 4 \\end{matrix} \\right]\\)举例,单位化后的向量为:
\\[ \\frac{1}{\\sqrt{3^2+4^2}}\\left[ \\begin{matrix} 3 \\\\ 4 \\end{matrix} \\right]=\\left[ \\begin{matrix} \\frac{3}{5} \\\\ \\frac{4}{5} \\end{matrix} \\right] \\]
而另一个向量\\(\\overrightarrow{q_2}\\)已经是单位矩阵,所以不用单位化,因此通过格兰姆-施密特正交化最终得到的单位矩阵\\[ Q = \\left[ \\begin{matrix} \\frac{3}{5} & \\frac{4}{5} \\\\ \\frac{4}{5} & \\frac{-3}{5} \\end{matrix} \\right] \\]

正交化过程并不改变矩阵的对应的列空间,显然张成的平面仍是二维平面。

三维空间

对于二维空间,确定1个固定的向量后,只要将另外一个向量往其上面投影再相减就能完成正交化过程了。但是在三维空间中,一共有3个列向量,应该怎么做?

三维空间中的正交化过程

其实流程也是异曲同工。假设需要单位正交化的矩阵为\\(A = \\left[ \\begin{matrix} e_1 \\ e_2 \\ e_3 \\end{matrix} \\right]\\)

  1. 第一步:固定一个向量\\(q_1 = e_1\\)
  2. 第二步:将第2个向量往\\(q_1\\)上投影,\\[q_2 = e_2 - \\frac{q_1^{\\mathrm{T}}e_2}{q_1^{\\mathrm{T}}q_1}q_1\\]
  3. 第三步:将第3个向量\\(e_3\\)减去\\(q_1\\)方向上的投影向量,再减去\\(q_2\\)方向上的投影向量,即\\[q_3=e_3 - \\frac{q_1^{\\mathrm{T}}e_3}{q_1^{\\mathrm{T}}q_1}q_1 - \\frac{q_2^{\\mathrm{T}}e_3}{q_2^{\\mathrm{T}}q_2}q_2\\]

接下来单位化即可,不过多赘述。觉得第3步有些抽象的朋友可以找3只笔试一下,两只笔垂直放置在平面上,第3只笔与平面呈一定角度。这样减去两个方向的投影向量后,一定能得到垂直与平面的一个向量。而且也可以通过\\(q_3^Tq_2=0\\)\\(q_3^Tq_1=0\\)来验证。

给TA打赏
共{{data.count}}人
人已打赏
随笔日记

深入理解this关键字

2020-11-9 3:48:16

随笔日记

一篇入门 — Gatling 性能测试手册

2020-11-9 3:48:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索