奇異值 奇異矩陣 SVD分解 正交矩陣

2021-07-24 05:23:36 字數 3053 閱讀 1155

奇異值:

奇異值分解法是線性代數中一種重要的矩陣分解法,在訊號處理、統計學等領域有重要應用。

定義:設a為m*n階矩陣,a'表示a的轉置矩陣,a'*a的n個特徵值的非負平方根叫作a的奇異值。記為σi(a)。

如果把a『*a的特徵值記為λi(a『*a),則σi(a)=sqrt(λi(a』*a))。

奇異矩陣:

奇異矩陣是線性代數的概念,就是對應的行列式等於0的矩陣。奇異矩陣的判斷方法:首先,看這個矩陣是不是方陣(即行數和列數相等的矩陣。若行數和列數不相等,那就談不上奇異矩陣和非奇異矩陣)。然後,再看此方陣的行列式|a|是否等於0,若等於0,稱矩陣a為奇異矩陣;若不等於0,稱矩陣a為非奇異矩陣。同時,由|a|≠0可知矩陣a可逆,這樣可以得出另外乙個重要結論:可逆矩陣就是非奇異矩陣,非奇異矩陣也是可逆矩陣。如果a為奇異矩陣,則ax=0有非零解或無解。如果a為非奇異矩陣,則ax=0有且只有唯一零解。

svd設a為m*n階矩陣,a'表示a的轉置矩陣,a'*a的n個特徵值的非負平方根叫作a的奇異值。記為σi(a)。

這幾天做實驗涉及到奇異值分解svd(singular value decomposition),涉及到這樣的乙個問題,

做pca時候400幅影象拉成向量按列擺放,結果擺成了比如說10000*400大小的矩陣,

用到svd函式進行奇異值分解找主分量,結果matlab提示超出記憶體,後來想起還有個函式叫svds,看到別人用過,以為只是乙個變體,沒什麼區別,就用上了,結果確實在預料之中。但是今天覺得不放心,跑到變數裡面看了下,發現這個大的矩陣被分解成了

三個10000*6,6*6,400*6大小的矩陣的乘積,而不是普通的svd分解得到的10000*10000,10000*400,400*400大小的矩陣乘積,把我嚇了一跳,都得到預期的結果,難不成這裡還出個簍子?趕緊試驗,

發現任給乙個m*n大小的矩陣,都是被分解成了m*6,6*6,n*6大小的矩陣的乘積,為什麼都會出現6呢?確實很納悶。help svds看了一下,發現svds(a) 返回的就是svds返回的就是最大的6個特徵值及其對應的特徵行向量和特徵列向量,

還好,我們實驗中是在svds得到列向量中再取前5個最大的列向量,這個與普通的svd得到的結果是一致的,虛驚一場。還得到了一些別的,比如

改變這個預設的設定,

比如用[u,d,v]=svds(a,10)將得到最大的10個特徵值及其對應的最大特徵行向量和特徵列向量

[u,d,v]=svds(a,10,0)將得到最小的10個特徵值及其對應的特徵行向量和特徵列向量,

[u,d,v]=svds(a,10,2)將得到與2最接近的10個特徵值及其對應的特徵行向量和特徵列向量。

總之,相比svd,svds的可定製性更強。

奇異值分解非常有用,對於矩陣a(m*n),存在u(m*m),v(n*n),s(m*n),滿足a = u*s*v』。

u和v中分別是a的奇異向量,而s是a的奇異值。

aa'的正交單位特徵向量組成u,特徵值組成s's

a'a的正交單位特徵向量組成v,特徵值(與aa'相同)組成ss'。因此,奇異值分解和特徵值問題緊密聯絡

定理和推論 定理:設a為m*n階復矩陣,則存在m階酉陣u和n階酉陣v,使得:

a = u*s*v』

其中s=diag(σi,σ2,……,σr),σi>0 (i=1,…,r),r=rank(a)。

推論: 設a為m*n階實矩陣,則存在m階正交陣u和n階正交陣v,使得

a = u*s*v』

其中s=diag(σi,σ2,……,σr),σi>0 (i=1,…,r),r=rank(a)。

說明:

1、 奇異值分解非常有用,對於矩陣a(m*n),存在u(m*m),v(n*n),s(m*n),滿足a = u*s*v』。u和v中分別是a的奇異向量,而s是a的奇異值。aa'的正交單位特徵向量組成u,特徵值組成s's,a'a的正交單位特徵向量組成v,特徵值(與aa'相同)組成ss'。因此,奇異值分解和特徵值問題緊密聯絡。

2、奇異值分解提供了一些關於a的資訊,例如非零奇異值的數目(s的階數)和a的秩相同,一旦秩r確定,那麼u的前r列構成了a的列向量空間的正交基。

matlab奇異值分解 函式svd格式 s = svd (a) %返回矩陣a的奇異值向量

[u,s,v] = svd(a) %返回乙個與a同大小的對角矩陣s,兩個酉矩陣u和v,且滿足= u*s*v'。若a為m×n陣,則u為m×m陣,v為n×n陣。奇異值在s的對角線上,非負且按降序排列

[u1,s1,v1]=svd(x,0) %產生a的「經濟型」分解,只計算出矩陣u的前n列和n×n階的s。

說明:1.「經濟型」分解節省儲存空間。

2. u*s*v'=u1*s1*v1'。[1]

矩陣近似值 奇異值分解在統計中的主要應用為主成分分析(pca),它是一種資料分析方法,用來找出大量資料中所隱含的「模式」,它可以用在模式識別,資料壓縮等方面。pca演算法的作用是把資料集對映到低維空間中去。

資料集的特徵值(在svd中用奇異值表徵)按照重要性排列,降維的過程就是捨棄不重要的特徵向量的過程,而剩下的特徵向量張成空間為降維後的空間。

正交矩陣

正交矩陣是實數特殊化的酉矩陣,因此總是正規矩陣。儘管我們在這裡只考慮實數矩陣,

這個定義可用於其元素來自任何域的矩陣。正交矩陣畢竟是從內積自然引出的,對於復

數的矩陣這導致了歸一要求。注意正交矩陣的定義:n階『實矩陣』 a稱為正交矩陣,如果:a×a′=e(e為單位矩陣,

a'表示「矩陣a的轉置矩陣」。) 若a為正交陣,則下列諸條件是等價的:

1) a 是正交矩陣

2) a×a′=e(e為單位矩陣)

3) a′是正交矩陣

4) a的各行是單位向量且兩兩正交

5) a的各列是單位向量且兩兩正交

6) (ax,ay)=(x,y) x,y∈r

SVD矩陣奇異值分解

不正之處,歡迎指正!矩陣的奇異值分解是線性代數中一種重要的矩陣分解,在訊號處理,統計學等領域中有著重要的應用。在大學裡面的線性代數的課程中一般都是會有svd分解相關的知識的。但是往往只是涉及到理論上的知識體系,並沒有多少實際應用的背景,所以結果就是學了沒多久就會忘。奇異值分解可以將乙個比較複雜的矩陣...

矩陣奇異值分解SVD

矩陣分解有兩種一種是特徵值分解,但是其針對方陣,所以提出了奇異值分解。分解過程為 u的列組成一套對a的正交 輸入 或 分析 的基向量。這些向量是 的特徵向量。v的列組成一套對a的正交 輸出 的基向量。這些向量是 的特徵向量 得到的是右奇異向量,是奇異值,u是左奇異向量,奇異值跟特徵值類似,在矩陣 中...

奇異值分解 SVD

最近不小心接觸到了svd,然後認真看下去之後發現這東西真的挺強大的,把乙個推薦問題轉化為純數學矩陣問題,看了一些部落格,把乙個寫個比較具體的博文引入進來,給自己看的,所以把覺得沒必要的就去掉了,博文下面附原始部落格位址。一 基礎知識 1.矩陣的秩 矩陣的秩是矩陣中線性無關的行或列的個數 2.對角矩陣...