1. 程式人生 > >【線性代數】正交投影

【線性代數】正交投影

       我們在初中就應該學過投影,那麼什麼是投影呢?形象點說,就是將你需要投影的東西上的每一點向你要投影的平面作垂線,垂線與平面的交點的集合就是你的投影。注意這裡我們的投影是向量的投影,幾何的投影(並不一定是垂直投影的)可見度娘百科。同樣的,我們從簡單的二維投影來開始討論。

   1、二維投影


上圖表示的是,向量b在向量a上的投影。顯然有如下表達式:


其中,P為投影矩陣,由P的表示式可以看出,它具有如下性質:


2、三維投影

       三維投影,就是將一個向量投影到一個平面上。同上面一樣,假設是將b向量投影到平面上的p向量,則有表示式:
e是垂直與平面的向量。由於p向量在平面上,則p向量可以由該平面的2個線性無關向量(正如,在xy平面的任何向量都可以由x軸,y軸表示)表示:

由於e垂直平面,則e向量垂直與平面中的任意向量,則有:


將上式化簡求得x:


又因為p=Ax,Pb=p,則得到投影矩陣為:


由P的表示式可以看出,它具有如下性質:


上面的投影矩陣是通式

,當投影在一維情況時,A即為直線上的任意一個向量a,投影矩陣為:


注意:一個數值的逆是它的倒數。

3、舉例說明

下面以一個例項來說明:

如上圖,假設我們要將向量b投影到水平面上,其投影為p,a1,a2為水平面的兩個線性無關向量,它們的引數分別為:


那麼A=[a1 a2]即:


由上面我們求得的通式,可得投影矩陣P:


知道投影矩陣P後,我們可以得到b在水平面上的投影p為:


顯然,p與我們圖中所示的結果相同。這裡我們是以三維情況進行舉例的,更高維情況,我們無法用影象來描述,但是通式也是成立的。

三維圖的matlab程式如下:

clear all
clc
 
a1=[1 0 0];
a2=[0 1 0];
b=[1 1 1];
p=[1 1 0];
e=b-p;
quiver3(0,0,0,a1(1),a1(2),a1(3),1,'color','r')
hold on
quiver3(0,0,0,a2(1),a2(2),a2(3),1,'color','r')
hold on
quiver3(0,0,0,b(1),b(2),b(3),1,'color','g')
hold on
quiver3(0,0,0,p(1),p(2),p(3),1,'color','g')
hold on
quiver3(p(1),p(2),p(3),e(1),e(2),e(3),1,'color','b')

作者:nineheadedbird