線性代數 正交矩陣和格蘭姆 施密特正交化

2022-05-19 16:37:38 字數 4102 閱讀 7159

一組線性無關的向量可以張成乙個向量子空間,比如向量\(\overrightarrow = \left[ \begin 1 \\ 2 \end \right]\)和\(\overrightarrow = \left[ \begin 1 \\ 0 \end \right]\)。它們線性無關,並且能張成乙個二維平面。既然如此,那麼為什麼我們眾所周知的二維座標系是用\(\overrightarrow = \left[ \begin 1 \\ 0 \end \right]\)和\(\overrightarrow = \left[ \begin 0 \\ 1 \end \right]\)表示,明明任意一組線性無關的2維向量都可以表示二維平面。這就引入了今天這篇筆記要講的正交矩陣,得益於正交矩陣的性質,很多運算都可以被化簡。

之前的筆記中已經提到過正交向量,比如在\(r^n\)空間中兩個n維向量\(\overrightarrow、\overrightarrow\)垂直,稱這兩個向量正交。而且顯然,互為正交的一組向量(除去非零向量)必然線性無關,為此如果將一組n維正交向量放在乙個矩陣中,比如$$a=

\begin

\left[

\begin

e1 \ e2

\end

\right]

\end

\[那麼很顯然,對於矩陣a,它有如下性質:\]

\begin

a^ta=\left[

\begin

e1 \ e2

\end

\right]\left[

\begin

e1 \ e2

\end

\right]=d

\end

\[矩陣$d$是乙個對角矩陣,主對角線上的值分別對應著矩陣$a$中每乙個列向量的模。那如果我們對矩陣a的要求更加嚴格一點,要求矩陣$a$中每乙個列向量都是單位向量,那麼對於新的矩陣a,它有如下性質:\]

\begin

a^ta=i

\end

\[矩陣$i$是2維單位矩陣,注意,這裡的矩陣$a$並不方陣。既然提到方陣,我們對矩陣$a$的要求更加嚴格一些,即要求它為方陣,我們記為$q$.對於$q$:

\]\begin

\left

q^tq=i \

qt=q

\end

\right.

\end

\[我們稱(4)中的矩陣$q$為正交矩陣。**它是乙個方陣,並且列向量之間兩兩正交,每個列向量都是單位向量。**

#### 正交矩陣舉例

下面舉幾個正交矩陣的例子,\]

\left[

\begin

1 & 0 \

0 & 1

\end

\right]

\[又或者\]

\frac\left[

\begin

1 & 1 & 1 & 1\

1 & -1 & 1 & -1\

1 & 1 & -1 & -1\

1 & -1 & -1 & 1

\end

\right]

\[## 如何獲得乙個正交矩陣

因為一些原因,我們通常希望能夠獲得乙個正交矩陣,但是很不巧,我們只有那個矩陣的"低階版本",所有我們應該做些什麼工作來獲得乙個正交矩陣。

將乙個普通的方陣$a$轉成正交矩陣,意味著要將$a$中的列向量變成線性無關的單位向量。所以主要流程就是兩步:正交化和單位化

比較好用的一種辦法是格蘭姆-施密特正交化,下面以乙個例子來演示它的流程。

### 二維空間

先來個簡單點的情況,假設有乙個2x2的矩陣$$a=

\left[

\begin

3 & 2 \\

4 & 1

\end

\right]

\]第一步:正交化

矩陣\(a\)中包含兩個列向量,\(\overrightarrow = \left[ \begin 3 \\ 4 \end \right]\)和\(\overrightarrow = \left[ \begin 2 \\ 1 \end \right]\)

我們希望轉化後的2個列向量正交,那麼我可以從原來的2個列向量中先任取乙個向量比如\(\overrightarrow = \left[ \begin 3 \\ 4 \end \right]\)固定為\(\overrightarrow\),那麼剩下的目標就是將另外乙個向量\(\overrightarrow\)轉化為與\(\overrightarrow\),令它與\(\overrightarrow\)正交。所以,我們先來寫出正交化的第一步,即確定乙個"固定"向量$$

\begin

\overrightarrow = \overrightarrow

\end

\[然後現在怎麼得到乙個$\overrightarrow$?其實圖上已經畫出來了,如果將向量$\overrightarrow$往向量$\overrightarrow$投影先得到乙個向量$\overrightarrow$,那麼向量$\overrightarrow - \overrightarrow$是不是顯然與$\overrightarrow$正交。那麼第二步就是:\]

\begin

\overrightarrow = \overrightarrow - \overrightarrow,\ \ 其中\overrightarrow為\overrightarrow往\overrightarrow的投影向量

\end

\[相信這個已經十分熟悉了,忘記的話可以回顧`如何得到乙個投影矩陣`這篇筆記。\]

\begin

f = \frac}e_2}}e_1}e_1

\end

\[由(6)、(7)可以確定向量$\overrightarrow$:\]

\begin

q_2 = e_2 - \frac}e_2}}q_1}q_1

\end

\[正交化到這裡就結束了,我們代入例子算一下,得到變化後的矩陣為:\]

a' = \left[

\begin

3 & \frac \

4 & \frac

\end

\right]

\[可以驗證兩個列向量是正交的了。

#### 第二步:單位化

這步就是將每個列向量的模變為1,拿$\overrightarrow = \left[ \begin 3 \\ 4 \end \right]$舉例,單位化後的向量為:

\]\frac}\left[

\begin 3 \ 4

\end

\right]=\left[

\begin \frac \ \frac

\end

\right]

\[而另乙個向量$\overrightarrow$已經是單位矩陣,所以不用單位化,因此通過格蘭姆-施密特正交化最終得到的單位矩陣\]

q = \left[

\begin

\frac & \frac \

\frac & \frac

\end

\right]

\[**正交化過程並不改變矩陣的對應的列空間,顯然張成的平面仍是二維平面。**

### 三維空間

對於二維空間,確定1個固定的向量後,只要將另外乙個向量往其上面投影再相減就能完成正交化過程了。但是在三維空間中,一共有3個列向量,應該怎麼做?

#### 三維空間中的正交化過程

其實流程也是異曲同工。假設需要單位正交化的矩陣為$a = \left[ \begin e_1 \ e_2 \ e_3 \end \right]$

1. 第一步:固定乙個向量$q_1 = e_1$

2. 第二步:將第2個向量往$q_1$上投影,$$q_2 = e_2 - \frac}e_2}}q_1}q_1\]

第三步:將第3個向量\(e_3\)減去\(q_1\)方向上的投影向量,再減去\(q_2\)方向上的投影向量,即$$q_3=e_3 - \frac}e_3}}q_1}q_1 - \frac}e_3}}q_2}q_2$$

接下來單位化即可,不過多贅述。覺得第3步有些抽象的朋友可以找3只筆試一下,兩隻筆垂直放置在平面上,第3隻筆與平面呈一定角度。這樣減去兩個方向的投影向量後,一定能得到垂直與平面的乙個向量。而且也可以通過\(q_3^tq_2=0\)和\(q_3^tq_1=0\)來驗證。

線性代數 矩陣乘法和逆矩陣

逆矩陣 本節是網易公開課上的麻省理工大學線性代數課程第三節 矩陣乘法和逆矩陣 的學習筆記。矩陣相乘,並不一定要求是方陣。如果矩陣a是乙個 mxn 的矩陣 m行,n列 則矩陣b必須是乙個 nxp n行,p列 的矩陣,這樣兩者才能相乘,相乘的結果矩陣c是乙個 mxp m行,p列 的矩陣。假設 ab c ...

numpy矩陣相關和線性代數linalg模組

單位矩陣e 單位矩陣 8540268 矩陣求逆 矩陣計算 numpy.linalg模組包含線性代數的函式。使用這個模組,可以計算逆矩陣 求特徵值 解線性方程組以及求解行列式等。import numpy as np 1.計算逆矩陣 建立矩陣 a np.mat 0 1 2 1 0 3 4 3 8 pri...

機器學習(三) 矩陣和線性代數

矩陣 svd 矩陣的乘法 狀態轉移矩陣 狀態轉移矩陣 特徵值和特徵向量 對稱陣 正交陣 正定陣資料白化 矩陣求導 向量對向量求導 標量對向量求導 標量對矩陣求導 一.矩陣 1.1 svd 奇異值分解 singular value decomposition 假設a是乙個m n階矩陣,則存在乙個分解使...