1. 程式人生 > >線性代數 -- 子空間的投影(一)

線性代數 -- 子空間的投影(一)

前言

Q:為什麼要講投影?

A:就像Ax=b有時會出現無解的情況, 但是我又要求出一個解來, 所以我就只能求一個最接近的解, 將Ax=b轉化成Ax=P, P就是b在列空間上的投影。 但是記住此時的x並不是原來的x, 只是一個最接近x的解

一維

我們先來看下面這個一維空間投影的例子

要求是在a向量中尋找距離b向量最近的點, 一個容易想到的做法就是通過b做投影, 投影是p點; 那麼這個p點就是距離b最近的點, 連線pb, 得到向量e=b-p。 因為p點在向量a上, 所以p可以用p=xa來表示。因為e與a相互垂直, 所以可以得到:aT(b-xa)=0。可以解得x=(aTb)/(aTa)。 前面已經說過p=xa, 所以p=a(aT

b)/(aTa), 這就是投影。 通過p=a(aTb)/(aTa)這個式子我們可以看出, 當b增大到原來的兩倍時, p也會相應的增大到原來的兩倍; 但是如果是改變a, 那麼p不會變; 因為a如何改變, b在a上面的投影仍然是在a的這條線上。

下面我們主要來看看p的這個式子:p=a(aTb)/(aTa), 它是一個矩陣, 因為組成這個式子的a、b都是向量。 向量b的投影是一個矩陣, 我們把它叫做投影矩陣。 記為Pb(因為是b的投影, 如果是a的投影, 就記為Pa)。 這裡我們來看一下這個P(注意是大寫的)到底是什麼, 在p的這個式子:p=a(aTb)/(aTa)中, 我們可以將括號的位置換一下得到:p=b(aaT

)/(aTa), 注意aaT和aTa的結果並不是一樣的(aaT是一個n*n矩陣(列*行), 而aTa是一個數字), 到這裡P已經顯而易見了P=(aaT)/(aTa)。

這裡我們主要看看(aTa)/(aaT)這個矩陣, 這個矩陣的列空間是什麼? 列空間的作用就是無論你用什麼向量b乘以這個矩陣 結果總會在這個列空間裡面, 上面那個Pb就在列空間之內。 可以知道矩陣的列空間就是通過a的一條直線, 這個矩陣的秩就是:1. 這是一個秩一矩陣, 這個矩陣是由列乘以行得到, 所以它的矩陣的列空間的基就是列。 這個列就是a。一維。 來看看其餘兩個性質:P是否是對稱矩陣? 投影兩次會是什麼結果? 答案是P是對稱矩陣, 因為PT

=P。 那投影兩次呢? 我們知道b投影一次得到點p, 由於直線上的點在該直線上的投影還是改點, 所以有P2=P。這樣我們就得到了投影公式:PT=P=P2。 對於一維的情況我們最好把x=(aTb)/(aTa)、p=a(aTb)/(aTa)、P=(aaT)/(aTa), 這幾個公式最好記住。


下一章會討論高維的情況